diff --git a/.github/labeler.yml b/.github/labeler.yml
index 5aa740ed1682..d06c06970c3c 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -11,6 +11,21 @@
- '**/*.dmm'
- '_maps/**'
+'🚀 Корабли 🚀':
+- changed-files:
+ - any-glob-to-any-file:
+ - '_maps/shuttles/**'
+ - '_maps/configs/**'
+ - '_maps/_mod_celadon/shuttles/**'
+ - '_maps/_mod_celadon/configs/**'
+
+'🏔 Руинки 🏔':
+- changed-files:
+ - any-glob-to-any-file:
+ - '_maps/RandomRuins/**'
+ - 'code/datums/ruins/**'
+ - '_maps/_mod_celadon/RandomRuins/**'
+
# Any .dmi changes
'🎨 Спрайты 🎨':
- changed-files:
diff --git a/.github/workflows/autowiki.yml b/.github/workflows/autowiki.yml
index c6f85bade91d..10d3cea1e676 100644
--- a/.github/workflows/autowiki.yml
+++ b/.github/workflows/autowiki.yml
@@ -43,7 +43,7 @@ jobs:
sudo apt update || true
sudo apt install -o APT::Immediate-configure=false libssl-dev:i386
bash tools/ci/install_rust_g.sh
-
+
- name: Cache dependencies
if: steps.secrets_set.outputs.SECRETS_ENABLED
uses: actions/cache@v3
diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml
index 47f8b1df9941..2b8d49853ad5 100644
--- a/.github/workflows/ci_suite.yml
+++ b/.github/workflows/ci_suite.yml
@@ -3,17 +3,35 @@ on:
push:
branches:
- master
+ - "project/**"
pull_request:
branches:
- master
+ - "project/**"
merge_group:
branches:
- master
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
jobs:
+ 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:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Run Linters
+ needs: start_gate
runs-on: ubuntu-22.04
+ timeout-minutes: 20
+
steps:
- uses: actions/checkout@v3
with:
@@ -53,39 +71,63 @@ jobs:
run: |
pip3 install setuptools
bash tools/ci/install_node.sh
- bash tools/ci/install_spaceman_dmm.sh dreamchecker
cargo install ripgrep --features pcre2
tools/bootstrap/python -c ''
- - name: Run Linters
+ - name: Give Linters A Go
+ id: linter-setup
+ run: exit 0
+ - name: Run Grep Checks
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: bash tools/ci/check_grep.sh
+ - name: Run DreamChecker
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: ~/dreamchecker 2>&1 | bash tools/ci/annotate_dm.sh
+ - name: Run Map Checks
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: |
- tools/bootstrap/python -m tools.maplint.source --github
- tools/build/build --ci lint tgui-test
- bash tools/ci/check_filedirs.sh shiptest.dme
- bash tools/ci/check_changelogs.sh
- bash tools/ci/check_misc.sh
- bash tools/ci/check_grep.sh
- tools/bootstrap/python -m dmi.test
tools/bootstrap/python -m mapmerge2.dmm_test
- ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1
-
- - name: Annotate Lints
- uses: yogstation13/DreamAnnotate@v2
- with:
- outputFile: output-annotations.txt
-
- - name: Run Check Regex
+ tools/bootstrap/python -m tools.maplint.source
+ - name: Run DMI Tests
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: tools/bootstrap/python -m dmi.test
+ - name: Check File Directories
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: bash tools/ci/check_filedirs.sh shiptest.dme
+ - name: Check Changelogs
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: bash tools/ci/check_changelogs.sh
+ - name: Check Miscellaneous Files
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: bash tools/ci/check_misc.sh
+ - name: Run TGUI Checks
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
+ run: tools/build/build --ci lint tgui-test
+ - name: Run Regex Checks
+ if: steps.linter-setup.conclusion == 'success' && !cancelled()
run: |
tools/bootstrap/python -m ci.check_regex --log-changes-only --github-actions
+ cat check_regex_output.txt
+
+ - name: Install OpenDream
+ uses: robinraju/release-downloader@v1.9
+ with:
+ repository: "OpenDreamProject/OpenDream"
+ tag: "latest"
+ fileName: "DMCompiler_linux-x64.tar.gz"
+ extract: true
- - name: Annotate Regex Matches
+ - name: Run OpenDream Linter
run: |
- cat check_regex_output.txt
+ ./DMCompiler_linux-x64/DMCompiler shiptest.dme --suppress-unimplemented --define=CIBUILDING | bash tools/ci/annotate_od.sh
compile_all_maps:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Compile Maps
+ needs: start_gate
runs-on: ubuntu-latest
+ timeout-minutes: 5
+
steps:
- uses: actions/checkout@v3
@@ -107,37 +149,41 @@ jobs:
run_all_tests:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Integration Tests
+ needs: start_gate
strategy:
fail-fast: false
matrix:
- arg: [
- "BASIC_TESTS",
- "CREATE_AND_DESTROY_TEST",
- "PLANET_GEN_TEST",
- "RUIN_PLACEMENT_TEST",
- "SHIP_PLACEMENT_TEST"
- ]
+ arg:
+ [
+ "BASIC_TESTS",
+ "CREATE_AND_DESTROY_TEST",
+ "PLANET_GEN_TEST",
+ "RUIN_PLACEMENT_TEST",
+ "SHIP_PLACEMENT_TEST",
+ ]
uses: ./.github/workflows/run_integration_tests.yml
with:
arg: ${{ matrix.arg }}
-# run_alternate_tests:
-# if: "!contains(github.event.head_commit.message, '[ci skip]')"
-# name: Alternate Tests
-# strategy:
-# fail-fast: false
-# matrix:
-# major: [515]
-# minor: [1614]
-# uses: ./.github/workflows/run_integration_tests.yml
-# with:
-# major: ${{ matrix.major }}
-# minor: ${{ matrix.minor }}
+ # run_alternate_tests:
+ # if: "!contains(github.event.head_commit.message, '[ci skip]')"
+ # name: Alternate Tests
+ # strategy:
+ # fail-fast: false
+ # matrix:
+ # major: [515]
+ # minor: [1614]
+ # uses: ./.github/workflows/run_integration_tests.yml
+ # with:
+ # major: ${{ matrix.major }}
+ # minor: ${{ matrix.minor }}
test_windows:
if: "!contains(github.event.head_commit.message, '[ci skip]')"
name: Windows Build
+ needs: start_gate
runs-on: windows-latest
+ timeout-minutes: 5
steps:
- uses: actions/checkout@v3
@@ -162,7 +208,18 @@ jobs:
bash tools/deploy.sh ./deploy
- name: Deploy artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: deploy
path: deploy
+
+ completion_gate: # Serves as a non-moving target for branch rulesets
+ if: always() && !cancelled()
+ name: Completion Gate
+ needs: [test_windows, compile_all_maps, run_linters, run_all_tests]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Decide whether the needed jobs succeeded or failed
+ uses: re-actors/alls-green@release/v1
+ with:
+ jobs: ${{ toJSON(needs) }}
diff --git a/.github/workflows/codeowner_reviews.yml b/.github/workflows/codeowner_reviews.yml
index 753f575f90d7..6799c5d14b37 100644
--- a/.github/workflows/codeowner_reviews.yml
+++ b/.github/workflows/codeowner_reviews.yml
@@ -6,6 +6,7 @@ on: pull_request_target
jobs:
assign-users:
runs-on: ubuntu-latest
+ timeout-minutes: 5
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so the job can access it
diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml
new file mode 100644
index 000000000000..317356dcee00
--- /dev/null
+++ b/.github/workflows/rerun_flaky_tests.yml
@@ -0,0 +1,37 @@
+name: Rerun/Report Flaky Tests
+on:
+ workflow_run:
+ workflows: [Checks, TGS Test Suite]
+ types:
+ - completed
+
+permissions:
+ actions: write
+ contents: write
+ issues: write
+
+jobs:
+ rerun_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Rerun flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await rerunFlakyTests({ github, context })
+ report_flaky_tests:
+ runs-on: ubuntu-latest
+ if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Report flaky tests
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { reportFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js')
+ await reportFlakyTests({ github, context })
diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml
index 9c83d6ab013d..699151fe6f99 100644
--- a/.github/workflows/run_integration_tests.yml
+++ b/.github/workflows/run_integration_tests.yml
@@ -14,9 +14,11 @@ on:
required: false
default: ALL_TESTS
type: string
+
jobs:
run_integration_tests:
runs-on: ubuntu-latest
+ timeout-minutes: 15
services:
mysql:
image: mysql:latest
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index a19c1911c18e..94051ff2e652 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -13,13 +13,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@v4
+ - uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: "This PR has been inactive for a month. This means it is at risk of being auto closed in a week, please address any outstanding review items and ensure your PR is finished, if these are all true and you are auto-staled anyway, you need to actively ask maintainers if your PR will be merged. Once you have done any of the previous actions then you should request a maintainer remove the stale label on your PR, to reset the stale timer. If you feel no maintainer will respond in that time, you may wish to close this PR youself, while you seek maintainer comment, as you will then be able to reopen the PR yourself"
days-before-stale: 30
days-before-close: 7
- days-before-issue-stale: -1
- stale-pr-label: "Stale"
exempt-pr-labels: "RED LABEL, Test Merged, Test Merge Candidate, Stale Exempt"
exempt-draft-pr: true
+
+ stale-issue-message: "This flaky fail has not been detected in 7 days. If it doesn't show up again in another 7 days, it will be auto-closed."
+ only-issue-labels: "🤖 Flaky Test Report"
+ days-before-issue-stale: 7
+
diff --git a/.github/workflows/tgs_test.yml b/.github/workflows/tgs_test.yml
index a92b6cac76a3..4b7853aa77cf 100644
--- a/.github/workflows/tgs_test.yml
+++ b/.github/workflows/tgs_test.yml
@@ -3,7 +3,9 @@ on:
push:
branches:
- master
+ - 'project/**'
- 'gh-readonly-queue/master/**'
+ - 'gh-readonly-queue/project/**'
paths:
- '.tgs.yml'
- '.github/workflows/tgs_test.yml'
@@ -12,11 +14,13 @@ on:
- 'code/__DEFINES/tgs.dm'
- 'code/game/world.dm'
- 'code/modules/tgs/**'
+ - 'tools/bootstrap/**'
- 'tools/tgs_scripts/**'
- 'tools/tgs_test/**'
pull_request:
branches:
- master
+ - 'project/**'
paths:
- '.tgs.yml'
- '.github/workflows/tgs_test.yml'
@@ -25,6 +29,7 @@ on:
- 'code/__DEFINES/tgs.dm'
- 'code/game/world.dm'
- 'code/modules/tgs/**'
+ - 'tools/bootstrap/**'
- 'tools/tgs_scripts/**'
- 'tools/tgs_test/**'
merge_group:
@@ -54,12 +59,12 @@ jobs:
- 5000:5000 #Can't use env here for some reason
steps:
- name: Setup dotnet
- uses: actions/setup-dotnet@v2
+ uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Checkout Repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Test TGS Integration
run: dotnet run -c Release --project tools/tgs_test ${{ github.repository }} /tgs_instances/tgstation ${{ env.TGS_API_PORT }} ${{ github.event.pull_request.head.sha || github.sha }} ${{ secrets.GITHUB_TOKEN }} ${{ env.PR_NUMBER }}
diff --git a/.gitignore b/.gitignore
index 94713bc82e1c..196353141536 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@
*.lk
*.int
*.backup
+/shiptest.json
### https://raw.github.com/github/gitignore/cc542de017c606138a87ee4880e5f06b3a306def/Global/Linux.gitignore
*~
diff --git a/Dockerfile b/Dockerfile
index 6cefd0618365..c4b1a05bf4f8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -34,7 +34,7 @@ RUN git init \
&& git remote add origin \$AUXMOS_REPO \
&& git fetch --depth 1 origin \$AUXMOS_VERSION" \
&& git checkout FETCH_HEAD \
- && env PKG_CONFIG_ALLOW_CROSS=1 cargo build --release --target=i686-unknown-linux-gnu --features "all_reaction_hooks,katmos"
+ && env PKG_CONFIG_ALLOW_CROSS=1 cargo build --release --target=i686-unknown-linux-gnu --features "citadel_reactions,katmos"
# Install nodejs which is required to deploy Shiptest
FROM base as node
diff --git a/__odlint.dm b/__odlint.dm
new file mode 100644
index 000000000000..b7c120514a1d
--- /dev/null
+++ b/__odlint.dm
@@ -0,0 +1,10 @@
+// This file is included right at the start of the DME.
+// Its purpose is to enable multiple lints (pragmas) that are supported by OpenDream to better validate the codebase
+// These are essentially nitpicks the DM compiler should pick up on but doesnt
+
+#if !defined(SPACEMAN_DMM) && defined(OPENDREAM)
+// This is in a separate file as a hack to avoid SpacemanDMM
+// evaluating the #pragma lines, even if its outside a block it cares about
+// (Also so people can code-own it. Shoutout to AA)
+#include "tools/ci/od_lints.dm"
+#endif
diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
index cfe522aeb415..dad43ef34082 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -373,7 +373,7 @@
name = "charge rifle"
},
/obj/item/gun/energy/lasercannon{
- pixel_y = 5;
+ pixel_y = 5
},
/obj/item/gun/energy/lasercannon,
/obj/effect/turf_decal/industrial/hatch,
@@ -1144,7 +1144,7 @@
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/complex/wall)
"sa" = (
-/obj/effect/spawner/lootdrop/garden/seaweed,
+/obj/effect/spawner/random/food_or_drink/garden/seaweed,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"so" = (
diff --git a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
index 971fde63cb03..1eb17bf0202d 100644
--- a/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
@@ -16,9 +16,6 @@
light_range = 2
},
/area/ruin/unpowered)
-"bp" = (
-/turf/open/floor/plating/beach/sand,
-/area/overmap_encounter/planetoid/beachplanet/explored)
"bv" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 1
@@ -41,9 +38,7 @@
/mob/living/simple_animal/crab{
name = "\improper Crab"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"cj" = (
/obj/structure/cable{
@@ -158,9 +153,7 @@
/mob/living/simple_animal/hostile/abandoned_minebot{
name = "\improper Abandoned Tony"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"hA" = (
/obj/structure/grille,
@@ -231,9 +224,7 @@
/area/ruin/unpowered)
"kH" = (
/obj/item/book/manual/wiki/construction,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"kK" = (
/obj/structure/cable{
@@ -246,9 +237,7 @@
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
"kP" = (
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ruin/unpowered)
"kR" = (
/obj/effect/turf_decal/weather/sand{
@@ -258,9 +247,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"lk" = (
/mob/living/simple_animal/hostile/asteroid/lobstrosity/beach,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"lR" = (
/obj/machinery/power/floodlight,
@@ -397,9 +384,7 @@
/obj/structure/cable{
icon_state = "6-9"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"qK" = (
/obj/machinery/power/terminal,
@@ -410,9 +395,7 @@
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 10
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"rt" = (
/obj/effect/turf_decal/weather/sand{
@@ -433,15 +416,11 @@
/obj/structure/cable{
icon_state = "4-10"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"sv" = (
/obj/machinery/atmospherics/components/binary/valve,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"sA" = (
/obj/structure/cable{
@@ -454,9 +433,7 @@
/area/ruin/unpowered)
"sB" = (
/obj/item/book/manual/wiki/engineering,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"sN" = (
/obj/structure/reagent_dispensers/fueltank,
@@ -475,9 +452,7 @@
/obj/structure/cable{
icon_state = "0-5"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"ty" = (
/obj/effect/turf_decal/weather/sand{
@@ -501,21 +476,13 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"uw" = (
/obj/structure/girder,
/obj/effect/turf_decal/weather/sand,
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
-"vO" = (
-/turf/open/floor/plating/beach/sand{
- icon_state = "sand_dug";
- light_range = 2
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"wu" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -539,9 +506,7 @@
"xV" = (
/obj/effect/decal/cleanable/glass,
/obj/item/shard,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/dense/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"yc" = (
/obj/effect/turf_decal/atmos/plasma,
@@ -559,14 +524,6 @@
"ys" = (
/turf/template_noop,
/area/template_noop)
-"yv" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"yA" = (
/obj/effect/turf_decal/industrial/warning/corner{
dir = 8
@@ -602,9 +559,7 @@
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"Ae" = (
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Ah" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible,
@@ -616,17 +571,13 @@
/obj/structure/cable{
icon_state = "4-9"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"At" = (
/obj/structure/cable{
icon_state = "5-10"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"AT" = (
/obj/structure/cable{
@@ -685,9 +636,7 @@
/obj/structure/cable{
icon_state = "1-10"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"CW" = (
/obj/machinery/suit_storage_unit/inherit,
@@ -696,9 +645,7 @@
/area/ruin/unpowered)
"DB" = (
/obj/item/stack/cable_coil/red,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"DC" = (
/turf/open/water/beach/deep,
@@ -707,15 +654,11 @@
/obj/structure/cable{
icon_state = "0-9"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"DO" = (
/obj/structure/flora/tree/palm,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"DU" = (
/obj/structure/cable{
@@ -767,9 +710,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Gj" = (
/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/dense/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Gl" = (
/turf/closed/wall/rust,
@@ -796,9 +737,11 @@
/obj/structure/cable{
icon_state = "0-6"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/overmap_encounter/planetoid/beachplanet/explored)
+"HH" = (
+/mob/living/simple_animal/hostile/asteroid/lobstrosity/beach,
+/turf/open/floor/plating/asteroid/sand/dense/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"HK" = (
/obj/structure/closet/secure_closet/engineering_welding,
@@ -817,10 +760,7 @@
"Ir" = (
/obj/item/shovel,
/obj/item/stack/ore/glass/beach,
-/turf/open/floor/plating/beach/sand{
- icon_state = "sand_dug";
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"IZ" = (
/obj/machinery/power/shuttle/engine/electric{
@@ -905,9 +845,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"LI" = (
/obj/structure/flora/rock,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Ms" = (
/obj/effect/turf_decal/weather/sand{
@@ -920,9 +858,7 @@
/area/ruin/unpowered)
"Na" = (
/obj/item/pickaxe/improvised,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Nh" = (
/obj/structure/cable{
@@ -950,9 +886,7 @@
/area/ruin/unpowered)
"Ot" = (
/obj/item/geiger_counter,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"OI" = (
/obj/effect/turf_decal/weather/sand{
@@ -1014,9 +948,7 @@
/obj/structure/cable{
icon_state = "6-8"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ruin/unpowered)
"QQ" = (
/obj/structure/cable{
@@ -1055,11 +987,12 @@
},
/turf/open/floor/plasteel/tech,
/area/ruin/unpowered)
+"RD" = (
+/turf/open/floor/plating/asteroid/sand/dense/lit,
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Sl" = (
/obj/structure/radioactive/stack,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Sx" = (
/obj/structure/cable{
@@ -1072,9 +1005,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"SE" = (
/obj/structure/barricade/wooden,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ruin/unpowered)
"SF" = (
/obj/structure/cable{
@@ -1101,9 +1032,7 @@
/obj/structure/cable{
icon_state = "5-8"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Tf" = (
/obj/structure/cable{
@@ -1122,9 +1051,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"TB" = (
/obj/effect/spawner/structure/window/hollow/directional{
@@ -1135,9 +1062,7 @@
"TI" = (
/obj/structure/radioactive/waste,
/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Uk" = (
/turf/open/floor/plating/grass/beach/lit,
@@ -1181,9 +1106,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Wg" = (
/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Wn" = (
/obj/machinery/computer/arcade/orion_trail{
@@ -1246,9 +1169,7 @@
/obj/structure/cable{
icon_state = "0-10"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Yh" = (
/obj/effect/turf_decal/weather/sand{
@@ -1277,9 +1198,7 @@
/obj/structure/cable{
icon_state = "1-10"
},
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"ZW" = (
/obj/machinery/pipedispenser,
@@ -1597,7 +1516,7 @@ ys
Ae
Ae
Ae
-yv
+Ae
Uz
WH
WH
@@ -1791,7 +1710,7 @@ Ae
Ae
Ae
Ae
-bp
+Ae
ys
ys
ys
@@ -1825,7 +1744,7 @@ Ae
Ae
Ae
Ae
-bp
+Ae
Ae
ys
ys
@@ -1893,7 +1812,7 @@ Ae
Ae
Ae
Ae
-bp
+Ae
Ae
Ae
ys
@@ -1910,7 +1829,7 @@ ug
cj
Ae
Ae
-vO
+Ae
Ae
Ae
SF
@@ -1927,7 +1846,7 @@ Ae
Hp
Ae
Ae
-bp
+Ae
Ae
Ae
Ae
@@ -1961,7 +1880,7 @@ DO
Ae
qH
Ae
-bp
+Ae
Ae
Ae
Ae
@@ -1969,8 +1888,8 @@ Ae
(21,1,1) = {"
ys
ys
-Ae
-Ae
+RD
+RD
iZ
fT
Kp
@@ -1995,7 +1914,7 @@ Ae
Ae
Ae
qH
-bp
+Ae
Ae
sB
Ae
@@ -2004,14 +1923,14 @@ Ae
ys
ys
Ae
-vO
+RD
ij
tX
PR
dG
tB
-Ae
-Ae
+RD
+RD
qD
qD
Om
@@ -2038,14 +1957,14 @@ Ae
ys
ys
Ae
-Ae
-Ae
+RD
+RD
SZ
Wn
Qw
tB
-Ae
-Ae
+RD
+RD
qD
ni
Qw
@@ -2072,14 +1991,14 @@ Ae
ys
ys
ys
-Ae
-Ae
+RD
+RD
Gj
rt
kR
-Ae
-Ae
-Ae
+RD
+RD
+RD
qD
Rj
JW
@@ -2106,12 +2025,12 @@ Ae
ys
ys
ys
-Ae
-Ae
-Ae
-Ae
+RD
+RD
+RD
+RD
xV
-Ae
+RD
Wg
Ae
qD
@@ -2141,10 +2060,10 @@ ys
ys
ys
ys
-Ae
-lk
-Ae
-Ae
+RD
+HH
+RD
+RD
Ae
Ae
Ae
diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
index ea1a18b11c4b..d024e5ba7d51 100644
--- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -4,6 +4,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet,
/area/ruin/beach)
+"bl" = (
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/frontiersmen{
+ dir = 6;
+ faction = list("Frontiersmen","Turret")
+ },
+/turf/open/floor/concrete/reinforced,
+/area/ruin/beach)
"bs" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -67,6 +75,11 @@
},
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"eB" = (
+/obj/item/storage/box/ammo/c38,
+/obj/structure/closet/crate/wooden,
+/turf/open/floor/wood,
+/area/ruin/beach)
"eJ" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -134,12 +147,9 @@
/area/ruin/beach)
"hd" = (
/obj/machinery/light/floor,
-/obj/machinery/porta_turret/syndicate/energy{
- active_power_usage = 0;
- faction = list("Frontiersmen","beach");
- idle_power_usage = 0;
- reqpower = 0;
- name = "Point defense anti-carp turret"
+/obj/machinery/porta_turret/ship/frontiersmen{
+ dir = 10;
+ faction = list("Frontiersmen","Turret")
},
/turf/open/floor/concrete/reinforced,
/area/ruin/beach)
@@ -200,12 +210,6 @@
/obj/structure/railing/corner,
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"kj" = (
-/obj/structure/closet/cabinet,
-/obj/item/pneumatic_cannon/speargun,
-/obj/item/melee/knife/hunting,
-/turf/open/floor/wood,
-/area/ruin/beach)
"kr" = (
/obj/effect/turf_decal/weather/sand/corner{
dir = 1
@@ -260,6 +264,14 @@
},
/turf/open/water/beach/deep,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"lT" = (
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/frontiersmen{
+ dir = 5;
+ faction = list("Frontiersmen","Turret")
+ },
+/turf/open/floor/concrete/reinforced,
+/area/ruin/beach)
"lX" = (
/obj/effect/turf_decal/weather/sand{
dir = 1
@@ -280,11 +292,6 @@
},
/turf/open/floor/plating/asteroid/sand,
/area/overmap_encounter/planetoid/cave/explored)
-"mq" = (
-/obj/item/ammo_box/c38_box,
-/obj/structure/closet/crate/wooden,
-/turf/open/floor/wood,
-/area/ruin/beach)
"my" = (
/obj/effect/turf_decal/weather/sand{
dir = 5
@@ -389,6 +396,14 @@
},
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"pd" = (
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/frontiersmen{
+ dir = 9;
+ faction = list("Frontiersmen","Turret")
+ },
+/turf/open/floor/concrete/reinforced,
+/area/ruin/beach)
"pe" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/siding/wood{
@@ -484,6 +499,7 @@
/obj/machinery/light/small/directional/north{
light_color = "#694c12"
},
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered,
/turf/open/floor/carpet,
/area/ruin/beach)
"tj" = (
@@ -663,9 +679,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Bg" = (
/obj/effect/turf_decal/corner/opaque/pink/diagonal,
-/mob/living/simple_animal/hostile/human/frontier{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier,
/turf/open/floor/plastic,
/area/ruin/beach)
"Bo" = (
@@ -745,12 +759,27 @@
},
/turf/open/floor/wood/ebony,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"CJ" = (
+/obj/structure/closet/cabinet,
+/obj/item/pneumatic_cannon/speargun,
+/obj/item/melee/knife/hunting,
+/obj/machinery/light/small/directional/east{
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/wood,
+/area/ruin/beach)
"CV" = (
/obj/machinery/grill,
/obj/effect/turf_decal/corner/opaque/pink/diagonal,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plastic,
/area/ruin/beach)
+"DG" = (
+/obj/structure/closet/cabinet,
+/obj/item/pneumatic_cannon/speargun,
+/obj/item/melee/knife/hunting,
+/turf/open/floor/wood,
+/area/ruin/beach)
"DL" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -831,9 +860,7 @@
"GP" = (
/obj/structure/chair/sofa/brown/right/directional/south,
/obj/effect/decal/cleanable/cobweb,
-/mob/living/simple_animal/hostile/human/frontier{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier,
/turf/open/floor/carpet,
/area/ruin/beach)
"Hb" = (
@@ -1023,9 +1050,7 @@
/obj/structure/chair/plastic{
dir = 8
},
-/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered,
/turf/open/floor/wood/ebony,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Os" = (
@@ -1047,15 +1072,6 @@
/obj/effect/turf_decal/siding/white/corner,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"PB" = (
-/obj/structure/closet/cabinet,
-/obj/item/pneumatic_cannon/speargun,
-/obj/item/melee/knife/hunting,
-/obj/machinery/light/small/directional/east{
- light_color = "#d8b1b1"
- },
-/turf/open/floor/wood,
-/area/ruin/beach)
"PC" = (
/obj/effect/turf_decal/weather/sand{
dir = 10
@@ -1108,9 +1124,7 @@
/area/ruin/beach)
"Rh" = (
/obj/structure/chair/sofa/brown/corner/directional/south,
-/mob/living/simple_animal/hostile/human/frontier{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier,
/turf/open/floor/carpet,
/area/ruin/beach)
"RE" = (
@@ -1223,9 +1237,7 @@
pixel_x = 4;
layer = 2.9
},
-/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered,
/turf/open/floor/wood/ebony,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Vm" = (
@@ -1305,9 +1317,7 @@
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"ZJ" = (
-/mob/living/simple_animal/hostile/human/frontier{
- faction = list("Frontiersmen","beach")
- },
+/mob/living/simple_animal/hostile/human/frontier,
/turf/open/floor/wood,
/area/ruin/beach)
"ZV" = (
@@ -1673,7 +1683,7 @@ Fr
Fr
Fr
sG
-hd
+pd
Fq
Fr
QQ
@@ -2186,9 +2196,9 @@ sz
ut
Ty
oS
-mq
-kj
-PB
+eB
+DG
+CJ
ut
BW
BN
@@ -2260,7 +2270,7 @@ Fr
Fr
Fr
sG
-hd
+lT
Fq
QQ
ut
@@ -2356,7 +2366,7 @@ YL
ID
Fr
sG
-hd
+bl
Fq
Fr
Fr
diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
index b2c39404d641..fa9aa8f683db 100644
--- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm
@@ -48,18 +48,6 @@
/obj/structure/destructible/tribal_torch/lit,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"bO" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/obj/effect/turf_decal/weather/sand,
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"ca" = (
/obj/structure/chair/plastic{
dir = 1
@@ -332,20 +320,6 @@
light_range = 2
},
/area/ruin/beach/float_resort)
-"jh" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"jQ" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -476,6 +450,17 @@
},
/turf/open/floor/plating,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"ni" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/weather/sand{
+ dir = 1
+ },
+/obj/item/candle,
+/obj/effect/spawner/random/food_or_drink/donut,
+/turf/open/floor/wood{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"nw" = (
/obj/structure/railing/wood{
dir = 4
@@ -508,6 +493,18 @@
/obj/structure/flora/junglebush/large,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"oB" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/turf_decal/weather/sand,
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"oJ" = (
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
@@ -533,24 +530,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"pq" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/obj/structure/fluff/beach_umbrella{
- pixel_x = -18;
- pixel_y = 13
- },
-/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"pr" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
@@ -727,6 +706,18 @@
light_range = 2
},
/area/ruin/beach/float_resort)
+"tl" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/turf_decal/weather/sand,
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"tA" = (
/obj/structure/railing/corner/wood{
dir = 8
@@ -750,6 +741,20 @@
light_range = 2
},
/area/ruin/beach/float_resort/villa)
+"ug" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/blue{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"uk" = (
/obj/effect/turf_decal/weather/sand{
dir = 6
@@ -758,6 +763,20 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"uJ" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"uV" = (
/obj/structure/chair/plastic,
/turf/open/floor/wood{
@@ -819,17 +838,6 @@
light_range = 2
},
/area/ruin/beach/float_resort/villa)
-"wp" = (
-/obj/structure/table/wood,
-/obj/effect/turf_decal/weather/sand{
- dir = 1
- },
-/obj/item/candle,
-/obj/effect/spawner/lootdrop/donut,
-/turf/open/floor/wood{
- light_range = 2
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"wx" = (
/obj/structure/flora/ausbushes/grassybush,
/turf/open/floor/plating/grass/beach/lit,
@@ -989,6 +997,20 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"Bu" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Bw" = (
/obj/structure/table/wood,
/obj/structure/curtain/cloth,
@@ -1385,20 +1407,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"Ka" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"Kv" = (
/obj/effect/turf_decal/weather/sand{
dir = 9
@@ -1537,32 +1545,6 @@
/obj/structure/flora/ausbushes/grassybush,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"NS" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 10
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
-"NU" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/turf_decal/weather/sand,
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"NV" = (
/turf/closed/wall/mineral/wood/nonmetal,
/area/ruin/beach/float_resort/villa)
@@ -1594,6 +1576,24 @@
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/plating/grass/beach/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"OU" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/obj/structure/fluff/beach_umbrella{
+ pixel_x = -18;
+ pixel_y = 13
+ },
+/turf/open/floor/carpet/blue{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Pc" = (
/obj/effect/turf_decal/weather/sand{
dir = 9
@@ -2585,7 +2585,7 @@ Rt
Rt
Rt
Rt
-NS
+Bu
Rt
YP
YP
@@ -2639,7 +2639,7 @@ Cn
Rt
Cn
am
-bO
+oB
Rt
YP
YP
@@ -2740,7 +2740,7 @@ Rt
Rt
Rt
Zp
-NU
+tl
JQ
FB
UA
@@ -2794,7 +2794,7 @@ Rt
Zp
VY
QS
-jh
+uJ
Rt
qi
Gv
@@ -2954,7 +2954,7 @@ qS
Fs
QV
Rt
-wp
+ni
NC
Tc
Rt
@@ -3380,8 +3380,8 @@ kp
kp
Dr
Rt
-Ka
-pq
+ug
+OU
Rt
Rt
Rt
diff --git a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
index d1a3ff05cf04..7a4da7abdac2 100644
--- a/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_ocean_town.dmm
@@ -112,10 +112,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"bs" = (
-/obj/machinery/vending/cola/random,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"bu" = (
/obj/structure/table,
/obj/machinery/light/small/directional/east,
@@ -127,6 +123,20 @@
/obj/structure/flora/ausbushes/ppflowers,
/turf/open/floor/plating/grass/beach/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"bX" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/blue{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"ca" = (
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/ywflowers,
@@ -267,17 +277,6 @@
/obj/structure/chair/sofa/brown/directional/east,
/turf/open/floor/carpet/green,
/area/ruin/beach/oceantown/hotel)
-"dL" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 10
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"dT" = (
/turf/open/floor/wood,
/area/ruin/beach/oceantown)
@@ -365,6 +364,17 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"eF" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"eG" = (
/obj/structure/railing/corner{
dir = 8
@@ -410,13 +420,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plasteel,
/area/ruin/beach/oceantown)
-"fn" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"fp" = (
/obj/structure/railing/wood,
/turf/open/water/beach,
@@ -607,20 +610,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/wood,
/area/ruin/beach/oceantown)
-"hF" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 8
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"hG" = (
/obj/machinery/light/small/directional/south,
/turf/open/floor/wood,
@@ -709,10 +698,9 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"ix" = (
+"iy" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"iz" = (
@@ -774,6 +762,12 @@
/obj/structure/railing/corner/wood,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"jX" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"jY" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/tower,
@@ -942,20 +936,6 @@
/obj/structure/fluff/beach_umbrella/cap,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"lZ" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"mc" = (
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/flora/ausbushes/leafybush,
@@ -980,20 +960,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"mr" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 10
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"mt" = (
/obj/effect/turf_decal/industrial/stand_clear{
dir = 4
@@ -1124,17 +1090,6 @@
/obj/structure/flora/ausbushes/sparsegrass,
/turf/open/floor/plating/grass/jungle,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"oz" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"oF" = (
/obj/effect/turf_decal/weather/sand,
/obj/effect/turf_decal/weather/sand,
@@ -1231,6 +1186,12 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"pP" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"qb" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
@@ -1335,20 +1296,6 @@
/obj/machinery/vending/boozeomat,
/turf/open/floor/plasteel,
/area/ruin/beach/oceantown/bar)
-"rL" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"rN" = (
/obj/structure/closet/secure_closet/freezer/meat,
/obj/effect/turf_decal/siding/thinplating/light,
@@ -1558,15 +1505,6 @@
light_range = 2
},
/area/ruin/beach/oceantown/bar)
-"un" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"ur" = (
/obj/structure/railing/wood{
dir = 8
@@ -1601,6 +1539,13 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"uP" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"uV" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel,
@@ -1638,6 +1583,20 @@
/obj/machinery/pdapainter,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
+"vD" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"vE" = (
/obj/structure/flora/ausbushes/brflowers,
/turf/open/floor/plating/grass/beach/lit,
@@ -1657,6 +1616,13 @@
/obj/structure/table/wood,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"wb" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"we" = (
/obj/effect/turf_decal/siding/thinplating/dark/corner,
/turf/open/floor/plasteel/dark,
@@ -1672,20 +1638,6 @@
},
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"wt" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"wu" = (
/obj/effect/turf_decal/corner/opaque/white/diagonal{
dir = 8
@@ -1698,9 +1650,16 @@
},
/turf/open/floor/plasteel,
/area/ruin/beach/oceantown/shop)
-"ww" = (
-/obj/structure/statue/sandstone/assistant,
-/turf/open/floor/plating/asteroid/sand/lit,
+"wv" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
/area/overmap_encounter/planetoid/beachplanet/explored)
"wF" = (
/obj/structure/flora/ausbushes/fullgrass,
@@ -1906,20 +1865,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"yJ" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"yQ" = (
/obj/structure/railing/corner/wood,
/turf/open/floor/plating/asteroid/sand/lit,
@@ -2010,6 +1955,10 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"zS" = (
+/obj/effect/spawner/random/vending/snack,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"zU" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/banana,
@@ -2259,20 +2208,6 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
-"CW" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 4
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"De" = (
/obj/structure/railing/wood,
/obj/effect/turf_decal/weather/sand{
@@ -2397,20 +2332,6 @@
/obj/effect/turf_decal/weather/sand,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"Er" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 10
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/purple{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"Eu" = (
/obj/structure/chair/plastic{
dir = 8
@@ -2488,6 +2409,48 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"Fa" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
+"Fo" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/blue{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
+"Fr" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/purple{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"FA" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -2560,6 +2523,24 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"FY" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/obj/item/clothing/under/shorts/blue{
+ name = "blue swimming shorts";
+ desc = "100% pure cotton!"
+ },
+/turf/open/floor/carpet/blue{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Ga" = (
/obj/effect/turf_decal/siding/wood/corner,
/obj/effect/turf_decal/siding/wood/corner{
@@ -2679,6 +2660,20 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"GX" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"GZ" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/closet/crate/freezer,
@@ -2898,6 +2893,20 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plasteel,
/area/ruin/beach/oceantown/hotel)
+"Je" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/purple{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Jh" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -2997,6 +3006,15 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"Kf" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
"Kk" = (
/obj/structure/railing/wood{
dir = 6
@@ -3044,17 +3062,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/grimy,
/area/ruin/beach/oceantown/hotel)
-"KC" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"KD" = (
/obj/structure/closet/secure_closet/freezer/kitchen,
/obj/effect/turf_decal/box,
@@ -3137,6 +3144,20 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"Lt" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Lx" = (
/obj/structure/rack,
/obj/item/reagent_containers/food/snacks/candiedapple,
@@ -3160,18 +3181,18 @@
},
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"LN" = (
+"LF" = (
/obj/effect/turf_decal/weather/sand{
dir = 6
},
/obj/effect/turf_decal/weather/sand{
- dir = 8
+ dir = 10
},
/obj/effect/decal/cleanable/dirt/dust{
layer = 2.01
},
-/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"LR" = (
@@ -3369,10 +3390,21 @@
/obj/structure/flora/tree/palm,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"NX" = (
+"Ob" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
+"Oc" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"Oe" = (
@@ -3433,29 +3465,16 @@
/obj/structure/flora/junglebush,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"OP" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 6
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/obj/item/clothing/under/shorts/blue{
- name = "blue swimming shorts";
- desc = "100% pure cotton!"
- },
-/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"OR" = (
/obj/structure/flora/ausbushes/grassybush,
/obj/structure/flora/ausbushes/ppflowers,
/turf/open/floor/plating/grass/beach/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"OS" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/carpet,
+/area/ruin/beach/oceantown)
"OT" = (
/obj/effect/turf_decal/corner/opaque/white/diagonal{
dir = 8
@@ -3508,20 +3527,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel/dark,
/area/ruin/beach/oceantown/shop)
-"Ps" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 9
- },
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/purple{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"Pv" = (
/obj/structure/closet/crate/bin,
/turf/open/floor/wood,
@@ -3543,17 +3548,27 @@
/obj/structure/chair/sofa/brown/right/directional/south,
/turf/open/floor/wood,
/area/ruin/beach/oceantown)
-"PF" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"PH" = (
/obj/effect/turf_decal/weather/sand{
dir = 1
},
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
+"PL" = (
+/obj/effect/spawner/random/vending/cola,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/beach/oceantown/shop)
+"PM" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"PN" = (
/obj/structure/flora/ausbushes/reedbush,
/turf/open/water/beach,
@@ -3572,10 +3587,6 @@
},
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"Qf" = (
-/obj/machinery/vending/snack/random,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"Qm" = (
/obj/structure/railing/wood,
/turf/open/floor/plating/asteroid/sand/lit,
@@ -3674,6 +3685,17 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"RV" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/cyan{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"Sc" = (
/turf/open/floor/plasteel/grimy,
/area/ruin/beach/oceantown/hotel)
@@ -3735,14 +3757,6 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
-"SS" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"SY" = (
/obj/structure/chair/comfy/orange/directional/north,
/turf/open/floor/carpet/black,
@@ -3851,17 +3865,6 @@
/obj/structure/chair/wood,
/turf/open/floor/carpet/green,
/area/ruin/beach/oceantown)
-"UF" = (
-/obj/effect/turf_decal/weather/sand{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt/dust{
- layer = 2.01
- },
-/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
- },
-/area/overmap_encounter/planetoid/beachplanet/explored)
"UH" = (
/obj/structure/chair/office{
dir = 1
@@ -3908,11 +3911,6 @@
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/white,
/area/ruin/beach/oceantown/bar)
-"Vr" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/turf/open/floor/carpet,
-/area/ruin/beach/oceantown)
"VI" = (
/obj/structure/railing/wood{
dir = 8
@@ -3947,13 +3945,6 @@
/obj/item/stack/sheet/mineral/coal/ten,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
-"VQ" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"VS" = (
/obj/structure/table,
/obj/machinery/processor,
@@ -4102,6 +4093,20 @@
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
+"XE" = (
+/obj/effect/turf_decal/weather/sand{
+ dir = 5
+ },
+/obj/effect/turf_decal/weather/sand{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust{
+ layer = 2.01
+ },
+/turf/open/floor/carpet/orange{
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
+ },
+/area/overmap_encounter/planetoid/beachplanet/explored)
"XI" = (
/obj/structure/table/wood/fancy/black,
/obj/item/reagent_containers/food/drinks/drinkingglass{
@@ -4114,15 +4119,6 @@
/obj/structure/flora/ausbushes/fullgrass,
/turf/open/floor/plating/grass,
/area/overmap_encounter/planetoid/beachplanet/explored)
-"XQ" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/beach/oceantown/shop)
"XS" = (
/obj/effect/turf_decal/corner/opaque/white/diagonal{
dir = 8
@@ -4449,8 +4445,8 @@ YU
"}
(3,1,1) = {"
qp
-Ps
-Er
+Fr
+Je
sa
sa
lL
@@ -4690,8 +4686,8 @@ pn
pn
pn
qp
-hF
-yJ
+vD
+Fa
sa
sa
sa
@@ -4865,9 +4861,9 @@ Hu
Ap
Ip
OT
-Qf
+zS
Tj
-bs
+PL
AY
Un
gb
@@ -5376,8 +5372,8 @@ qp
sa
sa
sa
-CW
-rL
+Lt
+GX
sa
sa
sa
@@ -5682,8 +5678,8 @@ YU
(19,1,1) = {"
qp
sa
-lZ
-OP
+Fo
+FY
sa
sa
sa
@@ -6147,8 +6143,8 @@ Ca
Go
OK
sa
-wt
-mr
+XE
+LF
sa
sa
sa
@@ -6724,7 +6720,7 @@ jv
xh
dT
rh
-Vr
+OS
xh
Cf
xh
@@ -7687,7 +7683,7 @@ sa
sa
Ud
sa
-ww
+sa
sa
Ud
sa
@@ -8223,8 +8219,8 @@ YU
(52,1,1) = {"
Ca
OK
-KC
-dL
+wv
+PM
sa
sa
Xk
@@ -8300,8 +8296,8 @@ YU
(53,1,1) = {"
pn
qp
-UF
-oz
+eF
+RV
sa
sa
Sp
@@ -9224,8 +9220,8 @@ YU
(65,1,1) = {"
qp
sa
-lZ
-LN
+Fo
+bX
sa
sa
yb
@@ -9319,8 +9315,8 @@ MP
vf
UX
UX
-un
-VQ
+Oc
+wb
tI
tI
em
@@ -9473,8 +9469,8 @@ MP
Ho
xe
tI
-XQ
-SS
+Kf
+Ob
tI
tI
GJ
@@ -9597,7 +9593,7 @@ xh
Al
ND
xh
-Vr
+OS
gX
bf
xh
@@ -9627,12 +9623,12 @@ MP
mR
UX
UX
-PF
-fn
+iy
+uP
tI
-ix
-NX
-NX
+pP
+jX
+jX
UX
Mi
Mi
diff --git a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
index 67ac69292603..d81eb0c511e2 100644
--- a/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_pirate_crash.dmm
@@ -1111,7 +1111,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/box,
/obj/item/stack/cable_coil/red,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/beach/piratecrash/shuttle)
@@ -1350,7 +1350,7 @@
"Pf" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/sheet/mineral/gold/five,
/obj/item/stack/sheet/mineral/silver/five,
/obj/item/stack/sheet/mineral/silver/five,
@@ -1365,16 +1365,12 @@
icon_state = "0-8"
},
/obj/machinery/light/small/directional/east,
-/obj/machinery/porta_turret/syndicate/pod{
- desc = "A turret built with substandard parts and run down further with age. Still capable of delivering lethal lasers to the odd space carp, but not much else.";
- dir = 8;
- faction = list("Frontiersmen");
- lethal_projectile = /obj/projectile/beam/weak/penetrator;
- lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg';
- name = "laser turret"
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/porta_turret/ship/frontiersmen/light{
+ dir = 10;
+ faction = list("Frontiersmen","Turret")
+ },
/turf/open/floor/plating,
/area/ruin/beach/piratecrash)
"PH" = (
@@ -1433,9 +1429,9 @@
"QG" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/random_machine_circuit_rare,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/obj/effect/spawner/random/circuit/machine/rare,
+/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/random/circuit/machine/common,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
diff --git a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index 997f6bb56703..9fb79427bde4 100644
--- a/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -18,12 +18,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/ruin/beach/treasure_cove)
-"ay" = (
-/obj/structure/flora/tree/palm,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/ruin/unpowered)
"aY" = (
/obj/structure/flora/ausbushes/reedbush,
/turf/open/water/beach,
@@ -32,12 +26,6 @@
/obj/structure/flora/rock/beach,
/turf/open/water/beach,
/area/ruin/unpowered)
-"bI" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/glowstick,
-/turf/open/floor/concrete/slab_1,
-/area/ruin/beach/treasure_cove)
"bN" = (
/obj/effect/turf_decal/weather/sand,
/turf/open/water/beach,
@@ -47,15 +35,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/dirt/jungle/dark/lit,
/area/ruin/beach/treasure_cove)
-"bQ" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick,
-/turf/open/floor/plating/dirt/jungle,
-/area/ruin/unpowered)
"cJ" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/ore_box,
@@ -192,12 +171,6 @@
footstep = "wood"
},
/area/ruin/beach/treasure_cove)
-"ht" = (
-/obj/effect/overlay/palmtree_r,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/ruin/unpowered)
"hJ" = (
/obj/effect/turf_decal/industrial/traffic,
/obj/effect/turf_decal/industrial/traffic{
@@ -206,11 +179,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
-"hS" = (
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/ruin/unpowered)
"ie" = (
/obj/structure/closet/crate/grave/loot{
desc = "Here lies our great brother and infamous pirate"
@@ -280,6 +248,9 @@
icon_state = "wood-broken5"
},
/area/ruin/beach/treasure_cove)
+"jQ" = (
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/ruin/unpowered)
"jT" = (
/obj/structure/barricade/wooden,
/obj/structure/barricade/wooden/crude,
@@ -298,12 +269,6 @@
},
/turf/open/water/beach,
/area/ruin/unpowered)
-"kl" = (
-/obj/effect/overlay/palmtree_l,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/ruin/unpowered)
"km" = (
/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/wood{
@@ -355,6 +320,10 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
+"mV" = (
+/obj/effect/overlay/palmtree_r,
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/ruin/unpowered)
"nf" = (
/obj/structure/closet/body_bag,
/obj/effect/decal/cleanable/blood/gibs/old{
@@ -536,15 +505,11 @@
icon_state = "wood-broken4"
},
/area/ruin/beach/treasure_cove)
-"rp" = (
-/obj/item/restraints/handcuffs/cable/zipties/used,
-/obj/item/ammo_casing/spent{
- icon_state = "rifle-brass";
- pixel_x = -10;
- pixel_y = 4
- },
-/obj/effect/spawner/lootdrop/glowstick,
-/turf/open/floor/wood,
+"rf" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/light/small/directional/north,
+/obj/effect/spawner/random/decoration/glowstick,
+/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
"rA" = (
/mob/living/simple_animal/beachcarp/trout{
@@ -666,13 +631,8 @@
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
-/obj/item/ammo_box/c38_box{
- pixel_x = 10;
- pixel_y = 8
- },
-/obj/item/ammo_box/c38_box{
- pixel_x = 10
- },
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/sign/poster/contraband/energy_swords{
pixel_x = -32
},
@@ -785,6 +745,10 @@
},
/turf/open/floor/plating/grass/beach/lit,
/area/ruin/unpowered)
+"xC" = (
+/obj/effect/overlay/palmtree_l,
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/ruin/unpowered)
"xU" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -918,6 +882,10 @@
/obj/structure/spacevine/dense,
/turf/open/water/beach,
/area/ruin/unpowered)
+"Cq" = (
+/mob/living/simple_animal/crab,
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/ruin/unpowered)
"Cz" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
@@ -978,6 +946,15 @@
/mob/living/simple_animal/hostile/human/frontier,
/turf/open/floor/plating/dirt/jungle/lit,
/area/ruin/beach/treasure_cove)
+"FL" = (
+/obj/structure/railing/wood{
+ layer = 3.1;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/decoration/glowstick,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
"Gm" = (
/obj/effect/turf_decal/siding/wood,
/obj/structure/bed{
@@ -986,6 +963,16 @@
/obj/effect/decal/cleanable/glass,
/turf/open/floor/wood/walnut,
/area/ruin/beach/treasure_cove)
+"GA" = (
+/obj/item/restraints/handcuffs/cable/zipties/used,
+/obj/item/ammo_casing/spent{
+ icon_state = "rifle-brass";
+ pixel_x = -10;
+ pixel_y = 4
+ },
+/obj/effect/spawner/random/decoration/glowstick,
+/turf/open/floor/wood,
+/area/ruin/beach/treasure_cove)
"GC" = (
/obj/structure/spacevine,
/turf/open/water/beach,
@@ -1106,7 +1093,7 @@
pixel_x = -6;
pixel_y = 10
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red{
+/obj/item/melee/energy/sword/saber/pirate/red{
pixel_y = 8;
pixel_x = 10
},
@@ -1427,6 +1414,10 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/concrete/slab_2,
/area/ruin/beach/treasure_cove)
+"Wb" = (
+/obj/structure/flora/tree/palm,
+/turf/open/floor/plating/asteroid/sand/lit,
+/area/ruin/unpowered)
"Wh" = (
/obj/item/stack/ore/salvage/scrapmetal{
pixel_y = -15;
@@ -1441,12 +1432,6 @@
/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating/rust,
/area/ruin/beach/treasure_cove)
-"WX" = (
-/mob/living/simple_animal/crab,
-/turf/open/floor/plating/beach/sand{
- light_range = 2
- },
-/area/ruin/unpowered)
"Xp" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -1598,25 +1583,25 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
-hS
-hS
-kl
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+xC
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -1644,25 +1629,25 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
"}
@@ -1701,13 +1686,13 @@ UY
UY
UY
jZ
-hS
-hS
-hS
-hS
-kl
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+xC
+jQ
+jQ
Iv
Iv
"}
@@ -1749,11 +1734,11 @@ TN
UY
UY
jZ
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
"}
(6,1,1) = {"
@@ -1795,11 +1780,11 @@ TN
TN
TN
jZ
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
"}
(7,1,1) = {"
Iv
@@ -1830,10 +1815,10 @@ lt
lt
lt
lt
-hS
-hS
-WX
-hS
+jQ
+jQ
+Cq
+jQ
db
EE
TN
@@ -1841,10 +1826,10 @@ TN
TN
TN
jZ
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
"}
(8,1,1) = {"
Iv
@@ -1876,20 +1861,20 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
db
TN
TN
TN
bN
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
"}
(9,1,1) = {"
Iv
@@ -1921,20 +1906,20 @@ lt
lt
lt
lt
-hS
-hS
-hS
-kl
-hS
-hS
+jQ
+jQ
+jQ
+xC
+jQ
+jQ
TJ
bB
TN
bN
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
"}
(10,1,1) = {"
Iv
@@ -1966,20 +1951,20 @@ lt
lt
lt
lt
-hS
-hS
-hS
-WX
-hS
-hS
+jQ
+jQ
+jQ
+Cq
+jQ
+jQ
TJ
TN
TN
TN
jZ
-hS
-hS
-hS
+jQ
+jQ
+jQ
"}
(11,1,1) = {"
Iv
@@ -1997,7 +1982,7 @@ Wa
vb
qN
pz
-bI
+rf
Ry
Ty
Ry
@@ -2011,10 +1996,10 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
VF
UY
TN
@@ -2022,9 +2007,9 @@ TN
TN
TN
bN
-hS
-hS
-hS
+jQ
+jQ
+jQ
"}
(12,1,1) = {"
Iv
@@ -2057,8 +2042,8 @@ lt
lt
lt
lt
-hS
-hS
+jQ
+jQ
VF
TN
TN
@@ -2067,9 +2052,9 @@ TN
TN
tH
bN
-hS
-hS
-hS
+jQ
+jQ
+jQ
"}
(13,1,1) = {"
Iv
@@ -2112,9 +2097,9 @@ TN
TN
TN
bN
-hS
-hS
-hS
+jQ
+jQ
+jQ
"}
(14,1,1) = {"
Iv
@@ -2158,8 +2143,8 @@ TN
TN
TN
jZ
-hS
-hS
+jQ
+jQ
"}
(15,1,1) = {"
Iv
@@ -2203,8 +2188,8 @@ EE
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(16,1,1) = {"
Iv
@@ -2244,12 +2229,12 @@ TN
TN
TN
CB
-hS
+jQ
TJ
TN
bN
-hS
-hS
+jQ
+jQ
"}
(17,1,1) = {"
Iv
@@ -2288,13 +2273,13 @@ SD
xg
TN
bN
-hS
+jQ
lt
lt
TN
bN
-hS
-hS
+jQ
+jQ
"}
(18,1,1) = {"
lt
@@ -2338,8 +2323,8 @@ lt
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(19,1,1) = {"
lt
@@ -2383,8 +2368,8 @@ TN
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(20,1,1) = {"
lt
@@ -2409,7 +2394,7 @@ wS
Te
le
ZO
-rp
+GA
Uf
tD
Rn
@@ -2428,8 +2413,8 @@ TN
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(21,1,1) = {"
lt
@@ -2473,8 +2458,8 @@ TN
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(22,1,1) = {"
lt
@@ -2518,15 +2503,15 @@ TN
TN
tH
bN
-hS
-hS
+jQ
+jQ
"}
(23,1,1) = {"
Iv
lt
lt
-hS
-hS
+jQ
+jQ
lt
lt
lt
@@ -2563,15 +2548,15 @@ lt
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(24,1,1) = {"
Iv
lt
lt
-hS
-hS
+jQ
+jQ
lt
lt
lt
@@ -2608,15 +2593,15 @@ TN
TN
TN
bN
-hS
-hS
+jQ
+jQ
"}
(25,1,1) = {"
Iv
lt
-hS
-hS
-hS
+jQ
+jQ
+jQ
lt
lt
lt
@@ -2634,7 +2619,7 @@ oR
Jd
cU
nR
-bQ
+FL
lt
lt
lt
@@ -2653,16 +2638,16 @@ TN
TN
TN
CB
-hS
-hS
+jQ
+jQ
"}
(26,1,1) = {"
Iv
Iv
-hS
-hS
-hS
-WX
+jQ
+jQ
+jQ
+Cq
lt
lt
lt
@@ -2697,15 +2682,15 @@ TN
TN
TN
bN
-hS
-hS
-hS
+jQ
+jQ
+jQ
"}
(27,1,1) = {"
Iv
Iv
-hS
-hS
+jQ
+jQ
VF
UY
UY
@@ -2742,15 +2727,15 @@ TN
TN
TN
bN
-WX
-hS
-hS
+Cq
+jQ
+jQ
"}
(28,1,1) = {"
Iv
Iv
-hS
-ht
+jQ
+mV
TJ
TN
TN
@@ -2787,21 +2772,21 @@ TN
TN
TN
CB
-hS
-hS
+jQ
+jQ
Iv
"}
(29,1,1) = {"
Iv
Iv
-hS
-hS
+jQ
+jQ
TJ
TN
TN
TN
jZ
-hS
+jQ
lt
lt
lt
@@ -2831,23 +2816,23 @@ TN
TN
TN
CB
-hS
-hS
-hS
+jQ
+jQ
+jQ
Iv
"}
(30,1,1) = {"
Iv
Iv
-hS
-hS
+jQ
+jQ
db
TN
TN
TN
bN
-WX
-hS
+Cq
+jQ
lt
lt
lt
@@ -2875,18 +2860,18 @@ TN
TN
TN
CB
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
Iv
"}
(31,1,1) = {"
Iv
Iv
-hS
-hS
-hS
+jQ
+jQ
+jQ
db
EE
TN
@@ -2919,9 +2904,9 @@ TN
TN
EE
CB
-hS
-hS
-hS
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -2930,10 +2915,10 @@ Iv
Iv
Iv
lt
-hS
-hS
-hS
-WX
+jQ
+jQ
+jQ
+Cq
TJ
TN
TN
@@ -2962,10 +2947,10 @@ EE
EE
EE
CB
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -2976,9 +2961,9 @@ Iv
lt
lt
lt
-hS
-hS
-hS
+jQ
+jQ
+jQ
db
TN
TN
@@ -3002,14 +2987,14 @@ EE
EE
EE
CB
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -3022,9 +3007,9 @@ Iv
Iv
Iv
Iv
-hS
-hS
-hS
+jQ
+jQ
+jQ
db
EE
TN
@@ -3041,19 +3026,19 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
-hS
-hS
-ay
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+Wb
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -3068,15 +3053,15 @@ Iv
Iv
lt
lt
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
db
EE
EE
CB
-hS
+jQ
lt
lt
lt
@@ -3084,17 +3069,17 @@ lt
lt
lt
lt
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -3114,16 +3099,16 @@ lt
lt
lt
lt
-hS
-hS
-hS
-kl
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+xC
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
@@ -3160,13 +3145,13 @@ Iv
Iv
Iv
Iv
-hS
-hS
-hS
-hS
-hS
-hS
-hS
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
+jQ
Iv
Iv
Iv
diff --git a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
index 707be4573d13..294dd1056431 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
@@ -473,9 +473,7 @@
/obj/structure/bed/double{
dir = 1
},
-/obj/item/bedsheet/dorms/double{
- dir = 1
- },
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_holemaker)
"iN" = (
@@ -674,7 +672,7 @@
/area/ruin/unpowered/crashed_holemaker)
"lt" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"lu" = (
@@ -743,7 +741,7 @@
},
/obj/item/radio/intercom/directional/north,
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_holemaker)
@@ -1441,7 +1439,7 @@
/turf/open/floor/carpet,
/area/ruin/unpowered/crashed_holemaker)
"ze" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"zh" = (
@@ -2389,7 +2387,7 @@
/turf/open/floor/plasteel/icemoon,
/area/ruin/unpowered/crashed_holemaker)
"RL" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{
dir = 4
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm b/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm
new file mode 100644
index 000000000000..f48679d3a868
--- /dev/null
+++ b/_maps/RandomRuins/IceRuins/icemoon_ice_lodge.dmm
@@ -0,0 +1,5838 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/chair/wood,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"ag" = (
+/obj/effect/turf_decal/stoneborder{
+ dir = 1
+ },
+/obj/effect/turf_decal/stoneborder,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/item/soap/homemade,
+/obj/item/bikehorn/rubberducky,
+/obj/structure/curtain/bounty,
+/obj/machinery/shower{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"al" = (
+/obj/structure/flora/grass/brown,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"am" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals/neutered,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"ao" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/clothing/suit/space/hardsuit/security/independent/frontier,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"aF" = (
+/turf/open/floor/plasteel/stairs/wood/icemoon{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"aJ" = (
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"aL" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 6
+ },
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"aV" = (
+/obj/item/rack_parts,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"aZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/punji_sticks,
+/obj/effect/mob_spawn/human/corpse/frontier,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"bb" = (
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"bk" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"bv" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 9
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"bB" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 6
+ },
+/obj/structure/destructible/tribal_torch/lit{
+ pixel_y = 0;
+ pixel_x = 10
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"bC" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"bG" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/backdoor_xeno_babes_6{
+ pixel_y = 0;
+ pixel_x = 30
+ },
+/obj/item/reagent_containers/food/drinks/bottle/absinthe{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/amaretto{
+ pixel_y = 10;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/food/drinks/bottle/kahlua{
+ pixel_x = 10;
+ pixel_y = 1
+ },
+/obj/item/storage/pill_bottle/happy,
+/obj/item/reagent_containers/pill/aranesp{
+ pixel_y = -5;
+ pixel_x = -2
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"bK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"bL" = (
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/structure/table/optable,
+/obj/item/restraints/handcuffs/cable/zipties/used,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"ca" = (
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"cd" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"cl" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"cy" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"cA" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/popcorn,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"cS" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 6
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"cW" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"da" = (
+/obj/structure/railing{
+ layer = 3.1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"dc" = (
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"dd" = (
+/obj/effect/mob_spawn/human/corpse/srm/hunter,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"dl" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "skull";
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/obj/item/paper/crumpled/bloody/fluff/ruin/icemoon/cellar_warning{
+ pixel_x = -12
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"dn" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"ds" = (
+/obj/item/roastingstick,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"dA" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 6
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"dO" = (
+/turf/closed/wall/mineral/wood,
+/area/overmap_encounter/planetoid/cave/explored)
+"dT" = (
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/structure/table/wood,
+/obj/item/melee/baton/cattleprod/loaded,
+/obj/item/storage/case/surgery,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"dV" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"dZ" = (
+/obj/structure/closet/cabinet{
+ name = "broken shadow's locker";
+ desc = "The closet of equipment and attire for the aspiring shadow. Or whichever guy broke this closet's lock."
+ },
+/obj/item/clothing/suit/armor/roumain/shadow,
+/obj/item/clothing/head/cowboy/sec/roumain/shadow,
+/obj/item/clothing/under/suit/roumain,
+/obj/item/flashlight/lantern,
+/obj/effect/decal/cleanable/shreds{
+ pixel_y = -14
+ },
+/obj/item/melee/knife/hunting,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"eg" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"ev" = (
+/obj/item/trash/boritos,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ey" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame/neuter,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"eC" = (
+/obj/item/clothing/head/bearpelt{
+ pixel_y = 10
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"eK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"eU" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"eW" = (
+/obj/effect/turf_decal/siding/blue,
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"fa" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"fe" = (
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/bed{
+ icon_state = "dirty_mattress"
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"fg" = (
+/obj/structure/chair/wood/wings{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"fn" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"fu" = (
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"fw" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"fA" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"fF" = (
+/obj/structure/table/wood,
+/obj/item/trash/syndi_cakes{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"fI" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"fX" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "shotgun";
+ pixel_x = 4;
+ pixel_y = -9;
+ paint_colour = "#FF0000"
+ },
+/turf/closed/indestructible/wood,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"gp" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/ammo_box/magazine/c22lr_pounder_pan,
+/obj/item/storage/box/ammo/c22lr{
+ pixel_y = 12;
+ pixel_x = -6
+ },
+/obj/item/storage/box/ammo/c22lr{
+ pixel_y = 12;
+ pixel_x = 14
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"gr" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/item/ammo_box/magazine/c45_firestorm_mag/pan{
+ start_empty = 1
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"gs" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"gz" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin,
+/obj/item/pen/fountain/captain,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"gI" = (
+/turf/closed/indestructible/wood,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"gR" = (
+/obj/structure/chair/pew{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"hj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken5"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"hs" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/obj/effect/decal/cleanable/food/tomato_smudge,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"hz" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/internals/neutered{
+ check_friendly_fire = 1;
+ retreat_distance = 3;
+ minimum_distance = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/powered/icemoon/lodge/residential)
+"hI" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"ib" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"ii" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"ik" = (
+/obj/structure/fireplace,
+/obj/structure/fluff/paper/stack{
+ dir = 5;
+ layer = 2.79;
+ pixel_y = 4
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 4;
+ pixel_y = 9;
+ layer = 2.79
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = -10
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"iw" = (
+/turf/open/floor/plating/ice/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"iB" = (
+/obj/item/mine/proximity/explosive/live{
+ layer = 2.8
+ },
+/obj/structure/statue/snow/snowman,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"iE" = (
+/obj/item/toy/plush/moth/punished{
+ name = "Flufftunato";
+ desc = "For the love of god Mothtresor!";
+ pixel_y = 9
+ },
+/obj/structure/fermenting_barrel,
+/turf/open/floor/plating/asteroid/icerock/temperate,
+/area/overmap_encounter/planetoid/cave/explored)
+"iG" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"iH" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "+";
+ pixel_x = 12;
+ pixel_y = -1;
+ paint_colour = "#ADD8E6"
+ },
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/residential)
+"je" = (
+/obj/structure/table/wood,
+/obj/item/modular_computer/laptop,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"jk" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 10
+ },
+/obj/machinery/iv_drip,
+/obj/effect/decal/cleanable/vomit/old,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"jx" = (
+/obj/structure/guncloset,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/gun/ballistic/shotgun/flamingarrow,
+/obj/item/gun/ballistic/revolver/shadow,
+/obj/item/gun/ballistic/automatic/smg/pounder,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"jB" = (
+/obj/structure/flora/rock/pile/icy{
+ icon_state = "icemoonrock3"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"jD" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"jM" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/glass/filter{
+ pixel_y = 14;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/drinks/sillycup{
+ pixel_x = 4;
+ pixel_y = 6;
+ name = "paper sieve";
+ desc = "A paper seive for funneling gunpowder."
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"jP" = (
+/obj/structure/railing/wood{
+ dir = 10
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken7"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"jR" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine{
+ pixel_x = -6;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/cellar)
+"jS" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 1
+ },
+/obj/item/trash/plate{
+ pixel_y = 8;
+ pixel_x = 10
+ },
+/obj/item/trash/plate{
+ pixel_y = 10;
+ pixel_x = 10
+ },
+/obj/item/trash/plate{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/trash/plate{
+ pixel_y = 14;
+ pixel_x = 10
+ },
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ka" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 1
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-25";
+ pixel_y = 12;
+ pixel_x = -2
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"kl" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ko" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"kq" = (
+/obj/structure/chair/wood/wings,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"kG" = (
+/obj/structure/railing/wood,
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"kX" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"kZ" = (
+/obj/structure/fluff/fokoff_sign{
+ desc = "A crudsely-made sign with the words 'fok of' written in some sort of red paint."
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"lg" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"lh" = (
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"lE" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/crayon,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"lJ" = (
+/obj/structure/flora/grass/green,
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"lM" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 5
+ },
+/obj/structure/closet/crate/bin,
+/obj/item/storage/firstaid/roumain,
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/puce,
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf,
+/obj/item/reagent_containers/glass/mortar,
+/obj/item/disk/holodisk/roumain,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"lU" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 5
+ },
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/cellar)
+"mc" = (
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"mj" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ms" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/shotgun/brimstone,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"mz" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"mF" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/roumain{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/armor/roumain{
+ pixel_x = 6
+ },
+/obj/item/clothing/head/cowboy/sec/roumain{
+ pixel_x = -6;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/cowboy/sec/roumain{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"mH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"mI" = (
+/obj/structure/table/wood,
+/obj/item/stack/sheet/hairlesshide,
+/obj/item/stack/sheet/hairlesshide,
+/obj/item/stack/sheet/hairlesshide,
+/obj/item/stack/sheet/hairlesshide,
+/obj/item/stack/sheet/cotton/durathread,
+/obj/item/stack/sheet/cotton/durathread,
+/obj/item/stack/sheet/cotton/durathread,
+/obj/item/stack/sheet/cotton/durathread,
+/obj/item/stack/sheet/cotton/durathread,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"mL" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 6
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"mP" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/head/frontier/peaked,
+/obj/item/clothing/suit/armor/frontier,
+/obj/item/clothing/under/frontiersmen/officer,
+/obj/item/ammo_box/magazine/m9mm_mauler,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"nc" = (
+/obj/effect/turf_decal/stoneborder,
+/obj/effect/turf_decal/stoneborder{
+ dir = 1
+ },
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/destructible/tribal_torch/lit{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"nd" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"ne" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"nm" = (
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/structure/closet/crate/freezer,
+/obj/item/organ/ears,
+/obj/item/organ/eyes,
+/obj/item/organ/heart,
+/obj/item/organ/lungs,
+/obj/item/organ/liver,
+/obj/item/organ/stomach,
+/obj/item/clothing/suit/toggle/labcoat/roumain_med,
+/obj/item/clothing/head/cowboy/sec/roumain/med,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/effect/decal/cleanable/blood/gibs/old,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"no" = (
+/obj/structure/table/wood,
+/obj/machinery/fax/ruin,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"nr" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "nay";
+ pixel_y = -8;
+ pixel_x = 8;
+ paint_colour = "#FF0000"
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"nD" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 1
+ },
+/obj/machinery/door/airlock/wood{
+ name = "Greenhouse"
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"nQ" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"nS" = (
+/obj/structure/bookcase,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"oa" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"ot" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"ou" = (
+/obj/structure/railing/wood,
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"oC" = (
+/turf/open/floor/carpet,
+/area/ruin/powered/icemoon/lodge/residential)
+"oT" = (
+/obj/structure/flora/ash/garden/frigid,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"pf" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/item/kirbyplants,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"pi" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"px" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/destructible/tribal_torch/lit{
+ pixel_y = 18
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"pG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"pK" = (
+/obj/effect/turf_decal/siding/brown,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"pS" = (
+/obj/structure/noticeboard{
+ name = "trophy board";
+ desc = "A board for hanging trophies upon."
+ },
+/obj/item/clothing/mask/rat/bear{
+ pixel_y = -2;
+ name = "bear head";
+ desc = "A taxidermied bear head for mounting on a headboard. You swear it's still staring at you."
+ },
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"qb" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/candle/tribal_torch,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/gun/ballistic/automatic/smg/firestorm{
+ default_ammo_type = 0
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"qd" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"qg" = (
+/obj/structure/table/greyscale,
+/obj/effect/turf_decal/weather/snow,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"qr" = (
+/obj/item/target/alien,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"qD" = (
+/obj/structure/fence/door,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"qH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/food/snacks/meat/slab/bear,
+/obj/item/reagent_containers/food/snacks/meat/slab/bear,
+/obj/item/reagent_containers/food/snacks/meat/slab/bear,
+/obj/item/reagent_containers/food/snacks/egg,
+/obj/item/reagent_containers/food/snacks/egg,
+/obj/item/reagent_containers/food/snacks/egg,
+/obj/item/reagent_containers/food/drinks/bottle/absinthe/premium,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"qJ" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"qK" = (
+/obj/effect/turf_decal/stoneborder{
+ dir = 1
+ },
+/obj/effect/turf_decal/stoneborder,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/mirror{
+ pixel_y = 33;
+ pixel_x = 2
+ },
+/obj/structure/sink{
+ pixel_x = 2;
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"qN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"qO" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"qR" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"qY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"rm" = (
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"rs" = (
+/obj/structure/falsewall/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"rx" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/storage/belt/security/military/frontiersmen{
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/melee/knife/survival{
+ pixel_y = 10;
+ pixel_x = 3
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 10;
+ pixel_x = -7
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 10;
+ pixel_x = 13
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"rF" = (
+/obj/structure/flora/junglebush,
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"rO" = (
+/obj/item/broken_bottle{
+ pixel_x = 15;
+ pixel_y = 4
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"rS" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"rT" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/obj/item/trash/popcorn,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"rW" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"rZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"sc" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/turf/open/floor/wood/ebony/icemoon{
+ icon_state = "wood-broken2"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"sd" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 10
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"sk" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"st" = (
+/obj/structure/closet/secure_closet/medicalsrm,
+/obj/item/sensor_device,
+/obj/item/clothing/suit/frontiersmen,
+/obj/item/clothing/head/frontier,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/mask/surgical,
+/obj/effect/spawner/random/medical/chem_jug,
+/obj/effect/spawner/random/medical/chem_jug,
+/obj/effect/spawner/random/medical/chem_jug,
+/obj/effect/spawner/random/medical/chem_jug,
+/obj/effect/turf_decal/corner/opaque/blue,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 4
+ },
+/obj/item/clothing/neck/stethoscope,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"sx" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"sD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/weather/snow,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"sG" = (
+/obj/structure/railing,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"sJ" = (
+/obj/structure/flora/rock/pile/icy{
+ icon_state = "icemoonrock3"
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"sO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"sR" = (
+/obj/structure/table/wood,
+/obj/item/paper/crumpled/bloody/fluff/ruin/icemoon/tally_sheet{
+ pixel_x = -4
+ },
+/obj/item/pen{
+ pixel_x = 8
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"sW" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"sX" = (
+/obj/effect/turf_decal/weather/snow,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"sY" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/vomit/old{
+ icon_state = "vomit_4";
+ pixel_x = -1;
+ pixel_y = -19
+ },
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ti" = (
+/obj/item/cultivator/rake,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"tl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 9
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"tn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/can{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/trash/can{
+ pixel_y = -4;
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tq" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tr" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"tx" = (
+/turf/open/floor/plasteel/stairs/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"ty" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tD" = (
+/obj/structure/table/wood,
+/obj/item/stack/sheet/cotton/cloth/ten,
+/obj/item/scalpel{
+ name = "leather knife";
+ desc = "A sharpened leather knife, used for leatherwork."
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tG" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/plasteel/stairs/wood{
+ dir = 8
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"tL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tN" = (
+/obj/item/chair/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"tT" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"tW" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered{
+ minimum_distance = 2;
+ retreat_distance = 2;
+ check_friendly_fire = 1
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"tX" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 8
+ },
+/obj/item/trash/semki,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ud" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"um" = (
+/obj/structure/displaycase/broken,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 5
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"uy" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"uA" = (
+/obj/item/stack/sheet/durathread{
+ pixel_x = -10;
+ pixel_y = 10
+ },
+/obj/structure/rack,
+/obj/item/stack/sheet/durathread,
+/obj/item/stack/sheet/durathread{
+ pixel_y = 10
+ },
+/obj/item/stack/sheet/durathread{
+ pixel_x = -10
+ },
+/obj/item/stack/sheet/leather,
+/obj/item/stack/sheet/leather,
+/obj/item/stack/sheet/leather,
+/obj/item/stack/sheet/leather,
+/obj/item/stack/sheet/leather,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"uG" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"uL" = (
+/obj/structure/table/wood,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 10
+ },
+/obj/item/gun/ballistic/automatic/zip_pistol,
+/obj/item/chisel{
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"uM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"uR" = (
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"uX" = (
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 4
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"vd" = (
+/obj/effect/turf_decal/siding/brown,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"ve" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"vf" = (
+/obj/structure/table/wood,
+/obj/item/seeds/cannabis{
+ layer = 2.9
+ },
+/obj/item/clothing/mask/cigarette/pipe,
+/obj/item/lighter{
+ pixel_x = 11;
+ pixel_y = 7
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"vq" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"vs" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"vG" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"vZ" = (
+/obj/structure/displaycase/broken,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"wc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"wi" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"wj" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"wm" = (
+/turf/open/floor/wood/ebony/icemoon{
+ icon_state = "wood-broken6"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"wt" = (
+/obj/structure/railing{
+ layer = 3.1
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 5
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"wx" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"wy" = (
+/obj/structure/chair/stool{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"wD" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"wF" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/item/ammo_box/magazine/c45_firestorm_mag/pan{
+ start_empty = 1
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"wT" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"wU" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered{
+ retreat_distance = null;
+ minimum_distance = 1;
+ shoot_point_blank = 1
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"xb" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"xd" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/storage/box/ammo/a44roum{
+ pixel_x = 5
+ },
+/obj/item/storage/box/ammo/c38{
+ pixel_y = 0;
+ pixel_x = -11
+ },
+/obj/item/storage/box/ammo/c38{
+ pixel_y = 9;
+ pixel_x = -12
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"xk" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered{
+ aggro_vision_range = 12
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"xu" = (
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"xL" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"xM" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"xN" = (
+/obj/item/hatchet/wooden{
+ pixel_x = -6
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"yc" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered{
+ minimum_distance = 2;
+ retreat_distance = 2;
+ check_friendly_fire = 1
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"yi" = (
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/bed{
+ icon_state = "dirty_mattress"
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"yj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"yo" = (
+/obj/structure/flora/grass/jungle,
+/obj/item/clothing/suit/armor/roumain/shadow,
+/obj/item/clothing/head/cowboy/sec/roumain/shadow{
+ pixel_y = 15;
+ pixel_x = -5
+ },
+/obj/item/storage/wallet{
+ pixel_x = 7;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = 11;
+ pixel_x = -6
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"yp" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 5
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"yE" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"yH" = (
+/obj/structure/fence/door,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"yO" = (
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"yQ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"zh" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/punji_sticks,
+/obj/effect/mob_spawn/human/corpse/frontier,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"zz" = (
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"zN" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/brown{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"zX" = (
+/obj/structure/table/wood,
+/obj/item/trash/can/food/beans{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ag" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton{
+ pixel_y = 12
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ai" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony/icemoon{
+ icon_state = "wood-broken5"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"Aj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Ak" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Aq" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/moonshine{
+ pixel_y = 17;
+ pixel_x = 9
+ },
+/obj/item/reagent_containers/food/drinks/bottle/patron{
+ pixel_y = 11;
+ pixel_x = 6
+ },
+/obj/item/storage/pill_bottle/zoom{
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum{
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/pill/lsd{
+ pixel_y = 6;
+ pixel_x = -6
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ay" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"AB" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"AE" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 5
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"AJ" = (
+/obj/structure/flora/stump{
+ name = "Montagnue's Stump"
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"AO" = (
+/obj/structure/table/wood,
+/obj/item/weaponcrafting/stock,
+/obj/item/weaponcrafting/receiver{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"AX" = (
+/obj/structure/punji_sticks,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/gibspawner/human/bodypartless,
+/obj/effect/mob_spawn/human/corpse/frontier,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Bf" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 8
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Bx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/internals/neutered{
+ check_friendly_fire = 1;
+ retreat_distance = 3;
+ minimum_distance = 2
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/gear_room)
+"BL" = (
+/obj/structure/table/wood/fancy,
+/obj/item/gem/amber{
+ pixel_y = 20;
+ pixel_x = -2
+ },
+/obj/item/candle/infinite{
+ pixel_y = 2;
+ pixel_x = 4
+ },
+/obj/item/candle/infinite{
+ pixel_y = 2;
+ pixel_x = -8
+ },
+/obj/item/candle/infinite{
+ pixel_y = 2;
+ pixel_x = -2
+ },
+/obj/item/candle/infinite{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/candle/infinite{
+ pixel_y = 2;
+ pixel_x = 10
+ },
+/obj/item/candle/infinite{
+ pixel_y = 22;
+ pixel_x = 10
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"BQ" = (
+/obj/structure/flora/grass/both,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"BU" = (
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"Cm" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "sec";
+ name = "equipment locker";
+ req_access_txt = "1"
+ },
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/gloves/combat,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"Cq" = (
+/obj/structure/railing/wood,
+/obj/structure/table/wood,
+/obj/item/binoculars,
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cs" = (
+/obj/structure/fireplace,
+/obj/item/throwing_star/magspear{
+ name = "fire poker";
+ desc = "A small metal rod used to stir up fireplaces. This one is adorned with ornate golden filigree"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Cu" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Cw" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"CG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"CN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"CU" = (
+/obj/structure/railing/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken2"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"CW" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dj" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Do" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"DA" = (
+/obj/structure/railing/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"DB" = (
+/obj/item/grown/log/tree{
+ pixel_x = -6;
+ pixel_y = 12;
+ auto_scatter = 0
+ },
+/obj/item/grown/log/tree{
+ pixel_x = 6;
+ pixel_y = 12;
+ auto_scatter = 0
+ },
+/obj/item/grown/log/tree{
+ pixel_y = 18;
+ auto_scatter = 0
+ },
+/obj/structure/table/wood,
+/obj/item/storage/box/matches{
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"DM" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"DR" = (
+/obj/effect/turf_decal/spline/fancy/wood/cee,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/residential)
+"Eb" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ec" = (
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ek" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Er" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 10
+ },
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ez" = (
+/turf/open/floor/plasteel/stairs/wood,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Fj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Fy" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/obj/item/trash/candy,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"FL" = (
+/obj/effect/turf_decal/siding/blue/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/blue/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"Gb" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Gd" = (
+/obj/structure/flora/grass/brown,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ge" = (
+/obj/structure/chair/wood/wings,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Gn" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine{
+ pixel_x = -6;
+ pixel_y = 12
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Gq" = (
+/obj/effect/turf_decal/siding/blue,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"Gs" = (
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Gv" = (
+/obj/structure/railing/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Gy" = (
+/turf/template_noop,
+/area/template_noop)
+"GA" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"GD" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"GN" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"GR" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"GS" = (
+/obj/structure/railing/wood{
+ dir = 6
+ },
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"GT" = (
+/obj/structure/railing/wood,
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken5"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"Hl" = (
+/turf/closed/mineral/random/snow/underground,
+/area/overmap_encounter/planetoid/cave/explored)
+"HC" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"HG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/table/wood,
+/obj/item/shovel/spade,
+/obj/item/reagent_containers/glass/bucket/wooden{
+ pixel_x = 6
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"HO" = (
+/obj/structure/windoor_assembly{
+ dir = 4;
+ name = "broken windoor"
+ },
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"HQ" = (
+/obj/structure/table/wood/fancy,
+/obj/item/candle/infinite{
+ pixel_y = 11;
+ pixel_x = -2
+ },
+/obj/item/candle/infinite{
+ pixel_y = 11;
+ pixel_x = -8
+ },
+/obj/item/candle/infinite{
+ pixel_y = 11;
+ pixel_x = 4
+ },
+/obj/item/candle/infinite{
+ pixel_y = 0;
+ pixel_x = 10
+ },
+/obj/item/candle/infinite{
+ pixel_y = 11;
+ pixel_x = 10
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"HV" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"HZ" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 9
+ },
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ik" = (
+/obj/structure/fluff/paper/stack{
+ dir = 4;
+ pixel_y = 9;
+ layer = 2.79
+ },
+/obj/item/shovel,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ix" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals/neutered{
+ check_friendly_fire = 1;
+ minimum_distance = 3
+ },
+/obj/effect/turf_decal/weather/snow,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"II" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ja" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 1
+ },
+/obj/item/reagent_containers/syringe/contraband/morphine,
+/obj/effect/decal/cleanable/garbage,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"Jj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Jq" = (
+/obj/structure/flora/ash/chilly,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Js" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/siding/brown,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 5;
+ pixel_x = -2
+ },
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"JP" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"JS" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals/neutered{
+ minimum_distance = 2
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"Kc" = (
+/obj/effect/turf_decal/weather/snow,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kg" = (
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kh" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/sign/poster/contraband/masked_men{
+ pixel_y = 27
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Kn" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered{
+ minimum_distance = 2;
+ retreat_distance = 2;
+ check_friendly_fire = 1
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"Ks" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "camp";
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/residential)
+"KF" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"KH" = (
+/obj/structure/fluff/paper/stack{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/structure/fluff/paper/stack{
+ pixel_x = 9
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 5;
+ layer = 2.79;
+ pixel_y = 4
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"KO" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/food/flour,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"KR" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"KX" = (
+/obj/structure/fermenting_barrel,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Lz" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine{
+ pixel_y = 12;
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine{
+ pixel_y = 12;
+ pixel_x = 5
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/cellar)
+"LC" = (
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"LD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"LF" = (
+/obj/structure/table/wood,
+/obj/item/clothing/under/suit/roumain,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"LM" = (
+/obj/structure/flora/rock/pile/icy{
+ icon_state = "icemoonrock1"
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"LP" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"LT" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"LZ" = (
+/obj/effect/turf_decal/siding/brown/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"Mt" = (
+/turf/open/floor/wood/icemoon{
+ icon_state = "wood-broken4"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"Mw" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Mx" = (
+/obj/item/chair/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"MC" = (
+/obj/structure/sign/poster/contraband/punch_shit{
+ pixel_x = 32
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"MK" = (
+/obj/structure/fence,
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"MO" = (
+/obj/structure/fluff/fokoff_sign{
+ desc = "A crudsely-made sign with the words 'fok of' written in some sort of red paint."
+ },
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"MP" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"MQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"MR" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "danger";
+ pixel_x = 4;
+ pixel_y = -1;
+ paint_colour = "#FF0000"
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Nc" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Ni" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame/neuter,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"Nl" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"No" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/residential)
+"Nq" = (
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed{
+ icon_state = "dirty_mattress"
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Nu" = (
+/obj/item/ammo_casing/a8_50r{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/a8_50r{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/a8_50r{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/a8_50r{
+ projectile_type = null
+ },
+/obj/item/ammo_casing/a8_50r{
+ projectile_type = null
+ },
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"NH" = (
+/obj/structure/chair/wood/wings{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/neutered,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"NL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"NM" = (
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"NN" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"NO" = (
+/obj/structure/safe,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/gun/ballistic/automatic/marksman/vickland,
+/obj/item/storage/box/ammo/vickland_a308/empty,
+/obj/item/storage/box/ammo/vickland_a308/empty,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Oa" = (
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/structure/table/wood,
+/obj/item/trash/tray,
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 4
+ },
+/obj/item/stack/tape/industrial{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/food/drinks/bottle/absinthe{
+ pixel_y = 8;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/glass/bottle/morphine,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"Oc" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ok" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"Ol" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"Oq" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "skull";
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ox" = (
+/obj/structure/statue/snow/snowman,
+/obj/item/mine/proximity/explosive/live{
+ layer = 2.8
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"OD" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"OH" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"ON" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/neutral,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"OR" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 5
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/ebony/icemoon{
+ icon_state = "wood-broken2"
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"OS" = (
+/obj/effect/turf_decal/siding/wood/end,
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"OV" = (
+/obj/effect/turf_decal/spline/fancy/wood,
+/obj/item/trash/sosjerky,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"OY" = (
+/obj/effect/turf_decal/siding/brown,
+/obj/item/rack_parts,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"Py" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/closet/crate/hydroponics,
+/obj/item/seeds/apple,
+/obj/item/seeds/sunflower/moonflower,
+/obj/item/seeds/potato,
+/obj/item/seeds/tomato,
+/obj/item/seeds/berry,
+/obj/item/seeds/aloe,
+/obj/item/seeds/wheat,
+/obj/item/seeds/cotton/durathread,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"PA" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"PB" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"PE" = (
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/internals/neutered{
+ check_friendly_fire = 1;
+ retreat_distance = 3;
+ minimum_distance = 2
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"PH" = (
+/obj/structure/flora/rock/pile/icy{
+ icon_state = "icemoonrock2"
+ },
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"PI" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/stairs/wood,
+/area/ruin/powered/icemoon/lodge/cellar)
+"PM" = (
+/obj/structure/bonfire/prelit,
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"PQ" = (
+/obj/structure/fermenting_barrel,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/cellar)
+"PV" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Qz" = (
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"QO" = (
+/obj/structure/table/greyscale,
+/obj/item/gun/ballistic/rifle/illestren,
+/obj/item/clothing/ears/earmuffs{
+ pixel_y = 9
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"QT" = (
+/obj/structure/chair/wood/wings,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered{
+ retreat_distance = null;
+ minimum_distance = 1;
+ shoot_point_blank = 1
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"QU" = (
+/obj/structure/flora/grass/jungle,
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"Rd" = (
+/obj/structure/bed/pod,
+/obj/item/bedsheet/blue,
+/obj/structure/curtain/cloth/fancy,
+/obj/item/toy/plush/kari,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Rg" = (
+/obj/structure/flora/ash/leaf_shroom,
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Rl" = (
+/obj/effect/mob_spawn/human/corpse,
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = 8
+ },
+/turf/open/floor/ship/dirt/dark,
+/area/ruin/powered/icemoon/lodge/residential)
+"Rt" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = 8;
+ pixel_y = 12
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"RA" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"RE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"RH" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 6
+ },
+/obj/machinery/door/airlock/wood{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/cellar)
+"RM" = (
+/obj/effect/turf_decal/siding/blue/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/medical{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"RV" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"RX" = (
+/obj/structure/flora/grass/jungle/b,
+/obj/structure/closet/crate/trashcart,
+/obj/item/clothing/suit/armor/roumain,
+/obj/item/clothing/head/cowboy/sec/roumain,
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = 3;
+ pixel_x = -10
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/powered/icemoon/lodge/residential)
+"Se" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Sf" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Su" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"SE" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Td" = (
+/obj/structure/rack,
+/obj/item/flashlight/lantern{
+ pixel_x = 6
+ },
+/obj/item/flashlight/lantern{
+ pixel_x = -6
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Te" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Tj" = (
+/obj/machinery/door/airlock/wood,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Tk" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/box/ammo/a308/hunterspride,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"To" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"TL" = (
+/obj/structure/closet/cabinet{
+ name = "broken hunter's locker";
+ desc = "Everything a hunter will need, held in one secure closet. Or it would, if the lock wasn't smashed open."
+ },
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/obj/item/clothing/mask/gas/frontiersmen,
+/obj/item/clothing/under/frontiersmen/fireproof,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier/fireproof,
+/obj/item/clothing/suit/armor/frontier/fireproof,
+/obj/item/flamethrower,
+/obj/item/lighter/greyscale,
+/obj/item/reagent_containers/food/drinks/bottle/vodka,
+/obj/effect/decal/cleanable/wrapping,
+/obj/item/clothing/glasses/trickblindfold,
+/obj/item/melee/knife/switchblade,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"TM" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"TV" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 10
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Uc" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plasteel/stairs/wood{
+ dir = 8
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"Ug" = (
+/obj/structure/bookcase/random/religion,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Um" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 5
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Uz" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 1
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"UJ" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 9
+ },
+/turf/open/floor/wood/ebony/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"UK" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"UL" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/brown{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"UX" = (
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/gear_room)
+"UY" = (
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Vc" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 9
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Vo" = (
+/obj/item/storage/pill_bottle/floorpill/full{
+ pixel_y = 7;
+ pixel_x = 14
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = -14;
+ pixel_y = 18
+ },
+/obj/effect/decal/cleanable/vomit/old{
+ icon_state = "vomit_2";
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Vz" = (
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"VB" = (
+/obj/structure/railing/wood,
+/obj/structure/table/wood,
+/obj/item/storage/pill_bottle/stimulant,
+/obj/item/reagent_containers/pill/happy{
+ pixel_y = 10;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/pill/happy{
+ pixel_y = 2;
+ pixel_x = 9
+ },
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"VK" = (
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/powered/icemoon/lodge/cellar)
+"Wa" = (
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Wc" = (
+/obj/effect/turf_decal/spline/fancy/wood/cee{
+ dir = 1
+ },
+/obj/machinery/door/airlock/wood{
+ name = "Restroom"
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/residential)
+"Wd" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/glass,
+/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon/internals/neuter,
+/turf/open/floor/plasteel/white,
+/area/ruin/powered/icemoon/lodge/residential)
+"Wk" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Wp" = (
+/obj/structure/closet/cabinet{
+ name = "broken shadow's locker";
+ desc = "The closet of equipment and attire for the aspiring shadow. Or whichever guy broke this closet's lock."
+ },
+/obj/effect/turf_decal/siding/brown{
+ dir = 4
+ },
+/obj/item/clothing/head/soft/frontiersmen,
+/obj/item/clothing/under/frontiersmen/deckhand,
+/obj/item/clothing/accessory/holster,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"Ws" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/plating,
+/area/ruin/powered/icemoon/lodge/montagne_office)
+"Wv" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/gear_room)
+"WF" = (
+/obj/structure/flora/rock/pile/icy,
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"WI" = (
+/obj/structure/chair/pew/right{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"WN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"WS" = (
+/obj/structure/flora/stump{
+ icon_state = "anchored_rod";
+ pixel_y = -3;
+ name = "rod";
+ desc = "A metal rod struck into the ground."
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/clip{
+ pixel_y = 24;
+ name = "\improper Dented Minutemen X11 Helmet"
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"WW" = (
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"WZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/c45{
+ projectile_type = null
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Xd" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/glass/bottle/nutrient/ez{
+ pixel_x = 6;
+ pixel_y = 12;
+ auto_scatter = 0
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/l4z{
+ pixel_x = 6;
+ pixel_y = 6;
+ auto_scatter = 0
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/rh{
+ pixel_x = 6;
+ auto_scatter = 0
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/ez{
+ pixel_x = -6;
+ pixel_y = 12;
+ auto_scatter = 0
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/l4z{
+ pixel_x = -6;
+ pixel_y = 6;
+ auto_scatter = 0
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/rh{
+ pixel_x = -6;
+ auto_scatter = 0
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"Xm" = (
+/obj/structure/flora/rock/pile/icy{
+ icon_state = "icemoonrock1"
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/plating/rust,
+/area/ruin/powered/icemoon/lodge/residential)
+"Xt" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "shotgun";
+ pixel_x = 14;
+ pixel_y = -3
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xx" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"XF" = (
+/obj/structure/flora/grass/green,
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"XK" = (
+/obj/structure/fermenting_barrel/gunpowder,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"XU" = (
+/obj/structure/flora/grass/both,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating/asteroid/icerock,
+/area/overmap_encounter/planetoid/cave/explored)
+"Yd" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/frontier/internals,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Yj" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/mine/proximity/explosive/live{
+ range_heavy = 1;
+ range_light = 5
+ },
+/obj/effect/mob_spawn/human/corpse/srm/montagne,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/cellar)
+"Yo" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 8
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/residential)
+"Yv" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/spline/fancy/wood{
+ dir = 9
+ },
+/obj/machinery/jukebox/boombox{
+ pixel_y = 4;
+ pixel_x = 1
+ },
+/obj/item/toy/cards/deck{
+ pixel_y = 0;
+ pixel_x = -4
+ },
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = 8;
+ pixel_y = -1
+ },
+/turf/open/floor/wood/mahogany,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Yw" = (
+/obj/structure/loom,
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"YB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/smartfridge/drying_rack,
+/turf/open/floor/wood/maple,
+/area/ruin/powered/icemoon/lodge/residential)
+"YG" = (
+/obj/item/toy/crayon/spraycan,
+/obj/effect/turf_decal/weather/snow{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"YO" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/a308{
+ pixel_y = 11;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/obj/item/ammo_casing/a308{
+ pixel_y = 3;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/obj/item/ammo_casing/a308{
+ pixel_y = 11;
+ pixel_x = 6;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/obj/item/ammo_casing/a308{
+ pixel_y = 11;
+ pixel_x = -6;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/obj/item/ammo_casing/a308{
+ pixel_y = 3;
+ pixel_x = -6;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/obj/item/ammo_casing/a308{
+ pixel_y = 3;
+ pixel_x = 6;
+ projectile_type = null;
+ auto_rotate = 0;
+ auto_scatter = 0
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"YU" = (
+/obj/effect/turf_decal/weather/snow{
+ dir = 6
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Za" = (
+/turf/open/floor/plating/asteroid/snow/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zf" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/mug/coco,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"Zm" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/maple{
+ icon_state = "wood-broken"
+ },
+/area/ruin/powered/icemoon/lodge/gear_room)
+"Zn" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/structure/railing/wood{
+ dir = 8
+ },
+/obj/structure/railing/wood{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zo" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie{
+ pixel_x = -6
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/powered/icemoon/lodge/mainhall)
+"Zp" = (
+/obj/effect/turf_decal/siding/brown{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "vomit_2-old"
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-25";
+ pixel_y = 12;
+ pixel_x = -2
+ },
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/powered/icemoon/lodge/residential)
+"ZG" = (
+/obj/item/target/syndicate,
+/obj/effect/turf_decal/weather/snow,
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZX" = (
+/obj/effect/turf_decal/spline/fancy/wood/corner,
+/obj/effect/turf_decal/spline/fancy/wood/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/energybar,
+/turf/open/floor/wood/mahogany{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/powered/icemoon/lodge/mainhall)
+"ZZ" = (
+/obj/structure/table/greyscale,
+/obj/item/ammo_box/magazine/illestren_a850r/empty{
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/weather/snow{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_3/icemoon,
+/area/overmap_encounter/planetoid/cave/explored)
+
+(1,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Gy
+Hl
+Hl
+Hl
+Hl
+Gy
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(2,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Hl
+Hl
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(3,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(4,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(5,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(6,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+gI
+gI
+gI
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+No
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(7,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+gI
+jx
+HO
+xd
+No
+nc
+No
+DB
+Ol
+Wk
+wD
+No
+dT
+bL
+Oa
+No
+PM
+Rl
+dd
+rF
+No
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(8,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+gp
+rZ
+sk
+LD
+Wc
+DR
+No
+Cs
+oC
+oC
+Nq
+No
+ON
+Wd
+jk
+No
+RX
+yo
+AJ
+xN
+QU
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(9,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+rx
+Bx
+Qz
+Wv
+No
+qK
+No
+SE
+oC
+hz
+fe
+No
+Ja
+tl
+eW
+No
+No
+ds
+lh
+Kn
+cl
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(10,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+ao
+bk
+UX
+Ni
+No
+ag
+No
+Ug
+Sf
+eg
+yi
+No
+fA
+uX
+Gq
+nm
+No
+rm
+fu
+ti
+cl
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Rg
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(11,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+TL
+qd
+kX
+cy
+No
+No
+No
+No
+mc
+Ks
+No
+No
+lM
+FL
+Ok
+st
+No
+rF
+rm
+rm
+QU
+No
+Hl
+Hl
+Hl
+Hl
+Ec
+Ec
+Ec
+Ec
+Ec
+Gy
+Gy
+"}
+(12,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+Cm
+yQ
+Js
+cy
+gI
+zN
+Yo
+am
+eU
+qO
+aa
+No
+No
+RM
+iH
+No
+No
+No
+px
+tT
+YB
+No
+Hl
+Hl
+Hl
+Hl
+PH
+MO
+Ec
+Ec
+Ec
+Hl
+Gy
+"}
+(13,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+dZ
+xu
+OY
+dn
+OS
+Xx
+yj
+uR
+Xq
+uR
+LZ
+Yo
+hI
+vs
+JS
+Yo
+ne
+nD
+uy
+Cw
+Py
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+dc
+MK
+Hl
+Hl
+Hl
+"}
+(14,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+Wp
+ey
+bB
+Zm
+fX
+Zp
+HC
+PB
+TM
+MC
+Zi
+uR
+uR
+wU
+BU
+yj
+vd
+No
+ib
+RV
+qH
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Ec
+Ec
+bb
+Hl
+Hl
+Hl
+"}
+(15,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+gI
+gI
+gI
+gI
+gI
+gI
+No
+No
+No
+No
+No
+DM
+MP
+TM
+UK
+UK
+fn
+UL
+No
+Xd
+HG
+No
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Nl
+XF
+bb
+Hl
+Hl
+Hl
+"}
+(16,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+No
+No
+No
+No
+No
+No
+NM
+No
+No
+No
+No
+No
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+iw
+bb
+qJ
+Hl
+Hl
+Hl
+"}
+(17,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Za
+Dj
+sX
+WF
+Za
+Za
+nQ
+ca
+sX
+LM
+Za
+oT
+nQ
+WW
+Hl
+Hl
+Hl
+Hl
+Hl
+KR
+bb
+bb
+Hl
+Hl
+Hl
+"}
+(18,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Za
+Za
+Dj
+Kc
+Za
+RA
+wx
+NN
+NN
+ca
+TV
+Za
+Za
+Dj
+gR
+Hl
+Hl
+Hl
+Hl
+Hl
+bb
+qJ
+iw
+Hl
+Hl
+Hl
+"}
+(19,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Za
+Za
+eK
+Kc
+gs
+ot
+NN
+ca
+NN
+ca
+ca
+TV
+gs
+Dj
+WI
+Hl
+Hl
+Hl
+Hl
+Hl
+Ec
+bb
+bb
+Hl
+Hl
+Hl
+"}
+(20,1,1) = {"
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+yE
+yE
+yE
+yE
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Za
+eK
+ca
+OD
+NN
+JP
+ca
+ca
+ca
+fa
+NN
+vG
+ca
+Zf
+Hl
+Hl
+Hl
+Hl
+Hl
+Nl
+Ec
+bb
+Hl
+Hl
+Hl
+"}
+(21,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+MQ
+mz
+XK
+jM
+yE
+yE
+yE
+yE
+yE
+yE
+yE
+yE
+dO
+dO
+dO
+dO
+dO
+ca
+ca
+ca
+YU
+Za
+Dj
+NN
+Kc
+Jq
+Um
+ca
+ca
+Hl
+Hl
+Hl
+Hl
+Hl
+Ec
+Ec
+bb
+iB
+Hl
+Hl
+Hl
+"}
+(22,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+yE
+yE
+ms
+Su
+Eb
+QT
+YO
+yE
+yc
+CN
+ko
+KO
+II
+mH
+qN
+UJ
+LP
+LP
+sd
+dO
+ca
+ca
+YU
+Za
+Za
+Dj
+NN
+Kc
+Za
+Za
+Um
+ca
+NN
+Hl
+Hl
+Hl
+Hl
+Nl
+Ec
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(23,1,1) = {"
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+uL
+fg
+ty
+uG
+qY
+Tk
+yE
+Kh
+tL
+Yd
+CG
+CG
+Ek
+uM
+Uz
+Ai
+wm
+pK
+dO
+ca
+Kc
+Za
+Gd
+Za
+Dj
+NN
+Kc
+Za
+Za
+Za
+Dj
+wj
+Hl
+Hl
+Hl
+bb
+bb
+bb
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(24,1,1) = {"
+Hl
+Hl
+Hl
+Hl
+Hl
+yE
+AO
+RE
+sW
+qY
+yE
+yE
+yE
+HZ
+Er
+yE
+To
+Td
+aV
+yE
+OR
+sc
+CW
+cS
+dO
+ca
+sX
+Za
+Za
+Za
+tW
+Nu
+Ix
+Za
+BQ
+Za
+Dj
+ca
+ca
+ca
+GA
+bb
+iw
+bb
+Hl
+Hl
+Hl
+Hl
+Gy
+"}
+(25,1,1) = {"
+Hl
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+yE
+KF
+yE
+yE
+Yv
+Bf
+ZX
+aL
+OH
+OH
+OH
+OH
+OH
+OH
+Gv
+aF
+CU
+jP
+NN
+sX
+Za
+gs
+sG
+ZZ
+QO
+qg
+PA
+gs
+oT
+Dj
+ca
+NN
+ca
+yH
+bb
+bb
+lg
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(26,1,1) = {"
+Hl
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+Vc
+kl
+tX
+GR
+cW
+Do
+xM
+OH
+pS
+Rd
+zz
+Te
+no
+Ws
+Kg
+Kg
+Kg
+GT
+ca
+sX
+oT
+Za
+sG
+Dj
+NN
+sX
+PA
+Za
+Za
+Dj
+NN
+ca
+ca
+GA
+bb
+bb
+Ec
+Nl
+Hl
+Hl
+Hl
+Hl
+"}
+(27,1,1) = {"
+Hl
+Hl
+Hl
+yE
+yE
+yE
+vZ
+cA
+Do
+Do
+UY
+Do
+tn
+xM
+OH
+bv
+zz
+Te
+fI
+gz
+Ws
+GD
+Kg
+Kg
+VB
+ca
+sX
+Za
+Jq
+sG
+Dj
+ca
+Kc
+PA
+Za
+Za
+Dj
+ii
+Hl
+Hl
+Hl
+bb
+iw
+Ec
+Ec
+Hl
+Hl
+Hl
+Gy
+"}
+(28,1,1) = {"
+Hl
+Hl
+Hl
+yE
+nS
+Ik
+Mw
+aJ
+rW
+LT
+Mx
+wy
+GN
+hs
+OH
+ka
+zz
+vf
+je
+Rt
+Ws
+Kg
+GD
+GD
+kG
+ca
+NN
+TV
+Za
+da
+nQ
+ca
+sX
+PA
+jB
+wx
+ca
+ca
+Hl
+Hl
+Hl
+Hl
+bb
+qJ
+bb
+Hl
+Hl
+Hl
+Gy
+"}
+(29,1,1) = {"
+Hl
+Hl
+Hl
+yE
+yE
+ik
+Mw
+kq
+Ag
+Zo
+zX
+fF
+aJ
+tq
+Tj
+fw
+Se
+Vz
+Vz
+xk
+Ws
+Mt
+cd
+GD
+ou
+ca
+NN
+ca
+TV
+da
+Dj
+ca
+sX
+PA
+YG
+NN
+ca
+Hl
+Hl
+Hl
+Hl
+Ox
+bb
+bb
+al
+Hl
+Hl
+Hl
+Hl
+"}
+(30,1,1) = {"
+Hl
+Hl
+Hl
+yE
+nS
+KH
+jS
+aJ
+tN
+PE
+yO
+Fy
+aJ
+OV
+OH
+fw
+Se
+Se
+Vz
+tr
+Ws
+LC
+hj
+GD
+Cq
+ca
+ca
+ca
+ca
+MR
+ca
+xL
+NN
+nr
+NN
+fa
+ca
+sR
+Hl
+Hl
+Hl
+bb
+bb
+iw
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(31,1,1) = {"
+Hl
+Hl
+Hl
+yE
+yE
+yE
+um
+wi
+Do
+xb
+iG
+ev
+rO
+xM
+OH
+yp
+sx
+oa
+oa
+dA
+Ws
+Kg
+Mt
+Kg
+GS
+ca
+sD
+gs
+Um
+Oq
+xL
+NN
+ca
+Xt
+YU
+gs
+Dj
+WW
+Hl
+Hl
+Hl
+Oc
+bb
+qJ
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(32,1,1) = {"
+Hl
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+AE
+bC
+vq
+Wa
+sY
+Vo
+xM
+OH
+OH
+NO
+HQ
+BL
+mP
+Ws
+Kg
+GD
+Kg
+tx
+ca
+sX
+Za
+Za
+wt
+qr
+ca
+ca
+mL
+Za
+Za
+rT
+gR
+Hl
+Hl
+Hl
+qJ
+bb
+bb
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(33,1,1) = {"
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+yE
+jD
+yE
+yE
+bG
+Aq
+dl
+lE
+OH
+OH
+OH
+OH
+OH
+OH
+Cu
+DA
+DA
+Zn
+ca
+YU
+Za
+oT
+da
+Dj
+WS
+ZG
+PA
+LM
+Za
+Dj
+WI
+Hl
+Hl
+Hl
+Hl
+bb
+Ec
+Hl
+Hl
+Hl
+Hl
+Hl
+"}
+(34,1,1) = {"
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+LF
+bK
+Nc
+HV
+yE
+yE
+yE
+lU
+RH
+Cu
+Aj
+Jj
+aZ
+WZ
+Ay
+Cu
+Cu
+Hl
+Hl
+Hl
+Za
+Za
+Za
+Za
+dO
+dO
+dO
+Hl
+Za
+Za
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+XU
+Ec
+Ox
+Hl
+Hl
+Hl
+Gy
+"}
+(35,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+yE
+tD
+NH
+mj
+AB
+dV
+uA
+yE
+tG
+Uc
+Cu
+Ak
+PQ
+KX
+PQ
+qR
+qb
+Cu
+Hl
+Hl
+Hl
+Hl
+Za
+Hl
+Za
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+iw
+bb
+bb
+Hl
+Hl
+Gy
+Gy
+"}
+(36,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+yE
+yE
+mF
+Gb
+ud
+Ge
+mI
+yE
+VK
+AX
+Ez
+sO
+pG
+WZ
+nd
+gr
+Yj
+Cu
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+bb
+bb
+lJ
+bb
+Hl
+Hl
+Gy
+Gy
+"}
+(37,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+pi
+ve
+Yw
+eC
+yE
+pf
+Gs
+PI
+NL
+Lz
+jR
+Gn
+Fj
+wF
+Cu
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Nl
+Xm
+bb
+bb
+qD
+bb
+Gy
+Gy
+"}
+(38,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+yE
+yE
+yE
+yE
+yE
+yE
+Cu
+Cu
+Cu
+wT
+PV
+wc
+zh
+WN
+Cu
+Cu
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+sJ
+bb
+rS
+bb
+Gy
+Gy
+"}
+(39,1,1) = {"
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Cu
+Cu
+Cu
+rs
+Cu
+Cu
+Cu
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+kZ
+Gy
+Gy
+"}
+(40,1,1) = {"
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+iE
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+bb
+Gy
+Gy
+Gy
+"}
+(41,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(42,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(43,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Hl
+Hl
+Hl
+Hl
+Hl
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
+(44,1,1) = {"
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+Gy
+"}
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index 29710e094f64..f4db9fa9d9f7 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -40,7 +40,7 @@
"fD" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/blood/bubblegum,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin/powered)
"fQ" = (
@@ -383,7 +383,7 @@
"EF" = (
/obj/effect/decal/cleanable/blood/gibs/torso,
/obj/structure/safe,
-/obj/item/ammo_box/a12g/slug,
+/obj/item/storage/box/ammo/a12g_slug,
/obj/item/melee/knife/combat,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -459,7 +459,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"LZ" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin/powered)
"Nq" = (
@@ -477,7 +477,7 @@
/turf/open/floor/carpet,
/area/ruin/powered)
"Pp" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/holofloor/wood,
/area/ruin/powered)
"PQ" = (
@@ -554,7 +554,7 @@
"WH" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin/powered)
"Ze" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
deleted file mode 100644
index d560e98b2f20..000000000000
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
+++ /dev/null
@@ -1,2514 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ae" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/wall/mineral/wood/nonmetal,
-/area/ruin/unpowered)
-"aS" = (
-/obj/machinery/iv_drip,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 1
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"aW" = (
-/turf/template_noop,
-/area/template_noop)
-"bq" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = -6;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"bv" = (
-/obj/effect/decal/cleanable/blood/splatter,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"bB" = (
-/obj/structure/flora/rock/jungle,
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"cr" = (
-/obj/structure/barricade/sandbags,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"ct" = (
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"cH" = (
-/turf/open/floor/carpet/blue{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"dz" = (
-/obj/structure/table/wood/fancy/green,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"fd" = (
-/obj/structure/barricade/wooden/crude/snow,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"fz" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 4
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"fB" = (
-/obj/structure/chair/stool/bar,
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"fK" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/ruin/unpowered)
-"gH" = (
-/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
- faction = list("brazillian")
- },
-/turf/open/floor/carpet/green{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"hg" = (
-/obj/structure/barricade/wooden/snowed,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"hp" = (
-/obj/item/stack/cable_coil,
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"hr" = (
-/turf/closed/wall/mineral/wood/nonmetal,
-/area/overmap_encounter/planetoid/cave/explored)
-"ht" = (
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"hA" = (
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"hO" = (
-/obj/structure/flora/tree/jungle,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"hR" = (
-/obj/structure/flora/rock/icy,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"hT" = (
-/obj/structure/flora/grass/jungle/b,
-/obj/item/cultivator/rake,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"ib" = (
-/obj/structure/table/wood,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"iu" = (
-/obj/item/restraints/handcuffs/cable,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"jn" = (
-/obj/item/ammo_casing/spent,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"jy" = (
-/obj/structure/chair/wood{
- dir = 1
- },
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"jU" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"kD" = (
-/obj/item/storage/toolbox/drone,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"kQ" = (
-/obj/structure/bed,
-/obj/structure/curtain,
-/obj/effect/decal/cleanable/blood,
-/obj/effect/turf_decal/corner/opaque/green/border,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"kX" = (
-/turf/closed/wall/mineral/wood/nonmetal,
-/area/ruin/unpowered)
-"lu" = (
-/obj/structure/barricade/wooden/snowed,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"lA" = (
-/obj/structure/table,
-/obj/item/weaponcrafting/stock{
- pixel_x = 8;
- pixel_y = 3
- },
-/obj/item/stack/cable_coil/blue,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"mn" = (
-/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"mo" = (
-/obj/structure/flora/grass/brown,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"mM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"nf" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/meat/steak/bear,
-/obj/item/reagent_containers/food/snacks/meat/steak/goliath{
- pixel_x = 4;
- pixel_y = 3
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"nF" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/cannabis,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"nG" = (
-/obj/structure/flora/junglebush/large,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"oo" = (
-/obj/structure/table,
-/obj/machinery/recharger,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"oR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"pf" = (
-/obj/item/weaponcrafting/receiver{
- pixel_x = -16;
- pixel_y = -8
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken";
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"ql" = (
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"qm" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = 1;
- pixel_y = 8
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = 5
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = -4;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"qC" = (
-/obj/structure/bed,
-/obj/structure/curtain,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 1
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"qD" = (
-/obj/structure/flora/tree/pine,
-/obj/structure/flora/tree/pine,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"qS" = (
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = "The greatest chef this side of the wastes.";
- faction = list("brazillian");
- health = 150;
- name = "Margarine"
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"rw" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"rP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"si" = (
-/obj/structure/flora/rock/jungle,
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"sE" = (
-/obj/structure/flora/grass/green,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"te" = (
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"tf" = (
-/obj/item/weaponcrafting/stock,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"uv" = (
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"uG" = (
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"vi" = (
-/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"vH" = (
-/obj/structure/flora/junglebush/b,
-/obj/item/reagent_containers/glass/bucket/wooden,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"vR" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"wd" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/bottle/wine{
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/tequila{
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/reagent_containers/food/drinks/bottle/vermouth{
- pixel_x = -8;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"wh" = (
-/obj/structure/flora/tree/jungle/small,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"wk" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = 8;
- pixel_y = 2
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"xg" = (
-/obj/structure/flora/tree/pine,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"xu" = (
-/obj/structure/bed,
-/obj/structure/curtain,
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 1
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"xI" = (
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/ruin/unpowered)
-"xK" = (
-/obj/structure/statue/snow/snowman,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"xN" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"xQ" = (
-/obj/item/clothing/neck/stethoscope,
-/obj/structure/closet/secure_closet/medical1,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/reagent_containers/syringe,
-/obj/item/reagent_containers/syringe,
-/obj/item/reagent_containers/syringe,
-/obj/item/stack/medical/mesh,
-/obj/item/stack/medical/suture,
-/obj/item/stack/sheet/cotton/cloth/ten,
-/obj/item/stack/sheet/cotton/cloth/ten,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"xV" = (
-/obj/structure/bed,
-/obj/structure/curtain,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner/opaque/green/border,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"yr" = (
-/obj/effect/decal/cleanable/vomit/old,
-/obj/effect/turf_decal/corner/opaque/green/border,
-/obj/machinery/space_heater,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"zi" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"zy" = (
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Al" = (
-/obj/structure/chair/wood{
- dir = 8
- },
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Aw" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag{
- pixel_x = 8;
- pixel_y = 3
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"AN" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/bottle/sarsaparilla{
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/kahlua{
- pixel_x = -8;
- pixel_y = 4
- },
-/obj/item/reagent_containers/food/drinks/bottle/hcider{
- pixel_x = 16;
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/rum{
- pixel_x = 8;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Br" = (
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Bw" = (
-/turf/open/floor/carpet/green{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"BL" = (
-/obj/item/weaponcrafting/receiver,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Cl" = (
-/obj/item/candle/infinite{
- pixel_y = 4
- },
-/obj/item/candle/infinite{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/item/candle/infinite{
- pixel_x = -10;
- pixel_y = 8
- },
-/obj/item/candle/infinite{
- pixel_x = -5;
- pixel_y = 2
- },
-/obj/item/candle/infinite{
- pixel_x = -10
- },
-/obj/item/candle/infinite{
- pixel_x = -16;
- pixel_y = -2
- },
-/obj/structure/table/wood/fancy/blue,
-/turf/open/floor/carpet/orange{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"CI" = (
-/obj/structure/flora/junglebush/c,
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"CL" = (
-/obj/structure/bookcase/random,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"CS" = (
-/obj/machinery/hydroponics/soil,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"CT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Da" = (
-/obj/machinery/rnd/production/protolathe/department/security,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"DH" = (
-/obj/structure/railing,
-/obj/item/flashlight/lantern{
- on = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"DX" = (
-/obj/structure/flora/rock/jungle,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Eg" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ex" = (
-/obj/structure/flora/grass/brown,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"Fh" = (
-/obj/structure/statue/snow/snowlegion,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"Gc" = (
-/obj/machinery/pipedispenser,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Ge" = (
-/obj/structure/flora/grass/jungle/b,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Gl" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/eggplant/eggy,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"GK" = (
-/obj/structure/flora/junglebush/c,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"GU" = (
-/turf/open/floor/carpet/orange{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Hb" = (
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"HI" = (
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/overmap_encounter/planetoid/cave/explored)
-"HV" = (
-/obj/item/target/alien/anchored,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Il" = (
-/obj/vehicle/ridden/atv,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Iz" = (
-/obj/structure/rack,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/clothing/ears/earmuffs,
-/obj/item/clothing/ears/earmuffs,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"IE" = (
-/obj/machinery/iv_drip,
-/obj/effect/turf_decal/corner/opaque/green/border,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Jt" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"JK" = (
-/obj/item/seeds/glowshroom,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"JM" = (
-/obj/structure/bed,
-/obj/structure/curtain,
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/obj/effect/turf_decal/corner/opaque/green/border,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Kl" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Kt" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 4
- },
-/obj/item/flashlight/lantern{
- on = 1
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ly" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/bottle/whiskey{
- pixel_x = 16;
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/vodka{
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/cognac{
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/reagent_containers/food/drinks/bottle/gin{
- pixel_x = -8;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"LA" = (
-/obj/structure/chair/stool/bar{
- dir = 4
- },
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"LB" = (
-/obj/effect/decal/cleanable/blood/old,
-/mob/living/simple_animal/bot/secbot/ed209/rockplanet{
- faction = list("brazillian")
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"LC" = (
-/obj/structure/flora/grass/jungle/b,
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"LI" = (
-/turf/open/floor/wood{
- icon_state = "wood-broken2";
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"LR" = (
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"MI" = (
-/obj/structure/flora/grass/jungle,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"MM" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Nt" = (
-/obj/structure/flora/junglebush/b,
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"NG" = (
-/obj/structure/table,
-/obj/item/ammo_box/magazine/zip_ammo_9mm,
-/obj/item/ammo_box/magazine/zip_ammo_9mm,
-/obj/item/gun/ballistic/automatic/zip_pistol,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"NR" = (
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"NY" = (
-/obj/structure/barricade/wooden/snowed,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"OA" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/glass/maunamug,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Pb" = (
-/obj/structure/bed/roller,
-/obj/effect/decal/cleanable/blood/gibs/down,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner/opaque/green/bordercorner,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Pm" = (
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ps" = (
-/obj/structure/table/wood,
-/obj/item/screwdriver/old{
- pixel_y = 20
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Pu" = (
-/obj/structure/flora/tree/pine/xmas,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"Qk" = (
-/obj/structure/table/wood/reinforced,
-/obj/machinery/chem_dispenser/drinks/beer,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ql" = (
-/obj/structure/bonfire/prelit,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Qm" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/corn,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Sd" = (
-/obj/item/gun/ballistic/shotgun/doublebarrel/brazil{
- pixel_x = 8
- },
-/obj/structure/table/wood/fancy/blue,
-/turf/open/floor/carpet/orange{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Sf" = (
-/obj/item/ammo_box/magazine/zip_ammo_9mm,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/structure/closet/secure_closet,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Sj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 1
- },
-/obj/machinery/space_heater,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"To" = (
-/obj/structure/barricade/wooden/crude/snow,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"Tw" = (
-/obj/item/candle/infinite{
- pixel_x = 10;
- pixel_y = 8
- },
-/obj/item/candle/infinite{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/candle/infinite{
- pixel_y = 4
- },
-/obj/item/candle/infinite{
- pixel_x = 5;
- pixel_y = 2
- },
-/obj/item/candle/infinite{
- pixel_x = 10
- },
-/obj/item/candle/infinite{
- pixel_x = 16;
- pixel_y = 10
- },
-/obj/structure/table/wood/fancy/blue,
-/turf/open/floor/carpet/orange{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Tx" = (
-/obj/structure/flora/junglebush/b,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"TA" = (
-/obj/structure/railing,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"TL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/item/hatchet,
-/obj/item/hatchet,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Ul" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/ruin/unpowered)
-"Uu" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/bottle/amaretto{
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/trappist{
- pixel_x = 16;
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing{
- pixel_x = 8;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ux" = (
-/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
- faction = list("brazillian")
- },
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Vt" = (
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"VB" = (
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"VI" = (
-/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/ruin/unpowered)
-"VS" = (
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"VX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/item/ammo_casing/shotgun/improvised,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"WH" = (
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Xq" = (
-/obj/structure/table,
-/obj/item/storage/firstaid/regular,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/reagent_containers/food/snacks/soup/vegetable,
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"XD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"XL" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/reagent_containers/food/drinks/drinkingglass{
- pixel_x = -6;
- pixel_y = 4
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Ya" = (
-/mob/living/simple_animal/bot/medbot/rockplanet{
- faction = list("brazillian")
- },
-/obj/effect/turf_decal/corner/opaque/green/border{
- dir = 4
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Yc" = (
-/obj/structure/table/wood/fancy/blue,
-/obj/structure/safe/floor{
- maxspace = 99
- },
-/obj/item/storage/box/lethalshot,
-/obj/item/storage/box/lethalshot,
-/obj/item/storage/box/lethalshot,
-/obj/item/storage/box/lethalshot,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/techshell,
-/obj/item/ammo_casing/shotgun/meteorslug,
-/obj/item/ammo_casing/shotgun/meteorslug,
-/obj/item/ammo_casing/shotgun/meteorslug,
-/obj/item/ammo_casing/shotgun/laserscatter,
-/obj/item/ammo_casing/shotgun/laserscatter,
-/obj/item/ammo_casing/shotgun/laserscatter,
-/obj/item/ammo_casing/shotgun/pulseslug,
-/obj/item/ammo_casing/shotgun/pulseslug,
-/obj/item/ammo_casing/shotgun/pulseslug,
-/obj/item/key,
-/turf/open/floor/carpet/orange{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Yg" = (
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/plasteel/white{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Yh" = (
-/obj/item/shovel,
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Yx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/rack_parts,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/wood{
- icon_state = "wood-broken3";
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Yy" = (
-/mob/living/simple_animal/hostile/human/hermit/survivor{
- desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
- faction = list("brazillian")
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"YV" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/snow/icemoon,
-/area/overmap_encounter/planetoid/cave/explored)
-"YX" = (
-/turf/open/floor/plating/grass/jungle{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"YZ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/wood{
- initial_gas_mix = "ICEMOON_ATMOS"
- },
-/area/ruin/unpowered)
-"Zd" = (
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-"Zf" = (
-/obj/item/candle/tribal_torch{
- name = "standing torch";
- start_lit = 1
- },
-/turf/open/floor/plating/snowed/smoothed/icemoon,
-/area/ruin/unpowered)
-
-(1,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-zi
-cr
-cr
-cr
-Hb
-Hb
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-lu
-Hb
-lu
-lu
-aW
-aW
-aW
-aW
-"}
-(2,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-cr
-zi
-Hb
-kX
-Vt
-NY
-kX
-kX
-kX
-kX
-kX
-aW
-aW
-aW
-aW
-YV
-Hb
-cr
-Hb
-aW
-aW
-aW
-"}
-(3,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-cr
-Hb
-Hb
-NY
-Zd
-Vt
-Ul
-TA
-Eg
-NG
-kX
-aW
-aW
-aW
-aW
-Hb
-Hb
-Hb
-hr
-Hb
-lu
-aW
-"}
-(4,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-fd
-Vt
-HV
-Ul
-WH
-hp
-oo
-kX
-aW
-aW
-aW
-aW
-Hb
-Hb
-aW
-To
-Hb
-Hb
-aW
-"}
-(5,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-fd
-Vt
-xI
-Ul
-DH
-LI
-CT
-kX
-aW
-Hb
-aW
-zi
-Hb
-Hb
-aW
-lu
-Hb
-xg
-aW
-"}
-(6,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-kX
-kX
-kX
-kX
-kX
-WH
-Iz
-kX
-aW
-cr
-cr
-Hb
-zi
-Hb
-aW
-zi
-Hb
-cr
-aW
-"}
-(7,1,1) = {"
-aW
-aW
-aW
-kX
-kX
-kX
-kX
-kX
-aW
-aW
-xg
-Hb
-Hb
-Hb
-zi
-kX
-iu
-kX
-kX
-Hb
-Hb
-cr
-Hb
-Hb
-Hb
-aW
-sE
-lu
-cr
-hr
-"}
-(8,1,1) = {"
-aW
-aW
-aW
-kX
-te
-xN
-VX
-Gc
-xI
-aW
-aW
-kX
-kX
-NY
-kX
-kX
-kD
-oR
-kX
-Hb
-zi
-cr
-Hb
-Hb
-aW
-aW
-sE
-zi
-Hb
-To
-"}
-(9,1,1) = {"
-aW
-aW
-aW
-kX
-Vt
-Eg
-LI
-Vt
-xI
-aW
-aW
-kX
-Sf
-zy
-Jt
-LB
-BL
-mn
-hg
-Hb
-Fh
-cr
-Hb
-aW
-aW
-aW
-Hb
-Hb
-Hb
-lu
-"}
-(10,1,1) = {"
-aW
-aW
-aW
-kX
-Il
-Yx
-TL
-Zf
-fK
-xI
-aW
-kX
-Zf
-Vt
-lA
-Da
-tf
-pf
-hg
-YV
-Hb
-Hb
-aW
-aW
-aW
-aW
-xg
-cr
-lu
-aW
-"}
-(11,1,1) = {"
-aW
-aW
-aW
-kX
-kX
-kX
-kX
-kX
-xI
-xI
-aW
-kX
-kX
-kX
-kX
-kX
-ae
-Eg
-kX
-aW
-Hb
-Hb
-aW
-aW
-aW
-Hb
-Hb
-Hb
-To
-aW
-"}
-(12,1,1) = {"
-aW
-aW
-aW
-Hb
-cr
-aW
-aW
-aW
-aW
-xI
-YX
-YX
-YX
-YX
-YX
-YX
-kX
-Ge
-kX
-aW
-Hb
-Hb
-cr
-Hb
-hr
-Hb
-lu
-Hb
-hr
-aW
-"}
-(13,1,1) = {"
-aW
-aW
-aW
-Hb
-cr
-aW
-aW
-aW
-YX
-YX
-YX
-hO
-YX
-uG
-YX
-uG
-uG
-YX
-kX
-aW
-Hb
-zi
-cr
-Hb
-To
-Hb
-To
-Hb
-aW
-aW
-"}
-(14,1,1) = {"
-aW
-aW
-aW
-zi
-cr
-aW
-aW
-aW
-MI
-YX
-YX
-YX
-DX
-Ql
-Nt
-si
-Tx
-YX
-aW
-cr
-Hb
-hA
-cr
-Hb
-hr
-YV
-hr
-aW
-aW
-aW
-"}
-(15,1,1) = {"
-aW
-aW
-aW
-cr
-cr
-aW
-aW
-MI
-YX
-YX
-YX
-YX
-YX
-nF
-Gl
-hT
-MI
-YX
-CI
-cr
-lu
-Hb
-Hb
-NR
-cr
-Hb
-aW
-aW
-aW
-aW
-"}
-(16,1,1) = {"
-aW
-aW
-Hb
-cr
-zi
-aW
-aW
-GK
-Ux
-YX
-Pm
-kX
-kX
-kX
-kX
-Pm
-YX
-MI
-YX
-aW
-YV
-aW
-lu
-Hb
-cr
-Hb
-Hb
-Hb
-aW
-aW
-"}
-(17,1,1) = {"
-aW
-aW
-Hb
-cr
-ht
-aW
-CI
-YX
-MI
-kX
-kX
-kX
-dz
-dz
-kX
-kX
-kX
-YX
-YX
-nG
-aW
-aW
-lu
-Hb
-Hb
-Hb
-Hb
-Hb
-Hb
-aW
-"}
-(18,1,1) = {"
-aW
-aW
-zi
-cr
-Hb
-aW
-YX
-MI
-MI
-kX
-CL
-Bw
-Bw
-gH
-Bw
-CL
-kX
-Pm
-MI
-MI
-aW
-aW
-kX
-aW
-aW
-Hb
-cr
-cr
-vi
-aW
-"}
-(19,1,1) = {"
-aW
-aW
-Hb
-cr
-Hb
-aW
-YX
-bB
-kX
-kX
-ct
-Bw
-GU
-GU
-Bw
-WH
-kX
-kX
-YX
-MI
-mM
-kX
-kX
-kX
-Hb
-hA
-Ex
-cr
-Hb
-aW
-"}
-(20,1,1) = {"
-aW
-aW
-qD
-cr
-Hb
-aW
-YX
-YX
-WH
-WH
-WH
-GU
-Sd
-Tw
-GU
-WH
-WH
-kX
-YX
-YX
-rP
-WH
-WH
-XD
-zi
-Hb
-jn
-cr
-Hb
-aW
-"}
-(21,1,1) = {"
-aW
-aW
-Hb
-cr
-Hb
-aW
-YX
-YX
-WH
-WH
-WH
-GU
-Yc
-Cl
-GU
-WH
-WH
-kX
-YX
-YX
-Yy
-WH
-WH
-mo
-Hb
-Ex
-Hb
-Ex
-Hb
-aW
-"}
-(22,1,1) = {"
-aW
-aW
-Hb
-cr
-Hb
-aW
-YX
-Pm
-kX
-kX
-ct
-Bw
-GU
-GU
-Bw
-WH
-kX
-kX
-uG
-LC
-YZ
-kX
-kX
-kX
-Ex
-xK
-Ex
-cr
-zi
-aW
-"}
-(23,1,1) = {"
-aW
-aW
-zi
-cr
-Hb
-aW
-YX
-MI
-DX
-kX
-CL
-Bw
-Bw
-gH
-Bw
-CL
-kX
-Pm
-uG
-YX
-aW
-aW
-kX
-zi
-hA
-Hb
-Hb
-cr
-Hb
-aW
-"}
-(24,1,1) = {"
-aW
-aW
-Hb
-cr
-cr
-aW
-Ux
-MI
-MI
-kX
-kX
-kX
-dz
-dz
-kX
-kX
-kX
-YX
-YX
-GK
-aW
-lu
-aW
-jn
-Hb
-NR
-cr
-cr
-Hb
-aW
-"}
-(25,1,1) = {"
-aW
-aW
-aW
-Hb
-cr
-Hb
-aW
-YX
-Ux
-YX
-Pm
-kX
-kX
-kX
-kX
-Pm
-YX
-YX
-nG
-aW
-aW
-lu
-aW
-aW
-Pu
-cr
-cr
-Hb
-aW
-aW
-"}
-(26,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Tx
-Tx
-YX
-YX
-YX
-JK
-YX
-YX
-Tx
-YX
-DX
-Ux
-aW
-cr
-aW
-aW
-Hb
-Hb
-Hb
-aW
-aW
-aW
-aW
-"}
-(27,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Tx
-YX
-YX
-wh
-CS
-Ql
-YX
-DX
-YX
-YX
-aW
-aW
-cr
-zi
-Hb
-cr
-Hb
-Hb
-Hb
-Hb
-Hb
-aW
-"}
-(28,1,1) = {"
-aW
-aW
-aW
-aW
-WH
-WH
-WH
-WH
-YX
-YX
-YX
-Yh
-Qm
-YX
-nG
-vH
-YX
-Tx
-aW
-YV
-aW
-hR
-xK
-cr
-Hb
-Hb
-zi
-Hb
-Hb
-aW
-"}
-(29,1,1) = {"
-aW
-aW
-aW
-WH
-WH
-WH
-WH
-LA
-WH
-WH
-YX
-GK
-YX
-YX
-YX
-GK
-VS
-rw
-uv
-lu
-aW
-aW
-Hb
-aW
-aW
-xg
-Hb
-Hb
-Hb
-Hb
-"}
-(30,1,1) = {"
-aW
-kX
-WH
-Br
-kX
-Br
-fB
-OA
-VB
-kX
-kX
-aW
-aW
-kX
-kX
-kX
-kX
-jU
-MM
-jU
-kX
-aW
-aW
-aW
-aW
-Hb
-Hb
-cr
-Hb
-Hb
-"}
-(31,1,1) = {"
-aW
-cH
-cH
-cH
-WH
-WH
-WH
-VB
-WH
-Br
-kX
-aW
-aW
-kX
-Xq
-vR
-Kl
-uv
-rw
-bv
-kX
-aW
-aW
-aW
-aW
-Hb
-Hb
-cr
-zi
-Hb
-"}
-(32,1,1) = {"
-aW
-WH
-jy
-ib
-WH
-WH
-WH
-XL
-WH
-qm
-kX
-aW
-aW
-kX
-xQ
-ql
-Pb
-Kt
-Ya
-fz
-kX
-aW
-aW
-aW
-aW
-aW
-cr
-cr
-Hb
-Hb
-"}
-(33,1,1) = {"
-aW
-Br
-ib
-ib
-WH
-WH
-fB
-Qk
-WH
-Aw
-kX
-Hb
-aW
-kX
-kX
-NY
-kX
-kQ
-vR
-xu
-kX
-aW
-aW
-aW
-aW
-aW
-Hb
-Hb
-Hb
-Hb
-"}
-(34,1,1) = {"
-aW
-WH
-Ps
-Al
-WH
-WH
-WH
-VB
-WH
-Uu
-kX
-Hb
-aW
-Hb
-Hb
-zi
-kX
-yr
-vR
-Sj
-kX
-aW
-aW
-aW
-aW
-aW
-Hb
-Ex
-Hb
-aW
-"}
-(35,1,1) = {"
-aW
-aW
-WH
-WH
-WH
-WH
-WH
-Qk
-qS
-AN
-kX
-Hb
-Hb
-zi
-Hb
-Hb
-NY
-JM
-vR
-qC
-kX
-aW
-aW
-aW
-aW
-Hb
-Ex
-zi
-Hb
-aW
-"}
-(36,1,1) = {"
-aW
-kX
-aW
-Br
-kX
-Br
-fB
-wk
-WH
-Ly
-kX
-Hb
-Hb
-Hb
-Hb
-Hb
-fd
-IE
-LR
-aS
-kX
-aW
-aW
-aW
-aW
-Hb
-xg
-Hb
-Hb
-aW
-"}
-(37,1,1) = {"
-aW
-aW
-cH
-cH
-WH
-WH
-WH
-VB
-WH
-wd
-kX
-aW
-Hb
-Hb
-Hb
-zi
-fd
-xV
-Yg
-xu
-kX
-aW
-aW
-aW
-aW
-zi
-cr
-Hb
-aW
-aW
-"}
-(38,1,1) = {"
-aW
-aW
-aW
-WH
-Br
-nf
-fB
-bq
-WH
-Br
-aW
-HI
-aW
-Hb
-Hb
-Hb
-kX
-fd
-kX
-kX
-kX
-aW
-aW
-Hb
-Hb
-cr
-cr
-Hb
-aW
-aW
-"}
-(39,1,1) = {"
-aW
-aW
-aW
-WH
-kX
-kX
-kX
-kX
-kX
-aW
-HI
-aW
-aW
-aW
-Hb
-aW
-aW
-VI
-aW
-aW
-aW
-Hb
-vi
-Hb
-cr
-cr
-Hb
-aW
-aW
-aW
-"}
-(40,1,1) = {"
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-aW
-Hb
-zi
-Hb
-Hb
-aW
-aW
-aW
-aW
-"}
diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index 77c280d07e90..1afed51826aa 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -811,10 +811,10 @@
/area/overmap_encounter/planetoid/jungle/explored)
"fJ" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/dark,
/area/overmap_encounter/planetoid/jungle/explored)
"fL" = (
@@ -2699,7 +2699,7 @@
/area/overmap_encounter/planetoid/jungle/explored)
"sK" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/grimy,
/area/ruin/jungle/starport)
"sN" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
index d40ca2c82b27..de6005c0e366 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm
@@ -167,7 +167,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"bH" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/carpet/nanoweave/beige,
@@ -192,7 +192,9 @@
/area/overmap_encounter/planetoid/jungle/explored)
"bU" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
/obj/machinery/light_switch{
pixel_y = 21;
pixel_x = -10
@@ -1026,14 +1028,10 @@
pixel_y = 32
},
/obj/structure/closet/secure_closet/freezer/wall/directional/west,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/condiment/enzyme{
pixel_x = -8;
pixel_y = 5
@@ -1342,7 +1340,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/jungle/cavecrew/security)
"pB" = (
@@ -1369,7 +1367,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 10
},
-/obj/item/gun/ballistic/shotgun/automatic/combat{
+/obj/item/gun/ballistic/shotgun/automatic/m11{
pixel_y = 5
},
/obj/item/gun/ballistic/revolver/ashhand{
@@ -1750,9 +1748,9 @@
pixel_y = -5
},
/obj/item/ammo_casing/a4570,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
/obj/item/ammo_box/magazine/illestren_a850r,
/obj/item/ammo_box/magazine/illestren_a850r,
/turf/open/floor/plasteel/tech,
@@ -2223,7 +2221,7 @@
/area/ruin/jungle/cavecrew/bridge)
"Be" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/turf/open/floor/carpet/red_gold,
/area/ruin/jungle/cavecrew/dormitories)
@@ -2412,7 +2410,7 @@
pixel_y = -8;
pixel_x = 5
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/red,
/turf/open/floor/wood,
/area/ruin/jungle/cavecrew/dormitories)
"Dh" = (
@@ -3930,9 +3928,9 @@
/obj/item/clothing/under/frontiersmen,
/obj/item/clothing/under/frontiersmen,
/obj/item/clothing/under/frontiersmen,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
@@ -4078,7 +4076,7 @@
"WQ" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/closet/crate/secure/loot,
-/obj/item/storage/box/inteqmaid{
+/obj/item/storage/box/maid{
pixel_x = -5;
pixel_y = 3
},
diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
index aab9b566f78e..4d17f130e1ae 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
@@ -1090,7 +1090,7 @@
/obj/item/radio,
/obj/item/radio,
/obj/item/clothing/under/color/jumpskirt/darkblue,
-/obj/item/clothing/under/dress/skirt/blue,
+/obj/item/clothing/under/dress/skirt/color/blue,
/obj/effect/turf_decal/corner/opaque/black{
icon_state = "siding_line";
dir = 10
@@ -1516,7 +1516,7 @@
},
/obj/item/radio,
/obj/item/radio,
-/obj/item/clothing/under/dress/skirt/blue,
+/obj/item/clothing/under/dress/skirt/color/blue,
/obj/item/clothing/under/color/darkblue,
/obj/effect/turf_decal/corner/opaque/black{
icon_state = "siding_line";
@@ -3050,7 +3050,7 @@
/obj/item/clothing/under/rank/security/officer/blueshirt,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/shoes/jackboots,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/machinery/light/small/broken/directional/north,
/obj/effect/turf_decal/corner/transparent/bar/three_quarters{
dir = 4
diff --git a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
index 75b7e390c540..18f5be7e1c74 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
@@ -939,26 +939,6 @@
/obj/effect/turf_decal/siding/wideplating/dark,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
-"oI" = (
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 6
- },
-/obj/effect/turf_decal/corner/opaque/green{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner{
- dir = 4
- },
-/obj/structure/table_frame,
-/obj/item/shard{
- icon_state = "small";
- pixel_x = -2;
- pixel_y = 11
- },
-/obj/effect/gibspawner/human,
-/obj/item/ammo_box/magazine/skm_545_39,
-/turf/open/floor/plasteel/tech,
-/area/ship/science)
"oJ" = (
/obj/effect/turf_decal/corner/opaque/blue{
dir = 4
@@ -1149,6 +1129,16 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/science)
+"rX" = (
+/obj/effect/turf_decal/corner/opaque/mauve{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/mauve{
+ dir = 1
+ },
+/obj/effect/spawner/random/vending/snack,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
"sc" = (
/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
dir = 6
@@ -1588,6 +1578,11 @@
},
/turf/open/floor/plasteel/white,
/area/ship/science/storage)
+"zU" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/grass,
+/area/overmap_encounter/planetoid/jungle/explored)
"Av" = (
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 5
@@ -2101,16 +2096,6 @@
},
/turf/open/floor/plasteel/white,
/area/ship/science)
-"Ib" = (
-/obj/effect/turf_decal/corner/opaque/mauve{
- dir = 10
- },
-/obj/effect/turf_decal/corner/opaque/mauve{
- dir = 1
- },
-/obj/machinery/vending/snack/random,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/office)
"Ie" = (
/obj/structure/railing{
dir = 6
@@ -2438,12 +2423,6 @@
},
/turf/open/floor/plasteel/white,
/area/ship/science/storage)
-"MB" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/effect/decal/cleanable/blood/splatter,
-/obj/item/weldingtool/experimental,
-/turf/open/floor/grass,
-/area/overmap_encounter/planetoid/jungle/explored)
"MF" = (
/obj/effect/turf_decal/corner/opaque/green{
dir = 9
@@ -2755,6 +2734,26 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
+"QO" = (
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 1
+ },
+/obj/structure/window/reinforced/spawner{
+ dir = 4
+ },
+/obj/structure/table_frame,
+/obj/item/shard{
+ icon_state = "small";
+ pixel_x = -2;
+ pixel_y = 11
+ },
+/obj/effect/gibspawner/human,
+/obj/item/ammo_box/magazine/skm_46_30,
+/turf/open/floor/plasteel/tech,
+/area/ship/science)
"QY" = (
/turf/open/floor/plasteel/tech,
/area/ship/medical)
@@ -3172,7 +3171,7 @@
"VL" = (
/obj/structure/closet/cabinet,
/obj/item/hatchet/wooden,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/gun/ballistic/revolver/viper,
/turf/open/floor/wood,
/area/ship/bridge)
@@ -3647,7 +3646,7 @@ nr
Zq
NT
RV
-Ib
+rX
Zq
ar
kP
@@ -3940,7 +3939,7 @@ Sh
fC
SQ
Cv
-MB
+zU
jl
Wo
Av
@@ -4239,7 +4238,7 @@ Er
RG
nx
ve
-oI
+QO
Rm
wQ
Bc
diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
index 47455933ec16..44d3379822b3 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -292,8 +292,9 @@
/obj/effect/turf_decal/techfloor{
dir = 5
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 9
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 4
},
/turf/open/floor/pod/light,
/area/ruin/jungle/paradise/med)
@@ -685,7 +686,7 @@
/turf/open/floor/plating/grass/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"ei" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle/dark,
/area/overmap_encounter/planetoid/cave/explored)
"el" = (
@@ -989,7 +990,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/obj/structure/railing{
color = "#A47449";
@@ -1446,7 +1447,7 @@
dir = 4;
layer = 3.9
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/cable/yellow{
icon_state = "1-9"
},
@@ -3204,7 +3205,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/cable/yellow{
icon_state = "0-5"
},
@@ -4344,11 +4345,11 @@
/obj/effect/turf_decal/techfloor/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/jungle/paradise/cargo)
"AT" = (
@@ -5764,9 +5765,9 @@
/obj/structure/cable/yellow{
icon_state = "1-6"
},
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
@@ -7185,7 +7186,7 @@
/obj/structure/bed{
icon_state = "dirty_mattress"
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood/walnut,
/area/ruin/jungle/paradise/dorms)
"UC" = (
@@ -7411,7 +7412,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"VV" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"VW" = (
diff --git a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
index 2eba13537777..60d24171ad0f 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_syndicate.dmm
@@ -662,7 +662,7 @@
/obj/item/storage/box/donkpockets/donkpocketteriyaki,
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets/donkpocketberry,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort)
"ve" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
index 8cc99b4a591a..934f0ffe01ef 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm
@@ -77,7 +77,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
dir = 4
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/listening_post)
"cm" = (
@@ -186,9 +186,7 @@
"dJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/siding/wood{
- dir = 2
- },
+/obj/effect/turf_decal/siding/wood,
/turf/open/floor/carpet/nanoweave/red,
/area/ruin/unpowered/listening_post/commons)
"dM" = (
@@ -298,9 +296,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
@@ -464,9 +460,7 @@
/turf/open/floor/carpet/nanoweave/red,
/area/ruin/unpowered/listening_post/commons)
"hA" = (
-/obj/structure/cable{
- icon_state = "0-1"
- },
+/obj/structure/cable,
/obj/machinery/power/terminal{
dir = 1
},
@@ -727,12 +721,12 @@
/area/ruin/unpowered/listening_post/operations)
"na" = (
/obj/structure/table/reinforced,
-/obj/machinery/fax{
- pixel_y = 7
- },
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
+/obj/machinery/fax/ruin{
+ pixel_y = 6
+ },
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/operations)
"nc" = (
@@ -1116,7 +1110,7 @@
/area/ruin/unpowered/listening_post)
"te" = (
/obj/item/gun/ballistic/automatic/smg/cobra{
- spawnwithmagazine = 0
+ default_ammo_type = 0
},
/obj/item/ammo_box/magazine/m45_cobra{
start_empty = 1
@@ -1238,7 +1232,9 @@
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/commons)
"vJ" = (
-/obj/machinery/suit_storage_unit/mining/eva,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate,
+/obj/item/clothing/head/helmet/space/syndicate,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/unpowered/listening_post)
"vR" = (
@@ -1763,19 +1759,17 @@
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/operations)
"FW" = (
-/obj/structure/cable{
- icon_state = "0-1"
- },
+/obj/structure/cable,
/obj/machinery/power/smes/engineering,
/turf/open/floor/plating,
/area/ruin/unpowered/listening_post/engineering)
"Gy" = (
-/obj/machinery/computer/telecomms/monitor{
- dir = 8
- },
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
},
+/obj/machinery/computer/telecomms/server{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/operations)
"GB" = (
@@ -2039,7 +2033,7 @@
/area/ruin/unpowered/listening_post/engineering)
"MZ" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/sign/poster/official/high_class_martini{
pixel_y = 32
},
@@ -2124,8 +2118,8 @@
/area/ruin/unpowered/listening_post/commons)
"Om" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/listening_post/canteen)
"On" = (
@@ -2199,9 +2193,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 8
@@ -2246,7 +2238,7 @@
icon_state = "trimline";
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 10
},
@@ -2471,9 +2463,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
index 4d63ae26b5bb..9863d5913d09 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
@@ -92,7 +92,7 @@
name = "armory locker";
req_one_access_txt = "1"
},
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
/turf/open/floor/mineral/plastitanium,
/area/ruin/unpowered/crashed_starwalker)
"bL" = (
@@ -942,7 +942,7 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/crate/secure/gear,
-/obj/item/ammo_box/c10mm/surplus,
+/obj/item/storage/box/ammo/c10mm_surplus,
/obj/item/weaponcrafting/stock,
/obj/item/weaponcrafting/stock{
pixel_x = -6
@@ -1243,7 +1243,7 @@
pixel_x = 6;
pixel_y = 5
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_y = 6
},
/turf/open/floor/plasteel/dark,
@@ -2003,7 +2003,7 @@
req_one_access_txt = "1"
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
pixel_y = 6
},
@@ -2024,7 +2024,6 @@
/turf/open/floor/engine/hull/interior,
/area/overmap_encounter/planetoid/lava/explored)
"Hl" = (
-/obj/structure/statue/sandstone/assistant,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/contraband/random{
pixel_y = -32
@@ -2380,7 +2379,6 @@
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_starwalker)
"Mk" = (
-/obj/structure/statue/sandstone/assistant,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/pod/light,
@@ -2417,7 +2415,7 @@
pixel_x = -26
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/pod/light,
/area/ruin/unpowered/crashed_starwalker)
"MO" = (
@@ -2449,7 +2447,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit,
/area/ruin/unpowered/crashed_starwalker)
"MX" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/railing{
dir = 4
},
@@ -2482,7 +2480,7 @@
icon_state = "gib3-old";
pixel_x = -6
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/yellow{
+/obj/item/melee/energy/sword/saber/pirate/yellow{
pixel_x = -5;
pixel_y = 16
},
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
index da7751618d04..8af11782c7fd 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
@@ -49,7 +49,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"m" = (
/obj/structure/table,
-/obj/item/soulstone/anybody,
+/obj/item/storage/belt/chameleon,
/obj/item/toy/plush/lizardplushie,
/obj/machinery/light/broken/directional/north,
/obj/structure/window/reinforced/spawner,
@@ -189,7 +189,7 @@
"O" = (
/obj/effect/mob_spawn/human/corpse/damaged,
/obj/item/clothing/shoes/jackboots,
-/obj/item/clothing/under/color/khaki/buster,
+/obj/item/clothing/glasses/welding/ghostbuster,
/obj/item/clothing/glasses/welding/ghostbuster,
/obj/effect/decal/cleanable/blood,
/turf/open/floor/mineral/plastitanium/red,
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
index 92fa7dfb9203..7626a3ff9a6b 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm
@@ -883,7 +883,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"zb" = (
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner{
- loot = list(/obj/item/melee/transforming/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon);
+ loot = list(/obj/item/melee/cleaving_saw,/obj/item/gun/energy/kinetic_accelerator,/obj/item/keycard/gatedrop/lavacanyon)
},
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/cave/explored)
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
index fda16098a148..579d58a4c09f 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
@@ -164,8 +164,8 @@
/area/ruin/lavaland/factory/manager_office)
"bE" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
/obj/item/storage/bag/trash,
/obj/item/reagent_containers/glass/bucket,
/obj/item/mop,
@@ -216,7 +216,7 @@
"cm" = (
/obj/structure/table/wood,
/obj/machinery/light/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/wood,
/area/ruin/lavaland/factory/adminstrative)
"co" = (
@@ -341,7 +341,7 @@
/area/ruin/lavaland/factory/warehouse)
"dc" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
@@ -641,7 +641,7 @@
},
/obj/item/modular_computer/laptop,
/obj/item/stack/arcadeticket,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"go" = (
@@ -1224,7 +1224,7 @@
"lR" = (
/obj/effect/decal/cleanable/blood/gibs/core,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/stamp/qm{
+/obj/item/stamp/nanotrasen/ns/supply{
pixel_x = 7;
pixel_y = 10
},
@@ -1506,7 +1506,7 @@
},
/obj/item/storage/wallet/random,
/obj/item/instrument/guitar,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"oh" = (
@@ -1887,7 +1887,7 @@
/obj/item/poster/random_contraband,
/obj/item/toy/eightball,
/obj/item/toy/cards/deck/tarot,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"rh" = (
@@ -2155,6 +2155,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/stormtrooper,
/turf/open/floor/plasteel/dark,
/area/ruin/lavaland/factory/dorms)
"tN" = (
@@ -2286,7 +2287,7 @@
/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
/obj/item/lighter/greyscale,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"ve" = (
@@ -2716,7 +2717,7 @@
/obj/item/ammo_box/magazine/smgm9mm{
start_empty = 1
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber,
/turf/open/floor/plasteel/dark,
/area/ruin/lavaland/factory/dorms)
"zC" = (
@@ -2984,7 +2985,7 @@
/obj/machinery/light/directional/west,
/obj/item/melee/knife/hunting,
/obj/item/clothing/suit/hooded/cloak/goliath,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"CW" = (
@@ -3148,18 +3149,18 @@
/obj/effect/turf_decal/corner/opaque/ntblue{
dir = 1
},
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"EP" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
@@ -3532,7 +3533,7 @@
/obj/structure/flippedtable{
dir = 4
},
-/obj/item/reagent_containers/food/drinks/bottle/molotov,
+/obj/item/reagent_containers/food/drinks/molotov/full,
/obj/item/lighter/greyscale{
pixel_x = -8;
pixel_y = -7
@@ -4061,11 +4062,11 @@
/area/overmap_encounter/planetoid/cave/explored)
"Or" = (
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -4193,9 +4194,8 @@
"Pv" = (
/obj/structure/table/reinforced,
/obj/machinery/recharger,
-/obj/item/stamp/hos{
- pixel_x = 10;
- pixel_y = -8
+/obj/item/stamp/nanotrasen/vigilitas{
+ pixel_x = 11
},
/obj/effect/turf_decal/corner/opaque/red/border{
dir = 10
@@ -4524,7 +4524,7 @@
/obj/item/pen/fountain/captain{
pixel_x = 5
},
-/obj/item/stamp/captain{
+/obj/item/stamp/nanotrasen/captain{
pixel_x = -8
},
/turf/open/floor/carpet/blue,
@@ -4944,9 +4944,9 @@
/obj/effect/turf_decal/corner/opaque/bar,
/obj/structure/closet/crate/bin,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plasteel,
/area/ruin/lavaland/factory/dorms)
"Xn" = (
@@ -5077,7 +5077,7 @@
/area/overmap_encounter/planetoid/lava/explored)
"YJ" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth,
/obj/effect/turf_decal/corner/opaque/ntblue,
/obj/effect/turf_decal/corner/opaque/ntblue{
@@ -6370,7 +6370,7 @@ LP
vE
DB
Cc
-KX
+yQ
Gn
hv
JO
@@ -6424,7 +6424,7 @@ vE
EU
Vw
Id
-KX
+yQ
PR
KX
PR
@@ -6478,7 +6478,7 @@ ab
vQ
LL
Kg
-KX
+yQ
Gw
KX
Gw
@@ -6532,7 +6532,7 @@ yQ
yQ
yQ
yQ
-KX
+yQ
KX
KX
KX
diff --git a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm b/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm
deleted file mode 100644
index 7c864f829fda..000000000000
--- a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm
+++ /dev/null
@@ -1,471 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/template_noop,
-/area/template_noop)
-"t" = (
-/turf/open/floor/grass/fairy/reebe,
-/area/overmap_encounter/planetoid/reebe)
-"u" = (
-/obj/structure/flora/tree/jungle{
- icon = 'icons/obj/flora/chapeltree.dmi';
- icon_state = "churchtree";
- pixel_x = -16;
- pixel_y = 0
- },
-/turf/open/floor/grass/fairy/reebe,
-/area/overmap_encounter/planetoid/reebe)
-"x" = (
-/mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal,
-/turf/open/floor/grass/fairy/reebe,
-/area/overmap_encounter/planetoid/reebe)
-"N" = (
-/turf/closed/mineral/random/reebe,
-/area/ruin/reebe)
-"R" = (
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon,
-/turf/open/floor/grass/fairy/reebe,
-/area/ruin/reebe)
-"X" = (
-/turf/closed/mineral/random/reebe,
-/area/overmap_encounter/planetoid/reebe)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-t
-t
-t
-a
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-t
-t
-t
-t
-a
-a
-N
-u
-t
-t
-N
-N
-t
-t
-t
-t
-a
-a
-"}
-(3,1,1) = {"
-a
-t
-N
-t
-N
-x
-t
-t
-t
-N
-N
-t
-t
-t
-t
-N
-N
-t
-a
-a
-"}
-(4,1,1) = {"
-a
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-a
-"}
-(5,1,1) = {"
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-u
-a
-a
-"}
-(6,1,1) = {"
-a
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-t
-t
-a
-"}
-(7,1,1) = {"
-a
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(8,1,1) = {"
-a
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(9,1,1) = {"
-a
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(10,1,1) = {"
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(11,1,1) = {"
-t
-u
-t
-N
-N
-N
-N
-N
-N
-R
-N
-N
-N
-N
-N
-N
-N
-t
-t
-a
-"}
-(12,1,1) = {"
-t
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(13,1,1) = {"
-t
-N
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-t
-a
-"}
-(14,1,1) = {"
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-a
-"}
-(15,1,1) = {"
-a
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-t
-a
-"}
-(16,1,1) = {"
-t
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(17,1,1) = {"
-t
-t
-t
-t
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-N
-t
-a
-"}
-(18,1,1) = {"
-a
-a
-a
-t
-N
-N
-N
-N
-N
-N
-N
-t
-t
-t
-t
-N
-N
-t
-t
-a
-"}
-(19,1,1) = {"
-a
-a
-a
-t
-t
-t
-t
-t
-t
-t
-t
-t
-N
-X
-u
-t
-t
-t
-a
-a
-"}
-(20,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-t
-t
-t
-a
-a
-a
-a
-a
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
index ef9240170e41..3eeb093aa53f 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
@@ -96,7 +96,6 @@
req_access_txt = "3"
},
/obj/item/gun/energy/e_gun/hos,
-/obj/item/clothing/mask/gas/sechailer,
/obj/item/clothing/shoes/cowboy/black,
/obj/item/storage/belt/military,
/obj/item/clothing/suit/armor/vest/leather,
@@ -106,10 +105,11 @@
/obj/item/clothing/under/rank/security/head_of_security/alt/skirt,
/obj/item/clothing/under/rank/security/head_of_security/nt,
/obj/item/clothing/under/rank/security/head_of_security/nt/skirt,
+/obj/item/clothing/mask/gas/vigilitas,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
"by" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel,
@@ -214,7 +214,7 @@
/area/ruin/rockplanet/nanotrasen)
"db" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
@@ -566,8 +566,8 @@
"jb" = (
/obj/structure/bed,
/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
+ color = "#808080";
+ dir = 2
},
/obj/effect/decal/cleanable/vomit,
/obj/effect/decal/cleanable/blood/old,
@@ -944,8 +944,8 @@
"oO" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/wallframe/light_fixture{
- pixel_y = -14;
- pixel_x = 10
+ pixel_x = 10;
+ pixel_y = -14
},
/turf/open/floor/plating{
icon_state = "panelscorched"
@@ -960,21 +960,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"pj" = (
/obj/structure/table/reinforced,
-/obj/item/slime_extract/grey{
- pixel_x = -4;
- pixel_y = -1
- },
-/obj/item/slime_extract/grey{
- pixel_x = 8
- },
-/obj/item/slime_extract/grey,
-/obj/item/slime_extract/grey,
-/obj/item/slime_extract/green{
- pixel_x = 4;
- pixel_y = -6
- },
/obj/structure/window/reinforced,
-/obj/item/slime_scanner,
/turf/open/floor/engine,
/area/ruin/rockplanet/nanotrasen)
"pl" = (
@@ -1199,8 +1185,8 @@
pixel_y = 5
},
/obj/item/trash/sosjerky{
- pixel_y = 8;
- pixel_x = -2
+ pixel_x = -2;
+ pixel_y = 8
},
/turf/open/floor/plasteel/dark,
/area/ruin/rockplanet/nanotrasen)
@@ -1318,7 +1304,7 @@
pixel_x = -9;
pixel_y = 3
},
-/obj/item/stamp/hos{
+/obj/item/stamp/nanotrasen/vigilitas/security{
pixel_x = -9;
pixel_y = 9
},
@@ -1362,8 +1348,8 @@
pixel_x = -32
},
/obj/effect/turf_decal/industrial/warning{
- dir = 1;
- color = "#808080"
+ color = "#808080";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1565,7 +1551,7 @@
/obj/structure/railing{
dir = 4
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
"Ap" = (
@@ -1629,8 +1615,8 @@
"Bl" = (
/obj/structure/bed,
/obj/effect/turf_decal/industrial/warning{
- dir = 1;
- color = "#808080"
+ color = "#808080";
+ dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
@@ -1713,7 +1699,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"Cx" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/dim/directional/east,
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
@@ -2153,8 +2139,8 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
+ color = "#808080";
+ dir = 2
},
/turf/open/floor/plasteel,
/area/ruin/rockplanet/nanotrasen)
@@ -2201,7 +2187,7 @@
pixel_x = 7;
pixel_y = 3
},
-/obj/item/stamp/rd{
+/obj/item/stamp/nanotrasen/science{
pixel_x = -6;
pixel_y = 12
},
@@ -2507,7 +2493,7 @@
/area/ruin/rockplanet/nanotrasen)
"Rm" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/dim/directional/east,
/turf/open/floor/carpet/black,
/area/ruin/rockplanet/nanotrasen)
@@ -2745,7 +2731,7 @@
/area/ruin/rockplanet/nanotrasen)
"WY" = (
/obj/structure/frame/computer{
- dir = 1;
+ dir = 1
},
/obj/effect/turf_decal/corner/opaque/red/diagonal,
/turf/open/floor/plasteel/tech/techmaint,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
index 2fd3caa4c42f..da6979d140a8 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm
@@ -50,24 +50,24 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table/glass,
/obj/item/reagent_containers/condiment/sugar{
- pixel_y = 13;
+ layer = 2.8;
pixel_x = -2;
- layer = 2.8
+ pixel_y = 13
},
/obj/item/stock_parts/micro_laser{
- pixel_y = 16;
+ layer = 2.8;
pixel_x = 6;
- layer = 2.8
+ pixel_y = 16
},
/obj/machinery/reagentgrinder,
/obj/item/stock_parts/scanning_module{
+ layer = 2.8;
pixel_x = -6;
- pixel_y = 6;
- layer = 2.8
+ pixel_y = 6
},
/obj/item/reagent_containers/condiment/enzyme{
- pixel_y = 10;
- pixel_x = 10
+ pixel_x = 10;
+ pixel_y = 10
},
/turf/open/floor/plating/rockplanet/lit,
/area/ruin/rockplanet/distillery)
@@ -93,6 +93,11 @@
},
/turf/open/floor/pod,
/area/ruin/rockplanet/distillery/office)
+"aS" = (
+/obj/effect/spawner/random/vending/cola,
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
"ba" = (
/obj/structure/chair/office,
/obj/effect/turf_decal/spline/fancy/opaque/white{
@@ -147,9 +152,9 @@
dir = 9
},
/obj/effect/decal/cleanable/crayon{
+ color = "#0094FF";
icon_state = "f";
- pixel_x = 6;
- color = "#0094FF"
+ pixel_x = 6
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
@@ -171,8 +176,8 @@
},
/obj/machinery/atmospherics/components/binary/pump/on{
dir = 4;
- target_pressure = 500;
- name = "Air to Distro"
+ name = "Air to Distro";
+ target_pressure = 500
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned/brushed,
@@ -196,9 +201,9 @@
},
/obj/effect/turf_decal/techfloor,
/obj/machinery/light_switch{
+ dir = 8;
pixel_x = 22;
- pixel_y = 5;
- dir = 8
+ pixel_y = 5
},
/obj/effect/decal/cleanable/generic,
/obj/effect/decal/cleanable/dirt/dust,
@@ -275,6 +280,14 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/pod,
/area/ruin/rockplanet/distillery/office)
+"cu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4;
+ filter_types = list("co2","bz","water_vapor","freon","tritium","n20");
+ widenet = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
"cw" = (
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4
@@ -400,11 +413,6 @@
/obj/structure/flora/ash/cacti,
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
-"dZ" = (
-/obj/machinery/vending/cola/random,
-/obj/effect/turf_decal/spline/fancy/opaque/white,
-/turf/open/floor/plasteel/patterned/brushed,
-/area/ruin/rockplanet/distillery/crew)
"ed" = (
/turf/closed/wall/rust,
/area/ruin/rockplanet/distillery)
@@ -448,13 +456,13 @@
/area/ruin/rockplanet/distillery/crew)
"fl" = (
/obj/structure/reagent_dispensers/cooking_oil{
- name = "moonshine vat";
desc = "A huge metal vat with a tap on the front. Filled with moonshine.";
+ name = "moonshine vat";
reagent_id = /datum/reagent/consumable/ethanol/moonshine
},
/obj/structure/fermenting_barrel/distiller{
- pixel_y = -14;
- density = 0
+ density = 0;
+ pixel_y = -14
},
/turf/open/floor/pod/rockplanet,
/area/ruin/rockplanet/distillery)
@@ -475,9 +483,9 @@
dir = 8;
id = "frontier_door";
name = "Door Lock";
+ normaldoorcontrol = 1;
pixel_x = 23;
pixel_y = -2;
- normaldoorcontrol = 1;
specialfunctions = 4
},
/turf/open/floor/plasteel/stairs{
@@ -497,6 +505,18 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"fG" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/distillery/office)
"fJ" = (
/obj/structure/catwalk/over,
/obj/machinery/light/small/broken/directional/west,
@@ -588,21 +608,21 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/ammo_box/magazine/m9mm_rattlesnake{
- pixel_y = 6;
+ layer = 3.1;
pixel_x = 12;
- layer = 3.1
+ pixel_y = 6
},
/obj/item/ammo_box/magazine/m9mm_rattlesnake{
- pixel_y = 6;
+ layer = 3.1;
pixel_x = 6;
- start_empty = 1;
- layer = 3.1
- },
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
+ pixel_y = 6;
+ start_empty = 1
+ },
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/carpet,
/area/ruin/rockplanet/distillery/office)
"gM" = (
@@ -624,12 +644,12 @@
pixel_y = 4
},
/obj/item/electronics/firealarm{
- pixel_y = 6;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 6
},
/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{
- pixel_y = 6;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 6
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rockplanet/lit{
@@ -638,9 +658,9 @@
/area/ruin/rockplanet/distillery)
"gX" = (
/obj/structure/reagent_dispensers/beerkeg{
- reagent_id = /datum/reagent/consumable/ethanol/moonshine;
+ desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
name = "moonshine keg";
- desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers."
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine
},
/obj/effect/turf_decal/industrial/loading/white{
dir = 4
@@ -659,8 +679,8 @@
"hq" = (
/obj/structure/table/wood/reinforced,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 12
},
/obj/item/clothing/head/beret/sec/frontier{
pixel_x = -4
@@ -685,12 +705,12 @@
dir = 9
},
/obj/item/reagent_containers/food/snacks/chips{
- pixel_y = 4;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = 4
},
/obj/item/reagent_containers/food/drinks/beer{
- pixel_y = 8;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 8
},
/turf/open/floor/wood/rockplanet,
/area/ruin/rockplanet/distillery/saloon)
@@ -746,9 +766,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/distillery/office)
"ir" = (
-/obj/structure/cable/yellow{
- icon_state = "0-1"
- },
+/obj/structure/cable/yellow,
/obj/machinery/porta_turret/ship/weak,
/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
/area/ruin/rockplanet/distillery/office)
@@ -778,9 +796,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/machinery/power/smes/shuttle/micro/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/micro/precharged,
/obj/machinery/door/poddoor/shutters/preopen{
id = "pod_window"
},
@@ -811,6 +827,15 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
+"jG" = (
+/obj/structure/curtain/cloth/grey,
+/obj/structure/bed{
+ dir = 8;
+ icon_state = "dirty_mattress"
+ },
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
"jI" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/chair/sofa/brown/corpo/right/directional/west,
@@ -848,18 +873,9 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
/obj/effect/decal/cleanable/ash,
/obj/item/cigbutt{
- pixel_y = 3;
- pixel_x = 6
- },
-/turf/open/floor/wood,
-/area/ruin/rockplanet/distillery/crew)
-"kd" = (
-/obj/structure/curtain/cloth/grey,
-/obj/structure/bed{
- dir = 8;
- icon_state = "dirty_mattress"
+ pixel_x = 6;
+ pixel_y = 3
},
-/obj/item/bedsheet/dorms,
/turf/open/floor/wood,
/area/ruin/rockplanet/distillery/crew)
"kn" = (
@@ -884,10 +900,10 @@
/area/ruin/rockplanet/distillery/crew)
"ky" = (
/obj/structure/flora/ausbushes/sparsegrass/hell{
- name = "dead grass";
desc = "A sparse patch of grass without color.";
+ light_power = 1;
light_range = 0;
- light_power = 1
+ name = "dead grass"
},
/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
@@ -917,6 +933,11 @@
},
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
+"kQ" = (
+/obj/effect/spawner/random/vending/snack,
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
"kT" = (
/obj/effect/turf_decal/spline/fancy/opaque/white,
/obj/effect/turf_decal/trimline/opaque/neutral/filled/line{
@@ -1051,9 +1072,9 @@
pixel_x = -4
},
/obj/item/pushbroom{
- pixel_y = -12;
+ layer = 3.9;
pixel_x = 5;
- layer = 3.9
+ pixel_y = -12
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/siding/wood{
@@ -1100,9 +1121,7 @@
/turf/open/floor/pod/rockplanet,
/area/ruin/rockplanet/distillery/shuttle)
"mK" = (
-/turf/open/floor/plasteel/stairs/wood{
- color = "#5B3E1D"
- },
+/turf/open/floor/plasteel/stairs/wood,
/area/ruin/rockplanet/distillery/saloon)
"mX" = (
/obj/effect/turf_decal/siding/wood{
@@ -1129,8 +1148,8 @@
pixel_y = 3
},
/obj/item/stock_parts/manipulator{
- pixel_y = 5;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 5
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 8
@@ -1147,10 +1166,10 @@
},
/obj/machinery/button/door{
dir = 4;
- pixel_y = 6;
- pixel_x = -22;
+ id = "engi_window";
name = "Window Shutter";
- id = "engi_window"
+ pixel_x = -22;
+ pixel_y = 6
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/binary/volume_pump/on/layer2{
@@ -1251,12 +1270,12 @@
/obj/structure/catwalk/over,
/obj/structure/closet/crate/hydroponics,
/obj/item/reagent_containers/condiment/enzyme{
- pixel_y = 8;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 8
},
/obj/item/reagent_containers/condiment/enzyme{
- pixel_y = 8;
- pixel_x = -8
+ pixel_x = -8;
+ pixel_y = 8
},
/obj/item/reagent_containers/condiment/enzyme{
pixel_y = 8
@@ -1351,8 +1370,8 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/paper/crumpled/muddy/fluff/distillery{
- name = "note";
- default_raw_text = "Scored this from an SRM ship passing through the sector. Handy if anything happens to our current still."
+ default_raw_text = "Scored this from an SRM ship passing through the sector. Handy if anything happens to our current still.";
+ name = "note"
},
/turf/open/floor/plating/rockplanet/lit{
icon_state = "panelscorched"
@@ -1383,12 +1402,12 @@
dir = 5
},
/obj/item/stamp{
- pixel_y = 16;
- pixel_x = 5
+ pixel_x = 5;
+ pixel_y = 16
},
/obj/item/stamp/denied{
- pixel_y = 16;
- pixel_x = -5
+ pixel_x = -5;
+ pixel_y = 16
},
/obj/item/kirbyplants{
icon_state = "plant-11";
@@ -1399,8 +1418,8 @@
/area/ruin/rockplanet/distillery/office)
"qe" = (
/obj/structure/reagent_dispensers/water_cooler{
- pixel_y = 6;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/wood{
@@ -1566,14 +1585,6 @@
},
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/saloon)
-"sm" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 4;
- filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
- widenet = 1
- },
-/turf/open/floor/plasteel/patterned/brushed,
-/area/ruin/rockplanet/distillery/crew)
"sx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 8
@@ -1610,17 +1621,6 @@
icon_state = "wood-broken2"
},
/area/ruin/rockplanet/distillery/saloon)
-"sQ" = (
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/turf/open/floor/plasteel/patterned/brushed/rockplanet,
-/area/ruin/rockplanet/distillery/crew)
"tc" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
@@ -1646,12 +1646,12 @@
pixel_y = -1
},
/obj/item/reagent_containers/glass/beaker{
- pixel_x = -5;
- list_reagents = list(/datum/reagent/oxygen = 50)
+ list_reagents = list(/datum/reagent/oxygen = 50);
+ pixel_x = -5
},
/obj/item/reagent_containers/glass/beaker{
- pixel_y = 12;
- list_reagents = list(/datum/reagent/carbon = 50)
+ list_reagents = list(/datum/reagent/carbon = 50);
+ pixel_y = 12
},
/obj/item/reagent_containers/syringe{
pixel_y = 6
@@ -1695,8 +1695,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 10
+ pixel_x = 10;
+ pixel_y = 12
},
/obj/item/newspaper{
pixel_x = -4;
@@ -1852,8 +1852,8 @@
req_one_access_txt = "10"
},
/obj/structure/closet/wall/red/directional/west{
- secure = 1;
- locked = 1
+ locked = 1;
+ secure = 1
},
/obj/item/storage/toolbox/emergency/shuttle/electric,
/obj/item/ammo_box/a44roum_speedloader,
@@ -1884,8 +1884,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table/glass,
/obj/item/seeds/corn{
- pixel_y = 6;
- pixel_x = -2
+ pixel_x = -2;
+ pixel_y = 6
},
/obj/item/seeds/corn{
pixel_y = 6
@@ -1894,12 +1894,12 @@
pixel_y = 6
},
/obj/item/reagent_containers/food/snacks/grown/corn{
- pixel_y = -2;
- pixel_x = 3
+ pixel_x = 3;
+ pixel_y = -2
},
/obj/item/reagent_containers/food/snacks/grown/corn{
- pixel_y = 3;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 3
},
/turf/open/floor/plating/rockplanet/lit{
icon_state = "panelscorched"
@@ -2033,19 +2033,19 @@
"xc" = (
/obj/structure/table/wood/reinforced,
/obj/item/paper_bin{
- pixel_y = 8;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 8
},
/obj/item/pen{
- pixel_y = 8;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 8
},
/obj/item/hand_labeler{
pixel_y = -4
},
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 12
},
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery)
@@ -2109,8 +2109,8 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/simple_animal/hostile/netherworld/migo{
- name = "Dog";
- faction = list("Frontiersmen")
+ faction = list("Frontiersmen");
+ name = "Dog"
},
/obj/structure/bed/dogbed,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
@@ -2141,14 +2141,14 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/rack,
/obj/item/reagent_containers/condiment/sugar{
- pixel_y = 13;
+ layer = 2.8;
pixel_x = -2;
- layer = 2.8
+ pixel_y = 13
},
/obj/item/reagent_containers/condiment/sugar{
- pixel_y = 7;
+ layer = 2.8;
pixel_x = -2;
- layer = 2.8
+ pixel_y = 7
},
/obj/item/wrench{
pixel_y = 4
@@ -2178,18 +2178,6 @@
/obj/machinery/hydroponics/constructable,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery)
-"yL" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/pod,
-/area/ruin/rockplanet/distillery/office)
"yO" = (
/obj/effect/turf_decal/siding/white{
dir = 9
@@ -2422,9 +2410,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/white{
dir = 9
},
-/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner{
- dir = 2
- },
+/obj/effect/turf_decal/trimline/opaque/neutral/filled/corner,
/turf/open/floor/plasteel/patterned/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Bn" = (
@@ -2488,27 +2474,12 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/rockplanet,
/area/ruin/rockplanet/distillery/saloon)
-"BT" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/retro/radio{
- pixel_y = -32
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1;
- filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
- widenet = 1
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken4"
- },
-/area/ruin/rockplanet/distillery/crew)
"Ch" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/table/glass,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 12
},
/obj/item/clipboard{
pixel_x = -4;
@@ -2567,9 +2538,9 @@
"CL" = (
/obj/structure/fluff/glowshroom,
/obj/machinery/button/door{
- pixel_y = 26;
+ id = "dist_cargo";
name = "Cargo Door";
- id = "dist_cargo"
+ pixel_y = 26
},
/turf/open/floor/plating/rockplanet/lit,
/area/ruin/rockplanet/distillery)
@@ -2616,7 +2587,7 @@
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery)
"CW" = (
-/obj/machinery/fax/admin/frontiersmen,
+/obj/machinery/fax/ruin,
/obj/structure/table/wood/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 5
@@ -2652,9 +2623,7 @@
/turf/open/floor/pod,
/area/ruin/rockplanet/distillery/crew)
"DX" = (
-/obj/structure/cable{
- icon_state = "0-1"
- },
+/obj/structure/cable,
/obj/structure/cable/yellow{
icon_state = "1-10"
},
@@ -2689,8 +2658,8 @@
layer = 2.7
},
/obj/item/reagent_containers/food/drinks/beer{
- pixel_y = 8;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 8
},
/obj/item/reagent_containers/food/drinks/mug/coco{
pixel_x = -6;
@@ -2732,14 +2701,24 @@
dir = 6
},
/obj/effect/decal/cleanable/crayon{
+ color = "#FF7742";
icon_state = "skull";
- pixel_x = -16;
- color = "#FF7742"
+ pixel_x = -16
},
/obj/effect/decal/cleanable/garbage,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
+"Fe" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/fluff/glowshroom,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/distillery/crew)
"Fk" = (
/obj/machinery/light/floor,
/turf/open/floor/plating/rust/rockplanet/lit,
@@ -2800,12 +2779,12 @@
"FI" = (
/obj/structure/table/wood/reinforced,
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 12
},
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 14;
- pixel_x = -4
+ pixel_x = -4;
+ pixel_y = 14
},
/obj/item/newspaper{
pixel_x = -4
@@ -2909,6 +2888,23 @@
},
/turf/open/floor/plating/rockplanet/lit,
/area/ruin/rockplanet/distillery)
+"He" = (
+/obj/structure/closet/crate/bin,
+/obj/machinery/firealarm/directional/south{
+ buildstage = 0
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-5"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/spawner/random/maintenance/four,
+/turf/open/floor/wood/rockplanet{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/rockplanet/distillery)
"Hf" = (
/obj/structure/chair/comfy/shuttle{
dir = 4;
@@ -2920,26 +2916,26 @@
/obj/effect/turf_decal/industrial/traffic,
/obj/machinery/button/door{
dir = 4;
- pixel_y = -6;
- pixel_x = -22;
+ id = "pod_aft";
name = "Aft Door";
- id = "pod_aft"
+ pixel_x = -22;
+ pixel_y = -6
},
/obj/machinery/button/door{
dir = 4;
- pixel_x = -32;
+ id = "pod_window";
name = "Window Shutters";
- id = "pod_window"
+ pixel_x = -32
},
/obj/machinery/door/window/brigdoor/northleft{
req_one_access_txt = "10"
},
/obj/machinery/button/door{
dir = 4;
- pixel_y = 6;
- pixel_x = -22;
+ id = "pod_fore";
name = "Fore Door";
- id = "pod_fore"
+ pixel_x = -22;
+ pixel_y = 6
},
/obj/effect/decal/cleanable/oil,
/mob/living/simple_animal/hostile/human/frontier/ranged/internals,
@@ -3029,15 +3025,6 @@
icon_state = "wood-broken7"
},
/area/ruin/rockplanet/distillery/saloon)
-"Iz" = (
-/obj/structure/closet/crate,
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
-/turf/open/floor/plasteel/patterned/brushed/rockplanet,
-/area/ruin/rockplanet/distillery/crew)
"IA" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/turf_decal/siding/wood{
@@ -3082,11 +3069,11 @@
/obj/structure/closet/crate/secure/weapon{
name = "ammo crate"
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_x = -3
},
/obj/item/ammo_box/magazine/illestren_a850r,
-/obj/item/ammo_box/c9mm/ap,
+/obj/item/storage/box/ammo/c9mm_ap,
/obj/item/ammo_box/magazine/illestren_a850r,
/obj/item/ammo_box/magazine/co9mm{
start_empty = 1
@@ -3094,17 +3081,17 @@
/obj/item/ammo_box/magazine/co9mm{
start_empty = 1
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_x = 3
},
/obj/machinery/button/door{
+ dir = 4;
+ id = "frontier_armory";
name = "Armory Door Lock";
- pixel_y = -6;
- pixel_x = -22;
normaldoorcontrol = 1;
- specialfunctions = 4;
- id = "frontier_armory";
- dir = 4
+ pixel_x = -22;
+ pixel_y = -6;
+ specialfunctions = 4
},
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/office)
@@ -3123,6 +3110,20 @@
dir = 8
},
/area/ruin/rockplanet/distillery/saloon)
+"JA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ filter_types = list("co2","bz","water_vapor","freon","tritium","n20");
+ widenet = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 5
+ },
+/obj/structure/closet/crate/bin,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/broken/directional/east,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/distillery/crew)
"JC" = (
/obj/item/chair,
/obj/structure/railing{
@@ -3148,9 +3149,9 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"JN" = (
/obj/structure/flora/driftlog{
- pixel_y = -15;
+ layer = 2.8;
pixel_x = 9;
- layer = 2.8
+ pixel_y = -15
},
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
@@ -3197,28 +3198,28 @@
"Ka" = (
/obj/structure/reagent_dispensers/beerkeg{
anchored = 1;
- reagent_id = /datum/reagent/consumable/ethanol/moonshine;
- name = "moonshine keg";
desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ layer = 2.8;
+ name = "moonshine keg";
pixel_x = -8;
- layer = 2.8
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine
},
/obj/structure/reagent_dispensers/beerkeg{
anchored = 1;
- reagent_id = /datum/reagent/consumable/ethanol/moonshine;
- name = "moonshine keg";
desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ name = "moonshine keg";
pixel_x = 8;
- pixel_y = -2
+ pixel_y = -2;
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine
},
/obj/structure/reagent_dispensers/beerkeg{
anchored = 1;
- reagent_id = /datum/reagent/consumable/ethanol/moonshine;
- name = "moonshine keg";
desc = "A keg full of liver-shredding spirits brewed by amateur bootleggers.";
+ layer = 3;
+ name = "moonshine keg";
pixel_x = -4;
pixel_y = 14;
- layer = 3
+ reagent_id = /datum/reagent/consumable/ethanol/moonshine
},
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/turf_decal/spline/fancy/opaque/white{
@@ -3229,8 +3230,8 @@
"Kf" = (
/obj/structure/table/wood/reinforced,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
- pixel_y = 12;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 12
},
/obj/item/reagent_containers/food/drinks/drinkingglass{
pixel_x = -8;
@@ -3407,23 +3408,6 @@
/obj/machinery/light/small/broken/directional/east,
/turf/open/floor/wood/rockplanet,
/area/ruin/rockplanet/distillery/saloon)
-"MS" = (
-/obj/structure/closet/crate/bin,
-/obj/machinery/firealarm/directional/south{
- buildstage = 0
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/cable/yellow{
- icon_state = "1-5"
- },
-/obj/machinery/light/small/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/turf/open/floor/wood/rockplanet{
- icon_state = "wood-broken6"
- },
-/area/ruin/rockplanet/distillery)
"Nj" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -3461,8 +3445,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/cigbutt,
/obj/item/cigbutt{
- pixel_y = 8;
- pixel_x = 6
+ pixel_x = 6;
+ pixel_y = 8
},
/obj/item/reagent_containers/food/drinks/bottle/moonshine{
pixel_x = -6;
@@ -3496,10 +3480,10 @@
/area/ruin/rockplanet/distillery/crew)
"NE" = (
/obj/structure/flora/ausbushes/sparsegrass/hell{
- name = "dead grass";
desc = "A sparse patch of grass without color.";
+ light_power = 1;
light_range = 0;
- light_power = 1
+ name = "dead grass"
},
/obj/machinery/light/directional/north,
/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
@@ -3509,10 +3493,10 @@
dir = 1
},
/obj/machinery/computer/helm{
+ desc = "No way you're getting this thing off the ground.";
dir = 8;
layer = 3.3;
- name = "Locked Helm Console";
- desc = "No way you're getting this thing off the ground."
+ name = "Locked Helm Console"
},
/obj/effect/turf_decal/techfloor{
dir = 1
@@ -3581,22 +3565,13 @@
icon_state = "panelscorched"
},
/area/overmap_encounter/planetoid/rockplanet/explored)
-"Os" = (
-/obj/machinery/vending/snack/random{
- tilted = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/white,
-/turf/open/floor/plasteel/patterned/brushed,
-/area/ruin/rockplanet/distillery/crew)
"Ow" = (
/obj/structure/railing{
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable/yellow{
- icon_state = "0-1"
- },
+/obj/structure/cable/yellow,
/obj/machinery/light/small/directional/south,
/turf/open/floor/pod/rockplanet,
/area/ruin/rockplanet/distillery)
@@ -3670,9 +3645,7 @@
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/engineering)
"PI" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/electric,
/obj/structure/cable/yellow{
icon_state = "0-4"
},
@@ -3713,6 +3686,17 @@
},
/turf/open/floor/plasteel/patterned/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"PW" = (
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/closet/crate/freezer,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
"PZ" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
@@ -3752,6 +3736,21 @@
"QP" = (
/turf/closed/wall/r_wall/rust,
/area/ruin/rockplanet/distillery/engineering)
+"Rb" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/sign/poster/retro/radio{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1;
+ filter_types = list("co2","bz","water_vapor","freon","tritium","n20");
+ widenet = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/rockplanet/distillery/crew)
"Rd" = (
/obj/structure/cable{
icon_state = "5-8"
@@ -3775,8 +3774,8 @@
pixel_y = 4
},
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_y = 12;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 12
},
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/saloon)
@@ -3813,8 +3812,8 @@
dir = 1
},
/obj/item/trash/popcorn{
- pixel_y = 12;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = 12
},
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
@@ -3826,14 +3825,14 @@
dir = 5
},
/obj/effect/decal/cleanable/crayon{
+ color = "#0094FF";
icon_state = "k";
- pixel_x = -5;
- color = "#0094FF"
+ pixel_x = -5
},
/obj/effect/decal/cleanable/crayon{
+ color = "#0094FF";
icon_state = "u";
- pixel_x = -16;
- color = "#0094FF"
+ pixel_x = -16
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -3931,24 +3930,24 @@
/area/ruin/rockplanet/distillery/saloon)
"Ss" = (
/obj/structure/flora/driftlog{
- pixel_y = 2;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 2
},
/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Sx" = (
/obj/structure/table/wood/reinforced,
/obj/item/reagent_containers/food/drinks/bottle/moonshine{
- pixel_y = 6;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = 6
},
/obj/item/reagent_containers/food/drinks/bottle/moonshine{
- pixel_y = 2;
- pixel_x = -6
+ pixel_x = -6;
+ pixel_y = 2
},
/obj/item/reagent_containers/food/drinks/bottle/hooch{
- pixel_y = -4;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = -4
},
/obj/machinery/light/small/directional/west,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
@@ -3985,8 +3984,8 @@
"Td" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/chem_jug{
- pixel_y = 4;
- pixel_x = 5
+ pixel_x = 5;
+ pixel_y = 4
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/reagent_containers/glass/filter{
@@ -4178,30 +4177,6 @@
},
/turf/open/floor/pod/rockplanet,
/area/ruin/rockplanet/distillery/office)
-"Vf" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/fluff/glowshroom,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/wood,
-/area/ruin/rockplanet/distillery/crew)
-"Vg" = (
-/obj/effect/turf_decal/spline/fancy/opaque/white{
- dir = 5
- },
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- filter_types = list("co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
- widenet = 1
- },
-/obj/machinery/light/small/broken/directional/east,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plasteel/patterned/brushed,
-/area/ruin/rockplanet/distillery/crew)
"Vj" = (
/obj/effect/turf_decal/ntlogo,
/obj/effect/turf_decal/spline/fancy/opaque/white{
@@ -4362,6 +4337,15 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating/rust/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xc" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/effect/spawner/random/circuit/computer/common,
+/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/random/circuit/machine/common,
+/obj/effect/spawner/random/circuit/machine/common,
+/turf/open/floor/plasteel/patterned/brushed/rockplanet,
+/area/ruin/rockplanet/distillery/crew)
"Xf" = (
/obj/structure/cable/yellow{
icon_state = "1-6"
@@ -4398,12 +4382,12 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/button/door{
+ id = "frontier_armory";
name = "Armory Door Lock";
- pixel_y = 24;
- pixel_x = 6;
normaldoorcontrol = 1;
- specialfunctions = 4;
- id = "frontier_armory"
+ pixel_x = 6;
+ pixel_y = 24;
+ specialfunctions = 4
},
/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals,
/turf/open/floor/wood,
@@ -4441,8 +4425,8 @@
/obj/effect/turf_decal/siding/white/corner,
/obj/item/kirbyplants{
icon_state = "plant-25";
- pixel_y = 12;
- pixel_x = -2
+ pixel_x = -2;
+ pixel_y = 12
},
/obj/effect/decal/cleanable/glass,
/obj/effect/decal/cleanable/ash,
@@ -4532,9 +4516,9 @@
dir = 6
},
/obj/item/reagent_containers/food/snacks/deadmouse{
+ layer = 2.9;
pixel_x = 8;
- pixel_y = 6;
- layer = 2.9
+ pixel_y = 6
},
/obj/structure/chair/sofa/brown/old/corner/directional/west,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
@@ -4546,9 +4530,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/machinery/power/smes/shuttle/micro/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/micro/precharged,
/obj/machinery/door/poddoor/shutters/preopen{
id = "pod_window"
},
@@ -5136,7 +5118,7 @@ kO
Rw
zk
tP
-sm
+cu
RR
wU
ji
@@ -5226,7 +5208,7 @@ uS
zJ
AY
xT
-Vg
+JA
jF
RR
RR
@@ -5371,7 +5353,7 @@ aB
tB
eG
sx
-kd
+jG
RR
Tl
Ru
@@ -5529,7 +5511,7 @@ rH
mq
qu
uU
-MS
+He
rH
wX
mX
@@ -5560,7 +5542,7 @@ jM
mk
lE
RR
-Iz
+Xc
rT
yS
NE
@@ -5602,12 +5584,12 @@ KA
lL
mv
eh
-yL
+fG
jM
VO
-Vf
+Fe
zk
-sQ
+PW
rT
yS
qj
@@ -5746,7 +5728,7 @@ UI
SV
jM
xN
-BT
+Rb
RR
zk
zk
@@ -5796,7 +5778,7 @@ LD
Rr
zk
tP
-sm
+cu
RR
NR
KV
@@ -5838,7 +5820,7 @@ Ja
ql
OV
RR
-dZ
+aS
Go
Gd
br
@@ -5885,7 +5867,7 @@ KA
cp
yW
RR
-Os
+kQ
eF
Ef
RR
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
index a86efe2e9744..421e199fffe3 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
@@ -1345,8 +1345,9 @@
pixel_x = -7;
pixel_y = 8
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 9
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -1862,10 +1863,7 @@
pixel_x = 5;
pixel_y = 7
},
-/obj/item/ammo_box/foambox/riot{
- pixel_x = -3;
- pixel_y = -3
- },
+/obj/item/storage/box/ammo/foam_darts/riot,
/obj/structure/cable{
icon_state = "4-8"
},
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_mining_installation.dmm b/_maps/RandomRuins/RockRuins/rockplanet_mining_installation.dmm
new file mode 100644
index 000000000000..b140787b25b7
--- /dev/null
+++ b/_maps/RandomRuins/RockRuins/rockplanet_mining_installation.dmm
@@ -0,0 +1,14210 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ac" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ag" = (
+/obj/item/emptysandbag,
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ai" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ak" = (
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"al" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"ao" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ap" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"at" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aw" = (
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"ay" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aA" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"aE" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = 6;
+ pixel_y = 11
+ },
+/obj/item/reagent_containers/food/snacks/meat/steak/chicken{
+ pixel_y = -2;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"aJ" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 4;
+ pixel_x = 5;
+ pixel_y = 6;
+ layer = 3.01
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -22;
+ pixel_x = 7;
+ name = "window shutter control";
+ id = "nsmine_off"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/mining_base/office)
+"aK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"aL" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aM" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/weather/rock/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aS" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"aV" = (
+/obj/machinery/door/airlock/external/glass{
+ name = "Armory"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"bc" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"bd" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/railing,
+/obj/structure/platform/corner{
+ dir = 8
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"bg" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/conveyor{
+ dir = 5;
+ id = "rock_mine_int"
+ },
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"bi" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bj" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor{
+ id = "nsmine2"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "mining_base"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"bl" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/trimline/opaque/vired/line,
+/obj/structure/cable,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"bo" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bt" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bx" = (
+/obj/structure/vein/classtwo,
+/obj/effect/turf_decal/box,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_two)
+"bC" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"bD" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/poddoor{
+ id = "nsmine2"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"bF" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bG" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Office Dome"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/office)
+"bH" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bJ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"bK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bL" = (
+/obj/structure/table,
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"bN" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/open,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"bP" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/platform/military,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bR" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bT" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"bX" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"bY" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ca" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/obj/item/shard,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"cf" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{
+ dir = 2
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"cg" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/machinery/deepfryer,
+/obj/item/radio/intercom/directional/east,
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ch" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ck" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cm" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cn" = (
+/obj/effect/turf_decal/nanotrasen/ns/top_right,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"co" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ct" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cu" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cv" = (
+/obj/structure/table,
+/obj/item/cutting_board{
+ anchored = 1;
+ pixel_y = 4
+ },
+/obj/item/melee/knife/kitchen{
+ pixel_x = 4;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/item/kitchen/rollingpin{
+ pixel_y = 7;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"cw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"cA" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/med)
+"cD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/external/glass{
+ dir = 1;
+ name = "Barracks"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"cF" = (
+/obj/structure/window/plasma/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"cG" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cI" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cJ" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cU" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"cW" = (
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/food/egg_smudge,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"da" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"de" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"df" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dh" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"di" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dk" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"dp" = (
+/obj/machinery/conveyor{
+ dir = 9;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"dq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_y = 30
+ },
+/obj/structure/rack,
+/obj/item/clothing/mask/gas{
+ pixel_x = -1;
+ pixel_y = -4
+ },
+/obj/item/clothing/mask/gas{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/clothing/mask/gas{
+ pixel_x = 6;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"dt" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/door/window,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"du" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/melee/space/stormtrooper,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dG" = (
+/obj/structure/table/wood,
+/obj/item/lighter{
+ pixel_y = 5;
+ pixel_x = -6
+ },
+/obj/item/storage/pill_bottle/dice{
+ pixel_y = -3
+ },
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"dJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"dK" = (
+/obj/structure/closet/secure_closet/engineering_electrical{
+ populate = 0
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 3;
+ pixel_y = -4
+ },
+/obj/item/multitool,
+/obj/item/multitool,
+/obj/item/stack/tape/industrial/electrical,
+/obj/item/stack/cable_coil/red,
+/obj/item/stack/cable_coil/red,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"dL" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 10;
+ pixel_x = 24
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"dM" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dO" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner/transparent/vired{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/armory)
+"dP" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dR" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/item/radio/intercom/table{
+ dir = 4;
+ pixel_x = 5;
+ pixel_y = -1
+ },
+/obj/item/radio/weather_monitor{
+ pixel_y = 10;
+ pixel_x = -10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"dS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/food/flour,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"dU" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dV" = (
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"dY" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"dZ" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/border,
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"ea" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/barricade/sandbags,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eb" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine_int"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"ec" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ee" = (
+/obj/structure/rack,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"ef" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/structure/sign/warning/gasmask{
+ pixel_x = 29
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"eg" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"es" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ew" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/refinery)
+"ex" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ey" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ez" = (
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"eB" = (
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_y = 5;
+ pixel_x = 24;
+ name = "blast door controls";
+ id = "nsmine2"
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 8;
+ pixel_y = -5;
+ pixel_x = 22;
+ id = "mining_base"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"eD" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eH" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eJ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"eV" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eY" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"fe" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 1
+ },
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"ff" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"fg" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fr" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet{
+ dir = 8
+ },
+/area/ruin/rockplanet/mining_base/refinery)
+"fA" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"fE" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 2;
+ pixel_y = -10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fF" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 4
+ },
+/obj/item/broken_missile,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fM" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fP" = (
+/obj/machinery/door/airlock/freezer{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"fQ" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/food/salt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"fT" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/trash/plate{
+ pixel_x = -8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"fV" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fW" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/engineering)
+"ga" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gc" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 3;
+ pixel_y = -4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"gg" = (
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 2;
+ id = "m1"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"gi" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/effect/turf_decal/industrial/traffic,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gj" = (
+/obj/structure/railing,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"gm" = (
+/obj/structure/table,
+/obj/item/screwdriver{
+ pixel_x = 9;
+ pixel_y = -4
+ },
+/obj/item/gun/energy/laser/empty_cell,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"gn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 1;
+ id = "m1"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"go" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"gs" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/obj/structure/marker_beacon,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gt" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gx" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end,
+/mob/living/simple_animal/hostile/human/syndicate/melee/space,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"gy" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"gz" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"gB" = (
+/obj/machinery/light/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ruin/rockplanet/mining_base/refinery)
+"gD" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/obj/machinery/washing_machine{
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gF" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ id = "nsmine_med"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/med)
+"gG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"gH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gJ" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gL" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gU" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"gW" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"gX" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hf" = (
+/obj/structure/rack,
+/obj/item/screwdriver{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/item/wrench{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"hi" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/nsorange/border,
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 4
+ },
+/obj/item/folder/syndicate{
+ pixel_y = 1;
+ pixel_x = -6
+ },
+/obj/item/folder/yellow{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"hk" = (
+/obj/item/shard,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"ho" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hp" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/weather/rock/corner,
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ht" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"hu" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"hA" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"hB" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"hG" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"hO" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/box,
+/obj/machinery/firealarm/directional/west,
+/obj/item/clothing/suit/hooded/wintercoat/security,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"hT" = (
+/obj/effect/turf_decal/nanotrasen/ns/top,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"hV" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/crew)
+"hX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"hZ" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ia" = (
+/obj/effect/turf_decal/nanotrasen/ns/bottom_left,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"id" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark/corner,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 7;
+ pixel_y = -9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/gun/energy/e_gun/nuclear{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"if" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ig" = (
+/obj/machinery/door/airlock{
+ dir = 2;
+ name = "Coordinator's Quarters"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"il" = (
+/obj/machinery/conveyor/inverted{
+ dir = 6;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"im" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"in" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ir" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 6;
+ pixel_x = -5
+ },
+/obj/structure/closet/wall/red/directional/west{
+ req_access_txt = "3"
+ },
+/obj/item/stock_parts/cell/gun,
+/obj/item/stock_parts/cell/gun,
+/obj/item/stock_parts/cell/gun,
+/obj/item/stock_parts/cell/gun,
+/obj/machinery/recharger{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"it" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"iu" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"iv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/structure/closet/crate/freezer,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/cans/sixbeer,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ix" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iB" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/transparent/orange/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"iJ" = (
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/rockplanet/mining_base/engineering)
+"iM" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"iN" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/melee/space,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iO" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iP" = (
+/obj/structure/platform{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"iZ" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ja" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/mecha/working/ripley/cargo{
+ pixel_y = 0;
+ name = "APLU 'Cherry Devil'"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"jb" = (
+/obj/machinery/conveyor{
+ dir = 9;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"jc" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -2;
+ pixel_y = 14
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"jg" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"jj" = (
+/obj/structure/railing,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"jl" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jq" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"js" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jv" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"jw" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"jx" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"jy" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"jF" = (
+/obj/structure/table,
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"jN" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jS" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jY" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"jZ" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"kf" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"kj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 8
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kn" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kp" = (
+/obj/effect/turf_decal/nanotrasen/ns/bottom_right,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"kt" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"ku" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/item/lighter{
+ pixel_y = -6;
+ pixel_x = -5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"kv" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/item/table_bell{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/obj/item/storage/ration/sausage_peppers_onions{
+ pixel_y = 8;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"kx" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 10
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"kC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"kD" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen{
+ pixel_y = 7
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"kE" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"kF" = (
+/obj/effect/turf_decal/siding{
+ dir = 5
+ },
+/obj/item/trash/plate{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"kH" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"kK" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"kO" = (
+/obj/machinery/conveyor{
+ dir = 2;
+ id = "rock_mine";
+ pixel_y = -1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"kQ" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"kX" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"kZ" = (
+/obj/machinery/door/poddoor{
+ id = "nsmine_two"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "mining_base_two"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"lc" = (
+/obj/structure/platform/military,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lf" = (
+/obj/structure/window/plasma/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"lg" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"lj" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ll" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"lm" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lo" = (
+/obj/structure/closet/secure_closet/freezer/fridge{
+ populate = 0
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/food/flour,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/saltshaker{
+ desc = "Of course it goes in the fridge."
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ desc = "Of course it goes in the fridge."
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ desc = "Of course it goes in the fridge."
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ desc = "Of course it goes in the fridge."
+ },
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/oliveoil,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"lp" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"lt" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/mining_base/office)
+"lw" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base)
+"ly" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lz" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lB" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"lE" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lF" = (
+/obj/effect/turf_decal/weather/rock/corner,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lI" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"lK" = (
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lM" = (
+/obj/machinery/computer/operating{
+ dir = 4;
+ pixel_x = -3
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/radio/intercom/directional/north{
+ pixel_x = -7
+ },
+/obj/machinery/button/door{
+ pixel_y = 23;
+ pixel_x = 9;
+ name = "window shutter control";
+ id = "nsmine_med"
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"lP" = (
+/obj/structure/bookcase,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"lR" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/structure/closet/crate,
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"lU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 5
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lX" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 13;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lY" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lZ" = (
+/obj/structure/closet/radiation{
+ populate = 0
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 6
+ },
+/obj/item/clothing/suit/radiation{
+ pixel_y = -4
+ },
+/obj/item/clothing/head/radiation{
+ pixel_y = 8
+ },
+/obj/item/storage/firstaid/radiation,
+/obj/item/geiger_counter,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"ma" = (
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"mc" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"mm" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mp" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mq" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 4
+ },
+/obj/structure/closet/crate/medical,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/item/clothing/suit/apron/surgical,
+/obj/item/clothing/head/nanotrasen/surgical/blue{
+ pixel_y = 6
+ },
+/obj/item/clothing/under/rank/medical/doctor,
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"mw" = (
+/obj/effect/turf_decal/trimline/opaque/vired/corner{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"mx" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_y = 9;
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"mz" = (
+/obj/structure/railing,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"mB" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mC" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/barricade/sandbags,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mN" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mP" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mT" = (
+/obj/machinery/door/airlock{
+ name = "Bathroom"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"mX" = (
+/obj/structure/platform,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"na" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/office)
+"nc" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"nd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"nf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ng" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"nh" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/med)
+"nn" = (
+/obj/structure/flora/grass/rockplanet,
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"nr" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"nt" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nA" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/transparent/orange,
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"nB" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/mini_energy_gun{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"nC" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/transparent/orange/diagonal,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"nD" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nJ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nK" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"nM" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"nQ" = (
+/obj/structure/rack,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"nR" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/hooded/wintercoat/security,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"nS" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"nW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"ob" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"og" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"oi" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ok" = (
+/obj/effect/turf_decal/trimline/opaque/vired/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"om" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"oo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"ot" = (
+/obj/machinery/mineral/unloading_machine,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_one)
+"ow" = (
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/obj/structure/table/wood,
+/obj/machinery/firealarm/directional/north,
+/obj/item/radio/old{
+ pixel_y = 11;
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"ox" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/rockplanet/mining_base/rig_one)
+"oy" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oz" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oD" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/corner/opaque/nsorange/half,
+/obj/machinery/turretid{
+ pixel_x = 26;
+ id = "m1"
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"oG" = (
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 10
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"oH" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"oI" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/suit_storage_unit/open,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"oN" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oO" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/nsorange/border,
+/obj/item/binoculars{
+ pixel_x = -2;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"oQ" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/obj/item/resonator,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"oS" = (
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/crew)
+"oX" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pa" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/item/tank/internals/oxygen{
+ pixel_x = 2;
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"pc" = (
+/obj/machinery/power/rtg,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"pd" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/armory)
+"pi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pn" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"po" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"pq" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"pr" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ps" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pu" = (
+/obj/structure/guncloset,
+/obj/effect/turf_decal/box,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"py" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pB" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ id = "nsmine_canteen";
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/canteen)
+"pE" = (
+/obj/structure/platform/military{
+ dir = 9
+ },
+/obj/structure/barricade/sandbags{
+ layer = 3.1
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pI" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pN" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"pO" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = 6;
+ pixel_y = 11
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = -11
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 4;
+ pixel_y = -11
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"pP" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/siding/white/corner,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"pQ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pS" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/food/flour,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"pT" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "gib1-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pX" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pY" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"qe" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qf" = (
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 1;
+ id = "m1"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"qo" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"qp" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qr" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "rock_mine_swap"
+ },
+/obj/structure/platform/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"qs" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qy" = (
+/obj/structure/window/reinforced/survival_pod{
+ dir = 8
+ },
+/obj/structure/bodycontainer/morgue{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/mining_base/med)
+"qC" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"qE" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "rock_mine_int"
+ },
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"qH" = (
+/obj/effect/turf_decal/industrial/radiation{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"qK" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"qN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"qP" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/office)
+"qR" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/filingcabinet/double/grey,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"qT" = (
+/obj/machinery/door/window/survival_pod,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/mining_base/med)
+"qU" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/item/shard,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"qV" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"qW" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/platform/military{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"qX" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"ra" = (
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rc" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/mob/living/simple_animal/hostile/human/syndicate/melee/space,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/ash,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"re" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/suit_storage_unit/open,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"rj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/obj/structure/bed/roller,
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"rk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rm" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rn" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rq" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rs" = (
+/obj/structure/dresser{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"ru" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/rockplanet/mining_base/refinery)
+"rx" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"rE" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/engineering)
+"rP" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"rQ" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rV" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"rY" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"sb" = (
+/obj/effect/turf_decal/weather/rock,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sc" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"se" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"sf" = (
+/obj/structure/platform/military{
+ dir = 1
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"sh" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Canteen"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"so" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sp" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"sr" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine_int"
+ },
+/obj/structure/platform{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"ss" = (
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/cave/explored)
+"su" = (
+/obj/effect/turf_decal/nanotrasen/ns/bottom_right,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sv" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"sw" = (
+/obj/effect/turf_decal/weather/rock,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sy" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_two)
+"sC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sI" = (
+/obj/effect/turf_decal/nanotrasen/ns/center_left,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sK" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sL" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"sN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Engineering Complex"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"sR" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"sT" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"sV" = (
+/obj/structure/chair/stool/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ta" = (
+/obj/effect/turf_decal/nanotrasen/ns/top,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"tg" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/ammo_casing/c57x39mm{
+ projectile_type = null;
+ icon_state = "rifle-steel-empty"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"th" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tp" = (
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tq" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"tr" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 6
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"ts" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"tu" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tw" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/clothing/suit/hooded/explorer,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"tz" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tA" = (
+/obj/machinery/conveyor{
+ dir = 2;
+ id = "rock_mine";
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"tB" = (
+/obj/structure/platform/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tD" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 1
+ },
+/obj/machinery/door/airlock/command,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/office)
+"tF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/obj/structure/railing,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"tH" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ pixel_y = 12;
+ pixel_x = -5
+ },
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/food/flour,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = 11;
+ name = "window shutter control";
+ id = "nsmine_canteen"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"tK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/sign/warning/coldtemp{
+ pixel_x = 29
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"tL" = (
+/obj/structure/platform/corner,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tP" = (
+/obj/machinery/mineral/processing_unit,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"tQ" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"tR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/stairs/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"tY" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"ub" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uh" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"uj" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military/corner{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uk" = (
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"um" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"up" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor7-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uu" = (
+/obj/structure/filingcabinet/double/grey,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/mining_base/office)
+"uv" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"uA" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uB" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/stairs/old{
+ dir = 8
+ },
+/area/ruin/rockplanet/mining_base/refinery)
+"uD" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"uJ" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"uQ" = (
+/obj/item/paper/crumpled{
+ pixel_x = -10;
+ pixel_y = -5
+ },
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/focus{
+ pixel_y = 30
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/mining_base/office)
+"uR" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uS" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uW" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"uX" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"vf" = (
+/obj/machinery/shower{
+ pixel_y = 18
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/curtain/bounty,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/noslip,
+/area/ruin/rockplanet/mining_base/crew)
+"vi" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vl" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Engineering Complex"
+ },
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"vp" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"vr" = (
+/obj/structure/window/plasma/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"vs" = (
+/obj/machinery/atmospherics/components/binary/temperature_gate{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"vA" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vB" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"vC" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_one)
+"vH" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"vI" = (
+/obj/effect/turf_decal/nanotrasen/ns/center_left,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"vK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"vS" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"wc" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"we" = (
+/obj/effect/radiation,
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"wf" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor2-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wm" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/obj/structure/sign/warning/gasmask{
+ pixel_x = 29
+ },
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"wt" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor5-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ww" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"wy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wz" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/closet/crate,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"wC" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor7-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wD" = (
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ req_access_txt = "1";
+ name = "Suit Storage"
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"wH" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"wI" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/end{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"wK" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Refinery Complex"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"wO" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"wS" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+ dir = 1
+ },
+/obj/machinery/fax/ruin{
+ pixel_y = 2;
+ pixel_x = -1
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"wT" = (
+/obj/machinery/vending/cigarette,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"wV" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/sign/warning/coldtemp{
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"wX" = (
+/obj/structure/railing,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/rockplanet{
+ dir = 8
+ },
+/area/ruin/rockplanet/mining_base/rig_one)
+"xc" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine_int"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"xd" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"xf" = (
+/obj/effect/turf_decal/nanotrasen/ns/center,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xj" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xl" = (
+/obj/structure/table/wood,
+/obj/machinery/fax/ruin{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"xm" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xn" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_x = 11
+ },
+/obj/structure/chair/office{
+ dir = 1;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/spray/pepper,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"xr" = (
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"xs" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"xv" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/outline/red,
+/turf/open/floor/engine/air,
+/area/ruin/rockplanet/mining_base/engineering)
+"xA" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/barricade/sandbags,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xC" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xF" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xH" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"xK" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"xL" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xO" = (
+/obj/effect/turf_decal/industrial/traffic,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"xP" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"xR" = (
+/obj/structure/table,
+/obj/machinery/door/window{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"xV" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/obj/machinery/door/airlock/atmos,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"xZ" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yg" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"yi" = (
+/obj/structure/platform{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/sign/warning/coldtemp{
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/light/small/directional/north,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"yo" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/small/directional/south,
+/obj/item/reagent_containers/food/snacks/chocolatebar{
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"ys" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 6
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yB" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 1;
+ pixel_y = -2
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor1-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yD" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/sign/nanotrasen/vigilitas{
+ pixel_y = -28
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"yF" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yG" = (
+/obj/structure/flora/ash/puce,
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yI" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yK" = (
+/obj/machinery/atmospherics/components/binary/pump/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"yN" = (
+/obj/structure/table/wood,
+/obj/structure/bedsheetbin,
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"yQ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/walk{
+ pixel_y = -30
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"yT" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zf" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"zj" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"zl" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Canteen"
+ },
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"zm" = (
+/obj/structure/platform,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"zo" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 0
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 4;
+ pixel_y = 0
+ },
+/obj/item/newspaper{
+ pixel_y = 15;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"zr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"zx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1,
+/obj/machinery/door/airlock/external/glass{
+ name = "Refinery Complex"
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"zz" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zC" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/item/gun/energy/laser/empty_cell,
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner/armored,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"zH" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"zK" = (
+/obj/structure/table/optable,
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"zL" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"zR" = (
+/obj/structure/chair/sofa/brown/right/directional/west,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"zT" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"zY" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"zZ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Aa" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ac" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/engineering)
+"Ah" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"Ak" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Al" = (
+/obj/item/broken_bottle,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"An" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
+ dir = 4;
+ pixel_x = 5;
+ pixel_y = -13
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/mining_base/office)
+"Ao" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Av" = (
+/obj/item/broken_bottle,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Aw" = (
+/obj/effect/decal/cleanable/glass,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Ay" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/sign/warning/coldtemp{
+ pixel_x = 29
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"AD" = (
+/obj/item/emptysandbag,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"AE" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"AF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_y = 30
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"AK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/sign/warning/coldtemp{
+ pixel_y = 30
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"AL" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"AN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/stormtrooper,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/engineering)
+"AX" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"AY" = (
+/obj/structure/platform{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ba" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bb" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Be" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/transparent/orange/diagonal,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"Bi" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"Bj" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Bl" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Bp" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bq" = (
+/obj/structure/table,
+/obj/machinery/conveyor_switch/oneway{
+ pixel_x = -1;
+ pixel_y = 4;
+ id = "rock_mine"
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Bu" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bv" = (
+/obj/effect/turf_decal/trimline/opaque/blue/end{
+ dir = 1
+ },
+/obj/item/stack/medical/gauze{
+ pixel_x = -10;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"BB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Medical Dome";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"BE" = (
+/obj/machinery/power/rtg,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"BG" = (
+/obj/effect/turf_decal/box,
+/obj/structure/tank_dispenser/oxygen,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"BH" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"BI" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BK" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"BL" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"BN" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"BO" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine_int"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "mining_base_two"
+ },
+/obj/machinery/door/poddoor{
+ id = "nsmine_two"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"BP" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"BQ" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"BT" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/corner{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"BV" = (
+/obj/structure/toilet{
+ pixel_y = 16
+ },
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/east,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"BW" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"BY" = (
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 8;
+ id = "m2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"BZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"Cd" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/med)
+"Ce" = (
+/turf/template_noop,
+/area/template_noop)
+"Cf" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Ci" = (
+/obj/machinery/door/airlock/engineering,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"Cm" = (
+/obj/item/emptysandbag,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cp" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ id = "nsmine_off";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/office)
+"Cr" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military/corner{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cx" = (
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 10
+ },
+/obj/structure/sign/poster/official/focus{
+ pixel_y = -30
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/fax/ruin{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Cy" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"CB" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CE" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/crew)
+"CF" = (
+/obj/effect/turf_decal/atmos/air{
+ dir = 4
+ },
+/turf/open/floor/engine/air,
+/area/ruin/rockplanet/mining_base/engineering)
+"CI" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CJ" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"CK" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CO" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"CS" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"CT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"CU" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/platform/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"CZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Engineering Complex"
+ },
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"Da" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Db" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dd" = (
+/obj/machinery/door/airlock/external{
+ name = "Armory"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/steeldecal/steel_decals_central1,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"De" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/engineering)
+"Dh" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/template_noop)
+"Di" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dm" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Canteen";
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/sealed,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Dn" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Do" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dq" = (
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/space_heater{
+ pixel_x = -12;
+ pixel_y = 9;
+ density = 0;
+ anchored = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Dt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/sign/nanotrasen/vigilitas{
+ pixel_y = -28
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/armory)
+"Du" = (
+/obj/structure/platform{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dx" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"DA" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/structure/platform/corner{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"DD" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/rockplanet/mining_base/refinery)
+"DE" = (
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Canteen"
+ },
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"DG" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"DI" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"DJ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/space,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DP" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"DQ" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/food/flour,
+/obj/machinery/light/directional/west,
+/obj/item/radio/old{
+ pixel_y = 11;
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"DS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"DT" = (
+/obj/structure/chair/sofa/brown/corner/directional/west,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"Ea" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ec" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/snacks/meat/steak/chicken{
+ pixel_y = -5;
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"En" = (
+/obj/structure/platform/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ep" = (
+/obj/structure/platform/military/corner,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Eq" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Es" = (
+/obj/structure/table,
+/obj/item/cutting_board{
+ anchored = 1;
+ pixel_y = 4
+ },
+/obj/item/melee/knife/butcher{
+ pixel_y = 4;
+ pixel_x = -1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor3-old"
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"Et" = (
+/obj/structure/platform{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ew" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 1;
+ pixel_y = -2
+ },
+/obj/item/ammo_casing/spent{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ex" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/obj/machinery/door/poddoor{
+ id = "nsmine2"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ey" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"EA" = (
+/obj/machinery/door/airlock{
+ name = "Showers";
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"EC" = (
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = 28
+ },
+/obj/structure/platform{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ED" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"EE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"EL" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military/corner,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"EP" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"EY" = (
+/obj/machinery/space_heater,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"EZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fc" = (
+/obj/structure/window/reinforced/survival_pod{
+ dir = 8
+ },
+/obj/structure/window/reinforced/survival_pod,
+/obj/structure/table,
+/obj/item/storage/box/bodybags{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/mining_base/med)
+"Fd" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fj" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fm" = (
+/obj/effect/turf_decal/nanotrasen/ns/bottom,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Fn" = (
+/obj/structure/platform/corner{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fo" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 9
+ },
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fq" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fr" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"Fx" = (
+/obj/structure/platform{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FB" = (
+/obj/effect/turf_decal/nanotrasen/ns/top_left,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FC" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"FD" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"FG" = (
+/obj/machinery/photocopier,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"FH" = (
+/obj/structure/platform{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FI" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FK" = (
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"FM" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"FO" = (
+/obj/structure/chair/sofa/brown/left/directional/north,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"FP" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Medical Dome"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"FY" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"FZ" = (
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ga" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ge" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Gf" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gj" = (
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Gl" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/office)
+"Gr" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Gx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"Gz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"GA" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GD" = (
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"GE" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"GH" = (
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"GI" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"GO" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ id = "nsmine_canteen";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/canteen)
+"GS" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"GU" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"GW" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Hb" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Hc" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hd" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"He" = (
+/obj/machinery/conveyor_switch{
+ name = "furnace switch";
+ pixel_y = 2;
+ pixel_x = 4;
+ id = "rock_mine_swap"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/machinery/conveyor_switch/oneway{
+ pixel_x = -13;
+ pixel_y = 1;
+ id = "rock_mine_int"
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Hf" = (
+/obj/structure/filingcabinet/double/grey{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/folder/documents,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"Hg" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hl" = (
+/obj/item/mine/pressure/explosive/live,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hp" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hr" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ht" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"HC" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"HD" = (
+/obj/item/paper/crumpled{
+ pixel_x = -9;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor1-old"
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_manager,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/mining_base/office)
+"HE" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HK" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HN" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"HQ" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_two)
+"HR" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HU" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/outline/red,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"HZ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/rockplanet/mining_base/engineering)
+"If" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"It" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"Iu" = (
+/obj/structure/platform{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Iw" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor2-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IC" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IE" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"IG" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"IK" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor2-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IP" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"IT" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"IU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2,
+/obj/effect/turf_decal/box,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"IV" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"IY" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"IZ" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 8
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"Jd" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/turretid{
+ pixel_y = -24;
+ id = "m2"
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Ji" = (
+/obj/machinery/photocopier,
+/obj/item/taperecorder/preset/mining_base{
+ pixel_x = 10;
+ pixel_y = -10
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"Jj" = (
+/turf/closed/mineral/random/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jk" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Jq" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Jr" = (
+/turf/open/floor/plasteel/stairs/rockplanet{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"Ju" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/rock/corner,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_x = 29
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/med)
+"JH" = (
+/obj/machinery/mineral/unloading_machine{
+ input_dir = 1;
+ output_dir = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_two)
+"JO" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"JS" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/obj/structure/marker_beacon,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"JT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"JV" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"JZ" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/flippedtable{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Ka" = (
+/turf/open/floor/plasteel/stairs/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Ke" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Kh" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kj" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Km" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ks" = (
+/obj/machinery/conveyor/inverted{
+ dir = 10;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Kt" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ku" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Ky" = (
+/obj/machinery/door/airlock/external{
+ name = "Barracks"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"KE" = (
+/obj/structure/rack,
+/obj/item/mining_scanner{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half,
+/obj/item/resonator{
+ pixel_x = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"KF" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KH" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/effect/decal/cleanable/food/flour,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"KI" = (
+/obj/item/decal_painter{
+ pixel_x = -7;
+ pixel_y = -8
+ },
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KJ" = (
+/obj/effect/turf_decal/trimline/opaque/blue/end,
+/obj/item/stack/medical/splint/ghetto{
+ pixel_y = -6;
+ pixel_x = -5
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"KL" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"KM" = (
+/obj/effect/turf_decal/weather/rock,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KN" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/ammo_casing/spent{
+ pixel_y = -9;
+ pixel_x = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KP" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"KQ" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"KY" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Ld" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lh" = (
+/obj/structure/closet/wall/chem/directional/south,
+/obj/item/towel,
+/obj/item/towel{
+ pixel_y = 9;
+ pixel_x = -3
+ },
+/obj/item/towel{
+ pixel_x = 11;
+ pixel_y = 2
+ },
+/obj/item/towel{
+ pixel_x = -6;
+ pixel_y = -5
+ },
+/obj/item/towel{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/towel{
+ pixel_x = 7;
+ pixel_y = -5
+ },
+/obj/item/soap/nanotrasen{
+ pixel_x = 3;
+ pixel_y = -9
+ },
+/obj/item/soap/nanotrasen,
+/obj/structure/sign/poster/official/no_erp{
+ pixel_x = 28
+ },
+/obj/item/razor,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"Ll" = (
+/obj/effect/turf_decal/weather/rock,
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ln" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lp" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/stock_parts/cell/gun/empty,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/obj/machinery/drill,
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lx" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"LA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"LO" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/platform/military/corner{
+ dir = 1
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"LQ" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LR" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/mining_base/office)
+"LV" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/nanotrasen/ns/top_right,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"LW" = (
+/obj/structure/rack,
+/obj/item/screwdriver{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/screwdriver{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/screwdriver{
+ pixel_x = -1;
+ pixel_y = -3
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"LX" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LY" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LZ" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/melee/space,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"Ma" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Mc" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/obj/machinery/washing_machine,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Md" = (
+/obj/effect/turf_decal/trimline/opaque/vired/line,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Mg" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/item/gun/energy/e_gun/hades{
+ spawn_no_ammo = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner/armored,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mi" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mj" = (
+/obj/machinery/conveyor/inverted{
+ dir = 6;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Mk" = (
+/obj/structure/platform{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Mo" = (
+/obj/structure/table/wood,
+/obj/item/tape/random{
+ pixel_y = 11;
+ pixel_x = -7
+ },
+/obj/item/tape/random{
+ pixel_x = 2
+ },
+/obj/item/tape/random{
+ pixel_x = -8;
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"Mt" = (
+/obj/structure/guncloset,
+/obj/effect/turf_decal/box,
+/obj/item/gun/energy/laser/empty_cell,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"MA" = (
+/obj/effect/radiation,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"MM" = (
+/obj/machinery/mineral/processing_unit_console{
+ pixel_y = 24;
+ machinedir = 2
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"MP" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/cans/sixbeer,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/food/flour,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"MQ" = (
+/obj/machinery/mineral/processing_unit,
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"MT" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"MU" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Na" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Nc" = (
+/obj/structure/sign/nanotrasen/ns{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"Nd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ng" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Nk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"No" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Canteen";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Ns" = (
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Recreation Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"Ny" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Nz" = (
+/obj/effect/turf_decal/nanotrasen/ns/center_right,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NA" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"NC" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NE" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external/glass{
+ dir = 4;
+ name = "Engineering Complex"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"NL" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/platform/military,
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"NP" = (
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/machinery/holopad/secure,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/ruin/rockplanet/mining_base/office)
+"NR" = (
+/obj/structure/chair/sofa/brown/directional/west,
+/obj/machinery/light/directional/east,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"NS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"NT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/rockplanet/mining_base/med)
+"NU" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NX" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Ob" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Oh" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Oo" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/transparent/orange/diagonal,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"Oq" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ot" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ov" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Oz" = (
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = -10
+ },
+/obj/structure/mirror{
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"OA" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/end,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"OB" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"OF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"OG" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"OI" = (
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"OJ" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"OL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/suit/hooded/wintercoat{
+ pixel_y = 9;
+ pixel_x = -3
+ },
+/obj/item/clothing/suit/hooded/wintercoat{
+ pixel_x = 9;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"ON" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"OR" = (
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 4;
+ id = "m2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"OX" = (
+/obj/structure/platform/military{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"OZ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Pb" = (
+/obj/effect/turf_decal/weather/rock/corner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Pc" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Canteen";
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Pg" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/crew)
+"Ph" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Pi" = (
+/obj/structure/sign/warning/radiation/rad_area{
+ pixel_y = 32
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-5"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-9"
+ },
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/radiation{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"Pj" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/canteen)
+"Pm" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Pu" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Pv" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/meat/steak/chicken{
+ pixel_y = 7;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"PA" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PD" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ruin/rockplanet/mining_base/rig_two)
+"PG" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/toy/plush/goatplushie/angry,
+/obj/item/bedsheet{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/crew)
+"PH" = (
+/obj/machinery/shower{
+ pixel_y = 18
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/east,
+/obj/structure/curtain/bounty,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/noslip,
+/area/ruin/rockplanet/mining_base/crew)
+"PM" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"PT" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"PZ" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -8
+ },
+/obj/item/storage/box/syringes{
+ pixel_x = 9;
+ pixel_y = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"Qa" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qb" = (
+/turf/closed/wall/mineral/titanium,
+/area/ruin/rockplanet/mining_base/crew)
+"Qd" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qg" = (
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/light/directional/west,
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Qi" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/siding/wideplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"Qk" = (
+/obj/structure/table,
+/obj/item/clipboard{
+ pixel_x = 5;
+ pixel_y = -3
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/border{
+ dir = 1
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ql" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qo" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/obj/structure/mopbucket,
+/obj/item/mop{
+ pixel_y = 7;
+ pixel_x = -5
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qq" = (
+/obj/structure/rack,
+/obj/item/geiger_counter,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"Qx" = (
+/obj/structure/closet/crate/freezer,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/obj/item/reagent_containers/food/drinks/soda_cans/sodawater,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"Qz" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"QC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{
+ dir = 4
+ },
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"QD" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/table,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/item/paper_bin{
+ pixel_y = 7;
+ pixel_x = -3
+ },
+/obj/item/pen{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"QE" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QF" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"QK" = (
+/obj/item/emptysandbag,
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QR" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"QT" = (
+/obj/structure/platform/military{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags{
+ layer = 3.1
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QU" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ra" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rb" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/obj/structure/marker_beacon,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rd" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Rg" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Rh" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ri" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 0;
+ pixel_x = 7
+ },
+/obj/item/pen{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/mining_base/office)
+"Rk" = (
+/obj/structure/toilet{
+ pixel_y = 16
+ },
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/west,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/crew)
+"Rm" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Rn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Rs" = (
+/obj/structure/closet/crate/trashcart/laundry,
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"Ru" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ry" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Rz" = (
+/obj/machinery/door/airlock/security{
+ req_access_txt = "1";
+ name = "Equipment Storage"
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/warning,
+/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"RD" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"RE" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RF" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"RG" = (
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"RI" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"RQ" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RR" = (
+/obj/item/broken_bottle,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"RW" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RX" = (
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RZ" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Sd" = (
+/obj/effect/turf_decal/nanotrasen/ns/center,
+/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/stormtrooper,
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Se" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Si" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/outline/blue,
+/turf/open/floor/engine/air,
+/area/ruin/rockplanet/mining_base/engineering)
+"Sl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/obey{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/crew)
+"Sm" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"So" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Sq" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sr" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ss" = (
+/obj/machinery/power/rtg,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/mining_base/engineering)
+"St" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sv" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Sw" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"Sx" = (
+/obj/structure/platform{
+ dir = 9
+ },
+/obj/structure/barricade/sandbags{
+ layer = 3.1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SA" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 4
+ },
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SE" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/bar/diagonal{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"SF" = (
+/obj/effect/turf_decal/trimline/opaque/vired/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"SH" = (
+/obj/effect/turf_decal/rechargefloor,
+/obj/structure/platform,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/rockplanet/mining_base/refinery)
+"SM" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/item/storage/backpack/duffelbag/engineering,
+/obj/item/clothing/under/rank/engineering/engineer/nt,
+/obj/item/storage/backpack/industrial,
+/obj/item/flashlight,
+/obj/item/clothing/mask/gas,
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/mining_base/engineering)
+"SN" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"SS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/office)
+"ST" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"SV" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"SX" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/mob/living/simple_animal/hostile/human/syndicate/melee/space,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ta" = (
+/obj/item/pushbroom{
+ pixel_x = 3;
+ pixel_y = -5
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"Tc" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tf" = (
+/obj/effect/turf_decal/industrial/radiation{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"Ti" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/rockplanet/mining_base/refinery)
+"Tk" = (
+/obj/structure/table,
+/obj/machinery/firealarm/directional/west,
+/obj/item/storage/firstaid/brute{
+ pixel_y = 7;
+ pixel_x = 2
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/rockplanet/mining_base/med)
+"Tn" = (
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/mining_base/canteen)
+"Tp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Tt" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Tu" = (
+/obj/effect/turf_decal/siding/wideplating/dark/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"Tv" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tw" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line,
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Tx" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 4
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TF" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 9
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TI" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"TJ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TN" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/arrow_ccw{
+ dir = 4
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"TU" = (
+/obj/effect/turf_decal/nanotrasen/ns/center_right,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"TV" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/weather/rock{
+ dir = 5
+ },
+/obj/structure/closet/crate/engineering,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"TW" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/railing,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ub" = (
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"Uc" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/flashlight,
+/obj/item/flashlight{
+ pixel_y = 9
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Ug" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Uh" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Uj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Uk" = (
+/obj/effect/turf_decal/siding/white,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"Ul" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Un" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Uv" = (
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ux" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"UA" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UJ" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/blood/innards,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"UV" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UW" = (
+/obj/structure/flora/grass/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"UX" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"UZ" = (
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = 28
+ },
+/obj/structure/platform{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vb" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/platform/military{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vd" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor5-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vh" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning,
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/firealarm/directional/west{
+ pixel_y = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -11;
+ pixel_x = -22;
+ name = "blast door controls";
+ id = "nsmine_two"
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ pixel_y = -2;
+ pixel_x = -20;
+ id = "mining_base_two"
+ },
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Vi" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/structure/platform/corner{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vl" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/sign/poster/official/miners{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/rockplanet/mining_base/crew)
+"Vm" = (
+/obj/effect/turf_decal/weather/rock,
+/obj/structure/marker_beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vp" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Vq" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/ammo_casing/c57x39mm{
+ projectile_type = null;
+ icon_state = "rifle-steel-empty";
+ pixel_x = -9;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vr" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vs" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Vw" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Vx" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3
+ },
+/obj/item/pen{
+ pixel_y = -4;
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"VC" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VE" = (
+/obj/machinery/conveyor{
+ dir = 2;
+ id = "rock_mine";
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"VG" = (
+/obj/effect/turf_decal/nanotrasen/ns/top_left,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"VJ" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"VK" = (
+/obj/machinery/conveyor/inverted{
+ dir = 10;
+ id = "rock_mine_int"
+ },
+/obj/structure/platform/corner{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"VM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/weather/rock{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/passive_vent{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"VT" = (
+/obj/machinery/conveyor{
+ dir = 2;
+ id = "rock_mine";
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"VV" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/crew)
+"VW" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Wf" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Wj" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wl" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/porta_turret/ship/nt/light/mining_base{
+ dir = 4;
+ id = "m2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Wp" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"Wq" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags{
+ layer = 3.1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wr" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ws" = (
+/obj/structure/chair/sofa/brown/directional/north,
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet/cyan,
+/area/ruin/rockplanet/mining_base/crew)
+"Wt" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/screwdriver{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wv" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ww" = (
+/obj/structure/platform,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wx" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/item/reagent_containers/condiment/hotsauce{
+ pixel_y = 12;
+ pixel_x = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Wy" = (
+/obj/structure/platform{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WA" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"WG" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"WK" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"WL" = (
+/obj/structure/platform,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"WO" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner/transparent/vired{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/armory)
+"WW" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+ dir = 1
+ },
+/obj/item/paper_bin{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/item/folder/red{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"WX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/platform,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Xa" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1,
+/obj/machinery/door/airlock/external/glass{
+ name = "Refinery Complex"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"Xg" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/rack,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Xi" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Xk" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ id = "nsmine2"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "mining_base"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"Xq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xr" = (
+/obj/effect/turf_decal/nanotrasen/ns/bottom,
+/turf/open/floor/concrete/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xt" = (
+/obj/structure/rack,
+/obj/item/tank/internals/oxygen{
+ pixel_x = 2;
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/corner/opaque/nsorange/half,
+/obj/effect/turf_decal/box,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"Xu" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/item/pen/fountain{
+ pixel_y = 7;
+ pixel_x = -4
+ },
+/obj/item/pen{
+ pixel_x = 9;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/ruin/rockplanet/mining_base/office)
+"Xv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/weather/rock,
+/obj/machinery/atmospherics/components/unary/passive_vent,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xx" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XA" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"XE" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine_int"
+ },
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/refinery)
+"XG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"XI" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 10
+ },
+/obj/structure/marker_beacon,
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XK" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor2-old"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XM" = (
+/obj/effect/turf_decal/weather/rock/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 1
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XT" = (
+/obj/machinery/jukebox{
+ pixel_y = 24;
+ density = 0
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/item/shard,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"XV" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
+/obj/item/reagent_containers/food/snacks/grown/cabbage,
+/obj/item/reagent_containers/food/snacks/grown/cabbage,
+/obj/item/reagent_containers/food/snacks/grown/cabbage,
+/obj/item/reagent_containers/food/snacks/grown/cabbage,
+/obj/item/reagent_containers/food/snacks/grown/redbeet,
+/obj/item/reagent_containers/food/snacks/grown/rice,
+/obj/item/reagent_containers/food/snacks/grown/rice,
+/obj/item/reagent_containers/food/snacks/grown/rice,
+/obj/item/reagent_containers/food/snacks/grown/rice,
+/turf/open/floor/plating/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XZ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yc" = (
+/obj/structure/sign/nanotrasen/ns{
+ pixel_y = -28
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/mining_base)
+"Yd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ruin/rockplanet/mining_base/refinery)
+"Ye" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"Yg" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"Yh" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"Yj" = (
+/obj/effect/turf_decal/industrial/radiation{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/turf_decal/industrial/radiation{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"Yk" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yl" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yv" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/stormtrooper,
+/turf/open/floor/plasteel/patterned/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Yx" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/light/small/directional/north,
+/obj/structure/sign/warning/coldtemp{
+ pixel_x = 29
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/canteen)
+"Yz" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "rock_mine"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating/rust/rockplanet,
+/area/ruin/rockplanet/mining_base/refinery)
+"YA" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/ash,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"YG" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/structure/filingcabinet/double/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"YH" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags{
+ layer = 3.1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Office Dome"
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/office)
+"YR" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/effect/turf_decal/corner/transparent/orange{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_4,
+/area/ruin/rockplanet/mining_base/engineering)
+"YU" = (
+/obj/machinery/door/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"YV" = (
+/obj/effect/turf_decal/corner/transparent/nsorange/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/refinery)
+"YW" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ pixel_x = 2
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/office)
+"YY" = (
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"YZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = -28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/engineering)
+"Za" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/sign/warning/coldtemp{
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/east,
+/obj/item/clothing/suit/hooded/explorer,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"Zb" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Zf" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ icon_state = "blood2";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zj" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"Zk" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_one)
+"Zm" = (
+/obj/effect/turf_decal/trimline/opaque/vired/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/mining_base/armory)
+"Zp" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/nanotrasen/ns/bottom_left,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner,
+/obj/effect/gibspawner/human/bodypartless,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/mining_base/refinery)
+"Zr" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zs" = (
+/obj/item/emptysandbag,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Zv" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZB" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZD" = (
+/obj/structure/platform{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZE" = (
+/obj/structure/vein/classthree{
+ mining_charges = 80;
+ max_mobs = 18;
+ spawn_distance_max = 7
+ },
+/obj/effect/turf_decal/box,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked,
+/area/ruin/rockplanet/mining_base/rig_one)
+"ZI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central1{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Refinery Complex"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/mining_base/refinery)
+"ZJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZK" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ZL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 5
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"ZN" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ZO" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal{
+ dir = 8
+ },
+/obj/structure/sink/kitchen{
+ pixel_y = 7;
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/mining_base/canteen)
+"ZT" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZU" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/rockplanet,
+/area/ruin/rockplanet/mining_base/rig_two)
+"ZV" = (
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZX" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/mining_base/engineering)
+"ZY" = (
+/obj/effect/turf_decal/weather/rock{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/rockplanet/lit{
+ dir = 8
+ },
+/area/overmap_encounter/planetoid/rockplanet/explored)
+
+(1,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(2,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+jq
+mH
+rm
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+UV
+UV
+fW
+fW
+fW
+fW
+fW
+fW
+fW
+fW
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(3,1,1) = {"
+Ce
+Ce
+Ce
+UV
+UV
+UV
+sK
+Qd
+Qd
+Ww
+ZY
+di
+Hp
+tR
+fM
+Ce
+Dh
+UV
+UV
+UV
+LQ
+Qd
+GA
+fW
+fW
+FD
+Xi
+KY
+Xi
+Be
+RG
+fW
+fW
+fW
+fW
+fW
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(4,1,1) = {"
+Ce
+Ce
+UV
+tL
+ub
+ub
+xL
+xL
+xL
+yi
+FP
+wV
+cJ
+OG
+UV
+UV
+RQ
+UV
+fW
+fW
+fW
+fW
+HZ
+HZ
+dK
+nM
+jZ
+WG
+wO
+iB
+jF
+fW
+Sj
+CF
+xv
+fW
+Jj
+Jj
+Jj
+Jj
+Ce
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(5,1,1) = {"
+Ce
+Ce
+UV
+Ww
+df
+MU
+Gf
+up
+CO
+CO
+iZ
+PT
+iP
+xL
+xL
+ub
+Fn
+fW
+fW
+nQ
+Ss
+hf
+HZ
+HZ
+gc
+pY
+nW
+ee
+vB
+nC
+SM
+fW
+lf
+cF
+vr
+fW
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(6,1,1) = {"
+Ce
+Ce
+UV
+Ww
+cm
+Kj
+UA
+TJ
+TJ
+TJ
+EP
+qe
+vA
+vA
+CO
+XZ
+Hp
+fW
+pc
+nA
+tr
+we
+qH
+fW
+lZ
+Zb
+jZ
+WG
+ZX
+Oo
+fW
+fW
+Ao
+cf
+kf
+fW
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(7,1,1) = {"
+Ce
+Ce
+RQ
+En
+co
+UZ
+Zh
+EC
+co
+Mk
+de
+pT
+TJ
+Yk
+lj
+QR
+Hp
+fW
+nQ
+oG
+iJ
+Pi
+Yj
+Ci
+dL
+im
+RF
+RF
+JZ
+vK
+xW
+ZL
+CT
+HU
+vs
+fW
+Jj
+xj
+xj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(8,1,1) = {"
+Ce
+UV
+UV
+UV
+Gl
+Gl
+YO
+Gl
+Gl
+En
+co
+co
+co
+Mk
+Jq
+iN
+Hp
+fW
+pc
+MA
+YR
+FK
+Tf
+fW
+fW
+fW
+fW
+vl
+sN
+fW
+fW
+QC
+Zj
+sp
+mc
+fW
+xj
+xj
+xj
+xj
+xj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(9,1,1) = {"
+UV
+UV
+Qd
+Qd
+Gl
+SS
+qP
+na
+Gl
+Gl
+Gl
+Gl
+Gl
+Ww
+eV
+Rh
+Hp
+fW
+fW
+Qq
+BE
+nQ
+fW
+fW
+Qd
+fW
+Ey
+De
+AP
+YZ
+fW
+kB
+IU
+yK
+dY
+fW
+UV
+HK
+HK
+xj
+xj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(10,1,1) = {"
+fM
+Qd
+Qd
+Gl
+Gl
+Gl
+bG
+Gl
+Gl
+Hf
+xl
+Xu
+Gl
+Ww
+KN
+yB
+Hp
+UV
+fW
+fW
+fW
+fW
+fW
+GA
+Qd
+fW
+tK
+rE
+Ac
+ef
+fW
+fW
+fW
+fW
+fW
+fW
+UV
+RQ
+UV
+pd
+pd
+pd
+pd
+pd
+Jj
+Jj
+Jj
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(11,1,1) = {"
+fM
+Qd
+Gl
+Gl
+Qi
+rc
+ku
+SV
+tD
+LR
+HD
+yo
+Gl
+Ww
+yT
+fE
+Et
+ub
+ub
+ub
+ub
+Fn
+GA
+CK
+UV
+HZ
+fW
+CZ
+NE
+fW
+HZ
+tL
+ub
+ub
+ub
+ub
+ub
+ub
+Fn
+pd
+pu
+ir
+Mt
+pd
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+Jj
+Jj
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(12,1,1) = {"
+fM
+UV
+Gl
+lt
+id
+zj
+KP
+YW
+Gl
+uQ
+NP
+Mo
+Gl
+Ww
+eV
+gZ
+ps
+ps
+mC
+xA
+ea
+Et
+ub
+ub
+ub
+ub
+AY
+bK
+Vr
+Et
+ub
+AY
+cU
+Jk
+bR
+Jk
+Vq
+dP
+Hp
+pd
+nB
+Dn
+BT
+pd
+pd
+pd
+pd
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+GH
+GH
+gz
+GH
+hB
+hB
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(13,1,1) = {"
+UV
+UV
+Gl
+uu
+Tu
+Ri
+An
+aJ
+Gl
+Ji
+tg
+lP
+Gl
+Ww
+wC
+HR
+HR
+Ew
+Sq
+UJ
+fV
+TN
+CI
+CI
+CI
+CI
+CI
+Wl
+dU
+TN
+TN
+TN
+Ld
+Sm
+gL
+Yv
+yF
+tp
+Hp
+pd
+gm
+LW
+Ph
+Rz
+SF
+bL
+pd
+Jj
+Jj
+Jj
+Jj
+GH
+Kt
+GH
+TI
+TI
+GH
+zT
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(14,1,1) = {"
+UV
+UV
+Gl
+Gl
+Cp
+Cp
+Cp
+Cp
+Gl
+Gl
+Gl
+Gl
+Gl
+En
+co
+co
+ZD
+ZD
+Fx
+eV
+gJ
+wf
+vi
+vi
+SX
+vi
+dh
+js
+Si
+vi
+vi
+vi
+vi
+qp
+Wy
+Mk
+Mg
+Kh
+Hp
+pd
+pd
+pd
+pd
+pd
+bJ
+bl
+pd
+Jj
+Jj
+GH
+Zv
+GH
+zT
+GH
+TI
+Kt
+GH
+TI
+sc
+TI
+hB
+hB
+hB
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(15,1,1) = {"
+UV
+UV
+Qd
+Qd
+UV
+UV
+fM
+fM
+fM
+fM
+UV
+UV
+UV
+UV
+HK
+HK
+HK
+HK
+WL
+Yl
+PA
+Sx
+YH
+co
+co
+co
+Mk
+bK
+St
+Wy
+co
+co
+Ta
+co
+tB
+Ww
+Wt
+Ra
+Et
+pd
+AF
+yD
+pd
+Dq
+ON
+Md
+pd
+Jj
+Jj
+GH
+GH
+GH
+GH
+gz
+Zs
+TI
+TI
+TI
+GH
+GH
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+"}
+(16,1,1) = {"
+Ce
+Qd
+NC
+UV
+fg
+Ru
+Ru
+Ru
+fM
+UV
+UV
+RQ
+UV
+lw
+lw
+lw
+lw
+lw
+WL
+Jq
+IK
+Wq
+th
+Bu
+KI
+UV
+UV
+UV
+Bp
+UV
+UV
+TF
+mp
+Qo
+Qd
+Ww
+Aa
+Lp
+cr
+aV
+WO
+dO
+Dd
+OI
+xR
+YU
+pd
+Jj
+Jj
+GH
+GH
+GH
+it
+GH
+GH
+GH
+GH
+GH
+GH
+GH
+GH
+AD
+GH
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+"}
+(17,1,1) = {"
+UV
+UV
+UV
+UV
+xV
+Qd
+Ru
+Qd
+xV
+UV
+UV
+UV
+UV
+lw
+uv
+Wp
+bX
+lw
+WL
+wt
+QR
+Wq
+zC
+Zr
+Xv
+Xq
+fo
+fo
+ec
+fo
+fo
+VM
+pX
+sw
+Qd
+Ww
+Ba
+Kh
+Wy
+pd
+AK
+Dt
+pd
+Gj
+WW
+xn
+pd
+Jj
+Jj
+GH
+GH
+EL
+qW
+qW
+Vb
+rQ
+rQ
+rQ
+rQ
+uj
+GH
+GH
+Zv
+GH
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(18,1,1) = {"
+UV
+Rb
+RW
+UV
+ap
+Qd
+Qd
+UV
+IW
+UV
+oN
+XI
+UV
+lw
+BW
+cw
+bX
+lw
+WL
+eV
+Rh
+Wq
+oi
+ex
+VC
+Qd
+Qd
+UV
+UV
+Qd
+Qd
+TV
+Tx
+qs
+Qd
+mX
+Ba
+Kh
+Hp
+pd
+pd
+pd
+pd
+NS
+wS
+pd
+pd
+Jj
+Jj
+GH
+GH
+bP
+gn
+nd
+nd
+Bl
+ez
+ez
+gg
+sf
+GH
+GH
+GH
+Bb
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(19,1,1) = {"
+UV
+oi
+Hg
+Rd
+kn
+Rd
+EZ
+Ob
+in
+Rd
+aM
+VC
+UV
+lw
+Nc
+CS
+Yc
+lw
+WL
+eV
+Rh
+Wq
+Wv
+DD
+DD
+Qd
+Qd
+Qd
+UV
+UV
+Qd
+Qd
+Qd
+UV
+UV
+mX
+Na
+tp
+Hp
+pd
+hO
+re
+pd
+wD
+pd
+pd
+Jj
+Jj
+GH
+TI
+GH
+jy
+nd
+OZ
+TR
+sR
+Uj
+oH
+ez
+QT
+GH
+GH
+GH
+TI
+GH
+Jj
+Jj
+Jj
+Jj
+Ce
+"}
+(20,1,1) = {"
+UV
+UV
+du
+Fo
+bY
+bY
+bo
+bo
+bo
+IV
+KM
+UV
+UV
+UV
+mm
+mm
+mm
+HK
+WL
+eV
+Rh
+Hp
+UV
+DD
+DD
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+UV
+Ww
+Ba
+tp
+Hp
+pd
+Zm
+Zm
+ok
+aD
+pd
+Jj
+Jj
+UW
+gz
+TI
+GH
+jy
+nd
+Kd
+vC
+gW
+Hb
+Gz
+nd
+QT
+GH
+GH
+TI
+UW
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+"}
+(21,1,1) = {"
+Ce
+UV
+aL
+oz
+DE
+Ln
+DE
+Ln
+Ln
+gi
+Qa
+so
+LY
+LY
+LY
+LY
+XV
+xF
+ho
+eV
+Rh
+so
+LY
+bj
+jY
+kQ
+Ti
+hA
+Ea
+pN
+ew
+tw
+oI
+ew
+xL
+AY
+rP
+pI
+Hp
+pd
+NX
+qC
+qC
+mw
+pd
+Jj
+Jj
+UW
+TI
+GH
+AD
+lc
+Zk
+gU
+vC
+ZE
+Hb
+ll
+ob
+sf
+GH
+TI
+TI
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(22,1,1) = {"
+Ce
+UV
+mP
+oz
+DE
+DE
+DE
+DE
+DE
+gi
+xC
+GL
+iv
+pi
+Lw
+ZJ
+dx
+TO
+dM
+BI
+Rh
+Ny
+fF
+bD
+IZ
+Dx
+Rn
+om
+Nd
+ww
+ZI
+BQ
+Yh
+Xa
+if
+if
+Di
+pI
+Hp
+pd
+re
+BG
+nR
+pd
+pd
+Jj
+hB
+UW
+GH
+GH
+GH
+NL
+ez
+OF
+Hb
+ot
+gW
+Gz
+nd
+sf
+GH
+AD
+it
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(23,1,1) = {"
+Ce
+UV
+nK
+oX
+Ln
+DE
+DE
+DE
+DE
+gi
+DJ
+ct
+rk
+dg
+tl
+tl
+tl
+kj
+bi
+Ov
+Vd
+jS
+CB
+Ex
+yg
+eY
+KQ
+YA
+GU
+DG
+wK
+YV
+QU
+zx
+Kj
+Kj
+vS
+pI
+Hp
+pd
+pd
+pd
+pd
+pd
+Jj
+Jj
+hB
+hB
+it
+GH
+GH
+NL
+nd
+hG
+Ge
+xP
+Tp
+xK
+ez
+QT
+GH
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(24,1,1) = {"
+Ce
+UV
+aL
+oX
+Ln
+FB
+sI
+ia
+DE
+gi
+Jz
+Wj
+lz
+lz
+lz
+lz
+lz
+zZ
+Ul
+eV
+Rh
+Wj
+lz
+Xk
+eB
+vH
+da
+WX
+Yd
+gB
+ew
+bN
+Za
+ew
+co
+Mk
+eV
+pI
+Hp
+Qd
+Qd
+Qd
+fg
+Qd
+Jj
+Jj
+hB
+GH
+GH
+GH
+GH
+jy
+qf
+gj
+wX
+JV
+ez
+ez
+gg
+QT
+GH
+GH
+hB
+nn
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(25,1,1) = {"
+Ce
+UV
+aL
+oX
+Ln
+hT
+xf
+Xr
+DE
+jl
+KM
+UV
+fM
+fM
+fM
+UV
+UV
+UV
+Ww
+Jq
+ey
+XZ
+Eq
+DD
+DD
+Xg
+OB
+fe
+RZ
+wH
+ew
+ew
+ew
+ew
+fg
+mX
+eV
+pI
+Hp
+sK
+UV
+Qd
+Qd
+Qd
+Jj
+Jj
+Jj
+GH
+zT
+GH
+GH
+ox
+ox
+ox
+jj
+JV
+pE
+lE
+lE
+Cr
+GH
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(26,1,1) = {"
+Ce
+UV
+aL
+oX
+Ln
+cn
+Nz
+su
+Ln
+jl
+KM
+UV
+fM
+cA
+cA
+cA
+cA
+cA
+Ww
+de
+lj
+LX
+Eq
+DD
+DD
+aS
+Ke
+IE
+AE
+UM
+FG
+QD
+Cx
+DD
+DD
+Ww
+Yl
+tp
+Hp
+UV
+tz
+Qd
+Qd
+Qd
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+GH
+ox
+pa
+KE
+jj
+uD
+QT
+GH
+it
+Zv
+GH
+hB
+hB
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(27,1,1) = {"
+Ce
+UV
+gt
+oX
+DE
+DE
+DE
+Ln
+DE
+Ay
+Vm
+UV
+fM
+cA
+lM
+zK
+Tk
+cA
+En
+Mk
+Jq
+at
+Eq
+HK
+ew
+Uc
+OB
+SH
+xd
+VG
+vI
+Zp
+YG
+DD
+DD
+ew
+zb
+ly
+Et
+ub
+ub
+Fn
+Qd
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+ox
+kX
+qN
+mz
+uD
+QT
+GH
+GH
+GH
+GH
+GH
+hB
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(28,1,1) = {"
+Ce
+UV
+aL
+oz
+Ln
+DE
+DE
+DE
+DE
+Ay
+sb
+UV
+Qd
+gF
+Bv
+eJ
+KJ
+cA
+cA
+Ww
+Jq
+at
+Eq
+HK
+ew
+Km
+Ng
+xs
+qR
+ta
+Sd
+Fm
+dt
+Vh
+kZ
+aK
+yv
+Fj
+ra
+ra
+ra
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+ox
+go
+oD
+DI
+JV
+QT
+GH
+GH
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(29,1,1) = {"
+UV
+UV
+aL
+oz
+Ln
+Ln
+DE
+DE
+DE
+Ay
+sb
+UV
+Qd
+gF
+PZ
+mq
+LZ
+rj
+cA
+Ww
+Jq
+at
+Eq
+QF
+ew
+tq
+Tw
+FZ
+kD
+LV
+TU
+kp
+qX
+bg
+BO
+Cy
+ff
+tQ
+Yz
+jb
+ra
+Jj
+Jj
+TI
+TI
+dk
+TI
+Jj
+Jj
+Jj
+Jj
+ox
+ox
+ox
+DI
+uD
+QT
+GH
+Jj
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+"}
+(30,1,1) = {"
+Ce
+UV
+aL
+lU
+iO
+iO
+iO
+iO
+iO
+ys
+KM
+UV
+Qd
+cA
+qy
+Fc
+al
+Sw
+cA
+Ww
+Do
+at
+Eq
+QF
+ew
+uB
+ja
+lR
+dR
+aw
+uk
+ak
+Vp
+qE
+ew
+DD
+ru
+fr
+ru
+bd
+vV
+vV
+cG
+zL
+BN
+ZB
+Sv
+zL
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+og
+uD
+Jj
+Jj
+Jj
+zT
+GH
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(31,1,1) = {"
+UV
+oN
+hp
+Tc
+SA
+Tc
+Tc
+Tc
+SA
+Tc
+Nk
+RW
+UV
+cA
+NT
+qT
+zr
+EY
+cA
+Ww
+Jq
+at
+Eq
+yI
+ew
+MM
+OB
+CU
+XE
+MQ
+XE
+sr
+He
+qE
+ew
+zm
+GE
+tY
+dZ
+il
+dp
+Zf
+Uh
+Zf
+Zf
+Uh
+pr
+bH
+Uh
+Uh
+Uh
+Zf
+Zf
+Zf
+Wr
+uD
+Jj
+Jj
+GH
+GH
+GH
+it
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(32,1,1) = {"
+Qd
+JS
+VC
+UV
+IW
+fM
+fM
+fM
+ap
+UV
+oi
+gs
+UV
+cA
+cA
+cA
+BB
+cA
+cA
+Ww
+Jq
+at
+Eq
+yI
+ew
+TW
+VJ
+OA
+nS
+nS
+Ht
+qr
+eb
+VK
+ew
+zm
+Qk
+WA
+oO
+WK
+Mj
+lB
+tQ
+tQ
+tQ
+lB
+uh
+tQ
+tQ
+tQ
+Vs
+lB
+lB
+lB
+tQ
+Ks
+Jj
+Jj
+IG
+Jj
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(33,1,1) = {"
+Ce
+Qd
+UV
+UV
+OG
+Ru
+fM
+fM
+jN
+UV
+UV
+Qd
+UV
+UV
+cA
+kC
+Cd
+lg
+cA
+Ww
+Jq
+at
+Eq
+xj
+ew
+MM
+wI
+wz
+xc
+tP
+xc
+xc
+hu
+ew
+ew
+zm
+Vx
+Bq
+hi
+ZV
+Jj
+Jj
+Jj
+xZ
+xZ
+xZ
+cu
+Bj
+xZ
+XA
+Yg
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Kt
+GH
+GH
+zT
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(34,1,1) = {"
+Ce
+UV
+Qd
+fM
+fM
+Ru
+UV
+UV
+UV
+Qd
+Qd
+fg
+RQ
+UV
+cA
+AC
+nh
+JC
+cA
+Ww
+Jq
+at
+Eq
+xj
+ew
+lp
+FC
+It
+jx
+qo
+It
+FC
+uX
+ew
+Jj
+TI
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+NA
+NA
+vp
+ZT
+rY
+og
+Yg
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+TI
+Zv
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(35,1,1) = {"
+UV
+UV
+UV
+tL
+ub
+ub
+ub
+ub
+ub
+xL
+xL
+ub
+ub
+Fn
+cA
+cA
+FT
+cA
+cA
+Ww
+Jq
+at
+Eq
+HK
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+ew
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+TI
+oo
+TI
+GD
+og
+qV
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+sv
+Rm
+bt
+GH
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(36,1,1) = {"
+UV
+ub
+ub
+UV
+pQ
+uS
+uS
+uS
+uS
+uS
+MU
+MU
+dP
+Et
+ub
+AY
+IC
+Et
+ub
+AY
+Jq
+at
+FH
+Uv
+Uv
+RE
+QF
+ix
+HK
+yI
+yI
+UV
+UV
+Hl
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+QE
+TI
+GD
+og
+Yg
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+JO
+Rg
+Ll
+GH
+GH
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(37,1,1) = {"
+ga
+XM
+eH
+MU
+Mi
+Fd
+Kj
+Kj
+Kj
+nJ
+nJ
+OJ
+Iw
+MU
+oy
+lX
+ay
+ai
+ai
+SN
+bF
+uR
+ai
+ai
+ai
+sC
+mZ
+nE
+HK
+xj
+HK
+Hl
+UV
+UV
+Jj
+Jj
+Jj
+GH
+GH
+zT
+TI
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GD
+og
+qV
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+zT
+Pu
+Fq
+rq
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(38,1,1) = {"
+eD
+nt
+RX
+Fd
+Kj
+NU
+Wy
+co
+co
+co
+Mk
+cm
+nJ
+mB
+wy
+Ot
+Hr
+Gr
+nD
+XK
+Tv
+gX
+nJ
+wc
+Kj
+Ql
+HK
+Zt
+xj
+xj
+UV
+UV
+Hl
+GH
+GH
+Jj
+GH
+GH
+GH
+Zs
+GH
+sc
+GH
+rn
+rn
+Jj
+Jj
+Jj
+Jj
+og
+Yg
+yG
+GH
+GH
+Jj
+nc
+Ak
+Ak
+Ak
+ao
+it
+GH
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(39,1,1) = {"
+UV
+Mk
+py
+lF
+Wy
+co
+tB
+UV
+UV
+UV
+En
+co
+Mk
+YY
+gH
+Du
+ZD
+ZD
+Fx
+Jq
+QR
+Du
+ZD
+ZD
+ZD
+ZD
+QF
+tu
+xj
+HK
+Hl
+UV
+GH
+GH
+GH
+GH
+AD
+GH
+TI
+Oh
+TI
+GH
+rn
+ag
+Ju
+Jj
+Jj
+Jj
+Jj
+og
+Yg
+DA
+GH
+TI
+nc
+ao
+Jj
+nn
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(40,1,1) = {"
+UV
+UV
+eD
+Xx
+UV
+UV
+UV
+Pj
+Pj
+Pj
+Pj
+Pj
+Pj
+DF
+sh
+Pj
+Pj
+Pj
+Iu
+Jq
+QR
+Eq
+Qb
+Qb
+Qb
+Qb
+Qb
+Qb
+Qb
+UV
+UV
+Hl
+Jj
+GH
+GH
+GH
+it
+GH
+AD
+GH
+GH
+rn
+rn
+Ju
+Ju
+Ju
+nr
+ss
+Jr
+xO
+RI
+Un
+tV
+Sr
+ao
+Jj
+Jj
+hB
+hB
+hB
+hB
+GH
+Jj
+GH
+Jj
+Jj
+Ce
+Ce
+GH
+GH
+"}
+(41,1,1) = {"
+Ce
+UV
+tz
+UV
+Qd
+fg
+UV
+Pj
+MP
+Tn
+Es
+Pj
+yl
+rx
+Cf
+tF
+Pj
+Mc
+MU
+Oq
+QR
+Et
+Qb
+dq
+OL
+Qb
+Vl
+uW
+Qb
+UV
+UV
+Jj
+Jj
+Jj
+GH
+AD
+GH
+GH
+GH
+GH
+AD
+rn
+hZ
+nr
+Ju
+Ju
+hZ
+ss
+Jr
+xO
+qV
+HC
+Ka
+iM
+GH
+Jj
+Jj
+Jj
+Jj
+hB
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+GH
+"}
+(42,1,1) = {"
+Ce
+UV
+UV
+Qd
+Qd
+Qd
+UV
+Pj
+lo
+dS
+cW
+Pj
+Ry
+BK
+CJ
+Ma
+Pj
+gD
+Kj
+lm
+mN
+AN
+cD
+VV
+Ah
+Ky
+Tb
+pP
+Qb
+Qb
+Jj
+Jj
+Jj
+Jj
+hB
+GH
+Ep
+OX
+rQ
+rQ
+OX
+OX
+rQ
+OX
+PD
+PD
+PD
+PD
+PD
+og
+qV
+Vi
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+Jj
+Jj
+Jj
+GH
+Jj
+GH
+GH
+GH
+Ce
+"}
+(43,1,1) = {"
+Ce
+Ce
+UV
+Qd
+NC
+UV
+Pj
+Pj
+Qx
+LA
+ts
+Pj
+Pj
+Pc
+No
+Pj
+Pj
+Pj
+Fx
+Jq
+cI
+Du
+Qb
+wW
+Sl
+Qb
+lI
+sT
+IT
+Qb
+Jj
+Jj
+hB
+hB
+hB
+GH
+jy
+BY
+EE
+EE
+zH
+xr
+xr
+BY
+PD
+oQ
+GW
+Qg
+PD
+og
+qV
+ZV
+zT
+Jj
+Jj
+Kt
+GH
+Jj
+Jj
+GH
+GH
+GH
+TI
+GH
+GH
+GH
+GH
+GH
+GH
+Ce
+"}
+(44,1,1) = {"
+Ce
+Ce
+UV
+Qd
+Qd
+UV
+Pj
+Pj
+Pj
+fP
+Pj
+Pj
+XT
+fT
+Al
+yQ
+Pj
+HK
+WL
+Yl
+cI
+Eq
+Qb
+Qb
+Qb
+Qb
+ow
+Qz
+Bi
+Qb
+Jj
+Jj
+QK
+UW
+GH
+GH
+jy
+EE
+XG
+VW
+se
+VW
+xH
+EE
+PD
+Xt
+fA
+Jd
+PD
+og
+Yg
+ZV
+Jj
+Jj
+Jj
+GH
+GH
+GH
+GH
+TI
+TI
+TI
+zT
+GH
+GH
+GH
+GH
+GH
+Jj
+Ce
+"}
+(45,1,1) = {"
+Ce
+Ce
+Ce
+UV
+lY
+UV
+pB
+tH
+ZO
+rV
+DQ
+zf
+Av
+AL
+Pm
+hk
+Pj
+Pj
+WL
+Jq
+cI
+Eq
+Qb
+Rk
+Oz
+Qb
+SE
+Qz
+rs
+Qb
+Jj
+Jj
+hB
+sc
+TI
+GH
+lc
+EE
+dJ
+HQ
+FY
+kt
+BL
+ST
+Se
+Se
+ED
+UX
+UX
+Wr
+Yg
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+Jj
+GH
+GH
+Kt
+GH
+GH
+GH
+GH
+Jj
+GH
+Jj
+Jj
+Ce
+"}
+(46,1,1) = {"
+Ce
+Ce
+Ce
+UV
+UV
+UV
+pB
+cv
+pS
+ZN
+jw
+BP
+iu
+pO
+Pv
+JT
+bC
+Pj
+WL
+Yl
+uA
+Eq
+Qb
+BV
+hX
+mT
+AX
+uJ
+Bi
+Qb
+Jj
+Jj
+hB
+GH
+nr
+GH
+jy
+IY
+IP
+sy
+bx
+JH
+tA
+kO
+VT
+VT
+VE
+VE
+VE
+VT
+Ga
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+zT
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+"}
+(47,1,1) = {"
+Ce
+Ce
+Ce
+UV
+RQ
+UV
+pB
+kK
+ac
+pq
+jg
+kF
+ma
+Vw
+BH
+po
+Aw
+pB
+WL
+Yl
+uA
+Hp
+Qb
+Qb
+EA
+Qb
+RD
+kH
+Rs
+Qb
+Jj
+Jj
+Jj
+zT
+Cm
+hZ
+jy
+xr
+Ug
+sy
+HQ
+HQ
+DS
+xr
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Zv
+GH
+GH
+Jj
+Jj
+GH
+Jj
+Jj
+Ce
+Ce
+Ce
+"}
+(48,1,1) = {"
+Ce
+Ce
+Ce
+tz
+Qd
+UV
+Pj
+KH
+ZK
+GS
+kv
+sV
+MT
+PM
+zY
+Lx
+Tt
+pB
+Ww
+Yl
+uA
+Hp
+Qb
+vf
+dV
+Qb
+Fr
+Uk
+Bi
+Qb
+Jj
+Jj
+Jj
+rn
+hZ
+hZ
+jy
+EE
+HN
+KL
+jv
+pn
+ht
+xr
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Jj
+Jj
+Jj
+Jj
+GH
+Jj
+Jj
+GH
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+"}
+(49,1,1) = {"
+Ce
+Ce
+Ce
+UV
+Qd
+sK
+Pj
+cg
+ZK
+fQ
+Ec
+sV
+MT
+aE
+zo
+jc
+Ku
+pB
+Ww
+Yl
+uA
+Hp
+Qb
+PH
+Lh
+Qb
+bT
+Gx
+yN
+Qb
+Jj
+Jj
+Jj
+rn
+rn
+hZ
+lc
+Wn
+EE
+EE
+ZU
+xr
+xr
+OR
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(50,1,1) = {"
+Ce
+Ce
+Ce
+UV
+UV
+UV
+Pj
+Pj
+Wx
+Wf
+mx
+sV
+ca
+gy
+kE
+gx
+gG
+Pj
+Ww
+Yl
+uA
+Hp
+Qb
+Qb
+Qb
+CE
+Ns
+Qb
+Qb
+Qb
+Jj
+Jj
+Jj
+rn
+rn
+hZ
+LO
+lE
+lE
+lK
+lE
+lE
+lE
+lE
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(51,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+UV
+Pj
+Pj
+Pj
+pB
+GO
+eg
+FM
+ng
+RR
+qU
+Pj
+Ww
+Yl
+uA
+Hp
+Qb
+PG
+Pg
+CE
+Ux
+wT
+dG
+Qb
+Qb
+Jj
+Jj
+rn
+rn
+hZ
+hZ
+hZ
+hZ
+hZ
+hZ
+rn
+rn
+rn
+rn
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(52,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+UV
+tz
+UV
+UV
+UV
+Qd
+Qd
+pB
+GO
+Pj
+Pj
+Dm
+Pj
+Pj
+Ww
+Yl
+uA
+Hp
+Qb
+oS
+hV
+ig
+um
+BZ
+Ub
+FO
+Qb
+Jj
+Jj
+Jj
+rn
+So
+nr
+nr
+TI
+TI
+GH
+hZ
+rn
+qK
+rn
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(53,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+UV
+UV
+sK
+Qd
+Qd
+Qd
+UV
+Pj
+Yx
+Ye
+wm
+Pj
+Ww
+Yl
+uA
+Hp
+Qb
+Qb
+Qb
+Qb
+zG
+Ub
+Hd
+Ws
+Qb
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+zT
+GH
+sc
+Zs
+GH
+Ju
+rn
+rn
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(54,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+GI
+UV
+UV
+CK
+Qd
+UV
+Pj
+Pj
+zl
+Pj
+Pj
+Ww
+Yl
+cI
+Hp
+UV
+Qb
+Jj
+Qb
+Qb
+zR
+NR
+DT
+Qb
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+GH
+GH
+TI
+GH
+GH
+bc
+rn
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(55,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+ap
+UV
+ub
+ub
+ub
+ub
+ub
+AY
+nf
+Et
+ub
+AY
+Yl
+cI
+Hp
+Jj
+Jj
+Jj
+Jj
+Qb
+Qb
+Qb
+Qb
+Qb
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+GH
+TI
+GH
+GH
+GH
+GH
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(56,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+KF
+ch
+aA
+FI
+sL
+Jk
+Jk
+ai
+zz
+ai
+ai
+ai
+DP
+cI
+Hp
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(57,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+ck
+If
+mB
+kx
+Kj
+nJ
+nJ
+es
+Hc
+Hc
+Hc
+Hc
+Da
+Hp
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(58,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+Mk
+Db
+Pb
+Wy
+co
+co
+Jj
+Jj
+Jj
+co
+co
+co
+tB
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(59,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+UV
+ck
+HE
+xB
+xm
+UV
+UV
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(60,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+sK
+UV
+UV
+UV
+Qd
+Qd
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(61,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+UV
+Qd
+Qd
+Qd
+Jj
+Jj
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
+(62,1,1) = {"
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+UV
+UV
+Ce
+Jj
+Jj
+Jj
+Jj
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+Ce
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
index ff58248ffc4e..6db4bf5240a2 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
@@ -408,7 +408,7 @@
icon_state = "1-8"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plasteel/rockplanet,
/area/ruin/rockplanet/nomad)
"oz" = (
@@ -558,7 +558,7 @@
},
/obj/structure/frame/machine,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plating,
/area/ruin/rockplanet/nomad)
"sn" = (
@@ -1272,7 +1272,7 @@
icon_state = "spline_plain_cee"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/nomad)
"Lk" = (
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
index 3394913e2d2d..1c518cceabca 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -288,7 +288,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/shippingdockoffice)
"cz" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
@@ -2002,7 +2002,7 @@
},
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
-/obj/item/storage/pistolcase/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/rattlesnake/no_mag,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdocksecure)
"rK" = (
@@ -2068,7 +2068,7 @@
"sa" = (
/obj/effect/turf_decal/rechargefloor,
/obj/effect/turf_decal/industrial/warning/dust,
-/obj/effect/spawner/lootdrop/ripley,
+/obj/effect/spawner/random/exotic/ripley,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdockwarehouse)
"sc" = (
@@ -2132,7 +2132,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"su" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -2426,7 +2426,7 @@
/area/ruin/rockplanet/shippingdockoffice)
"uo" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/trash/can,
/obj/item/trash/can/food/peaches,
/obj/item/trash/tray,
@@ -4044,7 +4044,7 @@
},
/area/overmap_encounter/planetoid/rockplanet/explored)
"HL" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -4208,7 +4208,7 @@
/turf/open/floor/concrete/pavement,
/area/ruin/rockplanet/shippingdockwarehouse)
"Ju" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
"Jz" = (
@@ -5282,9 +5282,9 @@
"SJ" = (
/obj/structure/rack,
/obj/structure/window/reinforced,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"SM" = (
@@ -5968,7 +5968,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"XU" = (
@@ -6020,7 +6020,7 @@
"Yf" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
diff --git a/_maps/RandomRuins/SandRuins/whitesands_brazillianlab.dmm b/_maps/RandomRuins/SandRuins/whitesands_brazillianlab.dmm
new file mode 100644
index 000000000000..60f81246be09
--- /dev/null
+++ b/_maps/RandomRuins/SandRuins/whitesands_brazillianlab.dmm
@@ -0,0 +1,2881 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ae" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/warning/firingrange{
+ pixel_y = 32
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"aS" = (
+/obj/machinery/iv_drip,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"aW" = (
+/turf/template_noop,
+/area/template_noop)
+"bq" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"bv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/green/half,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"bB" = (
+/obj/structure/flora/rock/jungle,
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"cr" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ct" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"cH" = (
+/obj/structure/fermenting_barrel,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"cN" = (
+/obj/structure/girder/displaced,
+/obj/structure/railing/wood{
+ dir = 4
+ },
+/obj/structure/railing/wood{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"cS" = (
+/obj/structure/flora/stump,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dz" = (
+/obj/structure/table/wood/fancy/green,
+/obj/item/storage/box/ammo/a12g_buckshot{
+ pixel_y = 5
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"eC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"eD" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fd" = (
+/obj/structure/table/optable,
+/obj/item/stack/medical/bruise_pack/herb,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"fz" = (
+/obj/structure/table/wood/fancy/green,
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = -10
+ },
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = -6
+ },
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = 6
+ },
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = 2
+ },
+/obj/item/ammo_casing/shotgun/dragonsbreath{
+ pixel_y = 4;
+ pixel_x = 10
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"fB" = (
+/obj/structure/chair/stool/bar,
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"fI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"fK" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"fO" = (
+/obj/structure/flora/junglebush/b,
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_y = 32
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"gk" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gH" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"hg" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/structure/curtain/cloth/grey{
+ open = 0;
+ icon_state = "bathroom-closed";
+ opacity = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"hp" = (
+/obj/item/stack/cable_coil,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"hr" = (
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ht" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"hA" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hN" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"hO" = (
+/obj/structure/flora/tree/jungle,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"hR" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor,
+/obj/structure/chair/plastic,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hT" = (
+/obj/structure/flora/grass/jungle/b,
+/obj/item/cultivator/rake,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"ib" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/onionrings{
+ pixel_y = 7
+ },
+/obj/item/spacecash/bundle/c1{
+ pixel_x = -6;
+ pixel_y = -13
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"is" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"iu" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"jn" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/glass/rag{
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = -5;
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"jy" = (
+/obj/structure/chair/wood,
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"jU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 8
+ },
+/obj/structure/sign/departments/medbay/alt{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"kD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/cable_coil/yellow{
+ pixel_y = -10
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"kF" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered)
+"kQ" = (
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/innards,
+/obj/item/reagent_containers/glass/bucket{
+ pixel_x = 9;
+ pixel_y = 15
+ },
+/obj/item/chainsaw{
+ pixel_x = -11;
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"kX" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/ruin/unpowered)
+"lu" = (
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"lA" = (
+/obj/item/weaponcrafting/stock{
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil/blue,
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/table,
+/obj/item/screwdriver/old{
+ pixel_y = 20
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"mi" = (
+/obj/structure/railing/wood{
+ dir = 8
+ },
+/obj/structure/railing/wood{
+ dir = 4
+ },
+/obj/structure/girder/displaced,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_x = -11;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/pacfuel{
+ pixel_y = -6;
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/shoal_punch{
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"mo" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/spacecash/bundle/c50{
+ pixel_x = 14;
+ pixel_y = 7
+ },
+/obj/item/spacecash/bundle/smallrand{
+ pixel_x = -9
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"mq" = (
+/obj/item/stack/sheet/mineral/wood/twentyfive{
+ pixel_x = 8;
+ pixel_y = -9
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"mv" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"mz" = (
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/sand/explored)
+"mM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/unpowered)
+"nf" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"nn" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"nF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table,
+/obj/item/ammo_box/magazine/m45{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/ammo_box/magazine/m45{
+ pixel_x = -10;
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"nG" = (
+/obj/structure/flora/junglebush/large,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"oo" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"oR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pa" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pf" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"pn" = (
+/obj/item/target,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"pu" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ql" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"qm" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = 1;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"qC" = (
+/obj/structure/bed,
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"qD" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"qS" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = "The greatest chef this side of the wastes.";
+ health = 150;
+ name = "Margarine";
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"qT" = (
+/obj/item/wrench,
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"rs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/green/border,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"rw" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"rP" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"sf" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck{
+ pixel_y = 12
+ },
+/obj/item/spacecash/bundle/c10{
+ pixel_x = 9
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"si" = (
+/obj/structure/flora/rock/jungle,
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"sj" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"sA" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"sE" = (
+/turf/closed/mineral/random/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"te" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/spacecash/bundle/c200,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"tf" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tx" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"tY" = (
+/mob/living/simple_animal/bot/secbot/ed209/rockplanet{
+ faction = list("hermit");
+ name = "The Crimson King"
+ },
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/unpowered)
+"un" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"uq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"uv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/unpowered)
+"uG" = (
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"vg" = (
+/obj/item/stack/sheet/metal/ten{
+ pixel_x = -9
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"vi" = (
+/obj/structure/flora/rock/pile,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"vr" = (
+/obj/item/toy/plush/moth/snow{
+ pixel_x = 17;
+ pixel_y = -5
+ },
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"vH" = (
+/obj/structure/flora/junglebush/b,
+/obj/item/reagent_containers/glass/bucket/wooden,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"vR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/green/bordercorner,
+/obj/effect/turf_decal/corner/opaque/green/bordercorner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/gibs/core,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"wd" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/wine{
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/tequila{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/vermouth{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"wh" = (
+/obj/structure/flora/tree/jungle/small,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"wk" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/snacks/meat/steak/meatproduct,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"wm" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/wine{
+ pixel_x = 7;
+ pixel_y = 16
+ },
+/obj/item/food/spaghetti/pastatomato{
+ pixel_y = 3
+ },
+/obj/item/candle/infinite{
+ pixel_y = 17
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"wn" = (
+/obj/structure/flora/stump,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xg" = (
+/obj/structure/flora/tree/tall/whitesands,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xj" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"xm" = (
+/obj/structure/table,
+/obj/item/weaponcrafting/receiver{
+ pixel_x = -7;
+ pixel_y = -12
+ },
+/obj/item/weaponcrafting/stock{
+ pixel_x = 5;
+ pixel_y = 13
+ },
+/obj/item/attachment/laser_sight{
+ pixel_x = 10;
+ pixel_y = -9
+ },
+/obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag{
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/glass/rag{
+ pixel_x = -10;
+ pixel_y = 19
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"xu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed/roller,
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"xI" = (
+/turf/closed/wall/concrete,
+/area/ruin/unpowered)
+"xK" = (
+/obj/structure/flora/ash/cacti,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xN" = (
+/obj/item/flashlight/lantern{
+ on = 1;
+ pixel_x = -10;
+ pixel_y = 17
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"xQ" = (
+/obj/item/clothing/neck/stethoscope,
+/obj/structure/closet/secure_closet/medical1{
+ populate = 0
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/syringe,
+/obj/item/reagent_containers/syringe,
+/obj/item/reagent_containers/syringe,
+/obj/item/stack/medical/mesh,
+/obj/item/stack/medical/suture,
+/obj/item/stack/sheet/cotton/cloth/ten,
+/obj/item/stack/sheet/cotton/cloth/ten,
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"xV" = (
+/obj/structure/bed,
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"yp" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"yr" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"zi" = (
+/mob/living/simple_animal/bot/secbot{
+ desc = "A little security robot. He looks downright furious!";
+ emagged = 2;
+ name = "\improper Officer Hermitsky";
+ faction = list("neutral","silicon","turret","hermit")
+ },
+/obj/structure/closet/crate/critter{
+ name = "DANGER: DO NOT OPEN"
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"zj" = (
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"zy" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Al" = (
+/obj/structure/chair/wood{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Aw" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/shaker{
+ pixel_x = 16
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/item/spacecash/bundle/c1000{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/obj/item/spacecash/bundle/c1000{
+ pixel_x = -5
+ },
+/obj/item/spacecash/bundle/c5{
+ pixel_x = -8;
+ pixel_y = 9
+ },
+/obj/item/spacecash/bundle/c10{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"AN" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/sarsaparilla{
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/kahlua{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/hcider{
+ pixel_x = 16;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"Br" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Bw" = (
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"BL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/assembly/igniter{
+ pixel_x = -9;
+ pixel_y = -14
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"BQ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Cc" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Cl" = (
+/obj/item/candle/infinite{
+ pixel_y = 4
+ },
+/obj/item/candle/infinite{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/item/candle/infinite{
+ pixel_x = -10;
+ pixel_y = 8
+ },
+/obj/item/candle/infinite{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/item/candle/infinite{
+ pixel_x = -10
+ },
+/obj/item/candle/infinite{
+ pixel_x = -16;
+ pixel_y = -2
+ },
+/obj/structure/table/wood/fancy/blue,
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Cn" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"CI" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CL" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"CN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"CS" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"CT" = (
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Da" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Dk" = (
+/obj/structure/table/wood/fancy/green,
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = 10
+ },
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = -10
+ },
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = -6
+ },
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = 2
+ },
+/obj/item/ammo_casing/shotgun/laserscatter{
+ pixel_y = 4;
+ pixel_x = 6
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"DA" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"DH" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"DX" = (
+/obj/structure/flora/rock/jungle,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"DY" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/unpowered)
+"Eg" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Ep" = (
+/obj/machinery/pipedispenser,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Ex" = (
+/obj/structure/flora/tree/tall/whitesands,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"EW" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"Fh" = (
+/obj/structure/girder,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FB" = (
+/obj/structure/barricade/wooden/crude,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"FK" = (
+/obj/item/stack/tape/industrial{
+ pixel_x = 12
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"FU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/rack,
+/obj/item/clothing/ears/earmuffs,
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -8
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Gc" = (
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ge" = (
+/obj/structure/flora/grass/jungle/b,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Gl" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Gt" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"GK" = (
+/obj/structure/flora/junglebush/c,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"GO" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"GU" = (
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Hb" = (
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Ht" = (
+/obj/structure/table/wood,
+/obj/item/food/spaghetti/pastatomato{
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"HI" = (
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"HV" = (
+/obj/item/target/alien/anchored,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Il" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Iz" = (
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"IE" = (
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/item/stack/medical/gauze/improvised{
+ pixel_x = -16
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"IZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/unpowered)
+"Jt" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/storage/toolbox/drone{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"JK" = (
+/turf/open/floor/concrete/slab_4,
+/area/ruin/unpowered)
+"JM" = (
+/obj/structure/bed,
+/obj/structure/curtain,
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/obj/effect/turf_decal/corner/opaque/green/border,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/decal/cleanable/vomit/old,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Kb" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/unpowered)
+"Kl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Kt" = (
+/obj/effect/turf_decal/corner/opaque/green/three_quarters,
+/obj/effect/decal/cleanable/blood/gibs/up,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Lv" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"Ly" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 16;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/vodka{
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/cognac{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/gin{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"LA" = (
+/obj/structure/chair/stool/bar{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body.";
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"LB" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"LC" = (
+/obj/structure/flora/grass/jungle/b,
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"LI" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"LR" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/green/border,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Mg" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"Mt" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Mz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"MI" = (
+/obj/structure/flora/grass/jungle,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"MM" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Nt" = (
+/obj/structure/flora/junglebush/b,
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"NG" = (
+/obj/structure/guncloset,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"NR" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/obj/structure/chair/plastic,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"NY" = (
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"Op" = (
+/obj/structure/statue/snow/snowman,
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"OA" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/glass/maunamug,
+/obj/item/reagent_containers/food/snacks/cracker{
+ pixel_x = 12;
+ pixel_y = 7
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Pb" = (
+/obj/effect/decal/cleanable/blood/gibs/down,
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Pm" = (
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"Ps" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/meat/steak/meatproduct{
+ pixel_y = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Pu" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"PP" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Qk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Ql" = (
+/obj/structure/bonfire/prelit,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"Qm" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"Rq" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"RN" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/mineral_door/iron,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Sd" = (
+/obj/item/gun/ballistic/shotgun/doublebarrel/brazil{
+ pixel_x = 8
+ },
+/obj/structure/table/wood/fancy/blue,
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Sf" = (
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/item/ammo_casing/shotgun/improvised,
+/obj/structure/closet/secure_closet,
+/obj/item/ammo_box/magazine/skm_46_30/recycled,
+/obj/item/ammo_box/magazine/skm_46_30/recycled,
+/obj/item/attachment/rail_light,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Sj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"SB" = (
+/obj/structure/bed,
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ desc = " A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body."
+ },
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/item/reagent_containers/syringe{
+ pixel_x = -11
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"To" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Tw" = (
+/obj/item/candle/infinite{
+ pixel_x = 10;
+ pixel_y = 8
+ },
+/obj/item/candle/infinite{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/candle/infinite{
+ pixel_y = 4
+ },
+/obj/item/candle/infinite{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/item/candle/infinite{
+ pixel_x = 10
+ },
+/obj/item/candle/infinite{
+ pixel_x = 16;
+ pixel_y = 10
+ },
+/obj/structure/table/wood/fancy/blue,
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Tx" = (
+/obj/structure/flora/junglebush/b,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"TA" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/unpowered)
+"TL" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ul" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/railing,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Uu" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/amaretto{
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/trappist{
+ pixel_x = 16;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"Ux" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"UE" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Vy" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/railing,
+/obj/item/flashlight/lantern{
+ on = 1
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"VB" = (
+/obj/structure/table/wood/reinforced,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"VI" = (
+/obj/structure/flora/rock/pile,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/ruin/unpowered)
+"VR" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor,
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"VS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"VX" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/bottle/sarsaparilla{
+ pixel_y = 8;
+ pixel_x = -13
+ },
+/obj/item/reagent_containers/food/drinks/bottle/tequila{
+ pixel_x = 13;
+ pixel_y = 10
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"WH" = (
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Xq" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/food/snacks/soup/vegetable,
+/obj/item/storage/pill_bottle/iron{
+ pixel_x = 12;
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"XD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"XH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table,
+/obj/machinery/recharger,
+/obj/item/attachment/foldable_stock{
+ pixel_x = -14
+ },
+/obj/item/attachment/foldable_stock{
+ pixel_x = -14;
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"XK" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/overmap_encounter/planetoid/sand/explored)
+"XL" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/reagent_containers/food/drinks/sillycup/smallcarton{
+ pixel_x = 9;
+ pixel_y = 7
+ },
+/obj/item/cigbutt{
+ pixel_x = -8;
+ pixel_y = 11
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Ya" = (
+/mob/living/simple_animal/bot/medbot/rockplanet{
+ faction = list("hermit")
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/green/three_quarters{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Yc" = (
+/obj/structure/table/wood/fancy/blue,
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Yg" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/green/border,
+/turf/open/floor/plasteel/white,
+/area/ruin/unpowered)
+"Yh" = (
+/obj/item/shovel,
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"Yk" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"Yv" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Yx" = (
+/obj/structure/mineral_door/iron,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Yy" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"YV" = (
+/obj/structure/destructible/tribal_torch/lit,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"YX" = (
+/turf/open/floor/grass/ship/jungle,
+/area/ruin/unpowered)
+"YZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/destructible/tribal_torch/lit,
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"Zd" = (
+/obj/effect/decal/cleanable/blood,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/ruin/unpowered)
+"Zf" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zh" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zs" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/meat/steak/goliath{
+ pixel_x = 4;
+ pixel_y = 7
+ },
+/obj/item/spacecash/bundle/c5{
+ pixel_x = 15;
+ pixel_y = -2
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+
+(1,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+eD
+TL
+DH
+DH
+lu
+lu
+lu
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+lu
+lu
+lu
+aW
+aW
+aW
+aW
+"}
+(2,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+DH
+Cn
+NY
+lu
+kX
+kX
+kX
+kX
+kX
+kX
+kX
+aW
+aW
+aW
+HI
+vi
+lu
+lu
+lu
+aW
+aW
+aW
+"}
+(3,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+NY
+DH
+NY
+vr
+NY
+Zd
+pn
+Ul
+TA
+Eg
+NG
+kX
+kX
+HI
+HI
+HI
+lu
+lu
+lu
+lu
+lu
+lu
+aW
+"}
+(4,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+HI
+NY
+NY
+Op
+NY
+kX
+HV
+Cc
+WH
+hp
+oo
+nF
+kX
+HI
+sj
+Hb
+Hb
+sE
+Hb
+To
+Hb
+Hb
+aW
+"}
+(5,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+sE
+gk
+NY
+NY
+lu
+kX
+pn
+Vy
+WH
+LI
+CT
+XH
+kX
+lu
+sE
+sE
+mz
+hr
+hr
+Hb
+Hb
+Hb
+aW
+"}
+(6,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+lu
+lu
+lu
+HI
+NY
+lu
+lu
+kX
+kX
+kX
+WH
+WH
+Da
+FU
+kX
+CI
+hr
+Hb
+sE
+hr
+sE
+sE
+Hb
+Hb
+aW
+"}
+(7,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+lu
+mz
+lu
+HI
+HI
+xg
+lu
+Pu
+kX
+zi
+LI
+WH
+kX
+kX
+kX
+lu
+sE
+Hb
+hr
+hr
+hr
+sE
+mz
+hr
+Hb
+"}
+(8,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+lu
+lu
+sE
+lu
+HI
+HI
+kX
+kX
+kX
+kX
+WH
+kD
+oR
+kX
+lu
+lu
+Hb
+Hb
+sE
+sE
+sE
+Hb
+Hb
+sE
+hr
+"}
+(9,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+lu
+sE
+lu
+lu
+Yv
+HI
+kX
+Sf
+zy
+Jt
+LB
+BL
+mn
+hg
+lu
+lu
+To
+fK
+hr
+Hb
+mz
+hr
+un
+Hb
+hr
+"}
+(10,1,1) = {"
+aW
+aW
+aW
+aW
+lu
+lu
+lu
+Zf
+lu
+lu
+HI
+kX
+Ep
+xm
+lA
+Da
+Eg
+pf
+hg
+lu
+cS
+Hb
+hr
+hr
+sE
+hr
+hr
+sE
+Hb
+aW
+"}
+(11,1,1) = {"
+aW
+aW
+aW
+aW
+sE
+lu
+HI
+HI
+lu
+xI
+xI
+xI
+xI
+xI
+xI
+xI
+ae
+Eg
+kX
+lu
+lu
+Hb
+Hb
+Hb
+Hb
+Hb
+hr
+Hb
+Hb
+aW
+"}
+(12,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+HI
+HI
+xI
+xI
+xI
+YX
+YX
+YX
+YX
+YX
+YX
+nn
+Ge
+xI
+Fh
+lu
+mv
+qD
+Hb
+sA
+Hb
+sE
+sE
+Hb
+aW
+"}
+(13,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+YX
+YX
+hO
+YX
+uG
+YX
+uG
+uG
+YX
+xI
+HI
+lu
+hr
+Hb
+mv
+Hb
+hr
+Hb
+Hb
+aW
+aW
+"}
+(14,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+xI
+xI
+MI
+YX
+YX
+YX
+DX
+Ql
+Nt
+si
+Tx
+Ux
+xI
+xI
+lu
+hA
+TL
+TL
+hr
+vi
+hr
+aW
+aW
+aW
+"}
+(15,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+xI
+MI
+YX
+Ux
+YX
+YX
+CS
+CS
+CS
+hT
+MI
+YX
+GK
+xI
+lu
+lu
+lu
+hR
+TL
+lu
+aW
+aW
+aW
+aW
+"}
+(16,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+xI
+GK
+YX
+YX
+Pm
+xI
+xI
+xI
+xI
+Pm
+YX
+MI
+YX
+xI
+xI
+HI
+lu
+lu
+TL
+lu
+lu
+lu
+aW
+aW
+"}
+(17,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+GK
+YX
+MI
+xI
+xI
+xI
+dz
+fz
+xI
+xI
+xI
+YX
+YX
+nG
+xI
+HI
+lu
+lu
+lu
+lu
+lu
+lu
+lu
+aW
+"}
+(18,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+MI
+MI
+xI
+CL
+Bw
+Bw
+gH
+Bw
+CL
+xI
+Pm
+MI
+MI
+xI
+xI
+kX
+HI
+HI
+lu
+TL
+TL
+vi
+aW
+"}
+(19,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+bB
+xI
+xI
+ct
+Bw
+GU
+GU
+Bw
+JK
+xI
+xI
+YX
+MI
+mM
+kX
+kX
+kX
+kX
+hA
+lu
+TL
+lu
+aW
+"}
+(20,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+YX
+JK
+JK
+JK
+GU
+Sd
+Tw
+GU
+JK
+tY
+xI
+YX
+YX
+rP
+oo
+Yx
+WH
+RN
+lu
+lu
+TL
+lu
+aW
+"}
+(21,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+YX
+JK
+JK
+JK
+GU
+Yc
+Cl
+GU
+JK
+Kb
+xI
+YX
+YX
+Yy
+WH
+Yx
+pf
+RN
+lu
+lu
+lu
+lu
+aW
+"}
+(22,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+Pm
+xI
+xI
+ct
+Bw
+GU
+GU
+Bw
+JK
+xI
+xI
+uG
+LC
+YZ
+kX
+kX
+kX
+kX
+lu
+lu
+TL
+lu
+aW
+"}
+(23,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+MI
+DX
+xI
+CL
+Bw
+Bw
+gH
+Bw
+CL
+xI
+Pm
+uG
+YX
+xI
+xI
+kX
+lu
+hA
+lu
+lu
+TL
+lu
+aW
+"}
+(24,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+YX
+MI
+MI
+xI
+xI
+xI
+Dk
+dz
+xI
+xI
+xI
+YX
+YX
+GK
+xI
+Gl
+HI
+lu
+lu
+NR
+TL
+TL
+lu
+aW
+"}
+(25,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+xI
+xI
+YX
+Ux
+YX
+Pm
+xI
+xI
+xI
+xI
+Pm
+YX
+YX
+nG
+xI
+xI
+Gl
+HI
+HI
+Pu
+TL
+TL
+lu
+aW
+aW
+"}
+(26,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+xI
+Tx
+Tx
+YX
+YX
+CS
+CS
+CS
+YX
+Tx
+YX
+DX
+YX
+xI
+lu
+HI
+HI
+lu
+lu
+lu
+aW
+aW
+aW
+aW
+"}
+(27,1,1) = {"
+aW
+aW
+kX
+kX
+xI
+xI
+xI
+xI
+fO
+YX
+YX
+wh
+Yh
+Ql
+YX
+DX
+YX
+YX
+YX
+xI
+lu
+lu
+lu
+TL
+lu
+lu
+lu
+lu
+lu
+aW
+"}
+(28,1,1) = {"
+aW
+kX
+kX
+jy
+Ht
+wm
+zj
+yp
+IZ
+YX
+YX
+YX
+YX
+YX
+nG
+vH
+YX
+Mg
+uv
+kX
+HI
+lu
+xK
+TL
+lu
+Gc
+Gc
+Gc
+lu
+aW
+"}
+(29,1,1) = {"
+aW
+kX
+WH
+Qm
+pa
+WH
+xj
+LA
+uq
+BQ
+YX
+GK
+YX
+DA
+YX
+GK
+uG
+kF
+uv
+kX
+kX
+HI
+lu
+HI
+Gc
+Ex
+Gc
+tf
+Gc
+lu
+"}
+(30,1,1) = {"
+kX
+kX
+oo
+YV
+kX
+Lv
+fB
+OA
+VB
+xI
+xI
+xI
+xI
+xI
+xI
+xI
+xI
+jU
+MM
+Qk
+hg
+HI
+HI
+Gc
+Gc
+Gc
+Gc
+cr
+Gc
+lu
+"}
+(31,1,1) = {"
+kX
+cH
+WH
+WH
+Gt
+WH
+DY
+te
+XD
+GO
+kX
+HI
+HI
+kX
+Xq
+ht
+Kl
+xN
+rw
+bv
+hg
+HI
+HI
+wn
+Gc
+Gc
+UE
+cr
+Gc
+lu
+"}
+(32,1,1) = {"
+kX
+pf
+jy
+Zs
+CN
+tx
+Il
+XL
+VS
+qm
+kX
+HI
+gk
+kX
+xQ
+ql
+Pb
+Kt
+Ya
+bv
+hg
+HI
+lu
+Gc
+tf
+Gc
+cr
+cr
+Gc
+lu
+"}
+(33,1,1) = {"
+kX
+Da
+ib
+sf
+fI
+Yk
+fB
+wk
+VS
+Aw
+kX
+Mt
+HI
+kX
+kX
+kX
+fd
+kQ
+Mz
+xu
+kX
+mi
+Gl
+lu
+Gc
+Gc
+Gc
+Gc
+lu
+lu
+"}
+(34,1,1) = {"
+kX
+kX
+Ps
+Al
+EW
+FI
+Il
+jn
+VS
+Uu
+Rq
+xK
+HI
+lu
+lu
+kX
+kX
+yr
+vR
+Sj
+kX
+Iz
+mq
+qT
+FK
+Gl
+Gc
+Ex
+lu
+aW
+"}
+(35,1,1) = {"
+aW
+kX
+cH
+Qm
+pa
+LI
+Il
+mo
+qS
+AN
+Rq
+xK
+lu
+lu
+lu
+lu
+kX
+JM
+rs
+qC
+kX
+lu
+Iz
+vg
+VR
+FB
+Gc
+Gc
+lu
+aW
+"}
+(36,1,1) = {"
+aW
+kX
+kX
+YV
+kX
+Br
+fB
+wk
+VS
+Ly
+Rq
+xK
+lu
+lu
+Zf
+lu
+kX
+IE
+LR
+aS
+kX
+Iz
+lu
+Iz
+lu
+Zh
+tf
+Gc
+lu
+aW
+"}
+(37,1,1) = {"
+aW
+aW
+kX
+WH
+is
+WH
+hN
+VX
+eC
+wd
+kX
+PP
+lu
+lu
+lu
+lu
+kX
+xV
+Yg
+SB
+kX
+lu
+XK
+lu
+Iz
+Zh
+Gc
+lu
+aW
+aW
+"}
+(38,1,1) = {"
+aW
+aW
+kX
+kX
+Da
+WH
+fB
+bq
+iu
+kX
+kX
+HI
+HI
+lu
+pu
+lu
+kX
+kX
+kX
+kX
+kX
+cN
+Zh
+Gl
+lu
+lu
+lu
+lu
+aW
+aW
+"}
+(39,1,1) = {"
+aW
+aW
+aW
+kX
+hg
+hg
+hg
+kX
+kX
+kX
+HI
+nf
+HI
+aW
+lu
+aW
+aW
+VI
+aW
+aW
+aW
+lu
+vi
+lu
+Zf
+lu
+lu
+aW
+aW
+aW
+"}
+(40,1,1) = {"
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+HI
+HI
+HI
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+aW
+lu
+lu
+lu
+lu
+aW
+aW
+aW
+aW
+"}
diff --git a/_maps/RandomRuins/SandRuins/whitesands_cave_base.dmm b/_maps/RandomRuins/SandRuins/whitesands_cave_base.dmm
new file mode 100644
index 000000000000..22683628b02e
--- /dev/null
+++ b/_maps/RandomRuins/SandRuins/whitesands_cave_base.dmm
@@ -0,0 +1,5720 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"aO" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating,
+/area/ruin/whitesands/cave_base)
+"bF" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"cd" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"ci" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/sheet/bone{
+ pixel_x = 1;
+ pixel_y = -3
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"cC" = (
+/obj/machinery/blackbox_recorder{
+ empty = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/window/reinforced/spawner{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base)
+"du" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"dO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/disk/holodisk/ruin/cave_base/one{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"dP" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/turf_decal/steeldecal/steel_decals3{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"dU" = (
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/whitesands/cave_base)
+"dX" = (
+/obj/machinery/camera/cave_base{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"eh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/lamp{
+ pixel_y = 7;
+ pixel_x = 2
+ },
+/obj/item/disk/holodisk/ruin/cave_base/six{
+ pixel_y = 2;
+ pixel_x = -7
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/whitesands/cave_base)
+"ek" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"er" = (
+/obj/item/stack/sheet/bone{
+ pixel_x = 1;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"eE" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"eK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/hatch{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base/engi)
+"eL" = (
+/obj/machinery/camera/cave_base,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/ruin/whitesands/cave_base)
+"eS" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"eX" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals3{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -25;
+ pixel_y = -5
+ },
+/obj/machinery/camera/cave_base,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"eZ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/whitesands/cave_base/engi)
+"fb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/ore/salvage/scrapplasma,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"fi" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"fT" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"gx" = (
+/obj/effect/turf_decal/corner_techfloor_gray/full{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/item/clothing/suit/armor/vest/duster{
+ pixel_y = -4;
+ pixel_x = -6
+ },
+/obj/item/rack_parts{
+ pixel_y = 7;
+ pixel_x = 5
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/item/ammo_box/magazine/sniper_rounds{
+ start_empty = 1;
+ pixel_y = -4;
+ pixel_x = -1
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/disk/holodisk/ruin/cave_base/three{
+ pixel_y = 5;
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"gF" = (
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"gG" = (
+/obj/structure/closet/secure_closet/personal{
+ pixel_y = 0
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/head/soft/black,
+/obj/item/clothing/under/utility,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"gK" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"gN" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"hd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"hw" = (
+/obj/effect/turf_decal/corner_techfloor_gray/full,
+/obj/structure/flippedtable{
+ dir = 8
+ },
+/obj/item/paper{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paper{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/disk/holodisk/ruin/cave_base/four{
+ pixel_y = -7;
+ pixel_x = 4
+ },
+/obj/item/ammo_casing/p50,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"hG" = (
+/obj/effect/turf_decal/floordetail/pryhole,
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/curtain/cloth,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/wall/directional/west,
+/obj/item/soap/deluxe,
+/obj/item/towel{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/towel{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/whitesands/cave_base)
+"hN" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"iP" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"jj" = (
+/obj/item/pickaxe/mini,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"kr" = (
+/obj/structure/fence,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/overmap_encounter/planetoid/cave/explored)
+"kM" = (
+/obj/structure/fence/cut/large{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kN" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"lk" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base/engi)
+"lw" = (
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"lB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/rack_parts{
+ pixel_y = -1;
+ pixel_x = -2
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/item/circuitboard/machine/cell_charger,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"mh" = (
+/turf/closed/mineral/random/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"mo" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"my" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"mz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"mP" = (
+/obj/structure/cable{
+ icon_state = "6-9"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"mV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk,
+/obj/machinery/door/window/brigdoor{
+ dir = 8
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/cave_base)
+"ni" = (
+/obj/structure/railing{
+ dir = 10;
+ layer = 4.1
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"nq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"nr" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"nw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/item/rack_parts{
+ pixel_y = 7;
+ pixel_x = 5
+ },
+/obj/item/circuitboard/machine/space_heater{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"nG" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"nL" = (
+/obj/machinery/door/airlock/hatch,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"nM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/outlet_injector/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"od" = (
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/whitesands/cave_base)
+"oe" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"oh" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/paper{
+ pixel_x = 11;
+ pixel_y = -5
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/paper{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = -10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"ou" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate{
+ opened = 1
+ },
+/obj/item/stock_parts/micro_laser/ultra,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"oP" = (
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"oQ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"oR" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = -5;
+ pixel_x = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/industrial/stand_clear,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/hand_labeler_refill{
+ pixel_y = -4;
+ pixel_x = -4
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"pf" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/tech,
+/area/ruin/whitesands/cave_base)
+"pp" = (
+/turf/open/water/acid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"py" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"pV" = (
+/obj/machinery/camera/cave_base{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/ruin/whitesands/cave_base)
+"qd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"qr" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"qK" = (
+/obj/structure/cable{
+ icon_state = "6-9"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"qO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = -5;
+ pixel_x = 9
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = 10;
+ pixel_x = -5
+ },
+/obj/item/ammo_casing/p50,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"qQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"qR" = (
+/turf/closed/wall/concrete/reinforced,
+/area/overmap_encounter/planetoid/cave/explored)
+"qU" = (
+/obj/item/rack_parts{
+ pixel_y = 7;
+ pixel_x = -6
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/item/ammo_casing/p50,
+/turf/open/floor/plasteel/tech,
+/area/ruin/whitesands/cave_base)
+"qY" = (
+/obj/structure/table/greyscale,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/item/clipboard{
+ pixel_y = 11;
+ pixel_x = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals3{
+ dir = 5
+ },
+/obj/item/paper_bin{
+ pixel_y = -1;
+ pixel_x = -5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/item/pen/blue{
+ pixel_y = 6;
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"qZ" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"rx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"rA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"rJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 1
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"rK" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 6;
+ pixel_x = 3
+ },
+/obj/machinery/light/directional/south,
+/obj/item/disk/holodisk/ruin/cave_base/two{
+ pixel_y = -4;
+ pixel_x = -8
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"rN" = (
+/obj/machinery/power/smes{
+ input_level = 20000;
+ output_level = 15000
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"sm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"sr" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"sF" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals9,
+/obj/item/paper{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/head/soft/black{
+ pixel_y = 10;
+ pixel_x = 4
+ },
+/obj/item/paper{
+ pixel_y = -7;
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/generic,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"sH" = (
+/obj/machinery/camera/cave_base{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"sL" = (
+/obj/structure/spawner/burrow/sand_planet,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"sN" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"sO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"tA" = (
+/obj/structure/sign/warning/longtermwaste{
+ pixel_y = -30
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"tB" = (
+/obj/machinery/porta_turret/cave_base{
+ lethal = 1
+ },
+/obj/effect/turf_decal/box/red,
+/obj/structure/cable,
+/obj/machinery/light/floor,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"tX" = (
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"tY" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/machinery/power/deck_relay{
+ pixel_y = 28;
+ pixel_x = -12
+ },
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/whitesands/cave_base)
+"ug" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"uh" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"un" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"ux" = (
+/turf/template_noop,
+/area/template_noop)
+"vb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"vg" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"vr" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/structure/filingcabinet/double{
+ pixel_y = 16;
+ pixel_x = 5;
+ density = 0
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/item/hand_labeler_refill{
+ pixel_x = 4
+ },
+/obj/item/ammo_casing/p50/penetrator,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"wc" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"wi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/ore/salvage/scrapsilver,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"wq" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"wC" = (
+/obj/effect/anomaly/tvstatic/planetary,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"wD" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/obj/item/disk/holodisk/ruin/cave_base/five{
+ pixel_y = -2;
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"xe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"xj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray/full{
+ dir = 8
+ },
+/obj/machinery/autolathe,
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"xr" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor4-old"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"xG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/structure/frame/machine,
+/obj/item/stack/ore/salvage/scrapplasma,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"xI" = (
+/obj/effect/turf_decal/techfloor/hole{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"xL" = (
+/obj/machinery/camera/cave_base,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"xV" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"yx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"yA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = 8;
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central6{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -6;
+ pixel_y = 17
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 4;
+ pixel_y = -9
+ },
+/obj/item/grenade/c4/cave_base,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"yD" = (
+/obj/machinery/porta_turret/cave_base{
+ lethal = 1
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/box/red,
+/obj/machinery/light/floor,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"zb" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"zj" = (
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"zr" = (
+/obj/structure/table/greyscale,
+/obj/effect/turf_decal/corner_techfloor_gray/full{
+ dir = 8
+ },
+/obj/machinery/fax/ruin,
+/obj/item/desk_flag{
+ pixel_y = 12;
+ pixel_x = 11;
+ layer = 2.8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"zs" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ruin/whitesands/cave_base)
+"zv" = (
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"Aa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ak" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"AH" = (
+/obj/machinery/telecomms/relay{
+ pixel_y = 14;
+ pixel_x = 2;
+ network = "Operations Zone 107";
+ id = "Groundbase-Omnicron"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/window/reinforced/spawner{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/obj/item/stack/ore/salvage/scrapbluespace{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base)
+"Bd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Bm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"BZ" = (
+/obj/structure/cable{
+ icon_state = "6-9"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ca" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/computer/security/retro/cave_base,
+/obj/machinery/turretid/lethal{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base)
+"CB" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"CP" = (
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/whitesands/cave_base/engi)
+"Dh" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/atmospherics/components/unary/portables_connector/layer4{
+ dir = 1
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base/engi)
+"Do" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dv" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"DY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/rack_parts{
+ pixel_y = -1;
+ pixel_x = -2
+ },
+/obj/item/stack/ore/salvage/scrapsilver,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Eh" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Em" = (
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/suit/space/fragile,
+/obj/item/clothing/head/helmet/space/fragile,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"Ev" = (
+/obj/machinery/camera/cave_base{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"Ex" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"EA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"EJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"EL" = (
+/turf/open/floor/plating/asteroid/whitesands/grass/dead,
+/area/overmap_encounter/planetoid/cave/explored)
+"ER" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/bin{
+ pixel_y = 11;
+ pixel_x = -7
+ },
+/obj/effect/spawner/random/maintenance,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"EX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/obj/item/grenade/c4/satchel_charge/cave_base,
+/obj/item/gun/ballistic/automatic/marksman/taipan/no_mag{
+ pixel_x = -14;
+ pixel_y = -10
+ },
+/obj/item/assembly_holder/premade/cave_base{
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/whitesands/cave_base)
+"Ff" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/salvageable/computer{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_techfloor_gray/full,
+/obj/item/stack/ore/salvage/scrapsilver,
+/obj/item/stock_parts/manipulator/pico{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"Fs" = (
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fv" = (
+/obj/effect/turf_decal/techfloor/corner,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fw" = (
+/obj/structure/bed,
+/obj/item/bedsheet/cosmos{
+ desc = "In the cosmos I had a dream, dreamt I saw this world's destiny..."
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/toy/plush/nukeplushie{
+ pixel_y = 4;
+ pixel_x = 3
+ },
+/obj/structure/curtain/cloth,
+/turf/open/floor/carpet/red,
+/area/ruin/whitesands/cave_base)
+"FC" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = -22
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"FN" = (
+/obj/machinery/power/deck_relay{
+ pixel_y = 28;
+ pixel_x = 13
+ },
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/effect/decal/cleanable/wrapping,
+/obj/item/clothing/under/utility{
+ pixel_y = 5;
+ pixel_x = 5
+ },
+/obj/item/ammo_casing/p50,
+/turf/open/floor/plating,
+/area/ruin/whitesands/cave_base)
+"FQ" = (
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/item/stock_parts/cell/high/empty,
+/obj/machinery/airalarm/directional/south,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Gd" = (
+/obj/effect/turf_decal/box/red,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/cave_base{
+ lethal = 1
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"GH" = (
+/obj/machinery/camera/cave_base{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"GK" = (
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Hr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/stack/sheet/bone{
+ pixel_x = 4;
+ pixel_y = -5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"HF" = (
+/obj/machinery/porta_turret/cave_base{
+ lethal = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/box/red,
+/obj/machinery/light/floor,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"If" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"IG" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-5"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray/full{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/hand_labeler{
+ pixel_x = 2;
+ pixel_y = -5
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"IL" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ji" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ruin/whitesands/cave_base)
+"JB" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ka" = (
+/obj/machinery/camera/cave_base{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"Kt" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"KF" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/floordetail/pryhole,
+/obj/effect/decal/cleanable/ash{
+ pixel_y = 12;
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -13;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"KG" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Lt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor/corner,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Lz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light_switch{
+ pixel_y = 11;
+ pixel_x = -22;
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/under/utility{
+ pixel_y = -12;
+ pixel_x = -8
+ },
+/obj/item/clothing/head/soft/black{
+ pixel_x = 7;
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/whitesands/cave_base)
+"LI" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"LM" = (
+/mob/living/simple_animal/hostile/asteroid/goliath/beast,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Me" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/ash{
+ pixel_y = -5;
+ pixel_x = 9
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = 16;
+ pixel_x = -10
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/item/hand_labeler_refill{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/structure/closet/crate/bin{
+ pixel_y = 11;
+ pixel_x = 8
+ },
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"Mi" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Mo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera/cave_base{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/ruin/whitesands/cave_base)
+"MP" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"MU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = -5;
+ pixel_x = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Ng" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flippedtable{
+ dir = 8
+ },
+/obj/item/circuitboard/machine/cell_charger,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Nj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Nw" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_y = 7;
+ pixel_x = -10;
+ layer = 2.91
+ },
+/obj/structure/mirror{
+ pixel_y = 30
+ },
+/obj/structure/sink{
+ pixel_y = 18
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"NE" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"NR" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -4;
+ pixel_y = 13
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Op" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"OG" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/structure/flippedtable,
+/obj/item/paper/crumpled{
+ pixel_x = 9;
+ pixel_y = 13
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/item/paper/crumpled{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 4;
+ pixel_y = -2
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"Pa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/ore/salvage/scrapplasma,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/obj/structure/flippedtable{
+ dir = 1
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 9;
+ pixel_y = 13
+ },
+/obj/item/paper/crumpled,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Pf" = (
+/obj/machinery/power/rtg/geothermal,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Pv" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"PS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Qb" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Qg" = (
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"QC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"Rp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/spawner/random/maintenance,
+/obj/structure/sign/warning/securearea{
+ pixel_x = 24;
+ pixel_y = -5
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Rt" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/grass/dead,
+/area/overmap_encounter/planetoid/cave/explored)
+"RC" = (
+/obj/effect/gibspawner/generic/animal,
+/turf/open/floor/plating/asteroid/whitesands/grass/dead,
+/area/overmap_encounter/planetoid/cave/explored)
+"RG" = (
+/obj/structure/flora/ash/puce,
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Sj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/obj/effect/decal/cleanable/ash/large,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/whitesands/cave_base/engi)
+"Sk" = (
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/cave_base)
+"Sl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/frame/machine,
+/obj/item/stock_parts/manipulator/pico,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Su" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"SY" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/box/red,
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/cave_base{
+ lethal = 1
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"TU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"Va" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/floordetail/pryhole,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/structure/flippedtable{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/whitesands/cave_base)
+"Vc" = (
+/obj/item/stack/sheet/bone{
+ pixel_y = 3;
+ pixel_x = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vf" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "!";
+ pixel_x = 12;
+ pixel_y = 11
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "#"
+ },
+/obj/item/mine/pressure/explosive/shrapnel/live,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Vr" = (
+/obj/structure/spawner/burrow/sand_planet,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"VL" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"VW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = 4
+ },
+/obj/item/stock_parts/capacitor/super{
+ pixel_y = 8;
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base/engi)
+"Wf" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"WD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/ash{
+ pixel_y = 10;
+ pixel_x = -5
+ },
+/obj/item/clothing/shoes/jackboots{
+ pixel_x = -2;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -11;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 4;
+ pixel_y = 7
+ },
+/obj/item/stack/ore/salvage/scrapsilver,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+"WR" = (
+/obj/effect/gibspawner/generic/animal,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xa" = (
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xc" = (
+/mob/living/simple_animal/hostile/asteroid/goliath/beast,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xe" = (
+/obj/machinery/porta_turret/cave_base,
+/turf/closed/mineral/random/whitesands,
+/area/overmap_encounter/planetoid/cave/explored)
+"XF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1/whitesands,
+/area/ruin/whitesands/cave_base)
+"XG" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/rack_parts{
+ pixel_y = -9;
+ pixel_x = -4
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 10;
+ pixel_x = -9
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/cave_base)
+"Yy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/stairs/old{
+ dir = 1
+ },
+/area/ruin/whitesands/cave_base)
+"YJ" = (
+/obj/structure/cable{
+ icon_state = "6-10"
+ },
+/turf/closed/wall/concrete/reinforced,
+/area/ruin/whitesands/cave_base)
+"YY" = (
+/obj/structure/railing/corner,
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zh" = (
+/obj/structure/vein,
+/turf/open/floor/plating/asteroid/whitesands/grass,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zr" = (
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried,
+/area/overmap_encounter/planetoid/cave/explored)
+"ZB" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-6"
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/sign/warning/electricshock{
+ pixel_x = 24;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/washing_machine{
+ pixel_y = 17;
+ pixel_x = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/cave_base)
+"ZJ" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/item/lighter{
+ pixel_y = 11;
+ pixel_x = 11
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = -6;
+ pixel_y = 17
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/molten_object{
+ pixel_y = -6;
+ pixel_x = -4
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_y = 12;
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/ash/large{
+ pixel_y = 3;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/cave_base)
+
+(1,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(2,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+FQ
+FQ
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(3,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+FQ
+FQ
+FQ
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(4,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+FQ
+FQ
+FQ
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(5,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+qR
+kM
+kr
+qR
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(6,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+tX
+tX
+tX
+mh
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(7,1,1) = {"
+ux
+ux
+ux
+ux
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+fT
+hN
+tX
+Ev
+qR
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(8,1,1) = {"
+ux
+ux
+ux
+ux
+mh
+KG
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+mh
+mh
+mh
+tX
+KG
+tX
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+tX
+tX
+Fv
+qr
+Zr
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(9,1,1) = {"
+ux
+ux
+ux
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+tX
+hN
+tX
+tX
+tX
+mh
+tX
+MP
+Bd
+Bd
+Bd
+Bd
+Bd
+LI
+tB
+Mi
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(10,1,1) = {"
+ux
+ux
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+ux
+mh
+ux
+ux
+ux
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+zj
+vb
+KG
+tX
+tX
+tX
+tX
+nG
+VL
+du
+sH
+qR
+mh
+mh
+tX
+KG
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(11,1,1) = {"
+ux
+mh
+mh
+mh
+tX
+jj
+tX
+mh
+mh
+mh
+mh
+mh
+ux
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+pp
+mh
+mh
+zj
+vb
+tX
+tX
+tX
+mh
+mh
+tX
+YY
+uh
+kJ
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(12,1,1) = {"
+ux
+mh
+mh
+mh
+tX
+fT
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+pp
+pp
+mh
+zj
+xe
+ug
+tX
+mh
+mh
+mh
+mh
+mh
+nM
+rJ
+Bm
+Aa
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(13,1,1) = {"
+ux
+mh
+mh
+mh
+KG
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+KG
+tX
+mh
+mh
+pp
+pp
+mh
+zj
+xe
+zj
+zj
+mh
+mh
+mh
+mh
+mh
+Rp
+vg
+gN
+gN
+Dh
+mh
+mh
+tX
+fT
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(14,1,1) = {"
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+zj
+mh
+pp
+pp
+mh
+mh
+zj
+vb
+zj
+zj
+mh
+mh
+mh
+mh
+mh
+CP
+lk
+CP
+Bm
+TU
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(15,1,1) = {"
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+KG
+tX
+fT
+WR
+zj
+zj
+mh
+mh
+mh
+mh
+mh
+zj
+vb
+zj
+tX
+mh
+mh
+mh
+mh
+mh
+CP
+EJ
+CP
+Bm
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(16,1,1) = {"
+mh
+mh
+mh
+mh
+zv
+tX
+KG
+tX
+mh
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+Fv
+wc
+RG
+mh
+mh
+mh
+MP
+Bd
+JB
+tX
+mh
+mh
+CP
+CP
+CP
+CP
+CP
+Dj
+CP
+CP
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(17,1,1) = {"
+mh
+mh
+mh
+qZ
+zv
+tX
+tX
+tX
+tX
+hN
+tX
+tX
+tX
+tX
+tX
+tX
+Fs
+HF
+IL
+zj
+eS
+mh
+vb
+tX
+tX
+mh
+mh
+mh
+CP
+xj
+Fj
+CP
+ER
+Vn
+lB
+CP
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(18,1,1) = {"
+mh
+mh
+qR
+eL
+zv
+qZ
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+KG
+gK
+qQ
+un
+zj
+zj
+mh
+Lt
+qr
+Zr
+mh
+mh
+mh
+CP
+sm
+qd
+CP
+Nj
+EA
+DY
+CP
+mh
+mh
+tX
+Ka
+tX
+mh
+pp
+pp
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(19,1,1) = {"
+mh
+mh
+mh
+zv
+Su
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+oQ
+Bd
+If
+Bd
+Bd
+nr
+yD
+Mi
+mh
+mh
+mh
+CP
+nw
+Sj
+eK
+VW
+Ex
+xG
+CP
+mh
+mh
+mh
+qR
+tX
+mh
+pp
+pp
+pp
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+FQ
+FQ
+ux
+ux
+ux
+"}
+(20,1,1) = {"
+mh
+mh
+mh
+zv
+zv
+qZ
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+pp
+pp
+mh
+mh
+mh
+tX
+vb
+mh
+mh
+gK
+Vf
+un
+qR
+mh
+mh
+CP
+eZ
+eZ
+CP
+Ng
+qO
+FS
+CP
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+pp
+pp
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+FQ
+FQ
+FQ
+ux
+ux
+"}
+(21,1,1) = {"
+ux
+mh
+mh
+qZ
+zv
+mh
+mh
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+pp
+pp
+pp
+mh
+mh
+vb
+mh
+mh
+mh
+tX
+tX
+dX
+mh
+mh
+mh
+mh
+CP
+Pa
+NR
+MU
+yx
+CP
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+pp
+pp
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+FQ
+FQ
+FQ
+ux
+"}
+(22,1,1) = {"
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+mh
+tX
+Fv
+qr
+Zr
+tX
+pp
+pp
+pp
+mh
+mh
+vb
+tX
+tX
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+CP
+Sl
+wi
+ou
+fb
+CP
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+pp
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+FQ
+FQ
+FQ
+ux
+"}
+(23,1,1) = {"
+mh
+mh
+mh
+mh
+mh
+mh
+hN
+GK
+tX
+tX
+Fs
+SY
+Mi
+tX
+tX
+pp
+mh
+mh
+mh
+vb
+tX
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+CP
+CP
+CP
+CP
+CP
+CP
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+FQ
+FQ
+ux
+"}
+(24,1,1) = {"
+ux
+mh
+mh
+mh
+tX
+mh
+Qg
+Pf
+gF
+tX
+gK
+qQ
+un
+tX
+tX
+mh
+mh
+mh
+tX
+vb
+tX
+tX
+mh
+tX
+tX
+tX
+KG
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+FQ
+FQ
+FQ
+"}
+(25,1,1) = {"
+mh
+mh
+mh
+mh
+tX
+mh
+tX
+Xa
+Bd
+Bd
+Bd
+Qb
+wq
+mh
+mh
+mh
+mh
+MP
+Bd
+JB
+mh
+zj
+mh
+tX
+mh
+fT
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+FQ
+FQ
+FQ
+"}
+(26,1,1) = {"
+mh
+mh
+mh
+tX
+tX
+MP
+Ak
+tX
+tX
+Ka
+tX
+mh
+vb
+mh
+mh
+mh
+tX
+vb
+mh
+mh
+mh
+zj
+zj
+tX
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+zv
+tX
+tX
+iP
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+FQ
+FQ
+FQ
+"}
+(27,1,1) = {"
+mh
+mh
+mh
+xV
+tX
+vb
+mh
+qR
+mh
+qR
+mh
+mh
+eE
+Bd
+Bd
+Bd
+Bd
+JB
+mh
+mh
+zj
+zj
+zj
+zj
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+zv
+qZ
+zv
+tX
+tX
+tX
+tX
+tX
+KG
+tX
+tX
+iP
+tX
+fT
+tX
+tX
+tX
+tX
+tX
+FQ
+FQ
+FQ
+"}
+(28,1,1) = {"
+mh
+mh
+mh
+mh
+tX
+vb
+mh
+mh
+od
+od
+od
+od
+mh
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+zj
+zj
+ug
+zj
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+LM
+tX
+tX
+tX
+zv
+zv
+zv
+KG
+tX
+tX
+tX
+iP
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+FQ
+FQ
+FQ
+"}
+(29,1,1) = {"
+ux
+mh
+mh
+mh
+tX
+Mo
+qR
+mh
+od
+rN
+XG
+od
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+zj
+zj
+zj
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+oe
+tX
+tX
+tX
+qZ
+zv
+zv
+tX
+tX
+tX
+tX
+fT
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+mh
+FQ
+FQ
+FQ
+"}
+(30,1,1) = {"
+ux
+ux
+mh
+mh
+tX
+vb
+mh
+mh
+od
+ZB
+KF
+od
+od
+od
+od
+od
+od
+od
+od
+od
+mh
+mh
+zj
+zj
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+LM
+zv
+zv
+qZ
+mh
+tX
+tX
+iP
+tX
+tX
+KG
+tX
+tX
+tX
+KG
+tX
+tX
+mh
+mh
+mh
+FQ
+ux
+"}
+(31,1,1) = {"
+mh
+ux
+mh
+mh
+tX
+lw
+tX
+qR
+od
+od
+Sk
+od
+gx
+sF
+oh
+hw
+od
+Nw
+hG
+od
+mh
+mh
+zj
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+Ka
+tX
+tX
+zv
+zv
+zv
+zv
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+"}
+(32,1,1) = {"
+mh
+mh
+mh
+mh
+tX
+tX
+oP
+mh
+od
+Em
+QC
+xI
+oR
+yA
+bF
+OG
+od
+sN
+od
+od
+od
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+oe
+tX
+tX
+tX
+tX
+qR
+mh
+mh
+qZ
+zv
+mh
+mh
+mh
+mh
+tX
+mh
+mh
+qR
+xL
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+"}
+(33,1,1) = {"
+ux
+mh
+mh
+mh
+mh
+tX
+vb
+mh
+od
+dP
+FC
+od
+vr
+ZJ
+WD
+wD
+nL
+nq
+Lz
+zs
+od
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+Vr
+tX
+tX
+mh
+mh
+mh
+mh
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+"}
+(34,1,1) = {"
+ux
+mh
+mh
+mh
+tX
+tX
+vb
+mh
+od
+dU
+Op
+od
+zr
+qY
+Me
+IG
+od
+gG
+eh
+Fw
+od
+mh
+pp
+pp
+pp
+pp
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(35,1,1) = {"
+ux
+mh
+mh
+tX
+tX
+tX
+vb
+mh
+od
+eX
+rx
+od
+od
+FN
+aO
+Ji
+od
+od
+od
+od
+od
+mh
+pp
+pp
+pp
+pp
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+mh
+mh
+tX
+mh
+mh
+KG
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(36,1,1) = {"
+ux
+mh
+mh
+tX
+tX
+er
+PS
+Ff
+od
+Dv
+XF
+rK
+YJ
+od
+od
+ek
+od
+mh
+mh
+mh
+mh
+mh
+pp
+pp
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(37,1,1) = {"
+mh
+mh
+mh
+mh
+mh
+tX
+Do
+ci
+dO
+Yy
+Kt
+tA
+od
+tY
+qU
+Va
+od
+mh
+mh
+mh
+mh
+pp
+pp
+pp
+tX
+iP
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+fi
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(38,1,1) = {"
+mh
+mh
+tX
+mh
+mh
+mh
+sO
+rA
+Eh
+ni
+hd
+mz
+od
+Ca
+EX
+pf
+od
+mh
+mh
+mh
+pp
+pp
+mh
+pp
+tX
+tX
+tX
+KG
+tX
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(39,1,1) = {"
+mh
+mh
+tX
+mh
+mh
+mh
+Hr
+BZ
+rA
+Pv
+Wf
+zb
+od
+AH
+mV
+cC
+od
+mh
+mh
+mh
+pp
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+oe
+KG
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(40,1,1) = {"
+mh
+mh
+tX
+tX
+tX
+mh
+vb
+rA
+qK
+sr
+od
+od
+od
+od
+od
+od
+od
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+iP
+tX
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(41,1,1) = {"
+mh
+mh
+tX
+tX
+tX
+mh
+vb
+py
+Vc
+mP
+tX
+od
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(42,1,1) = {"
+mh
+mh
+tX
+iP
+tX
+tX
+vb
+tX
+tX
+tX
+mP
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+qR
+GH
+tX
+fT
+tX
+tX
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+tX
+mh
+tX
+tX
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(43,1,1) = {"
+mh
+mh
+mh
+iP
+tX
+tX
+vb
+tX
+tX
+tX
+tX
+oP
+qR
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+tX
+tX
+mh
+mh
+qR
+tX
+tX
+tX
+tX
+mh
+mh
+fi
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(44,1,1) = {"
+mh
+mh
+mh
+mh
+iP
+Fv
+CB
+Zr
+tX
+Xe
+tX
+lw
+tX
+tX
+qR
+mh
+mh
+tX
+tX
+mh
+tX
+tX
+KG
+tX
+mh
+mh
+tX
+tX
+oe
+tX
+mh
+mh
+tX
+tX
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+tX
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(45,1,1) = {"
+mh
+mh
+mh
+qR
+GH
+Fs
+Gd
+Mi
+tX
+mh
+qR
+GH
+mP
+tX
+tX
+mh
+qR
+tX
+tX
+mh
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+tX
+mh
+mh
+tX
+aa
+tX
+mh
+mh
+mh
+mh
+tX
+EL
+EL
+mh
+mh
+tX
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(46,1,1) = {"
+mh
+mh
+mh
+mh
+tX
+gK
+Vf
+un
+tX
+mh
+mh
+tX
+Fv
+kN
+Zr
+tX
+tX
+tX
+mh
+mh
+tX
+fT
+tX
+tX
+tX
+hN
+tX
+tX
+mh
+mh
+mh
+tX
+mo
+tX
+mh
+mh
+mh
+EL
+EL
+EL
+EL
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(47,1,1) = {"
+mh
+ux
+mh
+mh
+mh
+tX
+tX
+WR
+tX
+mh
+mh
+tX
+Fs
+Gd
+Mi
+tX
+WR
+tX
+mh
+tX
+tX
+tX
+tX
+mh
+tX
+tX
+tX
+mh
+mh
+mh
+tX
+tX
+tX
+tX
+mh
+mh
+mh
+EL
+EL
+EL
+EL
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(48,1,1) = {"
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+tX
+mh
+mh
+tX
+gK
+Vf
+un
+tX
+tX
+tX
+tX
+tX
+xr
+tX
+tX
+mh
+mh
+tX
+tX
+mh
+mh
+tX
+tX
+tX
+tX
+mo
+EL
+mh
+mh
+EL
+my
+zv
+EL
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(49,1,1) = {"
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+tX
+mh
+qR
+tX
+tX
+tX
+tX
+tX
+qR
+mh
+mh
+zv
+tX
+tX
+mh
+mh
+mh
+tX
+mh
+mh
+mh
+tX
+wC
+tX
+tX
+EL
+EL
+EL
+zv
+zv
+zv
+zv
+zv
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(50,1,1) = {"
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+tX
+mh
+mh
+mh
+mh
+hN
+tX
+tX
+mh
+mh
+mh
+zv
+zv
+pV
+qR
+mh
+mh
+zv
+qZ
+mh
+mh
+mh
+tX
+tX
+tX
+Rt
+EL
+RC
+zv
+NE
+cd
+Xc
+zv
+zv
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(51,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+tX
+tX
+mh
+mh
+mh
+zv
+qZ
+zv
+mh
+mh
+zv
+zv
+zv
+zv
+mh
+mh
+mh
+mh
+mh
+EL
+EL
+zv
+zv
+zv
+sL
+zv
+zv
+my
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(52,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+zv
+zv
+zv
+zv
+zv
+Zh
+zv
+zv
+mh
+mh
+mh
+mh
+mh
+mh
+zv
+cd
+zv
+zv
+zv
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(53,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+zv
+zv
+qZ
+zv
+zv
+qZ
+zv
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+my
+zv
+Xc
+zv
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(54,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+zv
+Su
+zv
+zv
+zv
+zv
+mh
+mh
+mh
+mh
+mh
+ux
+mh
+mh
+mh
+mh
+zv
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(55,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+zv
+qZ
+zv
+mh
+mh
+mh
+mh
+ux
+mh
+mh
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(56,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
+(57,1,1) = {"
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+mh
+mh
+mh
+mh
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+mh
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+ux
+"}
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
index b903fd3cce78..f90ef59ba8c3 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -115,7 +115,7 @@
/area/ruin)
"fb" = (
/obj/structure/flora/ash/cap_shroom,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -269,7 +269,7 @@
/area/overmap_encounter/planetoid/sand/explored)
"ko" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin)
@@ -290,7 +290,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"kO" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -699,7 +699,7 @@
/area/ruin)
"AI" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin)
"AR" = (
@@ -915,7 +915,7 @@
/turf/open/floor/wood,
/area/ruin)
"HX" = (
-/obj/effect/spawner/lootdrop/armory_contraband/metastation,
+/obj/effect/spawner/random/exotic/armory,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -964,7 +964,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"JE" = (
-/obj/effect/spawner/lootdrop/tool_engie_sydnie,
+/obj/effect/spawner/random/engineering/tool/sydnie,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -995,7 +995,7 @@
"KJ" = (
/obj/structure/table,
/obj/item/gun/ballistic/automatic/smg/skm_carbine,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_46_30,
/turf/open/floor/concrete,
/area/ruin)
"Ld" = (
@@ -1164,7 +1164,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"SV" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -1273,7 +1273,7 @@
/area/ruin)
"Xa" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin)
"Xb" = (
@@ -1301,7 +1301,7 @@
"XP" = (
/obj/structure/table,
/obj/item/trash/can,
-/obj/item/ammo_box/c45/surplus,
+/obj/item/storage/box/ammo/c45_surplus,
/turf/open/floor/concrete,
/area/ruin)
"XS" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index 219fc7a6b6b6..17a16c3fffc6 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -133,7 +133,7 @@
/area/ruin/whitesands/saloon)
"eq" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
@@ -220,7 +220,7 @@
/area/ruin/whitesands/saloon)
"ge" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
icon_state = "wood-broken5"
@@ -426,7 +426,7 @@
/area/ruin/whitesands/saloon)
"lg" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"lB" = (
@@ -444,7 +444,7 @@
/area/ruin/whitesands/saloon)
"lI" = (
/obj/structure/table/wood/poker,
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/turf/open/floor/carpet,
/area/ruin/whitesands/saloon)
"lV" = (
@@ -645,7 +645,7 @@
/area/ruin/whitesands/saloon)
"sj" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
@@ -848,7 +848,7 @@
/area/ruin/whitesands/saloon)
"zv" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood{
icon_state = "wood-broken5"
},
@@ -1025,7 +1025,7 @@
/area/ruin/whitesands/saloon)
"EV" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/item/gun/energy/plasmacutter{
icon_state = "pulse_carbine";
@@ -1355,7 +1355,7 @@
/area/ruin/whitesands/saloon)
"Pi" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"Px" = (
@@ -1590,7 +1590,7 @@
/area/ruin/whitesands/saloon)
"Wl" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"WP" = (
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_e11_manufactory.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_e11_manufactory.dmm
new file mode 100644
index 000000000000..94e21aa23134
--- /dev/null
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_e11_manufactory.dmm
@@ -0,0 +1,11181 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"af" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ak" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory)
+"al" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"as" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"av" = (
+/obj/machinery/door/airlock/external,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ay" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"aA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"aD" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/structure/fluff/paper/stack{
+ dir = 2
+ },
+/obj/structure/fluff/paper/stack{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"aE" = (
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"aF" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"aH" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/mats)
+"aN" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/security)
+"aP" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"aU" = (
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"aY" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"ba" = (
+/obj/structure/chair/comfy/purple/old/directional/west,
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"bc" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"bd" = (
+/obj/machinery/power/tracker,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"bf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/mats)
+"bi" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"bk" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/security)
+"bp" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/item/clothing/shoes/workboots,
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"bq" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse_road"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "e11_manufactory_warehouse_road_holofield"
+ },
+/obj/structure/cable/orange{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"by" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"bz" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 10
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"bB" = (
+/obj/structure/chair,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"bI" = (
+/turf/closed/mineral/random/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"bJ" = (
+/obj/item/stack/packageWrap{
+ pixel_x = 1;
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"bK" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"bM" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"bU" = (
+/obj/machinery/button/door{
+ dir = 4;
+ id = "e11_manufactory_warehouse";
+ pixel_x = -20;
+ pixel_y = -5
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ pixel_y = 5;
+ pixel_x = -19;
+ id = "e11_manufactory_warehouse_holofield"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"bW" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"bX" = (
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"bY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ca" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"cc" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ch" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"cm" = (
+/obj/effect/decal/remains/xeno/larva{
+ name = "Croquette";
+ desc = "They look like the remains of a mothroach. They have a strange aura about them."
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"cq" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"cr" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"cu" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"cw" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"cx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"cy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"cz" = (
+/turf/open/water/acid/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"cH" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"cK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"cL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "e11_manufactory_warehouse";
+ pixel_x = 20;
+ pixel_y = 5
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 8;
+ pixel_y = -5;
+ pixel_x = 19;
+ id = "e11_manufactory_warehouse_holofield"
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"cN" = (
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1
+ },
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"cO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"cQ" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"cR" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dc" = (
+/obj/item/shard,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dg" = (
+/obj/structure/chair/stool{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"di" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"dj" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"dk" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"do" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dw" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"dz" = (
+/obj/structure/railing,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dA" = (
+/obj/structure/flora/tree/dead/barren,
+/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dC" = (
+/obj/structure/safe/floor,
+/obj/item/spacecash/bundle/mediumrand,
+/obj/item/spacecash/bundle/smallrand,
+/obj/item/spacecash/bundle/smallrand,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"dK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"dN" = (
+/obj/effect/turf_decal/weather/whitesands,
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dP" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"dR" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 9
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"dX" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/salvageable/computer{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ec" = (
+/mob/living/simple_animal/hostile/asteroid/goliath/beast{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ed" = (
+/obj/structure/table,
+/obj/machinery/jukebox/boombox,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ef" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"eg" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"ei" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"el" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-9"
+ },
+/obj/machinery/power/solar_control{
+ dir = 1
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/ruin/whitesands/e11manufactory/security)
+"em" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"et" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ez" = (
+/obj/machinery/conveyor,
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/poddoor/shutters,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory)
+"eE" = (
+/turf/closed/wall/rust,
+/area/ruin/whitesands/e11manufactory/mats)
+"eF" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"eG" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 9
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"eM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"eT" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"eV" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fs" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/item/clothing/under/rank/cargo/miner{
+ name = "worker's jumpsuit"
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ft" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fu" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"fv" = (
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fA" = (
+/obj/machinery/power/tracker,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fJ" = (
+/obj/structure/fence/cut/large{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fM" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"fO" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"fY" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/filingcabinet/chestdrawer/wheeled{
+ dir = 4;
+ pixel_x = -6;
+ anchored = 1
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"gb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"gc" = (
+/obj/structure/mecha_wreckage/ripley,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gi" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"gk" = (
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"gl" = (
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gt" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"gx" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gG" = (
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"gK" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gM" = (
+/turf/closed/wall/concrete,
+/area/overmap_encounter/planetoid/sand/explored)
+"gN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"gP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"gU" = (
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"gV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hb" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"he" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"hi" = (
+/obj/structure/cable/yellow{
+ icon_state = "6-9"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hk" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/mats)
+"hn" = (
+/obj/structure/chair/bench/grey/directional/north,
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"ho" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ht" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_y = 1;
+ pixel_x = 13
+ },
+/obj/structure/mirror{
+ layer = 2.89;
+ pixel_x = 22;
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/item/storage/pill_bottle{
+ name = "suspicious pill bottle";
+ pixel_x = -9;
+ pixel_y = 18
+ },
+/obj/machinery/light/small/broken/directional/north,
+/turf/open/floor/plastic,
+/area/ruin/whitesands/e11manufactory/barracks)
+"hu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"hw" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hz" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"hF" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"hH" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hS" = (
+/obj/structure/flora/ash/puce,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"hX" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"hY" = (
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ic" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"id" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ie" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"io" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ip" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/soup/mystery{
+ pixel_y = 5
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"iq" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ir" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"is" = (
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
+ },
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"iu" = (
+/obj/effect/turf_decal/weather/whitesands/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ix" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"iz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"iH" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"iK" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"iL" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"iM" = (
+/obj/structure/closet/crate/secure/plasma{
+ name = "material crate";
+ desc = "A secure ore crate.";
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/item/stack/sheet/metal/twenty,
+/obj/item/stack/sheet/metal/ten,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/mats)
+"iN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"iO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"iW" = (
+/obj/effect/turf_decal/industrial/caution,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"iY" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"jg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/security)
+"jm" = (
+/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp{
+ pixel_y = -9;
+ pixel_x = 2
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"jn" = (
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"jt" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"jD" = (
+/obj/structure/sign/poster/contraband/missing_gloves{
+ pixel_y = 32
+ },
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"jI" = (
+/obj/structure/closet/wall/directional/west,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/item/storage/box/drinkingglasses,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"jO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"jQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"jR" = (
+/obj/structure/bed/dogbed{
+ name = "Croquette's bed";
+ desc = "A comfy-looking mothroach bed."
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"jT" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"jW" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"jX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"kd" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/item/reagent_containers/glass/rag{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ke" = (
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = -7
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"kl" = (
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"km" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters{
+ dir = 2;
+ id = "e11_manufactory_manager_window"
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"kn" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ko" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kr" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ks" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kt" = (
+/obj/machinery/conveyor,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kA" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ color = "#FFFFFF"
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"kB" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"kK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/kirbyplants/fullysynthetic,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"kL" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"kM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/mats)
+"kP" = (
+/obj/structure/table/glass,
+/obj/item/radio/old{
+ pixel_y = 5
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"kV" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"le" = (
+/obj/structure/cable/yellow{
+ icon_state = "5-8"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"lh" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-6"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-6"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ln" = (
+/obj/structure/table/glass,
+/obj/item/phone{
+ pixel_x = -4;
+ pixel_y = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"lp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"lw" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"lA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"lE" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"lF" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"lJ" = (
+/obj/effect/decal/cleanable/molten_object/large,
+/obj/effect/decal/cleanable/garbage{
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"lT" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 6
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"lV" = (
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1;
+ opened = 1;
+ locked = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"lY" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 9
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ma" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"mh" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"mj" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mk" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -6;
+ pixel_y = 12;
+ list_reagents = list(/datum/reagent/toxin/acid = 10)
+ },
+/obj/item/toy/cards/deck{
+ pixel_y = -10
+ },
+/obj/item/clothing/head/hardhat/purple{
+ pixel_x = 7;
+ pixel_y = -1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mm" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure/loot{
+ anchored = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"mp" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure/engineering{
+ anchored = 1
+ },
+/obj/item/storage/box/stockparts/t2,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ms" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1
+ },
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"my" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/flora/ash/glowshroom,
+/turf/open/floor/plastic,
+/area/ruin/whitesands/e11manufactory/barracks)
+"mA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"mH" = (
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mI" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory/office)
+"mL" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mM" = (
+/turf/template_noop,
+/area/template_noop)
+"mP" = (
+/obj/effect/turf_decal/road/slow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"mV" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/obj/item/trash/plate{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"mX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"mZ" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ne" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ color = "#FFFFFF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"nj" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse_road"
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"nl" = (
+/obj/structure/chair/office,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"nq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"nu" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"nw" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"nA" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/orange{
+ icon_state = "0-10"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"nE" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"nG" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"nI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"nS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"oc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"of" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ color = "#FFFFFF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"og" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"ol" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"on" = (
+/obj/effect/decal/cleanable/molten_object,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"op" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ow" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"ox" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"oy" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"oz" = (
+/turf/closed/wall/rust,
+/area/ruin/whitesands/e11manufactory/barracks)
+"oB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"oE" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 6
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"oJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"oK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"oL" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"oN" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"oO" = (
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"oP" = (
+/obj/structure/table/reinforced,
+/obj/item/weaponcrafting/receiver{
+ pixel_y = 7
+ },
+/obj/structure/sign/poster/official/moth/hardhats{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"oS" = (
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"oX" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_y = 13;
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"pb" = (
+/obj/structure/fence/end,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"pf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"pk" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"pu" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"pv" = (
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"pE" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory)
+"pF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"pI" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"pL" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ color = "#FFFFFF"
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"pS" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/item/stack/tape{
+ pixel_x = 7;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"pV" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"qg" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/structure/chair/stool{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"qi" = (
+/obj/effect/turf_decal/weather/whitesands/corner,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qj" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-10"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qm" = (
+/obj/structure/filingcabinet{
+ dir = 4
+ },
+/obj/item/documents/eoehoma,
+/obj/item/pen/fourcolor,
+/obj/item/clothing/neck/stethoscope{
+ w_class = 2
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"qn" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/structure/salvageable/computer{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"qp" = (
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"qs" = (
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qu" = (
+/obj/structure/cable/yellow{
+ icon_state = "6-10"
+ },
+/obj/machinery/power/terminal{
+ dir = 2
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-10"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qx" = (
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"qz" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse_road"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 1;
+ id = "e11_manufactory_warehouse_road_holofield"
+ },
+/obj/structure/cable/orange,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"qB" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "e11_manufactory_warehouse_holofield"
+ },
+/obj/structure/cable/orange{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"qE" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qH" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"qJ" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 10
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"qN" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/office)
+"qY" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/hunter{
+ faction = list("eoehoma")
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rb" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory/security)
+"rf" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rg" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"rm" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/salvageable/protolathe{
+ name = "broken fabricator"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"rx" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ry" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"rN" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"rO" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rP" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rQ" = (
+/obj/structure/closet/crate{
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/food/snacks/grown/coffee/robusta,
+/obj/item/reagent_containers/food/snacks/grown/coffee/robusta,
+/obj/item/reagent_containers/food/snacks/grown/coffee/robusta,
+/obj/item/reagent_containers/food/snacks/grown/coffee/robusta,
+/obj/item/reagent_containers/food/snacks/grown/coffee/robusta,
+/obj/item/reagent_containers/food/snacks/grown/tea,
+/obj/item/reagent_containers/food/snacks/grown/tea,
+/obj/item/reagent_containers/food/snacks/grown/tea,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/barracks)
+"rR" = (
+/obj/structure/salvageable/computer{
+ dir = 8
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"rS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"rT" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/book/random{
+ pixel_y = 12;
+ pixel_x = -3;
+ layer = 2.99
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"rU" = (
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"rZ" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-10"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"sc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/filingcabinet/double,
+/obj/item/photo/old,
+/obj/item/folder/yellow,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"sh" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ color = "#FFFFFF"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"sj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"st" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4,
+/obj/structure/sign/poster/contraband/shamblers_juice{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"sv" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/whitesands/e11manufactory/office)
+"sz" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"sA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1;
+ opened = 1;
+ locked = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"sB" = (
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"sG" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"sH" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"sI" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"sP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"sT" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"sV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"sY" = (
+/obj/structure/salvageable/server,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"tm" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Crew Quarters D";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"tt" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/structure/chair/stool{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"tu" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tv" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/clothing/head/hardhat/purple{
+ pixel_x = -4;
+ pixel_y = 3
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tw" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 1;
+ id = "e11_manufactory_warehouse_holofield"
+ },
+/obj/structure/cable/orange,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"tC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"tE" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"tF" = (
+/obj/structure/railing{
+ dir = 10;
+ layer = 4.1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"tK" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"tO" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"tQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"tY" = (
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/sand/explored)
+"ua" = (
+/obj/structure/table/reinforced,
+/obj/item/shard,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"ul" = (
+/obj/structure/girder,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"uo" = (
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"uq" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ut" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/office)
+"uu" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"uy" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"uC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/kirbyplants{
+ icon_state = "plant-25";
+ name = "dead potted plant";
+ desc = "A little bit of nature was once contained in a pot. It's dead now though."
+ },
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"uF" = (
+/obj/structure/table,
+/obj/item/clothing/head/hardhat/purple{
+ pixel_y = 5
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"uR" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"uS" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"uT" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"uW" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"va" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"vg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/chair{
+ pixel_x = -4;
+ pixel_y = -5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"vm" = (
+/obj/structure/closet/crate/secure/plasma{
+ name = "material crate";
+ desc = "A secure ore crate.";
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/machinery/light/small/directional/west,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/glass/twenty,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/mats)
+"vp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"vt" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"vA" = (
+/obj/structure/flora/ash/cap_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"vF" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"vH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"vK" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/orange{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"vL" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"vQ" = (
+/obj/structure/chair/bench/grey/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"vU" = (
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"vV" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/item/shard,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"wd" = (
+/obj/structure/statue/snow/snowman{
+ anchored = 1
+ },
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"wt" = (
+/obj/structure/girder,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"wv" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"wy" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"wF" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 15)
+ },
+/obj/item/storage/pill_bottle/dice,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"wG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/whitesands/e11manufactory/warehouse)
+"wH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory)
+"wI" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"wL" = (
+/obj/machinery/power/solar_control,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/ruin/whitesands/e11manufactory/office)
+"wQ" = (
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"wZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"xa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"xc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xe" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ piping_layer = 2
+ },
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xi" = (
+/obj/effect/turf_decal/industrial/caution,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"xj" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xn" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass{
+ pixel_x = -7;
+ pixel_y = 12
+ },
+/obj/item/trash/plate{
+ pixel_x = 3
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xp" = (
+/turf/closed/wall/concrete/reinforced,
+/area/overmap_encounter/planetoid/sand/explored)
+"xq" = (
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"xs" = (
+/obj/structure/closet/crate/freezer{
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xF" = (
+/obj/structure/fence/door{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xG" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Locker Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"xL" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Bathroom"
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xP" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xU" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory/mats)
+"xW" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"xX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"xY" = (
+/obj/structure/closet/firecloset/full,
+/obj/item/extinguisher,
+/obj/item/extinguisher,
+/obj/item/extinguisher,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"yd" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"yi" = (
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"yl" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/salvageable/machine{
+ name = "broken hydraulic press"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"yA" = (
+/obj/structure/table/reinforced,
+/obj/machinery/reagentgrinder{
+ pixel_y = 12;
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/whitesands/e11manufactory/barracks)
+"yC" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"yK" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Toilet";
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/office)
+"yN" = (
+/obj/effect/decal/cleanable/greenglow,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"yO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plastic,
+/area/ruin/whitesands/e11manufactory/barracks)
+"yW" = (
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zc" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"zm" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"zo" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"zq" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"zs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"zu" = (
+/obj/effect/turf_decal/industrial/stand_clear/white{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zz" = (
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"zC" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zK" = (
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"zQ" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"zR" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"zZ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Aa" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ai" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Crew Quarters B";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ar" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Ax" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Az" = (
+/obj/machinery/conveyor/inverted{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"AB" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"AD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory)
+"AH" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"AK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"AM" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"AU" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"AW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"AX" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/item/spacecash/bundle/c10{
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ba" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Bd" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"Be" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory)
+"Bg" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/hardhat/purple{
+ pixel_y = 3;
+ pixel_x = -5
+ },
+/obj/item/stack/tape/industrial/electrical{
+ pixel_x = 5;
+ pixel_y = -9
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Bj" = (
+/obj/machinery/conveyor/inverted{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Bl" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Bn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Bq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Bx" = (
+/obj/structure/flora/ash/tall_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"BJ" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"BL" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Crew Quarters C";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"BR" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"BU" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"BV" = (
+/obj/effect/turf_decal/trimline/opaque/white/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"BX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/filingcabinet/double,
+/obj/item/gun/energy/laser/e10,
+/obj/item/pen/fourcolor,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"BY" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"BZ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Ca" = (
+/obj/structure/closet/cabinet{
+ anchored = 1
+ },
+/obj/item/clothing/under/suit/black,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/wallet/random,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ci" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Cl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"Cw" = (
+/turf/open/floor/plating/asteroid/snow/lit/whitesands,
+/area/overmap_encounter/planetoid/sand/explored)
+"Cx" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"CA" = (
+/obj/structure/fence/cut/large{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CH" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/reagent_dispensers/foamtank,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CI" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 6
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CL" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CN" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CQ" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"CT" = (
+/obj/effect/turf_decal/box/corners,
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1;
+ opened = 1;
+ locked = 0
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"CU" = (
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"CY" = (
+/mob/living/simple_animal/hostile/human/hermit/survivor/random,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Da" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Db" = (
+/turf/closed/wall/mineral/titanium/survival/pod,
+/area/overmap_encounter/planetoid/sand/explored)
+"Dk" = (
+/obj/machinery/power/solar_control{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete{
+ light_range = 2;
+ light_power = 0.6
+ },
+/area/ruin/whitesands/e11manufactory/mats)
+"Dp" = (
+/obj/item/chair{
+ pixel_x = -4;
+ pixel_y = -5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Dz" = (
+/obj/structure/flora/stump,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"DC" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"DD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"DG" = (
+/obj/machinery/light/directional/south,
+/obj/machinery/mech_bay_recharge_port,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"DJ" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"DL" = (
+/obj/structure/fence/cut/large{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"DM" = (
+/obj/structure/window/unanchored,
+/obj/item/chair{
+ pixel_y = 6;
+ pixel_x = -9
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"DN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"DO" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1;
+ opened = 1;
+ locked = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"DQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table_frame,
+/obj/item/shard,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"DT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/floor{
+ pixel_x = 15
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"DW" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Eb" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ed" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory)
+"Ek" = (
+/obj/structure/flora/ash/fern,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Em" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/closet/crate/secure/gear{
+ anchored = 1
+ },
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"En" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ color = "#FFFFFF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ep" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ex" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"EA" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"EH" = (
+/obj/effect/turf_decal/road,
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ER" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"EV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"EZ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ff" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Fo" = (
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Fp" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Fx" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"FJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"FK" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FL" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/whitesands/e11manufactory/barracks)
+"FP" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FR" = (
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"FT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FV" = (
+/obj/effect/decal/cleanable/greenglow,
+/obj/effect/turf_decal/weather/whitesands/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"FY" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ge" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Gm" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Gp" = (
+/obj/machinery/atmospherics/components/unary/tank/toxins{
+ volume = 300;
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Gs" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Gw" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Gy" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"GA" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/sign/poster/official/bless_this_spess{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"GF" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Crew Quarters A";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"GH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/cockroach,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/whitesands/e11manufactory/barracks)
+"GN" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Manager's Office"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/office)
+"GS" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"GW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Ha" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Hd" = (
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Hf" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Hi" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Hp" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Hs" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Hw" = (
+/obj/machinery/conveyor/inverted{
+ dir = 9
+ },
+/obj/structure/salvageable/machine{
+ name = "broken scanner"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"HC" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"HD" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"HE" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"HV" = (
+/obj/structure/cable/orange{
+ icon_state = "2-5"
+ },
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4,
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"HX" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ia" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ie" = (
+/obj/structure/mecha_wreckage/ripley,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ii" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ik" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Il" = (
+/obj/machinery/conveyor/inverted{
+ dir = 9
+ },
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Im" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/paper/stack{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Io" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Ip" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"It" = (
+/obj/structure/table,
+/obj/item/restraints/legcuffs/beartrap{
+ pixel_y = 9
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"Iu" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Iv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Iz" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"IB" = (
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"IC" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ID" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ color = "#FFFFFF"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"IF" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1
+ },
+/obj/item/gun/energy/e_gun/e11/empty_cell,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"IG" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"II" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"IT" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/pen/fourcolor,
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"IU" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Je" = (
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"Jg" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Jh" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Jl" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Jn" = (
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ju" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Jy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"JJ" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"JM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"JP" = (
+/obj/effect/turf_decal/rechargefloor,
+/obj/mecha/working/ripley{
+ name = "APLU MK-I 'Forklift'"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"JR" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"JX" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/structure/chair/stool{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/broken/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Kb" = (
+/obj/machinery/washing_machine,
+/obj/item/clothing/under/rank/cargo/miner{
+ name = "worker's jumpsuit"
+ },
+/turf/open/floor/plastic,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Kf" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ name = "Foreman's Office"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/closed,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/office)
+"Kg" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Km" = (
+/turf/closed/wall/rust,
+/area/ruin/whitesands/e11manufactory)
+"Kn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_4{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Kw" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"KA" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "e11_manufactory_manager_window";
+ pixel_x = 20
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"KH" = (
+/obj/structure/table/wood,
+/obj/item/radio/old{
+ pixel_x = -4;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"KJ" = (
+/obj/structure/closet/crate/trashcart,
+/obj/item/trash/can/food/beans,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/trash/plate{
+ pixel_x = 3
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KO" = (
+/obj/effect/turf_decal/solarpanel,
+/obj/item/solar_assembly,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KP" = (
+/obj/structure/rack,
+/obj/item/screwdriver/power{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"KQ" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KR" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"KY" = (
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"KZ" = (
+/obj/structure/sink{
+ pixel_y = 18
+ },
+/obj/structure/mirror{
+ pixel_y = 30;
+ layer = 2.89
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/whitesands/e11manufactory/office)
+"Lh" = (
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Lo" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Lq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Lu" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Lz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"LA" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"LB" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-5"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-9"
+ },
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable/yellow,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"LH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"LN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"LU" = (
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"LV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"LY" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"LZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Ma" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 8
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Mg" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Mi" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Mm" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/item/clothing/under/rank/cargo/miner{
+ name = "worker's jumpsuit"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ms" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"Mt" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/item/photo/old,
+/obj/item/book/random,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Mv" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Mz" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"MB" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/structure/table,
+/obj/item/toy/cards/deck{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"MC" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ME" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"MJ" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"MQ" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_ccw{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"MR" = (
+/turf/closed/wall/rust,
+/area/ruin/whitesands/e11manufactory/security)
+"MY" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"MZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ni" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Nj" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Nr" = (
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ns" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Nw" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Nx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Ny" = (
+/obj/structure/chair/comfy/purple/old/directional/south,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"NC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"NF" = (
+/obj/item/restraints/legcuffs/beartrap,
+/obj/effect/mob_spawn/human/corpse/damaged/whitesands/e11,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"NH" = (
+/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"NO" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/security)
+"NV" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"NW" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ piping_layer = 2
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"NX" = (
+/turf/closed/wall/rust,
+/area/ruin/whitesands/e11manufactory/office)
+"Oa" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Od" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory)
+"Of" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Oj" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Oo" = (
+/obj/machinery/conveyor{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Oq" = (
+/obj/structure/guncloset{
+ anchored = 1
+ },
+/obj/item/gun/energy/disabler/e60,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"Ot" = (
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ov" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Oy" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Crew Quarters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/barracks)
+"OE" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"OF" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"OI" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ON" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"OP" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"OT" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"OU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"OV" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"OX" = (
+/obj/structure/dresser,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 13
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Pa" = (
+/obj/structure/flora/ash/stem_shroom,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Pc" = (
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Pg" = (
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Pi" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/paper/stack{
+ dir = 1
+ },
+/obj/structure/fluff/paper/stack,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Pj" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Pl" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/hermit/survivor{
+ faction = list("eoehoma")
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Po" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"Pv" = (
+/obj/structure/closet/crate/secure/plasma{
+ name = "material crate";
+ desc = "A secure ore crate.";
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/item/stack/sheet/mineral/silver/five,
+/obj/item/stack/sheet/mineral/silver/five,
+/obj/item/stack/sheet/mineral/silver/five,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/mats)
+"Pw" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/structure/salvageable/destructive_analyzer{
+ name = "broken assembler"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Py" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"PA" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "e11_manufactory_warehouse_road"
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"PH" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/item/folder/yellow,
+/obj/item/folder/red,
+/obj/item/attachment/rail_light,
+/obj/machinery/light/directional/north,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"PP" = (
+/obj/structure/flora/ash/garden/waste,
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"PQ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"PR" = (
+/obj/structure/closet/crate/secure/engineering{
+ anchored = 1
+ },
+/obj/item/circuitboard/machine/cell_charger,
+/obj/item/circuitboard/machine/cell_charger,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"PV" = (
+/obj/structure/table/glass,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 13
+ },
+/obj/item/paper_bin{
+ pixel_y = 6;
+ pixel_x = -14
+ },
+/obj/item/pen/fourcolor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"PZ" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Qe" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Qf" = (
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Qg" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Qi" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory)
+"Qj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/wall/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"Qp" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Qq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Qt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Qu" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"QB" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"QE" = (
+/obj/structure/table,
+/obj/item/toy/cards/deck/kotahi{
+ pixel_y = 3
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"QI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
+ dir = 8
+ },
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"QJ" = (
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"QL" = (
+/obj/machinery/conveyor{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"QU" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/item/clothing/shoes/workboots,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"QZ" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ra" = (
+/obj/effect/turf_decal/road{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Rb" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Rc" = (
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ri" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/orange{
+ icon_state = "0-1"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Rl" = (
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"Rm" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Rr" = (
+/obj/machinery/conveyor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"Rt" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Rv" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/item/chair/stool{
+ pixel_y = -7;
+ pixel_x = -8;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"RA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/orange{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"RF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"RG" = (
+/obj/effect/spawner/structure/window/reinforced/shutters,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"RH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"RJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"RQ" = (
+/obj/machinery/conveyor,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ max_integrity = 70;
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"RS" = (
+/obj/structure/salvageable/server,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"RU" = (
+/obj/structure/fence/end{
+ dir = 1
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"RV" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"RY" = (
+/obj/effect/decal/cleanable/greenglow,
+/obj/effect/decal/cleanable/garbage{
+ pixel_x = -8;
+ pixel_y = -15
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"RZ" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/old{
+ pixel_y = 12
+ },
+/obj/item/binoculars{
+ pixel_y = -7
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"Sd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Se" = (
+/obj/structure/table/reinforced,
+/obj/item/flashlight/lamp{
+ pixel_y = 5;
+ pixel_x = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"Sh" = (
+/mob/living/simple_animal/hostile/asteroid/hivelord/legion,
+/turf/open/floor/plating/asteroid/whitesands/grass/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Sk" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/item/clothing/under/rank/cargo/miner{
+ name = "worker's jumpsuit"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Sm" = (
+/obj/effect/turf_decal/corner/opaque/red/diagonal,
+/obj/structure/chair/stool{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Sn" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Sy" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/orange{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"SA" = (
+/obj/effect/turf_decal/solarpanel,
+/obj/item/solar_assembly,
+/obj/item/shard,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"SB" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/clothing/head/hardhat/purple{
+ pixel_y = -9;
+ pixel_x = -9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"SF" = (
+/obj/structure/closet/crate/secure/plasma{
+ name = "material crate";
+ desc = "A secure ore crate.";
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/item/stack/sheet/mineral/gold/five,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/sheet/mineral/gold/five,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/mats)
+"SG" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"SH" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"SK" = (
+/obj/item/radio/old{
+ pixel_y = 5;
+ pixel_x = 12
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_y = -15;
+ pixel_x = -9
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"SO" = (
+/turf/closed/wall/r_wall/rust/yesdiag,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"SP" = (
+/obj/structure/curtain,
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 8
+ },
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/whitesands/e11manufactory/barracks)
+"SR" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"SX" = (
+/obj/structure/closet{
+ anchored = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/item/clothing/head/hardhat/purple,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Tb" = (
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/ntos{
+ pixel_y = -32;
+ desc = "A advertisement for Ntos IV. The poster seems quite old.";
+ name = "Ntos IV"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Tg" = (
+/obj/effect/turf_decal/weather/whitesands/corner,
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ti" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_3{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Tn" = (
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"To" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/orange{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"TG" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"TN" = (
+/obj/machinery/door/airlock/external,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/office)
+"TP" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"TU" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"TX" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ub" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Ug" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ui" = (
+/obj/structure/fence{
+ dir = 2
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 5
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Uj" = (
+/turf/open/floor/concrete/slab_2{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Um" = (
+/obj/effect/turf_decal/road/edge,
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Un" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Uq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"Ut" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/carpet/nanoweave/purple,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Uw" = (
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/ore/salvage/scrapmetal,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Ux" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"UB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/office)
+"UE" = (
+/obj/effect/turf_decal/trimline/opaque/white/arrow_cw{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"UM" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"UN" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"UR" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"UW" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Vc" = (
+/obj/machinery/power/solar,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Vd" = (
+/mob/living/simple_animal/hostile/human/hermit/ranged/gunslinger{
+ faction = list("eoehoma")
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Vi" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Vj" = (
+/obj/structure/flora/ash/garden/waste,
+/turf/open/floor/plating/asteroid/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Vk" = (
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Vo" = (
+/obj/machinery/firealarm/directional/north,
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_y = 20
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ruin/whitesands/e11manufactory/office)
+"Vq" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Vx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"VF" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 4
+ },
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"VG" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Kitchen"
+ },
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"VH" = (
+/obj/structure/railing/corner,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"VL" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/corner/opaque/purple/diagonal,
+/obj/effect/spawner/random/bedsheet,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"VP" = (
+/obj/effect/decal/cleanable/glass,
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"We" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Wi" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Wk" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Wn" = (
+/obj/structure/table/reinforced,
+/obj/item/cutting_board{
+ pixel_y = 4;
+ anchored = 1
+ },
+/obj/item/melee/knife/kitchen{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Wo" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"Wp" = (
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 10
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Wu" = (
+/obj/effect/decal/cleanable/greenglow,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Wx" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"Wy" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/effect/turf_decal/weather/whitesands{
+ dir = 8
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"WC" = (
+/obj/structure/table/reinforced,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/old{
+ pixel_y = 14
+ },
+/turf/open/floor/carpet/nanoweave/beige,
+/area/ruin/whitesands/e11manufactory/office)
+"WL" = (
+/obj/structure/table/reinforced,
+/obj/item/stock_parts/cell/gun/empty{
+ pixel_y = 8
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"WM" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory)
+"WN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/slab_1{
+ light_power = 0.6;
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"WR" = (
+/obj/machinery/conveyor{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"WS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/orange{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"WV" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"Xd" = (
+/obj/machinery/atmospherics/components/binary/valve/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Xf" = (
+/obj/structure/closet/crate/secure/weapon{
+ anchored = 1;
+ opened = 1;
+ locked = 0
+ },
+/obj/structure/sign/poster/retro/smile{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Xi" = (
+/obj/effect/turf_decal/weather/whitesands,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Xj" = (
+/obj/item/solar_assembly,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow,
+/obj/item/shard,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Xl" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "e11_manufactory_warehouse_road";
+ pixel_x = 20;
+ pixel_y = 5
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 8;
+ pixel_y = -5;
+ pixel_x = 19;
+ id = "e11_manufactory_warehouse_road_holofield"
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"Xn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Xr" = (
+/obj/machinery/conveyor,
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/poddoor/shutters,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/mats)
+"Xv" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Xy" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Xz" = (
+/obj/machinery/conveyor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/mats)
+"XD" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/vomit/old{
+ pixel_x = 13;
+ pixel_y = 3
+ },
+/turf/open/floor/plastic,
+/area/ruin/whitesands/e11manufactory/barracks)
+"XF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"XI" = (
+/obj/machinery/door/window/eastleft,
+/obj/effect/turf_decal/corner/opaque/green/diagonal,
+/obj/effect/turf_decal/corner/opaque/red/diagonal{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/whitesands/e11manufactory/barracks)
+"XJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"XK" = (
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"XM" = (
+/obj/machinery/computer/mech_bay_power_console/retro{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"XO" = (
+/obj/structure/salvageable/computer,
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_y = 32
+ },
+/turf/open/floor/carpet/nanoweave/red,
+/area/ruin/whitesands/e11manufactory/security)
+"XS" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"XX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Yc" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"Yd" = (
+/obj/effect/turf_decal/trimline/opaque/white/line{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Ye" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"Yv" = (
+/obj/machinery/power/tracker,
+/obj/effect/turf_decal/solarpanel,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Yx" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"YE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/glass,
+/obj/item/flashlight/lamp{
+ pixel_x = -4;
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/broken/directional/south,
+/turf/open/floor/carpet/nanoweave/orange,
+/area/ruin/whitesands/e11manufactory/office)
+"YI" = (
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"YK" = (
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"YR" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/whitesands/e11manufactory/office)
+"Zb" = (
+/obj/structure/cable/yellow{
+ icon_state = "5-8"
+ },
+/obj/item/restraints/legcuffs/beartrap{
+ armed = 1
+ },
+/obj/effect/turf_decal/weather/whitesands/corner{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zd" = (
+/obj/machinery/conveyor{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory)
+"Ze" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zg" = (
+/obj/machinery/conveyor,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zi" = (
+/obj/structure/cable/yellow{
+ icon_state = "5-10"
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"Zj" = (
+/turf/open/floor/plating/asteroid/whitesands/dried{
+ light_range = 2
+ },
+/area/overmap_encounter/planetoid/sand/explored)
+"Zq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ZB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/orange{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ZE" = (
+/obj/structure/cable/orange{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer1{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable/orange{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ZO" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ruin/whitesands/e11manufactory/warehouse)
+"ZR" = (
+/turf/open/floor/concrete/reinforced/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ZS" = (
+/obj/effect/decal/cleanable/confetti,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet,
+/area/ruin/whitesands/e11manufactory/barracks)
+"ZV" = (
+/obj/structure/grille/broken,
+/obj/item/shard,
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/office)
+"ZY" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/whitesands/lit,
+/area/overmap_encounter/planetoid/sand/explored)
+"ZZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/orange{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ruin/whitesands/e11manufactory/barracks)
+
+(1,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+vA
+vU
+vU
+bI
+Zj
+Zj
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Gy
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(2,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+Pa
+vU
+vU
+vU
+vU
+ec
+vU
+vU
+vU
+vU
+Zj
+Zj
+Zj
+vU
+vU
+vU
+Zj
+Zj
+vU
+Zj
+Zj
+rN
+Zj
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(3,1,1) = {"
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Bx
+vU
+vU
+Zj
+Zj
+Zj
+vU
+vU
+vU
+vU
+yW
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(4,1,1) = {"
+mM
+mM
+Gy
+vA
+vU
+vU
+vU
+ix
+vU
+RV
+Zj
+vU
+Pa
+vU
+vU
+vU
+vU
+vU
+Zj
+vU
+vU
+vU
+vU
+Gy
+vU
+Zj
+vA
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vA
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(5,1,1) = {"
+mM
+mM
+vU
+gM
+gM
+KA
+KA
+KA
+bz
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+eG
+KA
+KA
+KA
+KA
+KA
+KA
+KA
+bz
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+gM
+gM
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(6,1,1) = {"
+mM
+mM
+vU
+gM
+oS
+Pg
+Pg
+Pg
+qs
+Qp
+Wp
+vU
+dR
+Qp
+Qp
+Qp
+HD
+gV
+gV
+gV
+Pg
+Pg
+gV
+Pg
+Xi
+vU
+vU
+dR
+Qp
+Wp
+vU
+vU
+vU
+gM
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(7,1,1) = {"
+mM
+mM
+vU
+ho
+Pg
+SR
+rg
+Mg
+lh
+Pg
+qs
+Qp
+uo
+gV
+gV
+gV
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+qs
+Qp
+Wy
+uo
+Pg
+qs
+Wp
+vU
+vU
+cc
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(8,1,1) = {"
+mM
+mM
+Bx
+ho
+Pg
+ZR
+XF
+XF
+ZR
+hi
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+gV
+gV
+gV
+tN
+gV
+gV
+Pg
+Pg
+Xi
+vA
+dR
+qJ
+vU
+vU
+vU
+Gy
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(9,1,1) = {"
+mM
+mM
+vU
+ho
+Pg
+pk
+Yv
+rg
+ft
+iq
+LB
+zC
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+gV
+Pg
+gV
+Pg
+Pg
+pE
+Km
+Km
+Km
+pE
+Pg
+qs
+Qp
+uo
+TP
+vU
+CY
+Zj
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(10,1,1) = {"
+mM
+mM
+vU
+ho
+Pg
+XF
+HX
+ZR
+ZR
+Zi
+Ri
+Dk
+eE
+eE
+eE
+xU
+Pg
+Pg
+Pg
+Mi
+rO
+rO
+eT
+pE
+Km
+qn
+RS
+sY
+Km
+pE
+gV
+Pg
+Pg
+TP
+vU
+vU
+gG
+bI
+tY
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(11,1,1) = {"
+mM
+vU
+Zj
+ho
+Pg
+SR
+rg
+ef
+qj
+Lh
+eE
+eE
+eE
+iM
+vm
+eE
+xU
+gV
+gV
+Bj
+Zg
+Zg
+kt
+ez
+Hw
+zZ
+gk
+BR
+WL
+Km
+gV
+gV
+gV
+TP
+vU
+bI
+bI
+vU
+vU
+Hd
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(12,1,1) = {"
+mM
+vU
+Zj
+AU
+CU
+Pg
+Pg
+gV
+Pg
+Lh
+eE
+KR
+tQ
+DN
+ei
+SF
+eE
+gV
+gV
+WR
+XS
+XS
+OE
+Km
+Xv
+zZ
+dk
+nl
+oP
+Km
+Pg
+gV
+gV
+TP
+vU
+vU
+hS
+vU
+bI
+bI
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(13,1,1) = {"
+vU
+vA
+vU
+cc
+iL
+FP
+FP
+CU
+Pg
+Lh
+eE
+hk
+eE
+cO
+rj
+Pv
+eE
+gV
+gV
+WR
+YK
+gV
+Pg
+Km
+yl
+zZ
+nq
+Bg
+ua
+Km
+Pg
+gV
+Pg
+TP
+vU
+Zj
+Zj
+vU
+tY
+bI
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(14,1,1) = {"
+vU
+Zj
+vU
+cc
+vU
+vU
+vU
+Sn
+gV
+Lh
+eE
+kM
+eE
+is
+rj
+zK
+eE
+gV
+gV
+WR
+gV
+gV
+Pg
+Km
+Xv
+zZ
+MY
+KP
+Km
+pE
+gV
+gV
+Pg
+TP
+cr
+Zj
+sz
+gG
+Zj
+Zj
+bI
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+"}
+(15,1,1) = {"
+vU
+Zj
+Zj
+cc
+vU
+dR
+Qp
+uo
+gV
+uy
+eE
+bf
+eE
+Bd
+Rr
+Xz
+Xr
+RQ
+kt
+Oo
+gV
+gV
+gV
+Km
+rm
+sT
+wZ
+Ma
+Km
+Pg
+gV
+gV
+Pg
+CA
+vU
+vU
+Hd
+bI
+vU
+vU
+Zj
+vU
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Zj
+Zj
+vA
+Zj
+Zj
+Zj
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(16,1,1) = {"
+vU
+vU
+vU
+cc
+dR
+NF
+gV
+gV
+gV
+uy
+xU
+aH
+eE
+eE
+eE
+eE
+xU
+gV
+gV
+gV
+gV
+gV
+gV
+Km
+Xv
+eg
+og
+xY
+Km
+FP
+CU
+tN
+Pg
+TP
+vU
+vU
+bI
+vU
+vU
+Db
+vU
+Zj
+vU
+vU
+vU
+vU
+vU
+Pa
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Zj
+vU
+vU
+vU
+vU
+mM
+"}
+(17,1,1) = {"
+Gy
+vU
+vU
+lY
+uo
+Pg
+Pg
+gV
+gV
+yi
+kV
+Gm
+Tn
+Pg
+Pg
+Pg
+VH
+LU
+LU
+LU
+LU
+TG
+gV
+Km
+Pw
+sT
+xI
+RA
+Km
+vU
+Sn
+gV
+Pg
+TP
+Bx
+vU
+vU
+vU
+vU
+vA
+vU
+vU
+RV
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Bx
+vU
+Zj
+vU
+vU
+vU
+vU
+"}
+(18,1,1) = {"
+mM
+vU
+Pa
+gM
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+Pg
+oB
+Pg
+sB
+Fo
+LU
+GS
+cz
+cz
+cz
+cz
+ir
+Pg
+Km
+Xv
+EA
+xq
+Ar
+Km
+vU
+Sn
+gV
+Pg
+gM
+KA
+KA
+bz
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+tu
+eG
+KA
+KA
+KA
+KA
+bz
+gM
+gM
+Zj
+vU
+vU
+vU
+"}
+(19,1,1) = {"
+mM
+mM
+vU
+gM
+gM
+Qg
+AM
+BY
+BY
+gM
+Pg
+oB
+Pg
+dz
+cz
+cz
+cz
+cz
+cz
+cz
+cz
+ir
+Pg
+Km
+Od
+Km
+Km
+WM
+Km
+pE
+uo
+Pg
+gV
+Pg
+gV
+oS
+qs
+Wp
+vU
+Pa
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+dR
+uo
+Pg
+Pg
+Pg
+Pg
+qs
+Wp
+gM
+vU
+bI
+vU
+Hd
+"}
+(20,1,1) = {"
+mM
+mM
+vU
+vU
+vU
+Vj
+Gs
+RY
+va
+KQ
+Pg
+oB
+Pg
+dz
+cz
+cz
+cz
+cz
+cz
+cz
+HC
+eV
+Pg
+Km
+Zd
+Il
+Km
+Ed
+wH
+Km
+Pg
+Pg
+Kg
+Pg
+Pg
+Pg
+Pg
+qs
+Wp
+vU
+vU
+dR
+Qp
+Qp
+Qp
+Wp
+vU
+vU
+vA
+vU
+iL
+CU
+hw
+gV
+Pg
+gV
+Pg
+qs
+qJ
+vU
+bI
+Db
+vU
+"}
+(21,1,1) = {"
+mM
+mM
+vU
+vU
+cr
+vU
+IC
+on
+KJ
+KQ
+Pg
+oB
+Pg
+UN
+tF
+cz
+cz
+cz
+cz
+HC
+eV
+gV
+Pg
+pE
+Km
+Xv
+Km
+AD
+ak
+Km
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+qs
+Wp
+kr
+oz
+oz
+oz
+kr
+qs
+Qp
+Qp
+Wp
+vU
+vU
+Sn
+gV
+gV
+gV
+gV
+Pg
+Pg
+TP
+vU
+vU
+Hd
+bI
+"}
+(22,1,1) = {"
+mM
+mM
+vU
+vA
+vU
+vU
+yN
+VP
+lJ
+KQ
+Ie
+oB
+gV
+gV
+UN
+tv
+ma
+ma
+ma
+Rt
+gV
+Pg
+Pg
+Pg
+pE
+Be
+Km
+Qi
+Km
+pE
+Pg
+Pg
+Pg
+gK
+Pg
+gV
+Pg
+Pg
+Pg
+kr
+oz
+xs
+hq
+FL
+oz
+Pg
+kr
+oz
+oz
+oz
+oz
+zq
+zq
+Pg
+ox
+gV
+gV
+Pg
+TP
+vU
+vU
+vU
+vU
+"}
+(23,1,1) = {"
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+PP
+DM
+KQ
+Pg
+oB
+gV
+gV
+Pg
+NV
+SK
+Pg
+Pg
+ch
+gV
+Pg
+Pg
+Pg
+Pg
+gx
+mj
+GW
+qH
+OE
+Pg
+gV
+gV
+Zq
+Pg
+kr
+oz
+oz
+oz
+oz
+oz
+rQ
+GH
+Wn
+oz
+oz
+oz
+Ny
+KH
+oz
+Qe
+Rv
+zq
+ul
+Pg
+Kg
+gV
+gV
+TP
+vU
+vU
+vU
+vU
+"}
+(24,1,1) = {"
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+PQ
+QB
+KQ
+Pg
+JM
+gV
+Pg
+gV
+Pg
+Pg
+MZ
+rT
+gV
+Pg
+Pg
+Pg
+QL
+CN
+Az
+Pg
+tG
+hY
+af
+vp
+gN
+hY
+ow
+kr
+oz
+aF
+dg
+jI
+ca
+VG
+xv
+FR
+yA
+oz
+oz
+Ut
+Ax
+ba
+oz
+JX
+Uw
+Rb
+oz
+Pg
+Pg
+gV
+gV
+TP
+vU
+vU
+Zj
+vU
+"}
+(25,1,1) = {"
+mM
+mM
+mM
+mM
+Zj
+vU
+vU
+iL
+FP
+xF
+YK
+JM
+gV
+Pg
+gV
+Pg
+Pg
+gV
+gV
+Pg
+Pg
+Pg
+Mi
+gx
+eT
+Pg
+Pg
+iN
+xa
+bY
+bY
+zd
+FJ
+mX
+oz
+Ii
+fu
+pV
+wy
+fu
+oz
+oz
+oz
+oz
+oz
+oz
+OX
+Ns
+uC
+oz
+st
+Fx
+xW
+oz
+Pg
+Pg
+gV
+Pg
+TP
+vU
+vU
+vA
+vU
+"}
+(26,1,1) = {"
+mM
+mM
+mM
+vU
+vU
+Zj
+vU
+vU
+vU
+AU
+CU
+JM
+Pg
+Pg
+gV
+Pg
+Pg
+Pg
+gV
+kl
+kL
+hY
+ol
+Ha
+xi
+hY
+zz
+lp
+vp
+gV
+Pg
+kr
+Eb
+mZ
+oz
+XI
+AX
+kd
+hz
+mV
+oz
+fs
+Sk
+sI
+bp
+oz
+Jg
+cx
+Ca
+oz
+Aa
+Bl
+Rb
+oz
+oz
+oz
+kr
+Pg
+TP
+vU
+Zj
+Zj
+vU
+"}
+(27,1,1) = {"
+mM
+mM
+Cw
+vU
+vU
+Zj
+Rm
+Zj
+vU
+cc
+Sn
+HE
+We
+We
+fr
+fr
+fr
+We
+We
+lA
+hF
+rB
+iY
+Ip
+iW
+rB
+bY
+pF
+af
+Pg
+Pg
+Ia
+DT
+uW
+Nw
+Oa
+Oa
+Ff
+op
+xP
+oz
+al
+fM
+Ug
+IU
+oz
+oz
+GF
+oz
+oz
+oz
+Ai
+oz
+oz
+SP
+XD
+oz
+Pg
+TP
+vU
+RV
+vU
+vU
+"}
+(28,1,1) = {"
+mM
+mM
+vU
+vU
+Bx
+Gy
+vU
+vU
+Vj
+lY
+uo
+oB
+Pg
+Pg
+gV
+gV
+Pg
+Pg
+Pg
+hY
+cK
+hY
+cw
+gx
+OE
+Pg
+gV
+Pg
+gV
+Pg
+Pg
+Ia
+gb
+AB
+av
+XJ
+ZS
+Lz
+oc
+XJ
+xG
+ZZ
+oy
+ie
+zQ
+Oy
+gP
+bW
+oK
+xc
+Py
+ON
+xc
+xL
+yO
+my
+oz
+Pg
+TP
+Zj
+vU
+vU
+vU
+"}
+(29,1,1) = {"
+mM
+mM
+vU
+vU
+vU
+vU
+vU
+vU
+Pa
+AU
+CU
+oB
+Pg
+Pg
+Pg
+Pg
+Pg
+DC
+cL
+Lq
+wG
+Wi
+tE
+gx
+Pg
+Pg
+Pg
+Pg
+gV
+Pg
+Pg
+kr
+Eb
+MJ
+oz
+Hp
+Yc
+XX
+Dp
+dw
+oz
+zo
+zs
+jn
+MC
+oz
+oz
+BL
+oz
+oz
+oz
+tm
+oz
+oz
+ht
+Kb
+oz
+Pg
+TP
+Zj
+vU
+vU
+vU
+"}
+(30,1,1) = {"
+mM
+vU
+vU
+gM
+gM
+tu
+tu
+tu
+tu
+gM
+Sn
+oB
+oS
+Pg
+Pg
+SO
+di
+di
+di
+qB
+ER
+tw
+di
+he
+di
+SO
+Pg
+Pg
+Pg
+Pg
+Pg
+cw
+qH
+Vx
+io
+uF
+xn
+Oa
+ip
+QE
+oz
+QU
+Mm
+SX
+Lu
+oz
+Of
+kB
+wF
+oz
+Mt
+Fp
+xj
+oz
+oz
+oz
+kr
+iu
+lT
+vU
+vU
+vU
+Zj
+"}
+(31,1,1) = {"
+mM
+vU
+vU
+gM
+vU
+vU
+vU
+vU
+vU
+dR
+uo
+JM
+Pg
+Pg
+SO
+di
+IF
+Xf
+CT
+sG
+ZB
+dK
+bU
+PZ
+dX
+di
+SO
+FP
+CU
+Ze
+Pg
+Pg
+zz
+Ci
+io
+Ux
+Pl
+Oa
+CQ
+Ux
+oz
+io
+io
+io
+io
+oz
+VL
+pI
+Tb
+oz
+GA
+lw
+Hs
+oz
+Pg
+Pg
+Pg
+Xi
+cc
+Zj
+vU
+vU
+rN
+"}
+(32,1,1) = {"
+mM
+vU
+vU
+cc
+vU
+vU
+cr
+Bx
+dR
+uo
+gV
+oB
+Pg
+Pg
+di
+Gw
+qx
+qx
+qx
+AW
+RF
+AW
+qx
+PZ
+OF
+et
+di
+vU
+Sn
+Pg
+gV
+zE
+Uj
+Ci
+kr
+oz
+ed
+tO
+by
+oz
+kr
+Pg
+Pg
+Pg
+Pg
+oz
+bM
+mh
+qg
+oz
+Sm
+cQ
+uu
+oz
+Pg
+Pg
+iu
+CI
+cc
+vU
+Zj
+vU
+Zj
+"}
+(33,1,1) = {"
+mM
+vU
+vU
+cc
+vU
+vU
+vU
+vU
+Sn
+gV
+Pg
+oB
+Pg
+Pg
+di
+DO
+lV
+cN
+ms
+bJ
+RF
+Ub
+qx
+lF
+vL
+XM
+di
+jD
+iL
+CU
+Pg
+gV
+af
+Jy
+Pg
+kr
+io
+io
+io
+kr
+Pg
+Pg
+Vq
+rf
+Pg
+kr
+oz
+wv
+oX
+oz
+MB
+tt
+oz
+kr
+Pg
+Pg
+Xi
+vU
+cc
+Pa
+Zj
+vU
+Zj
+"}
+(34,1,1) = {"
+mM
+vU
+vU
+cc
+vU
+vU
+dR
+AH
+iK
+Xj
+Pg
+oB
+Pg
+Pg
+di
+wQ
+lV
+sA
+rU
+qx
+DD
+qx
+vH
+vL
+jm
+DG
+di
+vU
+vU
+Sn
+gV
+gV
+vp
+lp
+Pg
+Pg
+Pg
+YK
+Pg
+Pg
+Pg
+Pg
+mk
+KN
+gV
+Pg
+kr
+oz
+oz
+oz
+oz
+oz
+kr
+Pg
+Pg
+gV
+Xi
+vU
+Ex
+mH
+Zj
+Zj
+Zj
+"}
+(35,1,1) = {"
+mM
+vU
+vU
+cc
+vU
+dR
+uo
+JR
+Xn
+mL
+gV
+oB
+Pg
+Pg
+di
+vK
+YI
+iO
+Bq
+Nx
+BZ
+Iv
+LV
+vL
+vL
+JP
+di
+vU
+dR
+uo
+Pg
+Pg
+Qq
+Sd
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+MZ
+MZ
+gV
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+Pg
+FV
+CI
+vU
+Ex
+mH
+vU
+Zj
+Gy
+"}
+(36,1,1) = {"
+mM
+vU
+vU
+lY
+Qp
+uo
+gV
+vV
+uS
+UM
+gV
+oB
+Pg
+Pg
+di
+bX
+aU
+sP
+ZO
+ay
+zm
+aU
+tC
+pS
+vL
+Em
+di
+dR
+em
+gV
+Pg
+Pg
+gN
+Ti
+zz
+hY
+zz
+hY
+zz
+zz
+Qq
+zz
+hY
+kl
+Qq
+gN
+af
+Pg
+YK
+Pg
+Pg
+bK
+Lo
+gV
+gV
+Xi
+vU
+vU
+cc
+Ek
+mH
+mH
+mH
+"}
+(37,1,1) = {"
+mM
+vA
+vU
+ho
+Pg
+gV
+gV
+SR
+uS
+UM
+Pg
+Qt
+Pg
+Pg
+di
+Qf
+Ge
+UR
+Vk
+EH
+cq
+AK
+Ju
+PR
+vL
+mm
+di
+uo
+gV
+Mi
+EZ
+EZ
+oJ
+cu
+jO
+ME
+Ba
+NC
+Kn
+WN
+NC
+WN
+rB
+Kn
+Kn
+nS
+vp
+Pg
+Pg
+Pg
+gV
+nu
+zR
+gV
+Pg
+Xi
+vU
+dR
+OI
+mH
+mH
+vU
+mH
+"}
+(38,1,1) = {"
+mM
+vU
+vU
+ho
+Pg
+gV
+Pg
+SR
+uS
+UM
+Pg
+oB
+Pg
+Pg
+di
+IG
+SB
+Kw
+LZ
+Vd
+nG
+SH
+qx
+mp
+QJ
+di
+SO
+Pg
+Pg
+do
+xp
+pb
+ZR
+FT
+RU
+xp
+sV
+Pg
+Pg
+gV
+gV
+gV
+gV
+gV
+gV
+Jy
+hY
+Pg
+Pg
+gV
+gV
+BJ
+XF
+gV
+Pg
+qs
+Wy
+uo
+gM
+mH
+Dz
+Ek
+vU
+"}
+(39,1,1) = {"
+mM
+vU
+vU
+ho
+Pg
+gV
+Pg
+SR
+uS
+bd
+Pg
+oB
+Pg
+Pg
+di
+ic
+iH
+Iz
+LZ
+jW
+nG
+SH
+oO
+di
+di
+SO
+Pg
+gV
+Kg
+do
+fO
+xe
+LH
+Xd
+CH
+fO
+sV
+Pg
+gV
+gV
+hb
+gV
+gV
+Pg
+Mi
+eM
+jQ
+SG
+gl
+Pg
+Pg
+yd
+Mv
+Pg
+Pg
+gM
+Nr
+gM
+gM
+mH
+mH
+vU
+vU
+"}
+(40,1,1) = {"
+mM
+vU
+vU
+ho
+iu
+FP
+FP
+as
+uS
+UM
+Pg
+oB
+Pg
+Pg
+SO
+di
+iH
+sh
+ID
+pL
+ne
+Xl
+di
+SO
+Pg
+Pg
+Pg
+gV
+Pg
+do
+fO
+NW
+ko
+Bn
+Pj
+fO
+sV
+Pg
+gV
+Pg
+gV
+gV
+Pg
+Pg
+mI
+qN
+NX
+mI
+Lh
+ks
+iq
+lE
+tK
+zC
+Pg
+KQ
+mH
+mH
+mH
+mH
+vA
+vU
+vU
+"}
+(41,1,1) = {"
+mM
+Zj
+Gy
+AU
+CI
+vU
+vU
+iL
+Wk
+Pg
+Pg
+oB
+gV
+Pg
+Pg
+SO
+di
+bq
+nj
+PA
+qz
+di
+SO
+Pg
+Pg
+Pg
+gV
+gV
+Pg
+do
+fO
+Gp
+hI
+hI
+Pj
+fO
+sV
+Pg
+gV
+Pg
+gV
+gV
+Pg
+Pg
+NX
+To
+mc
+NX
+Sy
+Hf
+Pg
+Pg
+Pg
+FK
+Pg
+KQ
+mH
+mH
+Sh
+mH
+vU
+vU
+vU
+"}
+(42,1,1) = {"
+mM
+vU
+vU
+cc
+Bx
+vU
+Hi
+vU
+LY
+Pg
+Jn
+oB
+gV
+gV
+Pg
+Pg
+fv
+En
+of
+of
+kA
+fv
+Pg
+Pg
+Pg
+gV
+gV
+Pg
+Pg
+do
+fO
+zc
+hI
+Ik
+eF
+fO
+sV
+Pg
+gV
+gV
+gV
+Pg
+Pg
+Pg
+NX
+mA
+Ms
+NX
+NX
+NX
+NX
+mI
+Pg
+FK
+Pg
+KQ
+Ek
+mH
+Dz
+mH
+vU
+vU
+vU
+"}
+(43,1,1) = {"
+mM
+Bx
+vU
+cc
+vU
+dR
+pv
+Qp
+le
+HV
+ZE
+OU
+Pg
+gV
+Pg
+Pg
+ZR
+vt
+hI
+hI
+Ni
+ZR
+Pg
+Pg
+gV
+gV
+Pg
+Pg
+Pg
+do
+xp
+pb
+ZR
+ZR
+RU
+xp
+sV
+Pg
+Pg
+Pg
+Pg
+mI
+RG
+RG
+NX
+ut
+NX
+NX
+qm
+jR
+kP
+NX
+mI
+ZY
+gV
+KQ
+mH
+mH
+mH
+vU
+mH
+vU
+mM
+"}
+(44,1,1) = {"
+mM
+vU
+vU
+lY
+Qp
+uo
+Pg
+qu
+nA
+MR
+aN
+rb
+Pg
+gV
+gV
+Pg
+ZR
+QZ
+hI
+gU
+Ni
+ZR
+Pg
+gV
+gV
+gV
+Pg
+Pg
+Pg
+cw
+EV
+EV
+Io
+gi
+hX
+hX
+qE
+Pg
+Pg
+Pg
+Pg
+RG
+fY
+Wx
+II
+iz
+oL
+NX
+Cx
+jX
+dC
+qp
+km
+ZY
+gV
+KQ
+mH
+mH
+mH
+vU
+vU
+mM
+mM
+"}
+(45,1,1) = {"
+mM
+bI
+vU
+ho
+Pg
+gV
+Pg
+Pg
+el
+MR
+NO
+MR
+Pg
+Pg
+gV
+Pg
+ZR
+QZ
+gU
+gU
+Ni
+ZR
+gV
+gV
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+gN
+vp
+gV
+Pg
+gV
+gV
+Pg
+Pg
+oS
+RG
+Je
+dj
+Se
+jT
+rS
+GN
+cm
+aY
+ln
+Wo
+km
+ry
+FP
+nE
+mH
+Ek
+vU
+vU
+mM
+mM
+mM
+"}
+(46,1,1) = {"
+vU
+vU
+vU
+ho
+Pg
+gV
+Pg
+rb
+MR
+MR
+bk
+MR
+Pg
+Pg
+Pg
+Pg
+ZR
+QZ
+gU
+hI
+Jl
+ZR
+gV
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+hY
+Uj
+Pg
+gV
+gV
+cR
+mI
+NX
+NX
+NX
+rR
+WC
+vF
+hu
+vQ
+NX
+Vo
+bB
+PV
+KC
+km
+yC
+vU
+AU
+mH
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(47,1,1) = {"
+Hd
+tY
+vU
+ho
+gV
+gV
+Pg
+MR
+Oq
+Cl
+WS
+MR
+Pg
+Pg
+Pg
+Pg
+ZR
+QZ
+hI
+hI
+Jl
+ZR
+af
+hY
+Uj
+zz
+Uj
+zz
+Qq
+af
+vp
+kl
+hY
+hY
+hY
+kl
+zz
+oN
+YR
+nI
+UB
+TN
+rS
+LN
+dP
+Po
+hn
+NX
+NX
+NX
+NX
+NX
+mI
+yC
+vU
+cc
+Zj
+RV
+rN
+vU
+mM
+mM
+mM
+"}
+(48,1,1) = {"
+bI
+vU
+vU
+ho
+Pg
+gV
+Pg
+MR
+PH
+aD
+cy
+jg
+Pg
+Pg
+Pg
+Pg
+ZR
+vt
+gU
+gU
+Ni
+XF
+zz
+hY
+hY
+kl
+zz
+hY
+af
+af
+Qq
+gN
+BU
+Uj
+Cw
+zz
+hY
+oN
+NX
+Qj
+Uq
+NX
+gv
+iz
+sj
+Rl
+ke
+NX
+NX
+NX
+mI
+Pg
+Pg
+Zb
+Wp
+cc
+vU
+Zj
+Zj
+vU
+mM
+mM
+mM
+"}
+(49,1,1) = {"
+bI
+bI
+vU
+ho
+gV
+gV
+Pg
+MR
+XO
+WV
+RH
+jg
+Pg
+Pg
+Pg
+Pg
+fv
+Un
+bi
+gU
+OT
+Pc
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+gV
+gV
+gV
+Cw
+Cw
+Cw
+Cw
+Pg
+Pg
+cw
+mI
+NX
+NX
+NX
+NX
+Kf
+NX
+NX
+yK
+NX
+NX
+wL
+Oj
+cH
+rZ
+Pg
+qs
+qJ
+vU
+Zj
+vU
+vU
+mM
+mM
+mM
+"}
+(50,1,1) = {"
+vU
+vU
+vU
+ho
+Pg
+gV
+gV
+MR
+pu
+RZ
+It
+jg
+YK
+Pg
+Ep
+KY
+KY
+Um
+mP
+mP
+VF
+aE
+KY
+KY
+KY
+KY
+KY
+KY
+aE
+Ra
+Pg
+Cw
+wd
+Cw
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+NX
+kK
+Vi
+Iu
+Jh
+NX
+KZ
+sv
+NX
+Pg
+Vc
+ZR
+hH
+Pg
+Pg
+TP
+vU
+vU
+vU
+Zj
+mM
+mM
+mM
+"}
+(51,1,1) = {"
+mM
+vU
+vU
+ho
+gV
+gV
+gV
+rb
+MR
+jg
+jg
+rb
+Pg
+Pg
+Yx
+MQ
+Yd
+Ot
+gU
+rx
+Rc
+Yd
+UE
+Yd
+Yd
+Yd
+BV
+UE
+Yd
+sH
+gV
+gV
+Cw
+Cw
+Pg
+Pg
+gV
+gV
+gV
+Pg
+NX
+sc
+Im
+vg
+Ye
+NX
+NX
+NX
+mI
+gV
+hH
+ZR
+hH
+Pg
+Pg
+TP
+vU
+vU
+vU
+Zj
+mM
+mM
+mM
+"}
+(52,1,1) = {"
+mM
+vU
+vU
+ho
+gV
+Pg
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+Xy
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+hI
+hI
+gU
+gc
+id
+Pg
+Pg
+Pg
+Cw
+Pg
+gV
+gV
+Pg
+gV
+Pg
+NX
+BX
+Pi
+DQ
+YE
+NX
+yW
+iL
+CU
+gV
+SA
+ZR
+fA
+Pg
+Pg
+TP
+vU
+vU
+vU
+Qu
+mM
+mM
+mM
+"}
+(53,1,1) = {"
+mM
+vU
+vA
+ho
+Pg
+YK
+iu
+FP
+FP
+FP
+CU
+Pg
+Pg
+Pg
+Xy
+gU
+hI
+hI
+hI
+hI
+gU
+gU
+uT
+gU
+gU
+gU
+qY
+gU
+gU
+rP
+gV
+gV
+Pg
+Pg
+Pg
+gV
+gV
+gV
+gV
+gV
+wt
+OV
+IT
+aA
+QI
+NX
+vU
+vU
+iL
+CU
+SA
+XF
+hH
+Pg
+Pg
+TP
+vA
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(54,1,1) = {"
+mM
+Gy
+vU
+gM
+Pg
+iu
+CI
+vU
+vU
+vU
+Sn
+Pg
+Pg
+Pg
+nw
+Da
+Ov
+Ov
+Ov
+Ov
+Ov
+Da
+Da
+Da
+Da
+Da
+Da
+Da
+Ov
+bc
+Pg
+gV
+gV
+Pg
+Pg
+Pg
+Pg
+Pg
+gV
+Pg
+Pg
+OV
+XK
+ZV
+pf
+mI
+vU
+Pa
+vU
+Sn
+KO
+ZR
+DJ
+gV
+Pg
+TP
+vU
+vU
+vU
+Zj
+mM
+mM
+mM
+"}
+(55,1,1) = {"
+mM
+vU
+vU
+gM
+gM
+oE
+tu
+tu
+gM
+vU
+Sn
+Pg
+Pg
+Pg
+Mz
+gU
+gU
+zu
+hI
+hI
+hI
+gU
+gU
+gU
+gU
+zu
+gU
+gU
+hI
+wI
+KY
+KY
+aE
+KY
+FY
+Pg
+Pg
+Pg
+gV
+YK
+hw
+Pg
+jt
+iu
+FP
+CI
+vU
+vU
+dR
+uo
+gV
+gV
+gV
+gV
+Pg
+TP
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(56,1,1) = {"
+mM
+vU
+vU
+Cw
+Cw
+vU
+vU
+vU
+cc
+dR
+uo
+Pg
+Pg
+Pg
+Xy
+gU
+gU
+hI
+gU
+hI
+hI
+hI
+gU
+gU
+gU
+gU
+gU
+hI
+hI
+hI
+gU
+gU
+gU
+gU
+rP
+Pg
+Pg
+Pg
+Pg
+Pg
+Pg
+dc
+Pg
+Xi
+vU
+vU
+vU
+vU
+iL
+CU
+Pg
+Pg
+Pg
+Pg
+Pg
+gM
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(57,1,1) = {"
+mM
+vU
+Cw
+Cw
+Cw
+Cw
+Cw
+vU
+lY
+uo
+Pg
+Pg
+Pg
+Pg
+Xy
+gU
+gU
+gU
+hI
+gU
+gU
+hI
+hI
+gU
+gU
+gU
+gU
+gU
+hI
+hI
+hI
+gU
+gU
+gU
+rP
+Pg
+Pg
+Pg
+Pg
+gM
+Qg
+Qg
+Qg
+oE
+tu
+tu
+tu
+tu
+tu
+fJ
+Qg
+Qg
+Qg
+Qg
+gM
+gM
+vU
+Bx
+vU
+vU
+mM
+mM
+mM
+"}
+(58,1,1) = {"
+mM
+mM
+Cw
+Cw
+Cw
+Cw
+Cw
+vU
+ho
+Pg
+Pg
+gV
+Pg
+Pg
+Xy
+gU
+gU
+gU
+hI
+hI
+hI
+gU
+hI
+hI
+hI
+gU
+gU
+gU
+gU
+hI
+hI
+hI
+gU
+gU
+rP
+Pg
+Pg
+Pg
+Pg
+TP
+Bx
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Pa
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(59,1,1) = {"
+mM
+mM
+mM
+Cw
+Cw
+Cw
+vU
+vU
+ho
+Pg
+Pg
+iu
+FP
+CU
+Xy
+gU
+gU
+gU
+gU
+gU
+gU
+Wu
+gU
+gU
+gU
+gU
+gU
+gU
+uT
+hI
+hI
+hI
+hI
+gU
+rP
+Pg
+Pg
+Pg
+Pg
+TP
+vU
+vU
+vU
+bI
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+"}
+(60,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+Zj
+vU
+vU
+ho
+Pg
+Pg
+Xi
+Bx
+iL
+Nj
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+gU
+hI
+hI
+gU
+rP
+Pg
+Pg
+gV
+Pg
+TP
+vU
+bI
+Zj
+Zj
+gG
+Db
+vU
+vU
+vA
+Zj
+Zj
+mM
+vU
+vU
+vU
+vU
+Zj
+Zj
+vU
+Pa
+mM
+mM
+mM
+"}
+(61,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+Zj
+ix
+vU
+ho
+Pg
+RJ
+Xi
+vU
+vU
+OP
+gU
+gU
+gU
+uT
+gU
+gU
+gU
+hI
+hI
+gU
+Ik
+gU
+gU
+gU
+gU
+qi
+aP
+IB
+gU
+rP
+Pg
+gV
+gV
+Pg
+TP
+vU
+bI
+vU
+vU
+tY
+Gy
+mM
+mM
+mM
+mM
+mM
+mM
+Zj
+Zj
+Zj
+RV
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+"}
+(62,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+vU
+Gy
+vU
+ho
+Pg
+gV
+Xi
+vU
+dR
+CL
+hI
+gU
+gU
+gU
+gU
+gU
+hI
+hI
+hI
+gU
+gU
+gU
+gU
+bi
+qi
+TU
+vU
+LA
+IB
+rP
+gV
+Pg
+gV
+Pg
+TP
+Hd
+Zj
+Zj
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(63,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+vU
+Zj
+vU
+DL
+Pg
+Pg
+qs
+Qp
+uo
+uq
+gt
+JJ
+JJ
+JJ
+JJ
+gt
+gt
+gt
+gt
+gt
+JJ
+JJ
+JJ
+JJ
+UW
+vU
+Pa
+vU
+DW
+uR
+gV
+gV
+Pg
+Pg
+TP
+vU
+vU
+Zj
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(64,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+vU
+Zj
+vU
+ho
+Pg
+Pg
+gV
+gV
+gV
+gV
+iu
+FP
+CU
+Pg
+Pg
+gV
+Pg
+gV
+gV
+Pg
+gV
+gV
+Pg
+Pg
+Tg
+dN
+vU
+vU
+vU
+Sn
+gV
+Pg
+Pg
+Pg
+TP
+vU
+vU
+Zj
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(65,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+vU
+vU
+vU
+gM
+Pg
+Pg
+iu
+FP
+xX
+xX
+CI
+vU
+iL
+CU
+Pg
+Pg
+Pg
+gV
+gV
+gV
+Pg
+Pg
+gV
+iu
+CI
+vU
+vU
+vU
+vU
+iL
+CU
+Pg
+Pg
+Pg
+gM
+vU
+vU
+vU
+Zj
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(66,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+Pa
+vU
+gM
+gM
+Qg
+oE
+tu
+tu
+tu
+tu
+tu
+tu
+Ui
+Qg
+Qg
+Qg
+BY
+TX
+Qg
+Qg
+Qg
+Qg
+oE
+tu
+tu
+tu
+tu
+tu
+tu
+Ui
+Qg
+Qg
+gM
+gM
+vU
+vU
+Zj
+Zj
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(67,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+NH
+NH
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+Pa
+vU
+vU
+vU
+vU
+Gy
+Zj
+vU
+vU
+Bx
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(68,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+vU
+gG
+hS
+vU
+Bx
+vU
+vU
+vU
+vU
+vA
+NH
+NH
+NH
+vU
+Zj
+Zj
+NH
+Zj
+Zj
+Zj
+Zj
+vU
+Zj
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(69,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+vU
+vU
+vU
+vU
+vU
+Zj
+bI
+bI
+vU
+Zj
+vU
+vU
+NH
+NH
+Zj
+NH
+NH
+NH
+NH
+Zj
+Zj
+Zj
+vU
+vU
+vU
+vU
+Zj
+Zj
+vU
+vA
+vU
+vU
+vU
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
+(70,1,1) = {"
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+vU
+vA
+bI
+bI
+vU
+Zj
+gG
+vU
+vU
+vU
+vU
+NH
+dA
+Zj
+RV
+Zj
+kn
+Zj
+vU
+Zj
+vU
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+mM
+"}
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
index 7ae333dcd541..60dfc9186132 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
@@ -751,7 +751,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uu" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -760,7 +760,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uz" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -848,7 +848,7 @@
},
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"xd" = (
@@ -1210,7 +1210,7 @@
/area/ruin/powered)
"KU" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
index 397dff3689ee..cb80a56671ef 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
@@ -225,8 +225,8 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/five,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel,
/area/ruin/whitesands/pubbycrash)
"fO" = (
@@ -405,7 +405,7 @@
dir = 8;
name = "engine fuel pump"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"jt" = (
@@ -502,7 +502,7 @@
"ln" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/emcloset/wall/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/whitesands/pubbycrash/engine_room)
"ly" = (
@@ -530,7 +530,7 @@
name = "engine fuel pump"
},
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/tech,
@@ -622,7 +622,7 @@
/area/ruin/whitesands/pubbycrash)
"nP" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"nQ" = (
@@ -780,7 +780,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"rT" = (
@@ -931,7 +931,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"vL" = (
@@ -972,7 +972,7 @@
/obj/structure/sign/poster/official/random{
pixel_x = 32
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/whitesands/pubbycrash)
@@ -1063,7 +1063,7 @@
/obj/structure/table,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"xX" = (
@@ -1447,7 +1447,7 @@
/obj/machinery/door/airlock/hatch{
welded = 1
},
-/turf/template_noop,
+/turf/open/floor/plating,
/area/ruin/whitesands/pubbycrash/split)
"ET" = (
/obj/structure/cable/yellow{
@@ -1792,7 +1792,7 @@
/obj/structure/sign/poster/retro/nanotrasen_logo_70s{
pixel_x = -32
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ruin/whitesands/pubbycrash/engine_room)
"KT" = (
@@ -2003,7 +2003,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"PA" = (
@@ -2118,7 +2118,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/whitesands/pubbycrash/engine_room)
"RC" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/ore/salvage/scraptitanium,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
@@ -2292,7 +2292,7 @@
/obj/structure/sign/number/two,
/obj/item/stack/ore/salvage/scrapmetal,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"Wo" = (
@@ -2460,7 +2460,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/item/stamp/captain{
+/obj/item/stamp/nanotrasen/captain{
pixel_x = -6;
pixel_y = 8
},
diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
index 2c62420cef30..e790766a2a94 100644
--- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm
+++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm
@@ -101,7 +101,7 @@
/turf/open/space,
/area/space/nearstation)
"dx" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"dA" = (
@@ -326,7 +326,7 @@
/turf/open/space,
/area/space/nearstation)
"jd" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"je" = (
@@ -349,7 +349,7 @@
/obj/machinery/conveyor{
dir = 6
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"jT" = (
@@ -556,7 +556,7 @@
/area/ruin/space/has_grav/astraeus/bridge)
"pT" = (
/obj/item/stack/conveyor,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"pU" = (
@@ -621,7 +621,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark/airless,
/area/ruin/space/has_grav/astraeus/bridge)
"rk" = (
@@ -675,7 +675,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"sL" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/dorms_med)
"sR" = (
@@ -731,8 +731,8 @@
"uH" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
+/obj/effect/spawner/random/maintenance{
+ spawn_loot_count = 2;
name = "2maintenance loot spawner"
},
/turf/open/floor/plasteel/airless,
@@ -800,7 +800,7 @@
/obj/machinery/conveyor{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"wl" = (
@@ -1374,7 +1374,7 @@
/obj/machinery/conveyor/inverted{
dir = 9
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"KD" = (
@@ -1560,7 +1560,7 @@
/obj/machinery/power/apc/auto_name/directional/east{
start_charge = 0
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"Pd" = (
@@ -1734,7 +1734,7 @@
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
"UK" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"UU" = (
diff --git a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
index a2cb21cd1c1c..956466fc4be0 100644
--- a/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
+++ b/_maps/RandomRuins/SpaceRuins/corporate_mining.dmm
@@ -462,7 +462,7 @@
/area/ruin/space/has_grav/corporatemine/bridge)
"kZ" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 4
},
@@ -812,7 +812,7 @@
/obj/effect/decal/cleanable/oil/slippery,
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"sb" = (
@@ -1590,8 +1590,8 @@
"IF" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"IS" = (
@@ -1774,7 +1774,7 @@
"NH" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"NO" = (
@@ -2293,7 +2293,7 @@
/area/ruin/space/has_grav/corporatemine/crewquarters)
"ZU" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
index 0ee697760b25..de7a68ec4eeb 100644
--- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm
+++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm
@@ -1401,7 +1401,7 @@
/obj/effect/turf_decal/industrial/warning/corner{
dir = 1
},
-/mob/living/simple_animal/hostile/hivebot/range,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/onehalf)
"qC" = (
@@ -1606,7 +1606,7 @@
/turf/open/floor/plating/airless,
/area/space/nearstation)
"zS" = (
-/mob/living/simple_animal/hostile/hivebot/range,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/onehalf)
"Af" = (
@@ -1969,7 +1969,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/wood,
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/hivebot/range,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/wood/airless,
/area/ruin/space/has_grav/onehalf)
"OW" = (
diff --git a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
index 3d05cfb13d35..2dd656b040d9 100644
--- a/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
+++ b/_maps/RandomRuins/SpaceRuins/power_puzzle.dmm
@@ -3,7 +3,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"ae" = (
@@ -365,9 +365,9 @@
/area/ruin/space/has_grav/powerpuzzle)
"br" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -695,14 +695,14 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"cB" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/generic,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/structure/closet/crate/secure,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"cD" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/glass,
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -797,7 +797,7 @@
/obj/effect/decal/cleanable/greenglow,
/obj/item/stack/ore/salvage/scrapuranium,
/obj/item/bodypart/l_arm/robot,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/prox_sensor,
/obj/item/stack/ore/salvage/scrapuranium{
pixel_x = -4;
@@ -1116,7 +1116,7 @@
/area/ruin/space/has_grav/powerpuzzle)
"gM" = (
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/structure/closet/crate/secure,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel/dark,
@@ -1478,7 +1478,7 @@
pixel_x = 2;
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/broken/directional/south,
/obj/item/poster/random_official,
/obj/item/poster/random_official,
@@ -1677,7 +1677,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"rI" = (
@@ -1838,7 +1838,7 @@
/obj/structure/railing,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/item/stack/ore/salvage/scrapuranium/five,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/closet/crate/engineering,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/dark,
@@ -1850,8 +1850,8 @@
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/stack/medical/gauze/improvised,
@@ -2167,7 +2167,7 @@
/obj/item/ammo_casing/c9mm/surplus{
pixel_x = 6
},
-/obj/item/ammo_casing/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_casing/c9mm/surplus{
pixel_x = 3;
pixel_y = 5
@@ -2446,7 +2446,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/small/broken/directional/north,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -2694,8 +2694,8 @@
/obj/structure/closet/crate/secure/weapon{
name = "Ammo Crate"
},
-/obj/item/ammo_box/c9mm/surplus,
-/obj/item/ammo_box/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
/turf/open/floor/plasteel,
@@ -3273,7 +3273,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -3546,7 +3546,7 @@
dir = 4
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"VV" = (
@@ -3589,7 +3589,7 @@
dir = 6
},
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/structure/noticeboard{
pixel_x = -15;
pixel_y = 32
@@ -3647,7 +3647,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle/engineering)
"Xj" = (
@@ -3692,7 +3692,7 @@
dir = 5
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"Yr" = (
diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
index afec0282e917..d42576b02d58 100644
--- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
+++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm
@@ -552,7 +552,7 @@
/obj/structure/closet/crate/medical,
/obj/item/storage/firstaid,
/obj/item/storage/firstaid,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ruin/space/has_grav/singularitylab/cargo)
"cv" = (
@@ -9118,7 +9118,7 @@
/obj/effect/gibspawner,
/obj/item/gun/energy/lasercannon{
desc = "An advanced laser cannon, a laser etched inscription in the handle states 'NT-LS-1013'. The casing is made of a lightweight alloy.";
- icon_state = "pulse";
+ icon_state = "lasercannon";
name = "NT-LS-1013"
},
/turf/open/floor/plating/asteroid,
@@ -10922,7 +10922,7 @@
/obj/machinery/light/directional/north,
/obj/item/gun/energy/lasercannon{
desc = "An advanced laser cannon, a laser etched inscription in the handle states 'NT-LS-1013'. The casing is made of a lightweight alloy.";
- icon_state = "pulse";
+ icon_state = "lasercannon";
name = "NT-LS-1013"
},
/obj/item/gun/energy/laser/iot,
diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
index db3f30c15f76..a0a7605441db 100644
--- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
@@ -315,15 +315,6 @@
/obj/structure/flora/junglebush/c,
/turf/open/floor/plating/grass,
/area/ruin/space/has_grav/spacemall)
-"bn" = (
-/obj/structure/table/glass,
-/obj/item/toy/talking/AI{
- pixel_x = 20
- },
-/obj/item/ammo_box/foambox/riot,
-/obj/item/gun/ballistic/shotgun/toy,
-/turf/open/floor/light,
-/area/ruin/space/has_grav/spacemall/shop2)
"bo" = (
/obj/machinery/light/small/directional/north,
/obj/structure/spider/stickyweb,
@@ -706,11 +697,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
-"cO" = (
-/obj/effect/turf_decal/box,
-/obj/effect/spawner/lootdrop/salvage_machine,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"cP" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/window/reinforced{
@@ -1098,6 +1084,11 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
+"ej" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"ek" = (
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/item/kirbyplants/random,
@@ -1293,22 +1284,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"eS" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
-"eU" = (
-/obj/structure/mirror{
- pixel_y = -30
- },
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/turf/open/floor/wood,
-/area/ruin/space/has_grav/spacemall/dorms)
"eV" = (
/obj/item/trash/energybar,
/turf/open/floor/eighties,
@@ -1322,14 +1297,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"eX" = (
-/obj/machinery/vending/cola/random,
-/obj/effect/turf_decal/corner/transparent/green/diagonal,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/ruin/space/has_grav/spacemall/dorms)
"eY" = (
/obj/effect/turf_decal/trimline/opaque/black/arrow_ccw{
dir = 1;
@@ -1385,24 +1352,6 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"fh" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/solgovgold/full,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/stack/cable_coil/random/five,
-/obj/effect/spawner/lootdrop/techstorage/engineering,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
-"fi" = (
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"fl" = (
/obj/machinery/door/airlock/maintenance_hatch,
/obj/structure/cable{
@@ -1565,6 +1514,15 @@
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall)
+"fP" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/solgovgold/full,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/cable_coil/random/five,
+/obj/effect/spawner/random/techstorage/engineering,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"fQ" = (
/obj/structure/window/reinforced{
dir = 1
@@ -1610,6 +1568,14 @@
/obj/effect/turf_decal/corner/opaque/black/diagonal,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
+"gh" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"gj" = (
/obj/machinery/light/dim/directional/east,
/turf/open/floor/plasteel/showroomfloor{
@@ -1653,12 +1619,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
-"gu" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"gx" = (
/obj/effect/turf_decal/corner/transparent/red/diagonal,
/obj/structure/chair{
@@ -1754,6 +1714,15 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
+"gP" = (
+/obj/effect/decal/cleanable/ash,
+/obj/effect/spawner/random/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/closet/crate,
+/obj/structure/railing,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"gQ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 5
@@ -1812,6 +1781,15 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/dorms)
+"hb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure,
+/obj/effect/turf_decal/box,
+/obj/structure/railing,
+/obj/effect/spawner/random/exotic/prison_contraband,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"hc" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -2166,6 +2144,11 @@
/obj/structure/spider/stickyweb,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall)
+"iu" = (
+/obj/effect/turf_decal/box,
+/obj/effect/spawner/random/salvage_machine,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
"iv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 9
@@ -2248,6 +2231,11 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop2)
+"iK" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/spacemall/dorms)
"iL" = (
/obj/structure/flora/grass/jungle/b,
/turf/open/floor/plating/grass,
@@ -2432,15 +2420,6 @@
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall)
-"jm" = (
-/obj/structure/rack,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/magazine/co9mm{
- pixel_x = 5
- },
-/obj/item/ammo_box/magazine/co9mm,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/dorms)
"jn" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -2513,14 +2492,6 @@
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/plating/grass,
/area/ruin/space/has_grav/spacemall)
-"jD" = (
-/obj/effect/turf_decal/box,
-/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/costume,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"jE" = (
/obj/structure/window/reinforced/spawner{
dir = 1
@@ -3106,14 +3077,6 @@
/obj/structure/flora/grass/jungle/b,
/turf/open/floor/plating/grass,
/area/ruin/space/has_grav/spacemall/dorms)
-"lQ" = (
-/obj/effect/decal/cleanable/glass,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/turf_decal/box,
-/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"lR" = (
/obj/structure/table/glass,
/obj/machinery/paystand,
@@ -3143,6 +3106,15 @@
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
+"lX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"mg" = (
/obj/structure/sign/departments/security{
pixel_x = -31
@@ -3225,6 +3197,17 @@
/obj/structure/spider/stickyweb,
/turf/open/floor/wood,
/area/ruin/space/has_grav/spacemall/maint)
+"mx" = (
+/obj/structure/rack,
+/obj/item/clothing/head/hardhat/weldhat/dblue,
+/obj/item/clothing/head/hardhat/weldhat/dblue{
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/wideplating/dark/end{
+ dir = 8
+ },
+/turf/open/floor/light,
+/area/ruin/space/has_grav/spacemall/shop)
"mA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/structure/cable{
@@ -3252,12 +3235,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall/shop2)
-"mJ" = (
-/obj/structure/rack,
-/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"mK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 6
@@ -3636,11 +3613,6 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/dorms)
-"ob" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"od" = (
/obj/effect/decal/cleanable/blood,
/obj/structure/spider/cocoon,
@@ -4046,15 +4018,6 @@
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall)
-"pB" = (
-/obj/effect/decal/cleanable/ash,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
-/obj/structure/closet/crate,
-/obj/structure/railing,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"pC" = (
/obj/structure/flora/ausbushes/palebush,
/turf/open/floor/plating/grass,
@@ -4104,6 +4067,15 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
+"pK" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced/spawner,
+/obj/effect/spawner/random/medical/beaker,
+/obj/effect/spawner/random/medical/beaker,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/item/clothing/neck/stethoscope,
+/turf/open/floor/plasteel/white,
+/area/ruin/space/has_grav/spacemall/shop2)
"pL" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -4473,6 +4445,15 @@
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/shop)
+"qE" = (
+/obj/effect/spawner/random/vending/snack,
+/obj/effect/turf_decal/corner/transparent/green/diagonal,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ruin/space/has_grav/spacemall/dorms)
"qF" = (
/obj/structure/railing{
dir = 4
@@ -4494,6 +4475,15 @@
/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/dorms)
+"qJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/wooden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"qK" = (
/turf/closed/wall/r_wall,
/area/ruin/space/has_grav/spacemall/maint)
@@ -4601,6 +4591,12 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/shuttle)
+"rb" = (
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"re" = (
/obj/item/kirbyplants/dead,
/turf/open/floor/plating,
@@ -4637,6 +4633,15 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
+"rp" = (
+/obj/structure/rack,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_x = 5
+ },
+/obj/item/ammo_box/magazine/co9mm,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/dorms)
"rq" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 1
@@ -5746,12 +5751,6 @@
/obj/effect/decal/cleanable/molten_object/large,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"vp" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"vs" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 10
@@ -5825,6 +5824,14 @@
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
+"vH" = (
+/obj/effect/spawner/random/vending/cola,
+/obj/effect/turf_decal/corner/transparent/green/diagonal,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/space/has_grav/spacemall/dorms)
"vI" = (
/obj/effect/turf_decal/corner/transparent/blue/half{
dir = 1
@@ -5864,12 +5871,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop2)
-"vS" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
-/obj/effect/turf_decal/corner/opaque/blue/diagonal,
-/turf/open/floor/plasteel/white,
-/area/ruin/space/has_grav/spacemall/shop2)
"vT" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -6261,6 +6262,12 @@
/obj/effect/decal/cleanable/glass,
/turf/open/floor/wood/walnut,
/area/ruin/space/has_grav/spacemall/shop)
+"xA" = (
+/obj/structure/rack,
+/obj/machinery/light/small/directional/north,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"xD" = (
/obj/effect/turf_decal/siding{
dir = 8
@@ -6446,15 +6453,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"yj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/crate/secure,
-/obj/effect/turf_decal/box,
-/obj/structure/railing,
-/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"yk" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 4
@@ -6496,6 +6494,14 @@
},
/turf/open/floor/wood/birch,
/area/ruin/space/has_grav/spacemall/shop2)
+"yr" = (
+/obj/structure/mirror{
+ pixel_y = -30
+ },
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/spacemall/dorms)
"ys" = (
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/machinery/firealarm/directional/north,
@@ -6519,14 +6525,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"yC" = (
-/obj/effect/turf_decal/box,
-/obj/structure/closet/crate/trashcart,
-/obj/item/trash/popcorn,
-/obj/item/trash/candy,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"yF" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6659,16 +6657,6 @@
/obj/item/stack/cable_coil/cut,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop2)
-"yX" = (
-/obj/effect/turf_decal/box,
-/obj/machinery/light/small/directional/south,
-/obj/structure/closet/crate/secure,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"yZ" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -6705,6 +6693,15 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
+"zd" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/circuit/computer/common,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"ze" = (
/turf/open/floor/plating/grass,
/area/ruin/space/has_grav/spacemall)
@@ -6961,15 +6958,6 @@
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/shop)
-"Ag" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
-/obj/item/research_notes/loot,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"Ah" = (
/obj/structure/table/wood/reinforced,
/obj/item/paper_bin/carbon,
@@ -7266,14 +7254,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop2)
-"Bq" = (
-/obj/effect/turf_decal/box,
-/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"Bu" = (
/obj/structure/railing/wood{
dir = 1
@@ -7441,6 +7421,14 @@
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
+"Cq" = (
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/wooden,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"Cs" = (
/obj/effect/turf_decal/corner/opaque/blue/half,
/obj/item/clothing/suit/hooded/wintercoat{
@@ -7462,16 +7450,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"Cu" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate/wooden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
- dir = 10
- },
-/obj/structure/spider/stickyweb,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"Cv" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -7629,16 +7607,6 @@
/obj/machinery/smartfridge/food,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"CR" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/effect/decal/cleanable/blood,
-/obj/item/reagent_containers/food/snacks/spiderling{
- pixel_y = 5;
- pixel_x = 6
- },
-/turf/open/floor/wood,
-/area/ruin/space/has_grav/spacemall/dorms)
"CW" = (
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/structure/cable{
@@ -7894,21 +7862,6 @@
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
-"DH" = (
-/obj/structure/rack,
-/obj/item/clothing/head/hardhat/weldhat/dblue,
-/obj/item/clothing/head/hardhat/weldhat/dblue{
- pixel_y = 5
- },
-/obj/item/weldingtool/experimental{
- pixel_y = 5
- },
-/obj/item/weldingtool/experimental,
-/obj/effect/turf_decal/siding/wideplating/dark/end{
- dir = 8
- },
-/turf/open/floor/light,
-/area/ruin/space/has_grav/spacemall/shop)
"DL" = (
/obj/machinery/door/airlock,
/obj/structure/cable{
@@ -8229,12 +8182,6 @@
},
/turf/open/floor/eighties,
/area/ruin/space/has_grav/spacemall/shop2)
-"EI" = (
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"EJ" = (
/obj/effect/turf_decal/corner/transparent/red/diagonal,
/obj/structure/chair{
@@ -8610,6 +8557,22 @@
/obj/structure/spider/stickyweb,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
+"Gm" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/light/small/directional/south,
+/obj/structure/closet/crate/secure,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
+"Gn" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"Go" = (
/obj/structure/rack,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -8690,6 +8653,15 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/ruin/space/has_grav/spacemall/shop2)
+"GD" = (
+/obj/structure/table/glass,
+/obj/item/toy/talking/AI{
+ pixel_x = 20
+ },
+/obj/item/storage/box/ammo/foam_darts/riot,
+/obj/item/gun/ballistic/shotgun/toy,
+/turf/open/floor/light,
+/area/ruin/space/has_grav/spacemall/shop2)
"GE" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
@@ -8699,6 +8671,14 @@
/obj/machinery/power/floodlight,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/shop2)
+"GG" = (
+/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/secure,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
"GH" = (
/obj/effect/turf_decal/corner/opaque/red{
dir = 9
@@ -8992,6 +8972,12 @@
/obj/structure/spider/eggcluster,
/turf/open/floor/wood,
/area/ruin/space/has_grav/spacemall/maint)
+"HI" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/obj/structure/closet/crate/wooden,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"HJ" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{
dir = 8
@@ -9436,11 +9422,6 @@
/obj/structure/flora/ausbushes/leafybush,
/turf/open/floor/plating/grass,
/area/ruin/space/has_grav/spacemall)
-"JE" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/turf/open/floor/wood,
-/area/ruin/space/has_grav/spacemall/dorms)
"JF" = (
/obj/effect/turf_decal/corner/transparent/red/diagonal,
/obj/structure/table,
@@ -9566,12 +9547,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"Kl" = (
-/obj/effect/decal/cleanable/robot_debris/old,
-/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"Kn" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -9616,6 +9591,15 @@
},
/turf/open/floor/wood/birch,
/area/ruin/space/has_grav/spacemall/shop2)
+"KA" = (
+/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/engineering/electrical,
+/obj/effect/spawner/random/techstorage,
+/obj/effect/spawner/random/techstorage,
+/obj/effect/spawner/random/stockparts,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
"KB" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -9670,6 +9654,15 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
+"KN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/structure/closet/crate,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"KO" = (
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/obj/structure/cable{
@@ -9996,15 +9989,6 @@
/obj/structure/table,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall/dorms)
-"LS" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"LT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10054,17 +10038,6 @@
/obj/structure/table,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
-"Mb" = (
-/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/lootdrop/random_prosthetic,
-/obj/effect/spawner/lootdrop/memeorgans,
-/obj/effect/spawner/lootdrop/memeorgans,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/structure/closet/crate/secure,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/maint)
"Md" = (
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -10755,6 +10728,19 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
+"Ol" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/spacemall/maint)
"On" = (
/obj/structure/spider/stickyweb,
/turf/open/floor/plasteel,
@@ -10853,6 +10839,22 @@
/obj/structure/table,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
+"OM" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/medical/beaker,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ruin/space/has_grav/spacemall/shop2)
+"ON" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/decal/cleanable/blood,
+/obj/item/reagent_containers/food/snacks/spiderling{
+ pixel_y = 5;
+ pixel_x = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/spacemall/dorms)
"OO" = (
/obj/machinery/light/small/directional/south,
/obj/structure/disposalpipe/segment{
@@ -11264,12 +11266,6 @@
name = "bathroom floor"
},
/area/ruin/space/has_grav/spacemall)
-"Qf" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/tool_engie_common,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"Qh" = (
/obj/structure/bookcase/random,
/obj/structure/disposalpipe/segment{
@@ -11296,22 +11292,14 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
-"Qn" = (
-/obj/machinery/vending/snack/random,
-/obj/effect/turf_decal/corner/transparent/green/diagonal,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/ruin/space/has_grav/spacemall/dorms)
-"Qo" = (
-/obj/effect/decal/cleanable/dirt,
+"Qq" = (
+/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/wooden,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/structure/spider/stickyweb,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Qu" = (
@@ -11682,6 +11670,15 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
+"RO" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/circuit/computer/common,
+/obj/item/research_notes/loot,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"RQ" = (
/obj/effect/turf_decal/industrial/caution{
dir = 8;
@@ -11822,6 +11819,17 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
+"Sr" = (
+/obj/effect/decal/cleanable/greenglow,
+/obj/effect/spawner/random/medical/prosthetic,
+/obj/effect/spawner/random/medical/memeorgans,
+/obj/effect/spawner/random/medical/memeorgans,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/closet/crate/secure,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/maint)
"Ss" = (
/obj/structure/chair/stool/bar,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
@@ -11863,15 +11871,6 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
-"SD" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/item/toy/plush/slimeplushie{
- pixel_y = -4;
- pixel_x = 4
- },
-/turf/open/floor/wood,
-/area/ruin/space/has_grav/spacemall/dorms)
"SF" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
dir = 6
@@ -12135,6 +12134,14 @@
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/ruin/space/has_grav/spacemall/maint)
+"TF" = (
+/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/trashcart,
+/obj/item/trash/popcorn,
+/obj/item/trash/candy,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
"TG" = (
/obj/effect/turf_decal/siding/wideplating/dark/corner{
dir = 1
@@ -12214,13 +12221,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"TX" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/machinery/light/directional/east,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shop)
"TZ" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/corner/opaque/blue/half{
@@ -12276,6 +12276,12 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/dorms)
+"Ui" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"Uj" = (
/obj/structure/railing{
dir = 4
@@ -12287,15 +12293,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
-"Ul" = (
-/obj/effect/turf_decal/box,
-/obj/structure/closet/crate/engineering/electrical,
-/obj/effect/spawner/lootdrop/techstorage,
-/obj/effect/spawner/lootdrop/techstorage,
-/obj/effect/spawner/lootdrop/stockparts,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/spacemall/shuttle)
"Um" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -12457,6 +12454,13 @@
name = "bathroom floor"
},
/area/ruin/space/has_grav/spacemall/maint)
+"UN" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/obj/machinery/light/directional/east,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"UP" = (
/obj/structure/flora/junglebush/b,
/turf/open/floor/plating/grass,
@@ -12547,6 +12551,21 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
+"Vi" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/item/toy/plush/slimeplushie{
+ pixel_y = -4;
+ pixel_x = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/spacemall/dorms)
+"Vj" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/turf_decal/corner/transparent/black/diagonal,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shop)
"Vk" = (
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/obj/structure/cable{
@@ -12596,19 +12615,6 @@
},
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall)
-"Vq" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
- dir = 1
- },
-/obj/structure/closet/crate,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"Vr" = (
/obj/machinery/light/directional/east,
/obj/structure/lattice,
@@ -12652,15 +12658,6 @@
/obj/machinery/power/port_gen/pacman/super,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
-"VA" = (
-/obj/structure/rack,
-/obj/structure/window/reinforced/spawner,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
-/obj/effect/turf_decal/corner/opaque/blue/diagonal,
-/obj/item/clothing/neck/stethoscope,
-/turf/open/floor/plasteel/white,
-/area/ruin/space/has_grav/spacemall/shop2)
"VD" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -12898,6 +12895,14 @@
},
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/shop2)
+"Wv" = (
+/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/secure,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/costume,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/spacemall/shuttle)
"Ww" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -13454,15 +13459,6 @@
/obj/item/toy/plush/spider,
/turf/open/floor/carpet/green,
/area/ruin/space/has_grav/spacemall/maint)
-"YP" = (
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/spacemall/maint)
"YQ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -13899,22 +13895,22 @@ kb
QZ
yt
BN
-JE
+iK
yt
BN
-JE
+iK
yt
BN
-JE
+iK
yt
BN
-JE
+iK
yt
BN
-JE
+iK
yt
wC
-CR
+ON
bw
Kh
Kh
@@ -14156,8 +14152,8 @@ xI
xI
Wn
yt
-eX
-Qn
+vH
+qE
uu
qB
lk
@@ -14257,17 +14253,17 @@ yt
yt
yt
BF
-eU
+yr
yt
Nk
hV
eK
yt
BN
-SD
+Vi
yt
BN
-JE
+iK
bw
Kh
Kh
@@ -14407,7 +14403,7 @@ Vf
zN
yt
BF
-eU
+yr
yt
Nk
hV
@@ -14765,7 +14761,7 @@ EF
pW
qM
OY
-jm
+rp
MM
Wj
FC
@@ -15668,7 +15664,7 @@ sr
pX
Yy
xy
-bn
+GD
Yo
gm
sy
@@ -15945,8 +15941,8 @@ No
NY
zY
QS
-fi
-YP
+lX
+KN
zY
tj
zY
@@ -16093,7 +16089,7 @@ nX
Sh
gC
Yo
-EI
+rb
dj
pe
wi
@@ -16143,7 +16139,7 @@ Pq
ki
gC
Yo
-ob
+ej
zX
uM
qS
@@ -16193,7 +16189,7 @@ ts
XY
YA
Yo
-mJ
+xA
dK
pe
ry
@@ -16264,7 +16260,7 @@ UW
Jx
Od
tQ
-VA
+pK
TZ
sw
LG
@@ -16312,7 +16308,7 @@ zZ
nd
UW
Jx
-vS
+OM
Wr
xp
TZ
@@ -16389,7 +16385,7 @@ NX
NX
PM
og
-Vq
+Ol
ep
NX
eo
@@ -16788,7 +16784,7 @@ xN
vT
tu
ID
-Bq
+GG
VM
TE
LJ
@@ -16837,8 +16833,8 @@ Kh
xN
wF
sb
-jD
-Ul
+Wv
+KA
ra
TE
LJ
@@ -16938,7 +16934,7 @@ xN
kO
WH
FL
-yX
+Gm
uU
Nj
AM
@@ -16950,7 +16946,7 @@ Ca
eb
jE
DU
-DH
+mx
RG
dO
YG
@@ -16987,8 +16983,8 @@ Kh
fZ
aL
IS
-yC
-cO
+TF
+iu
fZ
FM
kj
@@ -17234,9 +17230,9 @@ Kh
Kh
qK
qK
-lQ
+Cq
ba
-yj
+hb
ZQ
hy
Yo
@@ -17285,8 +17281,8 @@ Kh
qK
mh
DF
-Qo
-Kl
+qJ
+HI
TT
On
BV
@@ -17384,7 +17380,7 @@ Kh
Kh
qK
hE
-Mb
+Sr
EN
nK
eH
@@ -17397,10 +17393,10 @@ Hq
vG
cs
pe
-Qf
+Vj
qj
tD
-gu
+Gn
RH
dO
YG
@@ -17433,10 +17429,10 @@ Kh
Kh
Kh
qK
-fh
-Cu
+fP
+Qq
Zf
-pB
+gP
dW
Tc
Yo
@@ -17447,10 +17443,10 @@ yQ
CJ
ZT
pe
-eS
+gh
qj
bY
-Ag
+RO
RH
UW
YG
@@ -17497,10 +17493,10 @@ dZ
Mk
JW
pe
-vp
+Ui
tD
qj
-vp
+Ui
RH
UW
kN
@@ -17598,9 +17594,9 @@ ps
Wd
pe
Im
-TX
-LS
-Qf
+UN
+zd
+Vj
pe
PO
Df
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
index e1a64004decb..50d9986ea756 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
@@ -612,7 +612,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"fX" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/light/dim/directional/south,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -1084,8 +1084,8 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/item/mop,
/obj/item/reagent_containers/glass/bucket,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/clothing/costume,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
@@ -1445,7 +1445,7 @@
"qH" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -2278,7 +2278,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"Bg" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/tech/grid,
@@ -2360,13 +2360,13 @@
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
"BF" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/food/salt,
@@ -2411,7 +2411,7 @@
"Cp" = (
/obj/structure/table,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/item/stack/sheet/metal/fifty,
/obj/item/stack/sheet/glass/twenty,
/turf/open/floor/plasteel/tech/grid,
@@ -3424,7 +3424,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"Oj" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/turf/open/floor/plasteel,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
"Om" = (
@@ -3933,7 +3933,7 @@
"Vx" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index aa5797d05a95..1769de22f824 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -118,13 +118,13 @@
/area/ruin/powered)
"gw" = (
/obj/structure/table,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gx" = (
/obj/structure/table,
-/obj/item/ammo_box/c9mm/rubbershot,
+/obj/item/storage/box/ammo/c9mm_rubber,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gz" = (
@@ -263,7 +263,7 @@
/area/ruin/powered)
"lw" = (
/obj/structure/table/wood/reinforced,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/effect/turf_decal/corner/transparent/neutral/diagonal,
/obj/effect/turf_decal/corner/opaque/blue/diagonal{
dir = 4
@@ -699,7 +699,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"HW" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plating,
/area/ruin/powered)
"Ie" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index 934b648c0bd6..2cc76f2fb956 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -23,7 +23,7 @@
/area/ruin/wasteplanet)
"bc" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet)
"bd" = (
@@ -797,7 +797,7 @@
/turf/open/floor/wood/waste,
/area/ruin/wasteplanet)
"Fn" = (
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
pixel_y = -18
},
/obj/item/ammo_casing/spent{
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
new file mode 100644
index 000000000000..1ce3f86f1079
--- /dev/null
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
@@ -0,0 +1,8003 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"aj" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "wtpw1"
+ },
+/obj/machinery/power/shieldwallgen/atmos{
+ id = "tradehouse";
+ dir = 1;
+ anchored = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"as" = (
+/turf/closed/wall/yesdiag,
+/area/ruin/wasteplanet/tradepost/center)
+"aB" = (
+/obj/effect/turf_decal/industrial/caution,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"aF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"aI" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"aM" = (
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"aQ" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"aR" = (
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"aS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"ba" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/flora/ash/glowshroom,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bj" = (
+/obj/item/stack/sheet/mineral/sandbags{
+ amount = 3
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/hivebot/strong,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"bm" = (
+/turf/closed/wall/yesdiag,
+/area/ruin/wasteplanet/tradepost/barracks)
+"br" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/floodlight_frame,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bz" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/machinery/portable_atmospherics/scrubber/huge/movable,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"bH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bJ" = (
+/obj/item/reagent_containers/glass/concrete_bag,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bM" = (
+/obj/item/stack/sheet/mineral/sandbags,
+/obj/structure/door_assembly/door_assembly_com,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"bW" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"bY" = (
+/obj/structure/girder/displaced,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"bZ" = (
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ch" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -24;
+ pixel_y = -8;
+ id = "wtpw1"
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "tradehouse";
+ dir = 4;
+ pixel_y = 2;
+ pixel_x = -22
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"cq" = (
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"cs" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/wasteplanet/tradepost)
+"cC" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"cD" = (
+/obj/item/cigbutt{
+ pixel_y = 6
+ },
+/obj/item/cigbutt{
+ pixel_y = 4;
+ pixel_x = -11
+ },
+/obj/item/cigbutt{
+ pixel_y = -7;
+ pixel_x = -7
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cL" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cW" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"cZ" = (
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"dd" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"do" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"dr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"ds" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"dw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"dB" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"dD" = (
+/obj/structure/flippedtable,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"dE" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost)
+"dF" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"dN" = (
+/obj/structure/door_assembly/door_assembly_sec,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"dS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ed" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ef" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ei" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"em" = (
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"en" = (
+/turf/closed/wall/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"ep" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"eq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"et" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/item/trash/plate,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"ew" = (
+/mob/living/simple_animal/hostile/hivebot/strong,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ez" = (
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost/center)
+"eF" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"eH" = (
+/obj/structure/bed/pod,
+/obj/machinery/light/small/broken/directional/north,
+/obj/structure/curtain/cloth/grey,
+/obj/item/bedsheet/brown,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"eS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"fd" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/item/ammo_casing/spent,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"fe" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"fr" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"fs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ft" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"fU" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/wasteplanet/tradepost/center)
+"fY" = (
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"gf" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"gh" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"gj" = (
+/obj/machinery/door/airlock/mining{
+ name = "Warehouse"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"gl" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"gw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"gy" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet/rust/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"gA" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"gC" = (
+/obj/structure/bookcase/random,
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"gI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/spawner/hivebot,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"gP" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/obj/item/kirbyplants/random,
+/obj/item/paper/crumpled,
+/obj/item/trash/plate,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"gZ" = (
+/turf/closed/wall/yesdiag,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"hg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/ore/salvage/scrapgold,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"hn" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"ho" = (
+/obj/machinery/atmospherics/components/unary/passive_vent,
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"ht" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"hD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"hE" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/mob/living/simple_animal/hostile/hivebot/strong,
+/obj/item/trash/plate,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"hH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = -10;
+ pixel_y = -7
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 5;
+ pixel_y = -1
+ },
+/obj/item/tape/random/preset/tradepost/one{
+ pixel_y = 7;
+ pixel_x = -6
+ },
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"hJ" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"hN" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/pen/fountain,
+/obj/machinery/newscaster/directional/west,
+/obj/item/paper/crumpled{
+ pixel_x = -5;
+ pixel_y = -9
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 7;
+ pixel_y = -16
+ },
+/obj/item/spacecash/bundle/mediumrand{
+ pixel_y = 8;
+ pixel_x = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"hO" = (
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/barracks)
+"hU" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"hV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"hW" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/glass,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"hX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"ib" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"ig" = (
+/obj/structure/table,
+/obj/machinery/airalarm/directional/south,
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 6;
+ pixel_x = 2
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"ip" = (
+/obj/item/bedsheet/hos{
+ name = "vanguard's bedsheet"
+ },
+/obj/structure/bed/pod,
+/obj/structure/curtain/cloth/grey,
+/obj/machinery/light/small/broken/directional/north,
+/turf/open/floor/carpet/orange,
+/area/ruin/wasteplanet/tradepost/barracks)
+"iq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"ir" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"it" = (
+/obj/item/cigbutt{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/item/cigbutt{
+ pixel_y = 6;
+ pixel_x = -8
+ },
+/obj/item/cigbutt,
+/obj/structure/sign/warning/nosmoking/burnt{
+ pixel_y = 28
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"iy" = (
+/obj/machinery/computer/mech_bay_power_console/retro{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"iI" = (
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 1;
+ pixel_y = -12
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip1"
+ },
+/obj/effect/mob_spawn/human/corpse/inteq/enforcer{
+ head = null;
+ husk = 1
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"iX" = (
+/obj/item/radio/intercom/directional/north,
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/item/circuitboard/machine/space_heater,
+/obj/item/circuitboard/machine/space_heater,
+/obj/item/circuitboard/machine/space_heater,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"jb" = (
+/obj/structure/sign/poster/contraband/c20r{
+ pixel_y = 28
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"je" = (
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"jk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"jn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"jy" = (
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"jD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/mob/living/simple_animal/hostile/hivebot/strong,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"jT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"kd" = (
+/turf/closed/wall,
+/area/overmap_encounter/planetoid/cave/explored)
+"kf" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"km" = (
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"kr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ks" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"kt" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"kx" = (
+/obj/structure/table_frame,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"kM" = (
+/obj/structure/floodlight_frame,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"kP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"kU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"la" = (
+/obj/structure/filingcabinet/double,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"lf" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent{
+ pixel_y = -11;
+ pixel_x = -3
+ },
+/obj/item/ammo_casing/spent{
+ pixel_y = -4
+ },
+/obj/item/paper/crumpled,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"lj" = (
+/obj/item/radio/intercom/wideband/directional/north,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"lp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/machinery/light/small/broken/directional/south,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"lq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"lw" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lx" = (
+/obj/machinery/stasis{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ly" = (
+/obj/structure/table,
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_x = 3;
+ pixel_y = -4
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker{
+ pixel_y = 8;
+ pixel_x = 9
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_cannabis{
+ pixel_x = -8;
+ pixel_y = -4
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"lB" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"lE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/warning{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"lF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"lI" = (
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lM" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 5
+ },
+/obj/machinery/light/small/broken/directional/east,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"lQ" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"lX" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/spawner/hivebot,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"lY" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor3-old"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"mo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"mr" = (
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"mt" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"mA" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"mC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"mI" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/sign/poster/rilena/tali{
+ pixel_x = 29
+ },
+/obj/item/reagent_containers/food/drinks/rilenacup{
+ pixel_x = 7;
+ pixel_y = -2
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"mK" = (
+/obj/effect/mob_spawn/human/corpse/inteq/medic/tradepost,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+"mN" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"nb" = (
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost)
+"nn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clipboard,
+/obj/item/paper/crumpled,
+/obj/item/paper/crumpled,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/table_frame,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"nr" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"nt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"nv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"nJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 8
+ },
+/obj/structure/table_frame,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"nL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"nN" = (
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"nO" = (
+/obj/machinery/light/small/directional/north,
+/obj/machinery/computer/operating,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+"nU" = (
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/clothing/head/beret/sec/hos/inteq,
+/obj/machinery/light/small/broken/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4,
+/obj/item/clipboard,
+/obj/machinery/button/door{
+ pixel_y = -9;
+ pixel_x = -22;
+ dir = 4;
+ name = "privacy lock"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ox" = (
+/obj/machinery/light/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"oz" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"oC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/sheet/mineral/sandbags,
+/turf/open/floor/concrete/pavement/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"oQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"pb" = (
+/obj/structure/chair/plastic{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pc" = (
+/obj/item/stack/sheet/mineral/sandbags{
+ amount = 2
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pe" = (
+/obj/structure/flippedtable,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"pj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pl" = (
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"pm" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "wtpw2"
+ },
+/obj/machinery/power/shieldwallgen/atmos{
+ id = "tradehouse2";
+ anchored = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"pD" = (
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"pL" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "tradepost_vanguard"
+ },
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost/barracks)
+"pQ" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"pT" = (
+/obj/machinery/airalarm/directional/east,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"qb" = (
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost)
+"qg" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"qi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"qk" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Holopad Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"qp" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"qr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"qw" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/decal/cleanable/glass,
+/obj/machinery/door/airlock/command/glass{
+ name = "Central Dome"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"qy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"qJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/brown,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"qM" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"qR" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"qV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/closet/secure_closet/engineering_welding{
+ populate = 0
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/weldingtool/largetank,
+/obj/item/weldingtool/largetank,
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"ra" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rb" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/bed/dogbed{
+ name = "cat bed";
+ desc = "A comfy-looking cat bed. You can even strap your pet in, in case the gravity turns off."
+ },
+/mob/living/simple_animal/pet/cat/kitten{
+ name = "Biggles";
+ desc = "That's Mr. Biggles to you."
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"rl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ro" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"ru" = (
+/obj/structure/flippedtable,
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 1;
+ pixel_y = -5
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"rB" = (
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Showers"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"rN" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/holopad/secure,
+/mob/living/simple_animal/hostile/hivebot/strong,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/corner/opaque/yellow/full,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"rQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"rY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"sb" = (
+/obj/structure/table,
+/obj/machinery/fax/ruin{
+ pixel_y = 7
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"sf" = (
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = -10;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 9;
+ pixel_y = -4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"su" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"sv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"sx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost)
+"sy" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip1"
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"sA" = (
+/obj/machinery/firealarm/directional/south,
+/obj/structure/bookcase/random,
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"sH" = (
+/obj/effect/gibspawner/robot,
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"sL" = (
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"sN" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor3-old"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4{
+ dir = 1
+ },
+/obj/machinery/light/small/broken/directional/west,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"sS" = (
+/obj/structure/filingcabinet/double,
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"sT" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/ore_box,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"sZ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ta" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"te" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"tf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"tn" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"tp" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"ts" = (
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/box,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"ty" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"tz" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost/center)
+"tL" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/decal/cleanable/robot_debris,
+/obj/effect/gibspawner/robot,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/table_frame,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"tU" = (
+/obj/mecha/working/ripley/cargo{
+ name = "\improper APLU \"Forklift Certified\""
+ },
+/obj/effect/turf_decal/rechargefloor,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 28
+ },
+/obj/machinery/light/small/broken/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"tV" = (
+/obj/item/stack/ore/salvage/scrapgold,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"ua" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ub" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"uf" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/closet/crate,
+/obj/machinery/light/small/broken/directional/south,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"ug" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 4
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"um" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/obj/item/radio/intercom/table{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"uo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"uw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"uy" = (
+/obj/machinery/atmospherics/components/unary/passive_vent{
+ dir = 8
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"uA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flora/ash/glowshroom,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uC" = (
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"uS" = (
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"uU" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"uW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"vi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"vr" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"vu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"vy" = (
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"vz" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"vG" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"vK" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/radio/intercom/table,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"vL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"vQ" = (
+/obj/effect/decal/cleanable/molten_object/large,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"vR" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/barracks)
+"vS" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
+ dir = 4
+ },
+/obj/machinery/door/window/brigdoor/eastright{
+ req_access_txt = "3"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"wi" = (
+/obj/item/storage/box/flares{
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"wl" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor,
+/obj/structure/closet/wall{
+ dir = 8;
+ pixel_x = 29
+ },
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"wm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/light/small/broken/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = -26;
+ pixel_y = 0
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"wA" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak5"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"wB" = (
+/obj/machinery/modular_computer/console/preset/civilian{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"wG" = (
+/obj/machinery/door/airlock/medical{
+ name = "Medbay";
+ welded = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"wL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/barracks)
+"wM" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"wW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"xm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/item/radio/intercom/directional/south,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"xu" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/flora/ash/glowshroom,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"xv" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak5"
+ },
+/obj/item/paper/crumpled,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"xw" = (
+/obj/item/paper/crumpled,
+/obj/structure/filingcabinet/double,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"xx" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"xA" = (
+/obj/item/stack/ore/salvage/scraptitanium/five,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"xF" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/barracks)
+"xM" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flippedtable,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake{
+ start_empty = 1;
+ pixel_x = -9;
+ pixel_y = -3;
+ icon_state = "rattlesnake_mag_0"
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"xP" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"xQ" = (
+/obj/item/stack/sheet/mineral/sandbags{
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"xV" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"xX" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"ya" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/item/bot_assembly/medbot,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+"yb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yd" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/obj/machinery/meter,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"yf" = (
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yt" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yF" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"yI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"yJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"yZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ze" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"zn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable,
+/obj/structure/floodlight_frame,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"zo" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"zq" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/closet/crate,
+/obj/structure/sign/warning/gasmask{
+ pixel_y = 30
+ },
+/obj/machinery/light/small/directional/west,
+/obj/item/circuitboard/machine/tesla_ground,
+/obj/item/circuitboard/machine/tesla_ground,
+/obj/item/circuitboard/machine/tesla_ground,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"zA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost)
+"zD" = (
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"zM" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"zO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"zS" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"zT" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/item/clothing/head/soft/inteq/corpsman,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+"zY" = (
+/obj/item/stack/sheet/mineral/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Aa" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ac" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/closed/wall/yesdiag,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Ae" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ah" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ak" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"AH" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"AI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/obj/item/radio/intercom/directional/south,
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"AP" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip5"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"AQ" = (
+/obj/machinery/light/small/broken/directional/south,
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet/orange,
+/area/ruin/wasteplanet/tradepost/barracks)
+"AT" = (
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"AV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ba" = (
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Bk" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Bu" = (
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"BK" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"BN" = (
+/mob/living/simple_animal/hostile/hivebot/strong,
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Cb" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cc" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"Cf" = (
+/obj/structure/bed,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/bedsheet/red,
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Cg" = (
+/obj/effect/turf_decal/techfloor/corner,
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Cj" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/gun/ballistic/automatic/pistol/rattlesnake/inteq{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/effect/mob_spawn/human/corpse/inteq/vanguard/tradepost,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Cq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Cx" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"CA" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"CB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 1
+ },
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"CC" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "wtpw1"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"CD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"CE" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10;
+ layer = 2.030
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 10
+ },
+/obj/item/storage/box/flares{
+ pixel_y = 3;
+ pixel_x = -3
+ },
+/obj/item/storage/box/flares{
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/obj/item/storage/box/flares{
+ pixel_x = 12;
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"CG" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 3
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"CI" = (
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"CK" = (
+/obj/structure/spawner/hivebot,
+/obj/structure/cable,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"CV" = (
+/obj/structure/cable{
+ icon_state = "0-9"
+ },
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/machinery/power/rtg/geothermal,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak5"
+ },
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak4"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dl" = (
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Trader's Quarters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"Du" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Dw" = (
+/obj/machinery/light/small/broken/directional/east,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"DB" = (
+/obj/machinery/door/airlock/security{
+ name = "Armory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"DE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/item/stack/ore/salvage/scrapmetal,
+/obj/item/stack/ore/salvage/scrapgold,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"DG" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "wtpw1"
+ },
+/obj/machinery/power/shieldwallgen/atmos{
+ id = "tradehouse";
+ anchored = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"DI" = (
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"DL" = (
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/barracks)
+"DQ" = (
+/obj/structure/girder/displaced,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"DR" = (
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"DS" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/paper/crumpled,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Ea" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ei" = (
+/obj/structure/cable{
+ icon_state = "0-5"
+ },
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/frame/machine,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"El" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Eu" = (
+/obj/machinery/light/small/directional/north,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"Ex" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ED" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"EF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/trimline/opaque/yellow/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"EJ" = (
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"EM" = (
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"EW" = (
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/obj/machinery/light/small/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/chair,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Fb" = (
+/obj/machinery/door/airlock/command/glass{
+ dir = 4;
+ name = "Holopad Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Fc" = (
+/turf/open/floor/plating/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Fd" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"Fe" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fn" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning/cee,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ft" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip5"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Fx" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -28
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip1"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/item/paper/crumpled,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Fy" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"FG" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"FI" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Vanguard's Quarters"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "tradepost_vanguard";
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"FK" = (
+/mob/living/simple_animal/hostile/hivebot/strong,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"FP" = (
+/obj/structure/flora/ash/glowshroom,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"FV" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/stack/sheet/cardboard,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"FZ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ga" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Gc" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_x = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Gf" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"Gl" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Gp" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Gt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flippedtable,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"GB" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip5"
+ },
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"GF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"GQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"GS" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Hb" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Hc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Hn" = (
+/obj/machinery/light/directional/south,
+/obj/structure/bookcase/random,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Ho" = (
+/obj/structure/table,
+/obj/machinery/light/small/broken/directional/east,
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/obj/item/paper_bin{
+ pixel_y = 3;
+ pixel_x = 2
+ },
+/obj/item/pen{
+ pixel_y = 2;
+ pixel_x = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Hv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/yesdiag,
+/area/ruin/wasteplanet/tradepost/center)
+"Hy" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"HE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"HH" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"HK" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"HO" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"HV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Ie" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"If" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ig" = (
+/obj/structure/rack,
+/obj/machinery/door/window/southright,
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/item/towel,
+/obj/item/towel{
+ pixel_x = -1;
+ pixel_y = 10
+ },
+/obj/item/towel{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"Ij" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/pet_carrier,
+/obj/item/clothing/suit/toggle/lawyer/navy,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
+/obj/item/clothing/mask/gas/atmos,
+/obj/item/clothing/under/shorts/blue{
+ name = "jorts";
+ desc = "potentially the most horrific thing you've ever seen."
+ },
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"Il" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"In" = (
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Iq" = (
+/obj/structure/sign/poster/contraband/inteq{
+ pixel_y = 28
+ },
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"IA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"IF" = (
+/obj/structure/door_assembly/door_assembly_com,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"IH" = (
+/obj/structure/table,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"IM" = (
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"IN" = (
+/obj/item/chair{
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag{
+ pixel_y = 8;
+ pixel_x = 10
+ },
+/obj/effect/mob_spawn/human/corpse/indie/manager,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"IY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jb" = (
+/obj/machinery/door/airlock/mining{
+ name = "Warehouse"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Jf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/head/cone,
+/obj/item/light/tube/broken,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jh" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ji" = (
+/obj/machinery/light/small/broken/directional/south,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -6
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 11;
+ pixel_x = -22;
+ normaldoorcontrol = 1;
+ specialfunctions = 3;
+ id = "but"
+ },
+/obj/structure/sink{
+ pixel_y = -2;
+ pixel_x = 14;
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Jk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jm" = (
+/obj/machinery/light/small/broken/directional/west,
+/obj/machinery/portable_atmospherics/scrubber/huge/movable,
+/obj/effect/turf_decal/industrial/warning/full,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Jn" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Jt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/pen/fourcolor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Ju" = (
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/wasteplanet/rust/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Jv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"JB" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/machinery/firealarm/directional/north,
+/obj/item/chair,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"JG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"JL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"JR" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kf" = (
+/turf/template_noop,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ki" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor7-old"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kk" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/office/purple{
+ dir = 1
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Kl" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ko" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kp" = (
+/obj/structure/girder/displaced,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/kirbyplants/random,
+/obj/item/paper/crumpled,
+/obj/effect/mob_spawn/human/corpse/inteq/enforcer{
+ head = null;
+ husk = 1
+ },
+/obj/machinery/light/directional/south,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Kt" = (
+/obj/item/stack/ore/salvage/scraptitanium/five,
+/obj/item/clothing/head/cone,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Kw" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"Kx" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"KA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"KF" = (
+/obj/machinery/atmospherics/pipe/manifold4w/green/visible,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"KG" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "wtpw2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/power/shieldwallgen/atmos{
+ id = "tradehouse2";
+ dir = 1;
+ anchored = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"KZ" = (
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_y = 8;
+ pixel_x = 24;
+ id = "wtpw2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "tradehouse2";
+ dir = 8;
+ pixel_y = -2;
+ pixel_x = 22
+ },
+/obj/item/circuitboard/machine/rad_collector,
+/obj/item/circuitboard/machine/rad_collector,
+/obj/structure/closet/crate,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Le" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Lm" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/structure/sign/poster/clip/lunatown{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"LD" = (
+/obj/item/decal_painter{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"LK" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"LM" = (
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"LO" = (
+/obj/effect/decal/cleanable/oil,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"LR" = (
+/obj/item/clothing/head/cone,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"LV" = (
+/obj/structure/grille,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"LW" = (
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"LY" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/obj/machinery/light/small/broken/directional/south,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"Ma" = (
+/turf/template_noop,
+/area/template_noop)
+"Mb" = (
+/obj/structure/table,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"Ml" = (
+/turf/open/floor/plating/wasteplanet/rust/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Mm" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"Mr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4,
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Mt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"MA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"MF" = (
+/obj/item/light/tube/broken,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ML" = (
+/obj/machinery/airalarm/directional/west,
+/obj/item/ammo_casing/spent,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "floor2"
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake{
+ start_empty = 1;
+ pixel_x = -9;
+ pixel_y = -3;
+ icon_state = "rattlesnake_mag_0"
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"MQ" = (
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/asteroid/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"MS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"MU" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost/center)
+"Nh" = (
+/obj/item/clothing/head/cone,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ni" = (
+/obj/item/ammo_casing/spent{
+ pixel_y = -4;
+ pixel_x = -2
+ },
+/obj/item/ammo_casing/spent{
+ pixel_y = -7;
+ pixel_x = -9
+ },
+/obj/item/ammo_casing/spent{
+ pixel_y = -11;
+ pixel_x = -3
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent{
+ pixel_y = -8;
+ pixel_x = -7
+ },
+/obj/item/ammo_casing/spent{
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Nl" = (
+/turf/closed/wall/rust/yesdiag,
+/area/overmap_encounter/planetoid/cave/explored)
+"No" = (
+/obj/machinery/power/floodlight{
+ anchored = 1;
+ setting = 3
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Np" = (
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -24;
+ pixel_y = 8;
+ id = "wtpw1"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 4
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "tradehouse";
+ dir = 4;
+ pixel_y = -2;
+ pixel_x = -22
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Nq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Nu" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Nw" = (
+/obj/effect/turf_decal/industrial/caution,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ny" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip3"
+ },
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"NC" = (
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 1;
+ pixel_y = -12
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"ND" = (
+/obj/item/stack/sheet/mineral/sandbags{
+ amount = 2
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/flippedtable{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"NK" = (
+/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"NR" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Of" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/plate,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Oi" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Oy" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak2"
+ },
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"OB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/door/airlock/command/glass{
+ name = "Central Dome"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/center)
+"OI" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/center)
+"OJ" = (
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/security{
+ name = "Barracks"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"OQ" = (
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/brown,
+/obj/item/radio/intercom/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"OV" = (
+/obj/item/stack/sheet/mineral/sandbags,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Pc" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Po" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ps" = (
+/turf/closed/wall/rust/yesdiag,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Pt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"PI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 8
+ },
+/obj/structure/closet/crate,
+/obj/item/circuitboard/machine/shieldwallgen/atmos/strong,
+/obj/item/circuitboard/machine/shieldwallgen/atmos/strong,
+/obj/item/circuitboard/machine/shieldwallgen/atmos/strong,
+/obj/item/circuitboard/machine/shieldwallgen/atmos/strong,
+/obj/item/circuitboard/machine/shieldwallgen/atmos/strong,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"PV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"PY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"PZ" = (
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Qb" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/closet/secure_closet/engineering_electrical{
+ populate = 0
+ },
+/obj/item/storage/toolbox/electrical,
+/obj/item/multitool,
+/obj/item/stack/tape/industrial/electrical,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"Qe" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent{
+ pixel_y = -8;
+ pixel_x = -7
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Qn" = (
+/mob/living/simple_animal/hostile/hivebot/strong,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"QB" = (
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"QK" = (
+/obj/item/clipboard,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"QL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"QR" = (
+/obj/item/clothing/head/helmet/inteq{
+ pixel_y = 4;
+ pixel_x = 3
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QT" = (
+/obj/structure/flora/ash/glowshroom,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"QZ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ra" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Re" = (
+/obj/effect/gibspawner/robot,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4{
+ dir = 1
+ },
+/obj/machinery/light/small/broken/directional/east,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Rg" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/engis_unite{
+ pixel_y = 28
+ },
+/obj/machinery/light/small/broken/directional/west,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"Ri" = (
+/obj/structure/filingcabinet/double,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Rj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Rk" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"Rr" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/item/storage/toolbox/ammo/c9mm{
+ pixel_y = 2
+ },
+/obj/item/storage/toolbox/ammo/c10mm{
+ pixel_x = 2;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Rt" = (
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Ry" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"RA" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"RB" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/grille,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"RD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"RI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/corner,
+/obj/effect/turf_decal/trimline/opaque/yellow/warning,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"RK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/pen/fourcolor,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_box/magazine/m9mm_rattlesnake{
+ start_empty = 1;
+ pixel_x = -9;
+ pixel_y = -3;
+ icon_state = "rattlesnake_mag_0"
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"RR" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_pump/layer4{
+ dir = 4
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"RV" = (
+/obj/machinery/light/small/broken/directional/north,
+/obj/item/radio/intercom/directional/west,
+/obj/structure/closet/cabinet,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/under/syndicate/inteq/skirt,
+/obj/item/clothing/under/syndicate/inteq,
+/obj/item/clothing/under/syndicate/inteq,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/shoes/combat,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Sd" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"Se" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor6-old"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor5-old"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/effect/mob_spawn/human/corpse/inteq/enforcer{
+ head = null;
+ husk = 1
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{
+ pixel_y = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Si" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/concrete/pavement/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Sw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"SE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"SF" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor4-old"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"SI" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"SP" = (
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/modular_computer/console/preset/civilian{
+ name = "high powered gaming PC";
+ desc = "Looks pretty premium. Probably made by Cybersun though."
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Tg" = (
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost)
+"Th" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/ore/salvage/scrapgold,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/security{
+ name = "Barracks"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Tk" = (
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_y = -8;
+ pixel_x = 24;
+ id = "wtpw2"
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "tradehouse2";
+ dir = 8;
+ pixel_y = 2;
+ pixel_x = 22
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Tn" = (
+/obj/structure/spawner/hivebot,
+/obj/structure/cable,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"To" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Tt" = (
+/obj/effect/decal/cleanable/molten_object/large,
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/radio/weather_monitor,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Ty" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix,
+/turf/open/floor/plating,
+/area/ruin/wasteplanet/tradepost)
+"Tz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"TB" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"TC" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"TD" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"TJ" = (
+/obj/structure/table/wood,
+/obj/machinery/fax/ruin{
+ pixel_y = 7
+ },
+/turf/open/floor/wood,
+/area/ruin/wasteplanet/tradepost/center)
+"TS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/closed/wall/rust,
+/area/ruin/wasteplanet/tradepost/barracks)
+"TT" = (
+/obj/effect/decal/cleanable/oil/streak{
+ icon_state = "streak4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/item/trash/plate,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Ud" = (
+/turf/closed/mineral/random/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Um" = (
+/obj/item/radio/intercom/directional/north{
+ freerange = 1;
+ freqlock = 1;
+ frequency = 1347;
+ name = "IRMG shortwave intercom"
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Uo" = (
+/obj/structure/girder/displaced,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Uu" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"UE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"UG" = (
+/obj/effect/turf_decal/industrial/traffic,
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"UQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"US" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Vh" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vi" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"Vl" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/rack,
+/obj/machinery/door/window/southleft,
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/item/soap,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/center)
+"Vr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/gibspawner/robot,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Vy" = (
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 10
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"VS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"VT" = (
+/obj/item/stack/ore/salvage/scraptitanium/five,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"VY" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/ore/salvage/scrapgold,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Wg" = (
+/turf/open/floor/concrete/pavement/wasteplanet/lit,
+/area/overmap_encounter/planetoid/wasteplanet/explored)
+"Wk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Wl" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Wr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Wx" = (
+/obj/machinery/meter/atmos/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"Wy" = (
+/turf/closed/wall,
+/area/ruin/wasteplanet/tradepost/center)
+"WD" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WE" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WG" = (
+/obj/effect/turf_decal/industrial/caution{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mob_spawn/human/corpse/indie/engineer,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WK" = (
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = -10;
+ pixel_y = -1
+ },
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip4"
+ },
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mob_spawn/human/corpse/indie/engineer,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WO" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip1"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = -26;
+ pixel_y = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/hivebot/ranged,
+/obj/structure/door_assembly/door_assembly_com,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"WR" = (
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"WU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xc" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/crate_shelf,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Xd" = (
+/obj/structure/catwalk,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xf" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "drip2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xg" = (
+/obj/structure/sign/warning/gasmask{
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 26
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"Xh" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xo" = (
+/obj/machinery/door/airlock{
+ name = "Bathroom";
+ id_tag = "but"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Xq" = (
+/obj/item/radio/weather_monitor,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xw" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Xz" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"XB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"XQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ruin/wasteplanet/tradepost/barracks)
+"XS" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"XY" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/center)
+"Ya" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/blue,
+/area/ruin/wasteplanet/tradepost/center)
+"Yd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/pipe_dispenser,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"Yf" = (
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Yj" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Yl" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/wasteplanet/tradepost/center)
+"Yt" = (
+/turf/open/floor/concrete/pavement/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Yw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/barracks)
+"YC" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/item/watertank/anti_rad{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/clothing/mask/gas/atmos,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost)
+"YO" = (
+/obj/structure/cable{
+ icon_state = "0-5"
+ },
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/machinery/power/rtg/geothermal,
+/turf/open/floor/plating/wasteplanet/rust,
+/area/overmap_encounter/planetoid/cave/explored)
+"YV" = (
+/obj/item/flashlight/flare/burnt,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zb" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/wasteplanet/tradepost/barracks)
+"Zc" = (
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/structure/reagent_dispensers/foamtank/antirad,
+/turf/open/floor/pod/dark,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"Zh" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/wasteplanet,
+/area/overmap_encounter/planetoid/cave/explored)
+"Zj" = (
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 1;
+ name = "Waste to Recycling"
+ },
+/obj/machinery/atmospherics/components/binary/pump/layer4{
+ dir = 1;
+ name = "Distro to Filtration"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light/small/broken/directional/west,
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost)
+"Zw" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/warehouse)
+"ZK" = (
+/obj/structure/bed/pod,
+/obj/structure/curtain/cloth/grey,
+/obj/item/radio/intercom/directional/east,
+/obj/item/bedsheet/brown,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ZN" = (
+/obj/structure/foamedmetal/iron,
+/turf/open/floor/carpet/black,
+/area/ruin/wasteplanet/tradepost/barracks)
+"ZO" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/door/window/westleft,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/pod,
+/area/ruin/wasteplanet/tradepost/center)
+"ZT" = (
+/obj/machinery/light/small/directional/north,
+/obj/structure/closet/wall/white{
+ dir = 8;
+ pixel_x = 28
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
+/obj/item/storage/case/surgery,
+/obj/item/storage/firstaid/radiation,
+/obj/item/storage/firstaid/radiation,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/turf/open/floor/pod/light,
+/area/ruin/wasteplanet/tradepost/barracks)
+
+(1,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Wg
+Wg
+Wg
+em
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(2,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+em
+Wg
+Ju
+Wg
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(3,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ml
+Wg
+Wg
+em
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(4,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+em
+Wg
+Ml
+Wg
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(5,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+Ud
+Ma
+Ma
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+em
+HV
+HV
+iq
+Ml
+em
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(6,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+en
+Ud
+Ud
+Ma
+Ud
+Ud
+Ud
+en
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+HV
+JG
+Fc
+iq
+HV
+em
+em
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(7,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ma
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+sH
+em
+em
+Qn
+Wg
+kU
+em
+kU
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(8,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+HV
+To
+em
+Ba
+Wg
+Ml
+HV
+HV
+HV
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(9,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+Ud
+Ud
+en
+en
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ma
+Ma
+em
+em
+gy
+HV
+em
+Wg
+Ml
+iq
+MQ
+sH
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(10,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+en
+kd
+kd
+Nl
+QB
+Nl
+en
+en
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+QB
+QB
+Ml
+BN
+sH
+HV
+iq
+Wg
+AT
+HV
+Fc
+em
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(11,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+en
+Ud
+Ud
+kd
+QB
+QB
+sL
+QB
+QB
+QB
+en
+en
+en
+en
+en
+en
+en
+en
+TB
+TB
+Xw
+QB
+Ml
+em
+iq
+Si
+Wg
+zY
+em
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(12,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+en
+Ud
+Ud
+Ud
+Ud
+kd
+sL
+QB
+QB
+QB
+QB
+FP
+QB
+QB
+NC
+QB
+jy
+jy
+jy
+Xq
+WR
+Se
+cW
+QB
+QB
+IM
+OV
+AV
+oC
+HV
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(13,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Rt
+Rt
+Rt
+Rt
+Ps
+QB
+sL
+QB
+QB
+QB
+jy
+jy
+jy
+wi
+sf
+FV
+ug
+QB
+Yt
+AV
+AV
+cJ
+cL
+Fn
+kd
+kd
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+"}
+(14,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+en
+Ud
+Ud
+en
+Ud
+hO
+hO
+hO
+Rt
+nO
+mK
+Rt
+Rt
+hO
+Rt
+hO
+hO
+bm
+jy
+jy
+QR
+QB
+Ry
+QZ
+GF
+AV
+Il
+pc
+tn
+sy
+GS
+jy
+jy
+Nl
+en
+en
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+"}
+(15,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Rt
+hO
+sb
+wB
+Rt
+lx
+ya
+Rt
+RR
+Vy
+hO
+Rr
+CE
+hO
+QB
+QB
+QB
+FP
+HH
+AV
+AV
+Wr
+QZ
+QB
+ug
+Tt
+iI
+QT
+jy
+jy
+jy
+kd
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+"}
+(16,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+Ud
+Ud
+Rt
+RV
+Yf
+hJ
+Rt
+ZT
+zT
+wG
+Ga
+zS
+hO
+Yj
+Gc
+hO
+QB
+br
+FZ
+QB
+qg
+Po
+ep
+nv
+ei
+QB
+QB
+WD
+WK
+lI
+QB
+sL
+QB
+kd
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ma
+Ma
+"}
+(17,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Rt
+bZ
+nt
+xm
+hO
+hO
+hO
+Rt
+su
+XQ
+hO
+vS
+nr
+hO
+QB
+QB
+Le
+Ko
+Nu
+QZ
+uC
+IY
+uA
+ei
+Yt
+uC
+FK
+DI
+sL
+QB
+QB
+Nl
+en
+en
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+"}
+(18,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+en
+en
+en
+hO
+eH
+ZN
+wW
+Xo
+Ji
+hO
+JB
+EF
+RI
+DB
+Yw
+DL
+hO
+QB
+QB
+Le
+Xf
+vQ
+uC
+Yt
+QZ
+QZ
+Jk
+Yt
+te
+Yt
+QB
+QB
+QB
+QB
+QB
+QB
+QB
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+"}
+(19,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+en
+Ud
+Ud
+Ud
+en
+QB
+hO
+Iq
+ZN
+wW
+Rt
+Rt
+hO
+lB
+xx
+AI
+Ex
+vR
+Rt
+Rt
+Yt
+XS
+vL
+Jn
+LW
+Il
+Il
+GQ
+Wr
+Aa
+sZ
+Jk
+Yt
+QB
+FP
+PZ
+QB
+QB
+sL
+QB
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+Ma
+"}
+(20,1,1) = {"
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+en
+en
+Nl
+QB
+hO
+eH
+ZN
+dN
+RD
+mr
+PV
+DE
+rN
+EW
+wL
+jT
+Cg
+OJ
+Nw
+ua
+fd
+Ea
+Vh
+Il
+MS
+MS
+MS
+QB
+QB
+QB
+jy
+QB
+QB
+QB
+PZ
+QB
+sL
+QB
+QB
+Nl
+en
+Ud
+Ud
+en
+Ud
+"}
+(21,1,1) = {"
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+en
+it
+FP
+Rt
+jb
+zO
+tf
+lF
+Zb
+Rt
+lM
+Mt
+lE
+Th
+CB
+wl
+Rt
+Um
+Il
+pk
+Cx
+Il
+MS
+UQ
+Kp
+El
+vy
+DR
+Uo
+jy
+sL
+QB
+QB
+FP
+QB
+QB
+QB
+QB
+QB
+Nl
+en
+Ud
+Ud
+Ud
+"}
+(22,1,1) = {"
+Ma
+Ma
+Ma
+en
+Ud
+Ud
+en
+Nl
+cD
+pb
+Rt
+ZK
+NR
+aI
+Ho
+um
+Rt
+hO
+FI
+hO
+TS
+xF
+hO
+Ps
+QB
+uC
+pk
+GQ
+hg
+xA
+Jf
+UQ
+QB
+QB
+vy
+jy
+jy
+QB
+QB
+QB
+QB
+QB
+QB
+QB
+sL
+QB
+FP
+Nl
+en
+Ud
+Ud
+"}
+(23,1,1) = {"
+Ma
+Ma
+Ud
+en
+Ud
+Ud
+en
+QB
+QB
+ly
+Ps
+Rt
+hO
+hO
+hO
+Rt
+Rt
+nU
+Nq
+pL
+Ny
+Gl
+Pc
+QB
+Yt
+Yt
+uV
+Ra
+xu
+zn
+VY
+vG
+Tn
+QB
+sL
+jy
+QB
+uW
+PZ
+Zh
+Hc
+UQ
+Zh
+sL
+uW
+QB
+QB
+QB
+en
+Ud
+Ud
+"}
+(24,1,1) = {"
+Ma
+Ma
+Ud
+Ud
+en
+en
+Nl
+QB
+sL
+QB
+QB
+QB
+QB
+QB
+QB
+QB
+hO
+qJ
+OQ
+Wk
+yb
+QB
+Pc
+Yt
+Yt
+uG
+xP
+Il
+MF
+tV
+Kt
+ei
+ei
+QB
+LR
+jy
+FP
+sv
+yF
+PZ
+PZ
+PZ
+PZ
+PZ
+sL
+QB
+QB
+Nl
+en
+Ud
+Ud
+"}
+(25,1,1) = {"
+Ma
+Ma
+Ud
+Ud
+Ud
+kd
+QB
+QB
+FP
+QB
+QB
+QB
+ba
+UQ
+MS
+MS
+Wk
+ip
+AQ
+Wk
+yb
+Jh
+QB
+IM
+uG
+xP
+Yt
+VT
+QB
+LD
+bY
+WL
+yF
+PZ
+DQ
+jy
+QB
+yJ
+sL
+PZ
+sL
+PZ
+PZ
+sL
+EJ
+QB
+QB
+en
+Ud
+Ud
+en
+"}
+(26,1,1) = {"
+Ma
+Ud
+Ud
+Ud
+Ud
+kd
+QB
+QB
+PZ
+QB
+sL
+QB
+QB
+QB
+QB
+QB
+Ac
+Wk
+Wk
+Ac
+dS
+gA
+Yt
+Yt
+pk
+Xd
+pD
+QB
+QB
+QB
+QB
+QB
+QB
+jy
+jy
+jy
+jy
+yF
+PZ
+PZ
+sL
+PZ
+sL
+PZ
+PZ
+PZ
+sL
+kd
+en
+Ud
+Ud
+"}
+(27,1,1) = {"
+Ma
+Ud
+en
+Ud
+ez
+ez
+ez
+Wy
+Wy
+Wy
+Wy
+Wy
+ez
+fU
+QB
+sL
+QB
+MS
+MS
+MS
+Ie
+km
+Yt
+GQ
+do
+Xd
+Yt
+Yt
+Yt
+zo
+Il
+Yt
+Hb
+vy
+Bu
+Yt
+QZ
+QZ
+PZ
+PZ
+sL
+sL
+sL
+PZ
+LM
+sL
+QB
+kd
+Ud
+Ud
+Ud
+"}
+(28,1,1) = {"
+Ma
+Ud
+Ud
+ez
+fU
+Ij
+hN
+hH
+TJ
+ez
+lj
+Vi
+nN
+ez
+fU
+QB
+QB
+QB
+QB
+Yt
+gf
+Dk
+dF
+ua
+xP
+Yt
+Yt
+QZ
+QZ
+dB
+lq
+AV
+AV
+wA
+eF
+LO
+sv
+Yt
+PZ
+sL
+sL
+PZ
+sL
+sL
+PZ
+QB
+QB
+kd
+Ud
+Ud
+Ud
+"}
+(29,1,1) = {"
+Ma
+Ud
+Ud
+Wy
+rY
+Yl
+VS
+rb
+gC
+ez
+Gf
+ts
+Ya
+ig
+Wy
+QB
+CG
+PZ
+Yt
+mN
+KA
+ua
+jk
+Yt
+uC
+Yt
+Yt
+kr
+Yt
+UG
+QZ
+QZ
+AV
+Il
+Il
+sL
+sv
+Yt
+PZ
+sL
+sL
+PZ
+PZ
+sL
+PZ
+FP
+QB
+en
+Ud
+Ud
+Ud
+"}
+(30,1,1) = {"
+Ud
+en
+Ud
+Wy
+SP
+Kk
+Mr
+Fy
+Hn
+Wy
+NK
+wM
+aS
+Mb
+Wy
+QB
+QB
+QB
+Yt
+GB
+gw
+Il
+Yt
+QB
+QB
+Yt
+QB
+Hc
+QB
+QB
+CA
+CA
+CA
+MS
+ba
+QB
+QB
+LM
+PZ
+PZ
+sL
+PZ
+sL
+PZ
+EJ
+sL
+QB
+en
+Ud
+en
+Ud
+"}
+(31,1,1) = {"
+Ud
+Ud
+Ud
+Wy
+vr
+vi
+vi
+QL
+sA
+Wy
+Wy
+Wy
+Fb
+tz
+Wy
+as
+PZ
+QB
+km
+AP
+ra
+Il
+QB
+QB
+FP
+QB
+QB
+gh
+zD
+pl
+DG
+CC
+aj
+zD
+zD
+gh
+QB
+sL
+sL
+sL
+PZ
+sL
+sL
+PZ
+sL
+QB
+QB
+en
+Ud
+Ud
+Ud
+"}
+(32,1,1) = {"
+Ud
+Ud
+Ud
+ez
+Cf
+mI
+aQ
+qy
+fU
+ez
+Kx
+Wy
+Eu
+oQ
+Lm
+Wy
+QB
+FP
+Yt
+Ft
+Ae
+Yt
+Yt
+Yt
+gh
+zD
+zD
+zD
+zq
+ch
+pQ
+fe
+Gp
+Np
+uf
+zD
+QB
+EJ
+PZ
+sL
+PZ
+sL
+sL
+sL
+EJ
+QB
+QB
+en
+Ud
+Ud
+Ud
+"}
+(33,1,1) = {"
+en
+Ud
+Ud
+Wy
+Wy
+OI
+Wy
+Dl
+ez
+QK
+xv
+qk
+ro
+uo
+xX
+Wy
+QB
+QB
+Yt
+lY
+bH
+hX
+lv
+ef
+Jb
+wm
+AH
+gj
+aB
+Pt
+Hy
+Hy
+uN
+ED
+Zc
+pl
+QB
+sL
+sL
+PZ
+PZ
+sL
+sL
+PZ
+sL
+sL
+sL
+kd
+Ud
+Ud
+Ud
+"}
+(34,1,1) = {"
+Ud
+Ud
+Ud
+Wy
+Cj
+ML
+lf
+Qe
+hE
+Oy
+Rk
+fU
+ez
+ez
+Wy
+Wy
+Wy
+Hv
+Ki
+QZ
+hV
+Yt
+Yt
+Yt
+gZ
+zD
+pl
+zD
+hn
+uw
+lQ
+dd
+Uu
+bW
+tp
+zD
+QB
+uW
+sL
+uW
+SE
+Hc
+uW
+sL
+EJ
+QB
+QB
+kd
+Ud
+Ud
+Ud
+"}
+(35,1,1) = {"
+Ud
+Ud
+Ud
+ez
+la
+ta
+pe
+RK
+kx
+SF
+fr
+bM
+tL
+Fx
+qw
+sN
+WO
+hW
+Ak
+PY
+jn
+QB
+QB
+QB
+QB
+zD
+Jm
+bz
+In
+In
+Xc
+Xc
+Xc
+kf
+iy
+zD
+QB
+QB
+QB
+QB
+QB
+FP
+QB
+QB
+QB
+sL
+QB
+kd
+Ud
+en
+Ud
+"}
+(36,1,1) = {"
+Ud
+Ud
+Ud
+ez
+sS
+IN
+dD
+gI
+Gt
+ds
+DS
+zM
+xQ
+bj
+IF
+Re
+dr
+OB
+kP
+nL
+XB
+QB
+QB
+FP
+QB
+zD
+iX
+In
+MA
+Jv
+IA
+qr
+CD
+TD
+ze
+pl
+FP
+QB
+jy
+DR
+jy
+jy
+jy
+QB
+QB
+QB
+Nl
+en
+Ud
+Ud
+Ud
+"}
+(37,1,1) = {"
+Ud
+Ud
+Ud
+ez
+ez
+IH
+ru
+Of
+xM
+Jt
+Xz
+ND
+ag
+ht
+Wy
+Wy
+Wy
+as
+kP
+AV
+Vw
+CI
+QB
+QB
+QB
+zD
+cC
+sT
+Tk
+Zw
+hU
+KZ
+PI
+kt
+tU
+pl
+QB
+jy
+bY
+QB
+QB
+QB
+sL
+bY
+QB
+QB
+en
+Ud
+Ud
+Ud
+Ud
+"}
+(38,1,1) = {"
+Ma
+Ud
+Ud
+Ud
+ez
+ox
+QE
+et
+nn
+jD
+TT
+XY
+hD
+oz
+MU
+If
+If
+If
+eq
+AV
+yt
+Yt
+QB
+QB
+EM
+gZ
+zD
+zD
+pl
+pm
+KG
+zD
+zD
+pl
+zD
+gh
+QB
+DR
+sL
+Ei
+QB
+YO
+QB
+jy
+QB
+Nl
+en
+Ud
+Ud
+Ud
+Ma
+"}
+(39,1,1) = {"
+Ma
+Ud
+Ud
+Ud
+Wy
+Ri
+xw
+gP
+mC
+ir
+pT
+nJ
+Ni
+Kr
+Wy
+QB
+sL
+FP
+aM
+cH
+gl
+yZ
+IM
+CI
+Xd
+Xd
+CI
+CI
+Yt
+SI
+WE
+Ah
+Vr
+yI
+yI
+Tz
+ft
+Tz
+qM
+Tz
+TC
+sL
+QB
+jy
+QB
+kd
+Ud
+Ud
+Ud
+Ud
+Ma
+"}
+(40,1,1) = {"
+Ma
+Ud
+Ud
+Ud
+Wy
+ez
+Wy
+Wy
+rB
+Wy
+Wy
+Wy
+ZO
+Wy
+as
+QB
+QB
+Nh
+QB
+Bk
+Yt
+vz
+ua
+ua
+ua
+Rj
+ua
+rl
+Jp
+Cq
+WF
+pj
+CI
+Xd
+CI
+QB
+PZ
+QB
+QB
+CV
+sL
+QB
+QB
+Nl
+kd
+en
+Ud
+en
+Ud
+Ud
+Ma
+"}
+(41,1,1) = {"
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+ez
+Vl
+JL
+HK
+BK
+Wy
+ez
+as
+RB
+xV
+Oi
+xV
+ed
+UE
+QB
+Yt
+sL
+UQ
+Il
+mo
+Yt
+Yt
+rQ
+Cb
+Yt
+pj
+CI
+CI
+CI
+QB
+sL
+QB
+sL
+sL
+QB
+FP
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+"}
+(42,1,1) = {"
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+ez
+Ig
+aF
+fY
+US
+ez
+QB
+jy
+QB
+ib
+Yd
+QB
+Kl
+No
+LR
+sL
+QB
+QB
+ew
+WG
+Yt
+Yt
+qi
+Yt
+QB
+Le
+bJ
+PZ
+PZ
+Uo
+QB
+bY
+QB
+QB
+jy
+jy
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+"}
+(43,1,1) = {"
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+fU
+ez
+je
+uS
+Wl
+ez
+QB
+vy
+sL
+dw
+jy
+jy
+Kl
+sL
+PZ
+sL
+PZ
+cs
+qb
+zA
+nb
+ew
+yb
+QB
+QB
+fs
+sL
+PZ
+QB
+sL
+sL
+QB
+QB
+jy
+jy
+Nl
+en
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+"}
+(44,1,1) = {"
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+ez
+ez
+ez
+ez
+fU
+QB
+PZ
+UQ
+DR
+Uo
+jy
+Kl
+vy
+DR
+sL
+QB
+Tg
+Xg
+lp
+qb
+QB
+yb
+sL
+QB
+Du
+kM
+QB
+QB
+QB
+PZ
+QB
+QB
+jy
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ma
+Ma
+"}
+(45,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Nl
+en
+QB
+QB
+QB
+YV
+DQ
+MS
+QB
+PZ
+FP
+Fe
+en
+qb
+qb
+qb
+nb
+sx
+qb
+qb
+qb
+yb
+LD
+bY
+WU
+QB
+yf
+LV
+FP
+sL
+PZ
+QB
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+"}
+(46,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+en
+Ud
+en
+Nl
+QB
+FP
+QB
+QB
+sL
+Xh
+lw
+vG
+JR
+ho
+dE
+Rg
+Mm
+Zj
+ks
+Wx
+vK
+FG
+eS
+QB
+QB
+qR
+yf
+yf
+QB
+QB
+QB
+Uo
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+"}
+(47,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+en
+QB
+QB
+YV
+sL
+FP
+lX
+PZ
+QB
+aR
+ho
+dE
+KF
+mt
+Sw
+RA
+Fd
+YC
+qb
+uy
+QB
+QB
+HE
+yf
+QB
+QB
+QB
+jy
+Nl
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+"}
+(48,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+en
+Nl
+QB
+QB
+QB
+sL
+QB
+PZ
+QB
+sL
+ho
+dE
+qp
+yd
+Kw
+HO
+ub
+Sd
+qb
+QB
+PZ
+QB
+uU
+LK
+ty
+CK
+QB
+jy
+en
+Ud
+Ud
+Ud
+Ud
+Kf
+Ud
+en
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+"}
+(49,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+kd
+kd
+QB
+QB
+Uo
+FP
+PZ
+QB
+sL
+kd
+qb
+nb
+qV
+mA
+Ty
+cq
+LY
+qb
+QB
+QB
+QB
+QB
+QB
+sL
+QB
+jy
+jy
+en
+Ud
+en
+Ud
+Ud
+Ma
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(50,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+kd
+Nl
+sL
+QB
+PZ
+Uo
+QB
+QB
+QB
+QB
+nb
+Qb
+Cc
+Dw
+cZ
+vu
+qb
+bY
+QB
+FP
+PZ
+sL
+jy
+jy
+jy
+Nl
+en
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(51,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+en
+Nl
+QB
+QB
+sL
+YV
+QB
+QB
+QB
+cs
+nb
+nb
+nb
+qb
+qb
+cs
+QB
+QB
+QB
+jy
+jy
+jy
+Nl
+en
+en
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(52,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+en
+Ud
+en
+QB
+Nl
+en
+en
+en
+en
+en
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+kd
+kd
+kd
+kd
+kd
+kd
+kd
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(53,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+en
+en
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(54,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(55,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(56,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+Ud
+en
+Ud
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
+(57,1,1) = {"
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ud
+Ud
+Ud
+Ud
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+"}
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
index b97069f886ba..49f58d1b67b5 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
@@ -93,7 +93,7 @@
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_radiation)
"gx" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_radiation)
"gM" = (
@@ -684,7 +684,7 @@
/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_radiation)
"Mh" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_radiation)
"Mq" = (
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
index 60325851692d..227e2b7d4890 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm
@@ -152,14 +152,14 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"bB" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/turf/open/floor/plating/wasteplanet/rust,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
"bD" = (
@@ -289,7 +289,7 @@
/turf/open/floor/plasteel/dark/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"cP" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong,
+/mob/living/simple_animal/hostile/hivebot/strong,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/mob_spawn/human/corpse/charredskeleton,
/obj/item/wrench/combat,
@@ -331,7 +331,7 @@
"dw" = (
/obj/effect/turf_decal/industrial/hatch/orange,
/obj/structure/closet/crate/large,
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/turf/open/floor/plasteel/dark/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
"dI" = (
@@ -939,7 +939,7 @@
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms)
"kP" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/obj/structure/railing{
dir = 4
},
@@ -1367,7 +1367,7 @@
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
"pt" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong,
+/mob/living/simple_animal/hostile/hivebot/strong,
/obj/structure/sign/warning/docking{
pixel_x = 32
},
@@ -1542,10 +1542,10 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/machinery/light/small/broken/directional/south,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"rd" = (
@@ -1606,7 +1606,7 @@
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"sf" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/wasteplanet)
"sm" = (
@@ -1965,8 +1965,8 @@
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"wc" = (
/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/light/small/directional/west,
/obj/effect/turf_decal/corner/transparent/neutral/mono,
/obj/effect/turf_decal/corner/transparent/blue/border{
@@ -2402,7 +2402,7 @@
/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
"CV" = (
@@ -2966,7 +2966,7 @@
/turf/open/floor/plasteel/dark/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"KG" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/obj/structure/catwalk/over,
/turf/open/floor/plating/wasteplanet/lit,
/area/ruin/wasteplanet)
@@ -3042,10 +3042,10 @@
icon_state = "0-2"
},
/obj/structure/closet/wall/directional/west,
-/obj/item/gun/ballistic/revolver,
/obj/item/clothing/suit/hooded/wintercoat/captain,
/obj/item/storage/firstaid/o2,
/obj/machinery/light/small/broken/directional/north,
+/obj/item/gun/ballistic/revolver/viper/indie,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"Mf" = (
@@ -3148,7 +3148,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/mob/living/simple_animal/hostile/hivebot/wasteplanet,
+/mob/living/simple_animal/hostile/hivebot,
/obj/machinery/light/directional/west,
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
@@ -3367,7 +3367,7 @@
/turf/open/floor/plasteel/dark/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay)
"QS" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/plating/wasteplanet/lit,
/area/ruin/wasteplanet)
"Ri" = (
@@ -3945,7 +3945,7 @@
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"Yp" = (
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong,
+/mob/living/simple_animal/hostile/hivebot/strong,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
@@ -4007,7 +4007,7 @@
/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen)
"YW" = (
/obj/effect/turf_decal/industrial/hatch/orange,
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid,
+/mob/living/simple_animal/hostile/hivebot/ranged,
/turf/open/floor/plating/wasteplanet/lit,
/area/ruin/wasteplanet)
"Za" = (
@@ -4045,7 +4045,7 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/light/small/broken/directional/west,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/wasteplanet,
/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship)
"Zy" = (
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
index 41bac1cf5f06..158fefb033c3 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -1144,7 +1144,7 @@
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/complex/wall)
"sa" = (
-/obj/effect/spawner/lootdrop/garden/seaweed,
+/obj/effect/spawner/random/food_or_drink/garden/seaweed,
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"so" = (
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_colony.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_colony.dmm
index 6fab2d2bf55d..b200aa57e92f 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_colony.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_colony.dmm
@@ -540,7 +540,7 @@
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Xo" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Xr" = (
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_engineer.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
index 6cbb2b065c86..5363be4db0e0 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_engineer.dmm
@@ -17,7 +17,7 @@
},
/area/ruin/unpowered)
"bp" = (
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"bv" = (
/obj/machinery/power/smes/shuttle/precharged{
@@ -41,7 +41,7 @@
/mob/living/simple_animal/crab{
name = "\improper Crab"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -158,7 +158,7 @@
/mob/living/simple_animal/hostile/abandoned_minebot{
name = "\improper Abandoned Tony"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -231,7 +231,7 @@
/area/ruin/unpowered)
"kH" = (
/obj/item/book/manual/wiki/construction,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -246,7 +246,7 @@
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
"kP" = (
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -258,7 +258,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"lk" = (
/mob/living/simple_animal/hostile/asteroid/lobstrosity/beach,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -397,7 +397,7 @@
/obj/structure/cable{
icon_state = "6-9"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -410,7 +410,7 @@
/obj/machinery/atmospherics/pipe/simple/yellow/visible{
dir = 10
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -433,13 +433,13 @@
/obj/structure/cable{
icon_state = "4-10"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"sv" = (
/obj/machinery/atmospherics/components/binary/valve,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -454,7 +454,7 @@
/area/ruin/unpowered)
"sB" = (
/obj/item/book/manual/wiki/engineering,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -475,7 +475,7 @@
/obj/structure/cable{
icon_state = "0-5"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -501,7 +501,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -511,7 +511,7 @@
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
"vO" = (
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
icon_state = "sand_dug";
light_range = 2
},
@@ -539,7 +539,7 @@
"xV" = (
/obj/effect/decal/cleanable/glass,
/obj/item/shard,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -563,7 +563,7 @@
/obj/effect/turf_decal/weather/sand{
dir = 5
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -602,7 +602,7 @@
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"Ae" = (
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -616,7 +616,7 @@
/obj/structure/cable{
icon_state = "4-9"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -624,7 +624,7 @@
/obj/structure/cable{
icon_state = "5-10"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -685,7 +685,7 @@
/obj/structure/cable{
icon_state = "1-10"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -696,7 +696,7 @@
/area/ruin/unpowered)
"DB" = (
/obj/item/stack/cable_coil/red,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -707,13 +707,13 @@
/obj/structure/cable{
icon_state = "0-9"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"DO" = (
/obj/structure/flora/tree/palm,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -767,7 +767,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Gj" = (
/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -796,7 +796,7 @@
/obj/structure/cable{
icon_state = "0-6"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -817,7 +817,7 @@
"Ir" = (
/obj/item/shovel,
/obj/item/stack/ore/glass/beach,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
icon_state = "sand_dug";
light_range = 2
},
@@ -905,7 +905,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"LI" = (
/obj/structure/flora/rock,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -920,7 +920,7 @@
/area/ruin/unpowered)
"Na" = (
/obj/item/pickaxe/improvised,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -950,7 +950,7 @@
/area/ruin/unpowered)
"Ot" = (
/obj/item/geiger_counter,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1014,7 +1014,7 @@
/obj/structure/cable{
icon_state = "6-8"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -1057,7 +1057,7 @@
/area/ruin/unpowered)
"Sl" = (
/obj/structure/radioactive/stack,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1072,7 +1072,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"SE" = (
/obj/structure/barricade/wooden,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -1101,7 +1101,7 @@
/obj/structure/cable{
icon_state = "5-8"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1122,7 +1122,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1135,7 +1135,7 @@
"TI" = (
/obj/structure/radioactive/waste,
/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1181,7 +1181,7 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"Wg" = (
/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1246,7 +1246,7 @@
/obj/structure/cable{
icon_state = "0-10"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
@@ -1277,7 +1277,7 @@
/obj/structure/cable{
icon_state = "1-10"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/overmap_encounter/planetoid/beachplanet/explored)
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm
index a9508748cf01..ac44b94100f1 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm
@@ -100,7 +100,7 @@
req_one_access_txt = "1"
},
/obj/item/storage/box/slugshot,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/spacevine,
/turf/open/floor/mineral/plastitanium,
/area/ruin/beach/oceantown/house{
@@ -2341,7 +2341,7 @@
/turf/open/floor/engine/hull/interior,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Hl" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/contraband/random{
pixel_y = -32
@@ -2779,7 +2779,7 @@
name = "Starwalker"
})
"Mk" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/pod/light,
@@ -2820,7 +2820,7 @@
pixel_x = -26
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/pod/light,
/area/ruin/beach/oceantown/house{
name = "Starwalker"
@@ -2858,7 +2858,7 @@
name = "Starwalker"
})
"MX" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/railing{
dir = 4
},
@@ -2899,7 +2899,7 @@
icon_state = "gib3-old";
pixel_x = -6
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/yellow{
+/obj/item/melee/energy/sword/saber/pirate/yellow{
pixel_x = -5;
pixel_y = 16
},
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_fishing_hut.dmm
index 59d1b19f9c7a..dc930e0749a8 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_fishing_hut.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -275,7 +275,7 @@
/turf/open/floor/plating/asteroid/sand,
/area/overmap_encounter/planetoid/cave/explored)
"mq" = (
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/structure/closet/crate/wooden,
/turf/open/floor/wood,
/area/ruin/beach)
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_float_resort.dmm
index b2c39404d641..653f927cdace 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_float_resort.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_float_resort.dmm
@@ -57,7 +57,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"ca" = (
@@ -343,7 +343,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"jQ" = (
@@ -548,7 +548,7 @@
pixel_y = 13
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"pr" = (
@@ -825,7 +825,7 @@
dir = 1
},
/obj/item/candle,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/wood{
light_range = 2
},
@@ -1396,7 +1396,7 @@
layer = 2.01
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"Kv" = (
@@ -1548,7 +1548,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"NU" = (
@@ -1560,7 +1560,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"NV" = (
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ocean_town.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ocean_town.dmm
index d1a3ff05cf04..6628683b7246 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ocean_town.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_ocean_town.dmm
@@ -113,7 +113,7 @@
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"bs" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"bu" = (
@@ -275,7 +275,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"dT" = (
@@ -412,9 +412,9 @@
/area/ruin/beach/oceantown)
"fn" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"fp" = (
@@ -618,7 +618,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"hG" = (
@@ -711,8 +711,8 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"ix" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"iz" = (
@@ -953,7 +953,7 @@
layer = 2.01
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"mc" = (
@@ -991,7 +991,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"mt" = (
@@ -1132,7 +1132,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"oF" = (
@@ -1346,7 +1346,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"rN" = (
@@ -1560,11 +1560,11 @@
/area/ruin/beach/oceantown/bar)
"un" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"ur" = (
@@ -1683,7 +1683,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"wu" = (
@@ -1699,7 +1699,7 @@
/turf/open/floor/plasteel,
/area/ruin/beach/oceantown/shop)
"ww" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating/asteroid/sand/lit,
/area/overmap_encounter/planetoid/beachplanet/explored)
"wF" = (
@@ -1917,7 +1917,7 @@
layer = 2.01
},
/turf/open/floor/carpet/orange{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"yQ" = (
@@ -2270,7 +2270,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"De" = (
@@ -2408,7 +2408,7 @@
layer = 2.01
},
/turf/open/floor/carpet/purple{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"Eu" = (
@@ -3052,7 +3052,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"KD" = (
@@ -3171,7 +3171,7 @@
layer = 2.01
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"LR" = (
@@ -3371,8 +3371,8 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"NX" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"Oe" = (
@@ -3448,7 +3448,7 @@
desc = "100% pure cotton!"
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"OR" = (
@@ -3519,7 +3519,7 @@
layer = 2.01
},
/turf/open/floor/carpet/purple{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"Pv" = (
@@ -3545,7 +3545,7 @@
/area/ruin/beach/oceantown)
"PF" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"PH" = (
@@ -3573,7 +3573,7 @@
/turf/open/water/beach,
/area/overmap_encounter/planetoid/beachplanet/explored)
"Qf" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"Qm" = (
@@ -3737,10 +3737,10 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"SS" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"SY" = (
@@ -3859,7 +3859,7 @@
layer = 2.01
},
/turf/open/floor/carpet/cyan{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/overmap_encounter/planetoid/beachplanet/explored)
"UH" = (
@@ -3949,9 +3949,9 @@
/area/ruin/beach/oceantown/shop)
"VQ" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"VS" = (
@@ -4116,11 +4116,11 @@
/area/overmap_encounter/planetoid/beachplanet/explored)
"XQ" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/turf/open/floor/plasteel/patterned/grid,
/area/ruin/beach/oceantown/shop)
"XS" = (
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_pirate_crash.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_pirate_crash.dmm
index 67ac69292603..fddfa5bdc00f 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_pirate_crash.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_pirate_crash.dmm
@@ -1111,7 +1111,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/box,
/obj/item/stack/cable_coil/red,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/beach/piratecrash/shuttle)
@@ -1350,7 +1350,7 @@
"Pf" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/sheet/mineral/gold/five,
/obj/item/stack/sheet/mineral/silver/five,
/obj/item/stack/sheet/mineral/silver/five,
@@ -1433,9 +1433,9 @@
"QG" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/random_machine_circuit_rare,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/obj/effect/spawner/random/circuit/machine/rare,
+/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/random/circuit/machine/common,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
diff --git a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_treasure_cove.dmm b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_treasure_cove.dmm
index bcbcf9510bf4..d353ab2e21b6 100644
--- a/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_treasure_cove.dmm
+++ b/_maps/_mod_celadon/RandomRuins/BeachRuins/beach_treasure_cove.dmm
@@ -20,7 +20,7 @@
/area/ruin/beach/treasure_cove)
"ay" = (
/obj/structure/flora/tree/palm,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -35,7 +35,7 @@
"bI" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
"bN" = (
@@ -53,7 +53,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/ruin/unpowered)
"cJ" = (
@@ -194,7 +194,7 @@
/area/ruin/beach/treasure_cove)
"ht" = (
/obj/effect/overlay/palmtree_r,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -207,7 +207,7 @@
/turf/open/floor/concrete/slab_1,
/area/ruin/beach/treasure_cove)
"hS" = (
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -297,7 +297,7 @@
/area/ruin/unpowered)
"kl" = (
/obj/effect/overlay/palmtree_l,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
@@ -390,7 +390,7 @@
pixel_x = 9;
pixel_y = -1
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -9;
pixel_y = 7
},
@@ -540,7 +540,7 @@
pixel_x = -10;
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/wood,
/area/ruin/beach/treasure_cove)
"rA" = (
@@ -663,11 +663,11 @@
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
-/obj/item/ammo_box/c38_box{
+/obj/item/storage/box/ammo/c38{
pixel_x = 10;
pixel_y = 8
},
-/obj/item/ammo_box/c38_box{
+/obj/item/storage/box/ammo/c38{
pixel_x = 10
},
/obj/structure/sign/poster/contraband/energy_swords{
@@ -1103,7 +1103,7 @@
pixel_x = -6;
pixel_y = 10
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red{
+/obj/item/melee/energy/sword/saber/pirate/red{
pixel_y = 8;
pixel_x = 10
},
@@ -1440,7 +1440,7 @@
/area/ruin/beach/treasure_cove)
"WX" = (
/mob/living/simple_animal/crab,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/ruin/unpowered)
diff --git a/_maps/_mod_celadon/RandomRuins/EarthSandRuins/el_town.dmm b/_maps/_mod_celadon/RandomRuins/EarthSandRuins/el_town.dmm
index 255a17595940..ae92d7aa92b1 100644
--- a/_maps/_mod_celadon/RandomRuins/EarthSandRuins/el_town.dmm
+++ b/_maps/_mod_celadon/RandomRuins/EarthSandRuins/el_town.dmm
@@ -156,8 +156,8 @@
})
"aY" = (
/obj/effect/turf_decal/sand/plating,
-/obj/item/ammo_box/a762_40,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40,
+/obj/item/storage/box/ammo/a762_40{
pixel_x = 4;
pixel_y = 9
},
@@ -1190,11 +1190,11 @@
})
"iA" = (
/obj/structure/table/wood,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = 7
},
@@ -1691,11 +1691,11 @@
})
"lR" = (
/obj/structure/table/wood,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = 7
},
@@ -2762,7 +2762,7 @@
},
/area/overmap_encounter/planetoid/earth_sand)
"us" = (
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = 9;
pixel_y = -10
},
@@ -3035,7 +3035,7 @@
"wJ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
@@ -5039,7 +5039,7 @@
name = "Elysium Town"
})
"Nz" = (
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = 7
},
@@ -6046,7 +6046,7 @@
pixel_x = 4;
pixel_y = -6
},
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = 7
},
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
index 707be4573d13..5d3160ba0c1b 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_crashed_holemaker.dmm
@@ -674,7 +674,7 @@
/area/ruin/unpowered/crashed_holemaker)
"lt" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"lu" = (
@@ -743,7 +743,7 @@
},
/obj/item/radio/intercom/directional/north,
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_holemaker)
@@ -1441,7 +1441,7 @@
/turf/open/floor/carpet,
/area/ruin/unpowered/crashed_holemaker)
"ze" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ruin/unpowered/crashed_holemaker)
"zh" = (
@@ -2389,7 +2389,7 @@
/turf/open/floor/plasteel/icemoon,
/area/ruin/unpowered/crashed_holemaker)
"RL" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/spline/fancy/transparent/neutral/corner{
dir = 4
},
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_raided_cargobase.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_raided_cargobase.dmm
index a98e2cd64686..2c2d69af174c 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_raided_cargobase.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_raided_cargobase.dmm
@@ -1040,7 +1040,7 @@
/area/ruin)
"Rk" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech/grid/airless,
/area/ruin)
"RX" = (
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
index 2fe945797efe..940d20723295 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm
@@ -472,7 +472,7 @@
/turf/closed/mineral/snowmountain/icemoon,
/area/ruin/unpowered/corprejectrooms)
"lF" = (
-/obj/structure/mecha_wreckage/honker/dark,
+/obj/structure/mecha_wreckage/honker,
/obj/machinery/light/directional/east,
/turf/open/floor/mech_bay_recharge_floor,
/area/ruin/unpowered/corprejectengineering)
@@ -1339,7 +1339,7 @@
/area/ruin/unpowered/corprejectrooms)
"En" = (
/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq,
/turf/open/floor/vault,
/area/ruin/unpowered/corprejectvault)
"Er" = (
@@ -1704,7 +1704,7 @@
"Md" = (
/obj/structure/rack,
/obj/item/ammo_box/magazine/smgm9mm/ap,
-/obj/item/ammo_box/magazine/smgm9mm/inc,
+/obj/item/ammo_box/magazine/smgm9mm/rubber,
/obj/machinery/light/small/directional/east,
/turf/open/floor/vault,
/area/ruin/unpowered/corprejectvault)
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm
index 6b2d11fd47b8..3eb16a5e27c7 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_surface_engioutpost.dmm
@@ -407,7 +407,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/icemoon,
/area/ruin)
"bk" = (
@@ -486,7 +486,7 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/structure/table/reinforced,
/obj/effect/turf_decal/corner/opaque/red/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin)
"bq" = (
@@ -853,7 +853,7 @@
dir = 8
},
/obj/effect/turf_decal/corner/transparent/neutral/full,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/icemoon,
/area/ruin)
"cf" = (
@@ -929,7 +929,7 @@
/obj/machinery/atmospherics/pipe/manifold4w/supply/visible,
/obj/machinery/meter/atmos/distro_loop,
/obj/effect/turf_decal/corner/transparent/neutral/full,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/icemoon,
/area/ruin)
"co" = (
@@ -1101,7 +1101,7 @@
/obj/item/rcd_ammo,
/obj/item/rcd_upgrade/frames,
/obj/effect/turf_decal/corner/transparent/neutral/half,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark{
initial_gas_mix = "ICEMOON_ATMOS"
},
@@ -1109,7 +1109,7 @@
"cK" = (
/obj/machinery/airalarm/directional/west,
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/neutral/half{
dir = 4
},
@@ -1133,7 +1133,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/transparent/neutral/three_quarters{
dir = 4
},
@@ -1412,7 +1412,7 @@
dir = 1
},
/obj/machinery/airalarm/directional/north,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark{
initial_gas_mix = "ICEMOON_ATMOS"
},
@@ -1660,7 +1660,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
dir = 4
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/icemoon,
/area/ruin)
"De" = (
@@ -1810,7 +1810,7 @@
dir = 4
},
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin)
"RD" = (
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
index 8f3f708e009d..6a24a7290c9c 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_newcops.dmm
@@ -145,7 +145,7 @@
dir = 1
},
/obj/structure/chair/stool,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/powered)
"ha" = (
@@ -161,7 +161,7 @@
/area/ruin/powered)
"ij" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood{
icon_state = "wood-broken3"
},
@@ -184,18 +184,18 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"iR" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -215,7 +215,7 @@
/turf/open/floor/plasteel,
/area/ruin/powered)
"jp" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/closet/syndicate,
/obj/item/flashlight/flare,
/obj/item/toy/crayon/spraycan,
@@ -238,7 +238,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"jX" = (
@@ -274,7 +274,7 @@
/turf/open/floor/wood,
/area/ruin/powered)
"kS" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/closet/syndicate,
/obj/item/megaphone/sec{
name = "syndicate megaphone"
@@ -290,7 +290,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"lw" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -310,11 +310,11 @@
pixel_y = 6
},
/obj/structure/table_frame/wood,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"mE" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"nm" = (
@@ -322,7 +322,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"ok" = (
@@ -351,13 +351,13 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/powered)
"oU" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"ps" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin/powered)
"pW" = (
@@ -400,7 +400,7 @@
/area/ruin/powered)
"so" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood{
icon_state = "wood-broken5"
},
@@ -411,7 +411,7 @@
dir = 1
},
/obj/effect/gibspawner/human,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/ruin/powered)
@@ -473,7 +473,7 @@
/area/ruin/powered)
"ux" = (
/obj/item/chair/stool,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
@@ -504,7 +504,7 @@
/area/ruin/powered)
"wO" = (
/obj/structure/closet/syndicate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/card/id/syndicate/anyone,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -601,7 +601,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"AW" = (
@@ -662,7 +662,7 @@
/area/ruin/powered)
"Di" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"Ds" = (
@@ -749,7 +749,7 @@
dir = 1
},
/obj/item/paper/fluff/stations/centcom/disk_memo,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/ruin/powered)
@@ -802,7 +802,7 @@
},
/obj/structure/closet/syndicate,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/powered)
"Kk" = (
@@ -811,7 +811,7 @@
},
/obj/structure/closet/syndicate,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/powered)
@@ -846,7 +846,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/powered)
"Lh" = (
@@ -876,7 +876,7 @@
/area/ruin/powered)
"LL" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"LP" = (
@@ -1071,7 +1071,7 @@
"WW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin/powered)
"WY" = (
@@ -1123,11 +1123,11 @@
"Zc" = (
/obj/structure/closet/cardboard,
/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"Zk" = (
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index 29710e094f64..5429cfd943bc 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -383,7 +383,7 @@
"EF" = (
/obj/effect/decal/cleanable/blood/gibs/torso,
/obj/structure/safe,
-/obj/item/ammo_box/a12g/slug,
+/obj/item/storage/box/ammo/a12g_slug,
/obj/item/melee/knife/combat,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -477,7 +477,7 @@
/turf/open/floor/carpet,
/area/ruin/powered)
"Pp" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/holofloor/wood,
/area/ruin/powered)
"PQ" = (
diff --git a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
index 4783db9b0132..35086e169c85 100644
--- a/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
+++ b/_maps/_mod_celadon/RandomRuins/IceRuins/icemoon_underground_brazillianlab.dmm
@@ -495,7 +495,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"xN" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"xQ" = (
@@ -1045,7 +1045,7 @@
/obj/structure/rack,
/obj/item/hatchet,
/obj/item/hatchet,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"Ul" = (
@@ -1103,7 +1103,7 @@
/obj/item/ammo_casing/shotgun/improvised,
/obj/item/ammo_casing/shotgun/improvised,
/obj/item/ammo_casing/shotgun/improvised,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/snowed/smoothed/icemoon,
/area/ruin/unpowered)
"WH" = (
@@ -1198,7 +1198,7 @@
"Yx" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/rack_parts,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/wood{
icon_state = "wood-broken3";
initial_gas_mix = "ICEMOON_ATMOS"
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index ee572a5408db..c0dd5fd964a1 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -811,10 +811,10 @@
/area/overmap_encounter/planetoid/jungle/explored)
"fJ" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/dark,
/area/overmap_encounter/planetoid/jungle/explored)
"fL" = (
@@ -2699,7 +2699,7 @@
/area/overmap_encounter/planetoid/jungle/explored)
"sK" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/grimy,
/area/ruin/jungle/starport)
"sN" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_cavecrew.dmm
index 063922d0d88e..84b0810597a2 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_cavecrew.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_cavecrew.dmm
@@ -192,7 +192,7 @@
/area/overmap_encounter/planetoid/jungle/explored)
"bU" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/machinery/light_switch{
pixel_y = 21;
pixel_x = -10
@@ -1026,14 +1026,14 @@
pixel_y = 32
},
/obj/structure/closet/secure_closet/freezer/wall/directional/west,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/condiment/enzyme{
pixel_x = -8;
pixel_y = 5
@@ -1342,7 +1342,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/jungle/cavecrew/security)
"pB" = (
@@ -1754,9 +1754,9 @@
pixel_y = -5
},
/obj/item/ammo_casing/a4570,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_762_40,
+/obj/item/ammo_box/magazine/skm_762_40,
+/obj/item/ammo_box/magazine/skm_762_40,
/obj/item/ammo_box/magazine/illestren_a850r,
/obj/item/ammo_box/magazine/illestren_a850r,
/turf/open/floor/plasteel/tech,
@@ -2416,7 +2416,7 @@
pixel_y = -8;
pixel_x = 5
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/red,
/turf/open/floor/wood,
/area/ruin/jungle/cavecrew/dormitories)
"Dh" = (
@@ -3934,9 +3934,9 @@
/obj/item/clothing/under/frontiersmen,
/obj/item/clothing/under/frontiersmen,
/obj/item/clothing/under/frontiersmen,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
@@ -4082,7 +4082,7 @@
"WQ" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/closet/crate/secure/loot,
-/obj/item/storage/box/inteqmaid{
+/obj/item/storage/box/maid{
pixel_x = -5;
pixel_y = 3
},
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_interceptor.dmm
index aab9b566f78e..4d17f130e1ae 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_interceptor.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_interceptor.dmm
@@ -1090,7 +1090,7 @@
/obj/item/radio,
/obj/item/radio,
/obj/item/clothing/under/color/jumpskirt/darkblue,
-/obj/item/clothing/under/dress/skirt/blue,
+/obj/item/clothing/under/dress/skirt/color/blue,
/obj/effect/turf_decal/corner/opaque/black{
icon_state = "siding_line";
dir = 10
@@ -1516,7 +1516,7 @@
},
/obj/item/radio,
/obj/item/radio,
-/obj/item/clothing/under/dress/skirt/blue,
+/obj/item/clothing/under/dress/skirt/color/blue,
/obj/item/clothing/under/color/darkblue,
/obj/effect/turf_decal/corner/opaque/black{
icon_state = "siding_line";
@@ -3050,7 +3050,7 @@
/obj/item/clothing/under/rank/security/officer/blueshirt,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/shoes/jackboots,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/machinery/light/small/broken/directional/north,
/obj/effect/turf_decal/corner/transparent/bar/three_quarters{
dir = 4
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
index 668373301734..35691370fa84 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_medtech_outbreak.dmm
@@ -956,7 +956,7 @@
pixel_y = 11
},
/obj/effect/gibspawner/human,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_762_40,
/turf/open/floor/plasteel/tech,
/area/ship/science)
"oJ" = (
@@ -2108,7 +2108,7 @@
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 1
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Ie" = (
@@ -2441,7 +2441,7 @@
"MB" = (
/obj/structure/flora/ausbushes/sparsegrass,
/obj/effect/decal/cleanable/blood/splatter,
-/obj/item/weldingtool/experimental,
+/obj/item/weldingtool/electric,
/turf/open/floor/grass,
/area/overmap_encounter/planetoid/jungle/explored)
"MF" = (
@@ -3172,7 +3172,7 @@
"VL" = (
/obj/structure/closet/cabinet,
/obj/item/hatchet/wooden,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/gun/ballistic/revolver/viper,
/turf/open/floor/wood,
/area/ship/bridge)
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_nest.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_nest.dmm
index 5ceab6d0e390..5b8b0d811122 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_nest.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_nest.dmm
@@ -273,7 +273,7 @@
"EC" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating/dirt,
/area/overmap_encounter/planetoid/cave/explored)
"Fe" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_paradise.dmm
index ebeeb97af193..cdb5715d3a94 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_paradise.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_paradise.dmm
@@ -685,7 +685,7 @@
/turf/open/floor/plating/grass/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"ei" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle/dark,
/area/overmap_encounter/planetoid/cave/explored)
"el" = (
@@ -4344,11 +4344,11 @@
/obj/effect/turf_decal/techfloor/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/jungle/paradise/cargo)
"AT" = (
@@ -5762,9 +5762,9 @@
/obj/structure/cable/yellow{
icon_state = "1-6"
},
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab,
@@ -7409,7 +7409,7 @@
},
/area/overmap_encounter/planetoid/cave/explored)
"VV" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/overmap_encounter/planetoid/cave/explored)
"VW" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pirate.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pirate.dmm
index a9c3820aff97..beef2743aa66 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pirate.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pirate.dmm
@@ -49,12 +49,12 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"iw" = (
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/obj/structure/table/wood/poker,
/turf/open/floor/wood,
/area/ruin/unpowered)
"iC" = (
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/structure/table/wood/poker,
/mob/living/simple_animal/hostile/human/pirate/melee,
/turf/open/floor/wood,
@@ -386,7 +386,7 @@
/area/ruin/unpowered)
"Xt" = (
/obj/structure/table/wood/poker,
-/obj/item/melee/transforming/energy/sword/saber/pirate,
+/obj/item/melee/energy/sword/saber/pirate,
/turf/open/floor/carpet/red,
/area/ruin/unpowered)
"XA" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pizzawave.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pizzawave.dmm
index e4dee4cec868..e2de1e245569 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pizzawave.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_pizzawave.dmm
@@ -13,7 +13,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"d" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/memeorgans,
+/obj/effect/spawner/random/medical/memeorgans,
/turf/open/floor/grass,
/area/overmap_encounter/planetoid/cave/explored)
"e" = (
@@ -160,7 +160,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"N" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/turf/open/floor/grass,
/area/overmap_encounter/planetoid/cave/explored)
"O" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm
index b4d280ba7a17..18c6a20db2ea 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_coffinpirate.dmm
@@ -159,7 +159,7 @@
/area/ruin/unpowered)
"I" = (
/obj/structure/table/wood,
-/obj/item/melee/transforming/energy/sword/saber/pirate{
+/obj/item/melee/energy/sword/saber/pirate{
pixel_x = 2;
pixel_y = 3
},
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_roommates.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_roommates.dmm
index 38087a6a32e4..9806d2880b4a 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_roommates.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_surface_roommates.dmm
@@ -89,7 +89,7 @@
/obj/item/melee/sword/claymore{
pixel_x = 5
},
-/obj/item/clothing/head/peaceflower{
+/obj/item/clothing/head/plastic_flower{
desc = "An extremely addictive flower, full of lesbian magic."
},
/obj/effect/turf_decal/corner/opaque/blue,
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_syndicate.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_syndicate.dmm
index 2eba13537777..60d24171ad0f 100644
--- a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_syndicate.dmm
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_syndicate.dmm
@@ -662,7 +662,7 @@
/obj/item/storage/box/donkpockets/donkpocketteriyaki,
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets/donkpocketberry,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plating,
/area/ruin/jungle/syndifort)
"ve" = (
diff --git a/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_vamplab.dmm b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_vamplab.dmm
new file mode 100644
index 000000000000..17a11e437747
--- /dev/null
+++ b/_maps/_mod_celadon/RandomRuins/JungleRuins/jungle_vamplab.dmm
@@ -0,0 +1,3110 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ac" = (
+/obj/machinery/light_switch{
+ pixel_x = -5;
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ pixel_x = 4;
+ pixel_y = 24;
+ id = "biblio"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"al" = (
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -22;
+ pixel_y = -7
+ },
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = -30;
+ dir = 8;
+ pixel_y = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"av" = (
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"aT" = (
+/obj/machinery/door/airlock/multi_tile/security,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"bF" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"bJ" = (
+/turf/open/floor/plating/grass/jungle/lit,
+/area/template_noop)
+"ee" = (
+/obj/effect/mob_spawn/human/skeleton/alive{
+ icon = 'mod_celadon\_storge_icons\icons\mobs\Miko.dmi';
+ icon_state = "Miko";
+ density = 0;
+ name = "deceased body";
+ mob_name = "vampire";
+ assignedrole = "Vampire";
+ desc = "Окровавленное тело девушки, что не успело разложиться. Возможно вы уже замечали где-то это лицо прежде, например, в какой-нибудь научной передачи."
+ },
+/obj/effect/decal/cleanable/blood,
+/obj/effect/temp_visual/light_ash,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"eh" = (
+/obj/item/radio/intercom/wideband/directional/north,
+/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/decal/cleanable/oil,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"ek" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 4
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"eq" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"ey" = (
+/obj/structure/sink/kitchen{
+ dir = 4;
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/obj/structure/mirror{
+ pixel_y = 2;
+ pixel_x = -28;
+ desc = "Если так и дальше будешь долго смотреть в бездну, то сама бездна вскоре тоже взглянет в тебя."
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"eQ" = (
+/obj/structure/dresser{
+ dir = 8;
+ pixel_x = 7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"eU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/outpost{
+ dir = 8;
+ req_one_access_txt = "0"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"eV" = (
+/obj/structure/flora/grass/jungle,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"eY" = (
+/obj/item/kirbyplants/random,
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = -31;
+ dir = 8;
+ pixel_y = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"gk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "medical"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"gE" = (
+/obj/structure/spacevine,
+/obj/structure/flora/tree/jungle,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"hp" = (
+/obj/structure/closet/cabinet,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23;
+ pixel_y = -3
+ },
+/obj/item/toy/plush/carpplushie/void{
+ pixel_y = -2;
+ pixel_x = 2
+ },
+/obj/item/clothing/suit/toggle/labcoat/science,
+/obj/item/clothing/neck/stethoscope,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"ht" = (
+/obj/machinery/door/airlock/multi_tile/base{
+ max_integrity = 3000000000000
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "medical"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"hI" = (
+/obj/structure/table,
+/obj/machinery/light/dim/directional/north,
+/obj/item/candle/infinite{
+ pixel_y = 8;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/glass/bottle/toxin{
+ pixel_y = 3;
+ pixel_x = 4;
+ desc = "Стеклянная бутылочка с биркой - Яд."
+ },
+/obj/item/candle/infinite{
+ pixel_y = 10;
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"hJ" = (
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"hX" = (
+/obj/structure/table/glass,
+/obj/item/organ/heart/vampire{
+ pixel_x = 6;
+ pixel_y = -1
+ },
+/obj/item/paper/crumpled/bloody{
+ pixel_x = -6;
+ pixel_y = 6;
+ default_raw_text = "
Дорогой мой Дези.. Мне очень-очень жаль!
Это катастрофа. Эксперимент полностью вышел из-под контроля. Но ты должны понять — ошибки больше быть не может!
Как тебе известно.. я тестировала новый ингибитор 'Vita-Null+X', предполагая, что он сможет подавить ключевые белки вируса. Первые минуты всё шло хорошо: Дезмонд демонстрировал ослабление регенеративных процессов, что указывало на замедление активности вируса. Однако через 30 минут начали проявляться непредсказуемые побочные эффекты.
Сначала у Дезмонда наблюдались судороги и покалывание в конечностях. Затем кожа начала разрываться, образовывались незаживающие раны, которые быстро инфицировались. Гнойные выделения сопровождались сильной болью, и Дези.. Дези начал демонстрировать признаки крайней агрессии.
Кажется, вирус адаптировался быстрее, чем мы могли предположить. Вместо подавления его активности ингибитор ускорил процесс мутации, превратив Дези в грязную и мерзкую кровавую массу.
Мне ужасно жаль, что тебе пришлось испытать этот кошмар, но я не могла поступить иначе.. Прости!
Твой последний лучик..
";
+ name = "Vita-Null+X"
+ },
+/obj/item/flashlight/pen{
+ pixel_x = 40;
+ pixel_y = 7
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#808080"
+ },
+/turf/open/floor/plasteel/darkbluefull/darkblue{
+ dir = 1
+ },
+/area/ship/medical)
+"il" = (
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"ju" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "gib5-old";
+ pixel_x = 1;
+ pixel_y = 14
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/sprayweb,
+/mob/living/simple_animal/hostile/poison/giant_spider,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"jI" = (
+/obj/machinery/computer/operating,
+/obj/effect/turf_decal/corner/opaque/black/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"jZ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"kA" = (
+/turf/open/floor/plasteel/darkredfull/darkred,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"kG" = (
+/obj/structure/flora/junglebush,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"kW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/ash{
+ pixel_x = 1;
+ pixel_y = 14
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 1
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"kZ" = (
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = 30;
+ dir = 4;
+ pixel_y = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"ld" = (
+/obj/machinery/computer/crew{
+ pixel_x = 0;
+ pixel_y = 9
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"lf" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"lR" = (
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"mm" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"ms" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/soup/blood{
+ pixel_x = 0;
+ pixel_y = 7
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"nb" = (
+/obj/structure/spacevine,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"nr" = (
+/obj/structure/closet/crate/grave{
+ opened = 0
+ },
+/obj/item/coin/day_s,
+/obj/item/coin/silver,
+/obj/item/coin/gold,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"nC" = (
+/turf/closed/mineral/random/jungle,
+/area/overmap_encounter/planetoid/jungle/explored)
+"nZ" = (
+/obj/structure/flora/junglebush/large,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"ov" = (
+/obj/structure/spacevine,
+/obj/structure/flora/grass/jungle/b,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"ox" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"oy" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"oT" = (
+/obj/structure/flora/tree/jungle,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"pA" = (
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"qj" = (
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = 1;
+ pixel_y = 29
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/table,
+/obj/item/taperecorder{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/item/paper/fluff/gateway{
+ default_raw_text = "Несмотря на неудачный недавний опыт я приняла решение провести эксперимент на себе. После провала операции с Дезмондом я пересмотрела формулу ингибитора, назвав его 'Vita-Null+X.2'. Уверенность в том, что я контролирую процесс, стала настолько сильной, что я больше не могу откладывать это на потом. Излечив себя я исполню нашу общую мечту! Отдел генетической инженерии будет мной гордиться!И так.. Я подготовила диктофон и постараюсь оставлять сообщения по ходу эксперимента.
Начнём.. первые оущения воодушевляющие. Слабость, что я ощущаю, указывает на снижение вирусной активности. Я только что нанесла лёгкий порез осколком стекла. Кажется, что регенерация замедлилась до необходимого уровня, привычная для вируса агрессия, похоже, отступила. Я даже рискную предположить, что ингибитор наконец начал работать. Кажется у меня получилось! Временно остановлю запись, пока не произойдут ещё какие-либо изменения, касеты не так уж и много, нужно беречь.
- Шипение -
Так, кажется прошло пол часа, появляются первые тревожные знаки. Лёгкое покалывание в конечностях сменяется жжением. Я думаю это побочный эффект, ничего страшного. Это терпимо. Мои руки трясутся.. Очень волнительный момент..
- Шипение -
Нет-нет-нет! СУКА! ЭТОГО НЕ ДОЛЖНО БЫЛО БЫТЬ! СКОЛЬКО ВРЕМЕНИ ПРОШЛО? ДВА ЧАСА? Мне казалось моё сердце выскачет наружу, тело охватывали судороги. Внезапно начались резкие боли в груди и спине. Вирус снова адаптировался, но теперь уже не просто к своему подавлению — он изменяет меня. Спустя час с каждой минутой моё состояние ухудшалось. Кожа начала рваться в местах наибольшего напряжения. Это невероятно больно, мать твою!
{вздыхает}
Я вколола обезбаливающее, кажется боль накидывает волнами. Чёрт.. Всё повторяется как с Дези.. Прости, моя любовь, что тебе пришлось это испытать.. Видимо скоро мы встретимся с тобой. Если честно.. Вся жизнь проносится перед глазами.. Не забуду тот последний подарок, я спрятала его надёжно под кровать. Ты всегда хотел узнать что я там прячу.. Пароль проще некуда. Помнишь тот самый успешный эксперимент в 70 году, с которого всё началось? Это и есть пароль к сейфу, зайка. Но сейчас.. Всё это уже не имеет значения. Надеюсь мои записи передадут в нужное место и... ААААА-ААААААААА. СУКА, ПОЧЕМУ ОНО НЕ ДЕЙСТВУЕТ? КРОВЬ С ПОРЕЗА СНОВА ВЫЛИВАЕТСЯ, ОНА НЕ ДОЛЖНА КИПЕТЬ! ПОЧЕ...ААа--аа-а.
- Шипение -";
+ name = "Vita-Null+X.2";
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/obj/item/dnainjector{
+ used = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"qo" = (
+/obj/structure/chair/office{
+ dir = 8;
+ pixel_x = 0
+ },
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"qx" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"qy" = (
+/obj/structure/table,
+/obj/item/paper/fluff/gateway{
+ default_raw_text = "Прорыв в исследовании генетической инженерии:
Эксперимент №45
Дата: 15 января 2570 годаВ истории научных открытий год 2570 вошёл как эпохальная веха благодаря эксперименту №45, проведённому учёными из лаборатории 'LuxVitae' под руководством доктора EripMav. Этот эксперимент, направленный на борьбу с вирусом вампиризма, стал важнейшим шагом вперёд в области генной инженерии.
Основная цель эксперимента заключалась в создании безопасного метода подавления активности вируса, поражающего организм и вызывающего необратимые мутации. Предыдущие попытки стабилизировать генные процессы заканчивались катастрофическими результатами, но эксперимент №45 стал настоящим прорывом.
Доктор EripMav разработала уникальный метод вмешательства, основанный на использовании специальных веществ, способных избирательно воздействовать на поражённые клетки, одновременно восстанавливая их структуру и препятствуя дальнейшему распространению вируса.
Эксперимент №45 стал основой для дальнейших исследований, которые открыли путь к созданию адаптивных генетических терапий. Эти технологии позволят не только бороться с вирусами, но и корректировать наследственные патологии, значительно улучшая качество жизни людей.
";
+ name = "Научная сенсация";
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"qE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/darkredfull/darkredcorners{
+ dir = 4
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"qN" = (
+/obj/item/paper/crumpled/bloody{
+ pixel_x = -6;
+ pixel_y = 6;
+ name = "Помятая записка";
+ default_raw_text = "Тулеих, ри зцпгог, ъхс хю фпсйиыя ахс тусъифхя. Ескпсйрс ахс тснгйихфв, нгнлп-хс дуизсп, рс.. Ри кргб.. В ф жсосесм цтоюог е фесл хисулл, е ринсхсуси еуипв в сфхгргеолегбфя л зцпгб.. Г фхслх ол ахс тусзсойгхя? Г езуцж ахс ри лпиих фпюфог? Ъхс ифол в тусфхс рлъижс ри зсдябфя? Ри шсъц тснгкюегхя хиди, ъхс ц пирв ифхя нгнли-олдс фсприрлв рг фъӥх ргыим щиол, ри шсъц тснгкюегхя фогдсфхя.. В шсъц ъхсдю хю зсеиуво при л еиуло е пирв!
В съиря обдоб хидв, Зикпсрз. Тусфхл, ъхс пгос цзиовб хиди еуипирл е тсфоизрии еуипв. Нгйихфв в долкнг н угкжгзни, рс фхслх ол срс хсжс? Рилкеифхрс.Ифол езуцж ъхс-хс тсмзӥх ри хгн - ргмзл псм хгмрлн ескои огдсугхсулл, хгп ифхя зиряжл, хю фпсйиыя еюдугхяфв л тулсдуифхл рисдшсзлпюи еиьл. Рг хсх фоцъгм, ифол н ргп тсйгоцбх фгп кргиыя нхс - есфтсоякцмфв пслп фимчсп, в тсзжсхселог тсзгусъин е рӥп. Тгусоя - ахс згхг ргтлфгрлв зсногзг V341.
Хю ц пирв ри жоцтирянлм, с ефӥп фгп зсжгзгиыяфв, нгн целзлыя. Обдоб хидв, кгмнг.
";
+ desc = "Похоже на какой-то шифр.."
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"qT" = (
+/obj/structure/flora/junglebush/b,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"rQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"sb" = (
+/turf/closed/wall/mineral/plastitanium/interior,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"sM" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ pixel_x = 6;
+ pixel_y = 5;
+ id = "biblio"
+ },
+/obj/machinery/button/door{
+ pixel_x = -6;
+ pixel_y = 5;
+ id = "medical"
+ },
+/obj/item/newspaper{
+ pixel_y = 2;
+ pixel_x = -4
+ },
+/obj/item/newspaper{
+ pixel_y = 4;
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"ts" = (
+/obj/structure/flora/junglebush/large,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"tC" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/darkredfull/darkred,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"tF" = (
+/obj/structure/table/reinforced{
+ pixel_x = 0
+ },
+/obj/item/paper_bin{
+ pixel_x = 0;
+ pixel_y = 6
+ },
+/obj/item/pen{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"ul" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder/constructed{
+ pixel_y = 11;
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_x = 9;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_y = 1;
+ pixel_x = 9
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#808080"
+ },
+/turf/open/floor/plasteel/darkbluefull/darkblue{
+ dir = 1
+ },
+/area/ship/medical)
+"uq" = (
+/obj/structure/cable{
+ icon_state = "2-4";
+ tag = null
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"ux" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"uA" = (
+/obj/structure/closet/crate/coffin{
+ desc = "Гроб имеет множество потёртостей, но выглядит чистым."
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"uD" = (
+/obj/item/book/manual/wiki/medicine{
+ pixel_x = 14
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"uE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/outpost{
+ dir = 8;
+ req_one_access_txt = "0"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"uU" = (
+/turf/closed/wall/mineral/plastitanium/interior,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"vI" = (
+/obj/item/toy/plush/slimeplushie{
+ pixel_y = -2;
+ pixel_x = 37
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/bedsheet/double/black{
+ pixel_x = 32
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"vP" = (
+/obj/structure/flora/junglebush/c,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"xk" = (
+/obj/structure/fluff/paper/stack{
+ max_integrity = 10;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"xC" = (
+/obj/structure/closet/crate/grave{
+ opened = 0
+ },
+/obj/item/stack/sheet/bone,
+/obj/item/stack/sheet/bone{
+ pixel_y = -5
+ },
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"yk" = (
+/obj/machinery/computer/cargo{
+ dir = 4;
+ name = "Cargo computer";
+ obj_integrity = null
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"yr" = (
+/obj/structure/flora/junglebush/c,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"yY" = (
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"zI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"zV" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Az" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 4
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"AE" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"AF" = (
+/obj/structure/window/reinforced/spawner{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"AH" = (
+/obj/structure/table/wood,
+/obj/machinery/jukebox/boombox{
+ pixel_x = -1;
+ pixel_y = 0
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"AM" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/darkredfull/darkredcorners,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Bc" = (
+/obj/machinery/door/airlock/outpost{
+ dir = 1;
+ req_one_access_txt = "0"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Bg" = (
+/obj/structure/chair/sofa/brown/left{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Br" = (
+/turf/template_noop,
+/area/template_noop)
+"BN" = (
+/turf/closed/wall/mineral/plastitanium/interior,
+/area/ship/medical)
+"BZ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Ca" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"Cj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Cl" = (
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/obj/structure/spacevine/dense,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Cn" = (
+/obj/structure/flora/tree/jungle/small,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Cp" = (
+/obj/structure/table/wood,
+/obj/item/candle/infinite{
+ pixel_y = 14;
+ pixel_x = 3
+ },
+/obj/item/candle/infinite{
+ pixel_y = 11;
+ pixel_x = 8
+ },
+/obj/item/paper/fluff/gateway{
+ default_raw_text = "Вот и настал этот прекрасный день!
Ты думала твой дорогой Дези забудет о том, что у тебя сегодня День Рождения? Нет уж, моё солнышко!
В твой день рождения, милая, родная,
Хочу сказать, как сильно я люблю.
Ты для меня — звезда ночного рая,
Ты свет, что озаряет жизнь мою.
Пусть счастье в сердце льется, как река,
Пусть каждый миг несет тебе тепло.
Ты — мой цветок, моя весна, мечта,
С тобой мне в этом мире повезло!
Желаю радости, улыбок и мечтаний,
Исполнить все, что в сердце ты хранишь.
Я буду рядом — в горе и в сиянье,
Мой свет, мой ангел, мой бесценный приз!
Специально для тебя я смастерил кое что необычное, один маленький сюрприз. Я надеюсь её мелодия напомнит тебе о всех тех приключениях, что мы прошли с тобой вместе!
Спасибо тебе, что не бросаешь надежд найти способ излечиться. Я буду верить и ждать!";
+ name = "Лучик надежды";
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Cu" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 8
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"CA" = (
+/obj/structure/flora/ausbushes/sparsegrass/hell,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"CT" = (
+/obj/structure/flora/tree/jungle,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"DH" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/stack/sheet/mineral/wood/fifty{
+ pixel_x = 0;
+ pixel_y = 14
+ },
+/obj/item/stack/sheet/mineral/wood/fifty{
+ pixel_x = 4;
+ pixel_y = 14
+ },
+/obj/item/stack/sheet/mineral/wood/fifty{
+ pixel_x = 9;
+ pixel_y = 14
+ },
+/obj/item/lighter/greyscale{
+ pixel_x = -7;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/concrete/tiles,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Ef" = (
+/obj/effect/spawner/random/structure/crate_abandoned,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Eh" = (
+/obj/structure/sink/kitchen{
+ dir = 4;
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"EH" = (
+/obj/item/melee/knife/shiv,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"Fp" = (
+/obj/structure/flora/rock/jungle,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"FE" = (
+/obj/structure/flora/tree/jungle/small,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"GP" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"GX" = (
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Hf" = (
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"Hk" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Hv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 1
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"HL" = (
+/obj/structure/closet/crate/freezer/blood,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#808080"
+ },
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plasteel/darkbluefull/darkblue{
+ dir = 1
+ },
+/area/ship/medical)
+"HR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/darkredfull/darkred{
+ dir = 1
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"HS" = (
+/obj/structure/spacevine/dense,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"If" = (
+/obj/structure/spacevine,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Im" = (
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/obj/structure/flora/tree/jungle/small,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"IQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"IT" = (
+/obj/effect/decal/cleanable/garbage{
+ pixel_x = -13;
+ pixel_y = -8
+ },
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Jp" = (
+/obj/structure/spacevine,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"JI" = (
+/obj/effect/spawner/random/anomaly/jungle,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Kc" = (
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Ks" = (
+/obj/machinery/light/directional/east,
+/obj/structure/safe/floor{
+ tumblers = list(70,45)
+ },
+/obj/item/toy/musicbox,
+/obj/item/research_notes/loot/big,
+/obj/structure/bed/double,
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"KH" = (
+/obj/structure/bookcase/manuals/engineering,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"KT" = (
+/obj/item/paper/fluff/gateway{
+ default_raw_text = " Методы исследования
- Генно-инженерное редактирование: Использование CRISPR/Cas-14 для выявления и подавления генетических изменений, вызванных вирусом.
- Биохимические ингибиторы: Разработка препаратов, которые могут воздействовать на специфические белки и энзимы, произведённые вирусом.
- Иммуномодуляторы: Попытки стимулировать иммунную систему к распознаванию вируса как угрозы.
Предварительные результаты
- Генно-инженерное редактирование: Первичные тесты показали частичное снижение регенеративной активности, но вызвали некроз тканей.
- Биохимические ингибиторы: Препарат 'Vita-Null' временно подавил регенерацию, но вызвал серьёзные побочные эффекты.
- Иммуномодуляторы: Попытки активизировать иммунитет привели к гипервоспалению и лихорадке.
Заключение
Несмотря на значительные трудности, я уверена, что излечение от вампиризма возможно. Для этого требуется дальнейшая работа в областях генной инженерии, биохимии и иммунологии. Особое внимание следует уделить созданию безопасных методов тестирования и разработки препаратов, минимизирующих риски для пациента.
Подпись: Доктор EripMav
";
+ name = "Доклад S341N2";
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/paper/fluff/gateway{
+ default_raw_text = "Доклад: Возможное излечение от вампиризма через генно-инженерные и биохимические методы
Доктор: EripMav | № 180s8a
Отдел Генетической Инженерии, Лаборатория 'LuxVitae'
Дата: 05 декабря 2578 года
Описание вируса
Вирус вампиризма, как было выявлено в ходе предыдущих исследований, является не просто биологическим агентом, а скорее симбиотическим патогеном, который вмешивается в нормальную регенерацию тканей, нарушает метаболизм и вызывает ускоренную регенерацию клеток. Это приводит к возникновению ряда изменений в организме: улучшение физической силы, быстрая регенерация и усиленное восприятие, в то время как психоэмоциональные и биологические аспекты подвержены пагубному влиянию.
Обнаруженные проблемы и вызовы
- Невозможность подавления вируса: Большинство известных антигенов, направленных на вирусные патогены, не действуют на вирус вампиризма. Его структура необычна, что затрудняет разработку традиционных методов лечения, таких как антивирусные препараты.
- Самовосстановление организма: Вирус приводит к резкому улучшению регенерации клеток и тканей, что снижает эффективность воздействия даже на самые стойкие патогены.
- Психоэмоциональные изменения: Вирус вызывает серьёзные изменения в поведении, включая повышенную агрессивность и потерю контроля над внутренними инстинктами.
";
+ name = "Доклад S341N1";
+ pixel_x = -5;
+ pixel_y = -1
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_y = 16;
+ light_color = "#BBFFBB";
+ layer = 3.1;
+ pixel_x = -4
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"LL" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"LO" = (
+/obj/structure/table/glass,
+/obj/item/storage/backpack/duffelbag/med/surgery{
+ pixel_y = 2
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#808080"
+ },
+/turf/open/floor/plasteel/darkbluefull/darkblue{
+ dir = 1
+ },
+/area/ship/medical)
+"Ma" = (
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = 0;
+ dir = 2;
+ pixel_y = -31
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/item/kirbyplants/random{
+ pixel_y = 16;
+ pixel_x = -7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"MW" = (
+/obj/structure/spacevine,
+/obj/structure/spacevine,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Ni" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"NF" = (
+/obj/item/storage/secure/safe/lab{
+ l_code = "52578";
+ pixel_y = -34
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"NR" = (
+/obj/structure/closet/crate/grave,
+/obj/item/shovel,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"NS" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"NY" = (
+/turf/closed/wall/mineral/plastitanium/interior,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Ov" = (
+/obj/structure/table/optable,
+/obj/effect/mob_spawn/human/skeleton/alive,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/temp_visual/light_ash,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"Oz" = (
+/obj/structure/fluff/paper/stack{
+ max_integrity = 10;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/sprayweb,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"Po" = (
+/obj/structure/safe/floor,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/spacecash/bundle/c1000,
+/obj/item/dnainjector/thermal,
+/obj/item/research_notes/loot/medium,
+/obj/item/stack/sheet/mineral/diamond,
+/obj/structure/spacevine/dense,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"PG" = (
+/obj/machinery/light_switch{
+ pixel_x = -1;
+ pixel_y = 22
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"PK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel/darkbrownfull/darkbrown{
+ dir = 1
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"PX" = (
+/obj/machinery/door/airlock/multi_tile/base{
+ max_integrity = 3000000000000;
+ dir = 8
+ },
+/obj/machinery/door/poddoor/ert{
+ dir = 8;
+ id = "biblio"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"Qo" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"RL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"RV" = (
+/obj/machinery/shower{
+ pixel_y = 15
+ },
+/obj/item/soap{
+ pixel_y = 3
+ },
+/obj/structure/curtain/cloth,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"Sy" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+"SH" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"SQ" = (
+/obj/structure/table,
+/obj/item/garnish/umbrellared,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Ti" = (
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"To" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1;
+ sheets = 30
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"TU" = (
+/obj/structure/fireplace{
+ pixel_x = -14
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/concrete/tiles,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"TW" = (
+/obj/structure/closet/crate/bin,
+/obj/item/paperplane,
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -1
+ },
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Vh" = (
+/obj/structure/chair/sofa/brown/right{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Vo" = (
+/obj/structure/spacevine/dense,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Vq" = (
+/obj/structure/table/reinforced{
+ pixel_x = 0
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/grown/novaflower{
+ pixel_y = 4;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"VC" = (
+/obj/structure/table,
+/obj/machinery/computer{
+ desc = "Корпус монитора исписан различными формулами, но они не кажутся вам знакомыми.";
+ icon_keyboard = null;
+ icon_screen = "oldcomp_generic";
+ icon_state = "oldcomp";
+ name = "Administrative computer";
+ pixel_y = 5
+ },
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"VD" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/darkbrownfull/darkbrown{
+ dir = 1
+ },
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"VY" = (
+/turf/closed/wall/mineral/plastitanium/interior,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"Xl" = (
+/obj/structure/flora/rock/pile/largejungle,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Xn" = (
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"XB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"XF" = (
+/obj/machinery/light/directional/east,
+/obj/structure/spacevine,
+/turf/open/floor/wood/ebony,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"XU" = (
+/obj/machinery/light/directional/west,
+/obj/structure/chair/office{
+ dir = 1;
+ pixel_x = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"Ya" = (
+/obj/structure/table/reinforced{
+ pixel_x = 0
+ },
+/obj/item/folder/red{
+ pixel_y = 4;
+ pixel_x = 0;
+ name = "S341"
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"Ym" = (
+/obj/structure/flora/junglebush/b,
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Ys" = (
+/turf/open/floor/plating/dirt/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"YH" = (
+/obj/structure/closet/secure_closet/freezer,
+/obj/item/seeds/tomato/blood,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/dark_2,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"YP" = (
+/obj/effect/spawner/random/chicken/jungle,
+/turf/open/floor/plating/grass/jungle/lit,
+/area/overmap_encounter/planetoid/jungle/explored)
+"Zf" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/darkredfull/darkred,
+/area/ruin/jungle/cavecrew/hallway{
+ lightswitch = 0
+ })
+"Zj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+"Zr" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/walnut,
+/area/ruin/jungle/cavecrew/dormitories{
+ lightswitch = 0
+ })
+"ZU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/ert{
+ dir = 8;
+ id = "biblio"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/bridge{
+ lightswitch = 0
+ })
+"ZV" = (
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/jungle/cavecrew/cargo{
+ lightswitch = 0
+ })
+
+(1,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(2,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(3,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+av
+av
+av
+av
+av
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(4,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+av
+av
+Br
+av
+Br
+Br
+av
+av
+av
+oT
+vP
+av
+av
+av
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(5,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+Br
+Br
+Br
+av
+av
+qT
+av
+av
+Ys
+av
+Ys
+av
+Ys
+JI
+av
+Br
+Br
+Br
+Br
+av
+Br
+Br
+Br
+Br
+Br
+"}
+(6,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+av
+lR
+lR
+av
+av
+av
+av
+av
+Ys
+Ys
+av
+av
+ts
+Ys
+hJ
+av
+pA
+Ys
+Ys
+av
+Br
+Br
+Br
+av
+Br
+Br
+Br
+Br
+Br
+"}
+(7,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+GX
+av
+nb
+HS
+Vo
+av
+av
+oT
+Vo
+nb
+nb
+nb
+Ys
+If
+MW
+hJ
+av
+av
+Ys
+Ys
+av
+av
+Br
+Br
+Br
+av
+av
+Br
+Br
+Br
+"}
+(8,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+vP
+If
+If
+nC
+nC
+Cl
+Vo
+Vo
+Vo
+nC
+nC
+nC
+If
+If
+Ys
+av
+FE
+Ys
+Ys
+Ys
+CT
+av
+av
+av
+av
+av
+Br
+Br
+Br
+Br
+"}
+(9,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+av
+nb
+ov
+If
+nC
+nC
+nC
+nC
+Ef
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+If
+Ys
+Xl
+Ys
+av
+av
+Ys
+yr
+av
+Ys
+Ys
+av
+Br
+av
+Br
+Br
+"}
+(10,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+av
+If
+nb
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+Ys
+Ys
+nC
+nC
+nC
+av
+av
+av
+Ys
+GX
+av
+av
+av
+Br
+"}
+(11,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+oT
+av
+av
+nb
+nb
+Vo
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+av
+Ys
+Ys
+av
+oT
+Ys
+av
+Br
+av
+Br
+"}
+(12,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+Ys
+hJ
+If
+eV
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+Ys
+ts
+Ys
+Ys
+Ys
+Ys
+Ys
+av
+Br
+Br
+Br
+"}
+(13,1,1) = {"
+Br
+Br
+Br
+av
+av
+av
+av
+qT
+If
+nC
+nC
+nC
+nC
+bF
+uU
+uU
+uU
+uU
+uU
+uU
+NY
+NY
+NY
+NY
+ox
+nC
+nC
+nC
+nC
+nC
+nC
+Ys
+av
+av
+ts
+Ys
+av
+av
+Br
+av
+"}
+(14,1,1) = {"
+Br
+Br
+Br
+av
+av
+Ys
+Ys
+av
+If
+nC
+Kc
+nC
+nC
+uU
+eh
+Ti
+ld
+XU
+NF
+uU
+yk
+lf
+Bg
+Vh
+NY
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+FE
+av
+av
+lR
+av
+av
+av
+"}
+(15,1,1) = {"
+Br
+Br
+Br
+Br
+av
+CT
+Ys
+Ys
+If
+If
+If
+bF
+uU
+uU
+PG
+Ti
+KT
+Ti
+Ni
+uU
+qo
+BZ
+SQ
+qy
+BN
+BN
+BN
+BN
+Sy
+nC
+nC
+nC
+Ys
+Ys
+YP
+Ys
+av
+av
+av
+Br
+"}
+(16,1,1) = {"
+Br
+Br
+Br
+av
+av
+Ys
+Ys
+av
+Ys
+Ys
+Ys
+Hf
+ZV
+Hf
+Ti
+Ni
+Ni
+Ti
+Ni
+aT
+Cu
+Cu
+Cu
+Cu
+ht
+al
+Eh
+HL
+BN
+nC
+nC
+Ys
+Ys
+Ys
+av
+CT
+av
+av
+Br
+Br
+"}
+(17,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+Ys
+lR
+lR
+Ys
+Ys
+Hf
+ZV
+Hf
+Ti
+Zj
+Zj
+jZ
+XB
+Ca
+Az
+qE
+AM
+ek
+gk
+mm
+GP
+ul
+BN
+nC
+nC
+nC
+Ys
+av
+av
+Ys
+av
+av
+av
+Br
+"}
+(18,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+av
+Ys
+Ys
+Ys
+nC
+Ys
+bF
+uU
+uU
+tF
+Ti
+jZ
+uq
+To
+uU
+TW
+Hv
+tC
+Ma
+BN
+jI
+GP
+hX
+BN
+nC
+nC
+nC
+Ys
+Ys
+Ys
+av
+qT
+av
+av
+av
+"}
+(19,1,1) = {"
+Br
+Br
+Br
+av
+Br
+av
+av
+Ys
+nC
+nC
+Vo
+nC
+nC
+uU
+Vq
+Ya
+kZ
+rQ
+Xn
+uU
+hI
+kW
+kA
+sM
+BN
+Ov
+ju
+LO
+BN
+nC
+nC
+nC
+Ys
+Ys
+oT
+Ys
+Ys
+av
+av
+av
+"}
+(20,1,1) = {"
+Br
+Br
+Br
+av
+av
+av
+oT
+Ys
+nC
+NR
+Ys
+If
+nC
+bF
+uU
+uU
+uU
+uE
+uU
+uU
+ms
+HR
+Zf
+VD
+BN
+BN
+BN
+BN
+Sy
+nC
+nC
+nC
+Ys
+Ys
+av
+Ys
+Cn
+av
+av
+Br
+"}
+(21,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+Ys
+av
+nC
+xC
+Ys
+If
+nC
+nC
+nC
+nC
+sb
+RL
+sb
+sb
+YH
+HR
+kA
+PK
+NY
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+Ys
+ts
+av
+av
+av
+av
+av
+Br
+"}
+(22,1,1) = {"
+Br
+Br
+Br
+av
+av
+av
+av
+vP
+nC
+nr
+IT
+nC
+zV
+sb
+sb
+sb
+sb
+eU
+sb
+sb
+VY
+ZU
+PX
+VY
+VY
+VY
+VY
+eq
+nC
+nC
+nC
+nC
+Ys
+vP
+av
+Ys
+Ys
+av
+av
+Br
+"}
+(23,1,1) = {"
+Br
+Br
+Br
+av
+Br
+av
+av
+hJ
+nC
+nC
+nC
+nC
+sb
+AE
+ey
+sb
+hp
+Hk
+eY
+AH
+VY
+ac
+NS
+Qo
+NS
+uD
+KH
+VY
+nC
+nC
+nC
+nC
+If
+av
+Ys
+CT
+av
+av
+Br
+Br
+"}
+(24,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+av
+Ys
+av
+nC
+nC
+nC
+sb
+AF
+ux
+Bc
+Cj
+zI
+oy
+uA
+VY
+qj
+ee
+EH
+KH
+xk
+KH
+VY
+nC
+nC
+nC
+If
+Ys
+Ys
+Ys
+Ys
+av
+av
+av
+Br
+"}
+(25,1,1) = {"
+Br
+Br
+Br
+Br
+bJ
+Br
+av
+oT
+av
+Ys
+nC
+nC
+sb
+RV
+yY
+sb
+TU
+LL
+vI
+Zr
+VY
+VC
+SH
+IQ
+KH
+qN
+KH
+VY
+nC
+nC
+nC
+If
+av
+av
+Ys
+Ys
+av
+Br
+av
+Br
+"}
+(26,1,1) = {"
+Br
+Br
+Br
+av
+av
+Br
+av
+Ys
+Ys
+yr
+Ys
+nC
+zV
+sb
+sb
+sb
+DH
+Cp
+Ks
+eQ
+VY
+qx
+Jp
+XF
+KH
+Oz
+KH
+VY
+nC
+nC
+If
+If
+av
+Cn
+lR
+av
+av
+Br
+av
+Br
+"}
+(27,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+av
+nZ
+YP
+vP
+Po
+Cn
+nC
+nC
+nC
+zV
+sb
+sb
+sb
+sb
+VY
+VY
+VY
+VY
+VY
+VY
+VY
+eq
+nC
+nC
+If
+Ys
+av
+av
+CA
+av
+av
+Br
+Br
+Br
+"}
+(28,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+Ys
+lR
+nC
+Ys
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+If
+If
+Ys
+Ys
+av
+CA
+av
+av
+Br
+av
+Br
+"}
+(29,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+CT
+av
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+Vo
+If
+Ys
+av
+Ys
+oT
+av
+av
+av
+av
+Br
+Br
+"}
+(30,1,1) = {"
+Br
+Br
+Br
+Br
+av
+av
+av
+av
+Ys
+Ys
+Xl
+nC
+nC
+nC
+nC
+Ys
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+If
+If
+If
+nb
+av
+av
+Ys
+av
+Br
+Br
+Br
+Br
+"}
+(31,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+av
+Ys
+Ys
+Ys
+Ys
+av
+Cn
+av
+av
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+nC
+Vo
+Vo
+nb
+nb
+MW
+nb
+Ys
+Ym
+Ys
+av
+Br
+av
+Br
+Br
+"}
+(32,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+CT
+Ys
+av
+av
+av
+Ys
+Ys
+Ys
+nC
+nC
+nC
+nC
+Vo
+Vo
+Vo
+If
+If
+nb
+MW
+If
+nb
+nb
+Ys
+Ys
+av
+av
+av
+Br
+Br
+"}
+(33,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+av
+av
+av
+Ys
+CT
+Ys
+nb
+If
+nC
+nC
+nC
+nC
+HS
+Im
+nb
+Fp
+nb
+gE
+nb
+nb
+Cn
+Ys
+av
+av
+Br
+av
+Br
+Br
+"}
+(34,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+av
+Br
+av
+Br
+av
+av
+av
+hJ
+If
+MW
+If
+nb
+nb
+MW
+il
+MW
+If
+nb
+If
+Ys
+kG
+Ys
+av
+av
+Br
+Br
+Br
+Br
+Br
+"}
+(35,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+Br
+Br
+Br
+Br
+av
+Br
+Br
+Br
+av
+av
+av
+av
+qT
+If
+nb
+hJ
+Ys
+ts
+av
+av
+GX
+Ys
+Ys
+av
+av
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(36,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+av
+Br
+av
+Br
+av
+av
+Br
+Br
+av
+av
+av
+av
+av
+av
+av
+Br
+av
+av
+av
+av
+Br
+av
+Br
+Br
+Br
+Br
+Br
+"}
+(37,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+av
+Br
+av
+av
+av
+Br
+Br
+Br
+Br
+av
+av
+av
+Br
+Br
+av
+av
+Br
+Br
+Br
+av
+av
+av
+av
+Br
+Br
+Br
+Br
+"}
+(38,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+Br
+Br
+av
+Br
+Br
+av
+av
+Br
+Br
+av
+av
+av
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(39,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+av
+av
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
+(40,1,1) = {"
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+Br
+"}
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_heron.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_heron.dmm
index d963eb303b65..1f7ec30266fd 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_heron.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_heron.dmm
@@ -2013,7 +2013,7 @@
pixel_x = -8;
pixel_y = 5
},
-/obj/item/weldingtool/experimental{
+/obj/item/weldingtool/electric{
pixel_x = 7;
pixel_y = 4
},
@@ -8108,13 +8108,13 @@
"and" = (
/obj/structure/window/reinforced/spawner,
/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq{
pixel_y = 3
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq{
pixel_y = -2
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq{
pixel_y = -7
},
/obj/item/attachment/foldable_stock,
@@ -8213,19 +8213,19 @@
pixel_x = 5;
pixel_y = 4
},
-/obj/item/ammo_box/c9mm{
+/obj/item/storage/box/ammo/c9mm{
pixel_x = 4;
pixel_y = -6
},
-/obj/item/ammo_box/c9mm{
+/obj/item/storage/box/ammo/c9mm{
pixel_x = 4;
pixel_y = 1
},
-/obj/item/ammo_box/c9mm{
+/obj/item/storage/box/ammo/c9mm{
pixel_x = 4;
pixel_y = 9
},
-/obj/item/ammo_box/c9mm/ap{
+/obj/item/storage/box/ammo/c9mm_ap{
pixel_x = 4;
pixel_y = 17
},
@@ -14617,9 +14617,9 @@
/obj/item/clothing/suit/armor/vest/marine/heavy,
/obj/item/clothing/suit/armor/vest/marine/medium,
/obj/item/clothing/suit/armor/vest/marine/medium,
-/obj/item/clothing/head/helmet/marine/security,
-/obj/item/clothing/head/helmet/marine,
-/obj/item/clothing/head/helmet/marine,
+/obj/item/clothing/head/helmet/gezena,
+/obj/item/clothing/head/helmet/gezena,
+/obj/item/clothing/head/helmet/gezena,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/head/helmet/plate,
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
index cb0b752cd930..ab4b6d8b356b 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm
@@ -92,7 +92,7 @@
name = "armory locker";
req_one_access_txt = "1"
},
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
/turf/open/floor/mineral/plastitanium,
/area/ruin/unpowered/crashed_starwalker)
"bL" = (
@@ -940,7 +940,7 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/crate/secure/gear,
-/obj/item/ammo_box/c10mm/surplus,
+/obj/item/storage/box/ammo/c10mm_surplus,
/obj/item/weaponcrafting/stock,
/obj/item/weaponcrafting/stock{
pixel_x = -6
@@ -1241,7 +1241,7 @@
pixel_x = 6;
pixel_y = 5
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_y = 6
},
/turf/open/floor/plasteel/dark,
@@ -2001,7 +2001,7 @@
req_one_access_txt = "1"
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
pixel_y = 6
},
@@ -2022,7 +2022,7 @@
/turf/open/floor/engine/hull/interior,
/area/overmap_encounter/planetoid/lava/explored)
"Hl" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/contraband/random{
pixel_y = -32
@@ -2378,7 +2378,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/unpowered/crashed_starwalker)
"Mk" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/pod/light,
@@ -2415,7 +2415,7 @@
pixel_x = -26
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/pod/light,
/area/ruin/unpowered/crashed_starwalker)
"MO" = (
@@ -2447,7 +2447,7 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit,
/area/ruin/unpowered/crashed_starwalker)
"MX" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/railing{
dir = 4
},
@@ -2480,7 +2480,7 @@
icon_state = "gib3-old";
pixel_x = -6
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/yellow{
+/obj/item/melee/energy/sword/saber/pirate/yellow{
pixel_x = -5;
pixel_y = 16
},
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
index f3ab87f2916f..39353aeaa86f 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_SPOOKYCRASH.dmm
@@ -49,7 +49,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"m" = (
/obj/structure/table,
-/obj/item/soulstone/anybody,
+/obj/item/storage/belt/chameleon,
/obj/item/toy/plush/lizardplushie,
/obj/machinery/light/broken/directional/north,
/obj/structure/window/reinforced/spawner,
@@ -189,7 +189,7 @@
"O" = (
/obj/effect/mob_spawn/human/corpse/damaged,
/obj/item/clothing/shoes/jackboots,
-/obj/item/clothing/under/color/khaki/buster,
+/obj/item/clothing/glasses/welding/ghostbuster,
/obj/item/clothing/glasses/welding/ghostbuster,
/obj/effect/decal/cleanable/blood,
/turf/open/floor/mineral/plastitanium/red,
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm
index 267dd8eb859f..095c2356d906 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_codelab.dmm
@@ -2,7 +2,7 @@
"ai" = (
/obj/effect/decal/cleanable/molten_object,
/obj/structure/table/chem,
-/obj/item/slime_extract/darkblue{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = -7
},
/obj/item/reagent_containers/glass/beaker/cryoxadone{
@@ -1545,15 +1545,15 @@
pixel_x = 8
},
/obj/structure/table,
-/obj/item/slime_extract/green{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = -4;
pixel_y = 11
},
-/obj/item/slime_extract/green{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = -11;
pixel_y = 11
},
-/obj/item/slime_extract/green{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = -7;
pixel_y = 5
},
@@ -1743,7 +1743,7 @@
})
"rw" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/buried_shrine{
name = "Nanotrasen Genetic Research Laboratory"
@@ -2046,10 +2046,10 @@
"uA" = (
/obj/machinery/light/dim/directional/north,
/obj/structure/table/chem,
-/obj/item/slimecrossbeaker/autoinjector/slimestimulant{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_y = 11
},
-/obj/item/slimecrossbeaker/omnizine,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/obj/item/reagent_containers/glass/beaker{
pixel_y = 10;
pixel_x = -9
@@ -3109,7 +3109,7 @@
name = "Nanotrasen Genetic Research Reception"
})
"DD" = (
-/obj/machinery/porta_turret/ai,
+/obj/machinery/porta_turret,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/corprejectvault{
name = "Nanotrasen Genetic Research Storage"
@@ -4651,7 +4651,7 @@
})
"UA" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/storage/box/cups,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/buried_shrine{
@@ -4753,7 +4753,7 @@
})
"Wa" = (
/obj/structure/table,
-/obj/item/slime_extract/grey,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/obj/item/reagent_containers/glass/beaker{
pixel_y = 10;
pixel_x = -9
@@ -4815,7 +4815,7 @@
pixel_y = 9;
pixel_x = 10
},
-/obj/item/slime_extract/grey,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered/buried_shrine{
name = "Nanotrasen Genetic Research Laboratory"
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
index 5089582d8bae..c736eba02a24 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm
@@ -104,7 +104,7 @@
})
"AV" = (
/obj/structure/table/reinforced,
-/obj/item/paper/crumpled/awaymissions/moonoutpost19/hastey_note{
+/obj/item/paper/crumpled/muddy{
desc = "It seems like it was written in a hurry";
default_raw_text = "Hey, you're probably reading this after having killed me, but that's alright. I probably shot first. Names' Yuto, Syndicate Radio Operator, there used to be another op here, a nice one too. Had syndicate command not forgotten about this post, we'd of probably been executed for sentinmental attachments on the job. Although she didn't have to worry about that, the local fauna got her first. I guess this note is my way of saying sorry. Take what you want from this station and my body, you need it more than I do now. Good luck out there, whoever you are. - Syndicate Radio
e f.";
pixel_x = -3;
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm
index 62d564e35ab1..3e113329fe74 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm
@@ -73,7 +73,7 @@
/obj/structure/windoor_assembly{
dir = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating/rust,
/area/ruin/unpowered/corprejectrooms{
name = "Pinnace Wreckage"
@@ -183,7 +183,7 @@
name = "Pinnace Wreckage"
})
"pA" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/overmap_encounter/planetoid/lava/explored)
"rr" = (
@@ -439,7 +439,7 @@
name = "Pinnace Wreckage"
})
"Fv" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/corprejectrooms{
name = "Pinnace Wreckage"
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
index 50c80a9e6cf9..ffbbc2d858f1 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm
@@ -7,12 +7,12 @@
/area/ruin/unpowered)
"c" = (
/obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d,
-/turf/open/floor/sepia{
+/turf/open/floor/plasteel/sepia{
slowdown = 10
},
/area/ruin/unpowered)
"d" = (
-/turf/open/floor/sepia{
+/turf/open/floor/plasteel/sepia{
slowdown = 10
},
/area/ruin/unpowered)
@@ -20,14 +20,14 @@
/obj/machinery/door/airlock/wood{
dir = 4
},
-/turf/open/floor/sepia{
+/turf/open/floor/plasteel/sepia{
slowdown = 10
},
/area/ruin/unpowered)
"g" = (
/obj/structure/bed,
/obj/item/bedsheet/brown,
-/turf/open/floor/sepia{
+/turf/open/floor/plasteel/sepia{
slowdown = 10
},
/area/ruin/unpowered)
@@ -36,7 +36,7 @@
/obj/item/toy/plush/lizardplushie{
name = "Mark"
},
-/turf/open/floor/sepia{
+/turf/open/floor/plasteel/sepia{
slowdown = 10
},
/area/ruin/unpowered)
diff --git a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
index fda16098a148..8e12f3a2331e 100644
--- a/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
+++ b/_maps/_mod_celadon/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm
@@ -164,8 +164,8 @@
/area/ruin/lavaland/factory/manager_office)
"bE" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/obj/item/storage/bag/trash,
/obj/item/reagent_containers/glass/bucket,
/obj/item/mop,
@@ -216,7 +216,7 @@
"cm" = (
/obj/structure/table/wood,
/obj/machinery/light/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/wood,
/area/ruin/lavaland/factory/adminstrative)
"co" = (
@@ -641,7 +641,7 @@
},
/obj/item/modular_computer/laptop,
/obj/item/stack/arcadeticket,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"go" = (
@@ -1506,7 +1506,7 @@
},
/obj/item/storage/wallet/random,
/obj/item/instrument/guitar,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"oh" = (
@@ -1887,7 +1887,7 @@
/obj/item/poster/random_contraband,
/obj/item/toy/eightball,
/obj/item/toy/cards/deck/tarot,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"rh" = (
@@ -2286,7 +2286,7 @@
/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
/obj/item/lighter/greyscale,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"ve" = (
@@ -2716,7 +2716,7 @@
/obj/item/ammo_box/magazine/smgm9mm{
start_empty = 1
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq,
/turf/open/floor/plasteel/dark,
/area/ruin/lavaland/factory/dorms)
"zC" = (
@@ -2984,7 +2984,7 @@
/obj/machinery/light/directional/west,
/obj/item/melee/knife/hunting,
/obj/item/clothing/suit/hooded/cloak/goliath,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
"CW" = (
@@ -3148,12 +3148,12 @@
/obj/effect/turf_decal/corner/opaque/ntblue{
dir = 1
},
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/white,
/area/ruin/lavaland/factory/dorms)
@@ -3532,7 +3532,7 @@
/obj/structure/flippedtable{
dir = 4
},
-/obj/item/reagent_containers/food/drinks/bottle/molotov,
+/obj/item/reagent_containers/food/drinks/molotov,
/obj/item/lighter/greyscale{
pixel_x = -8;
pixel_y = -7
@@ -4061,11 +4061,11 @@
/area/overmap_encounter/planetoid/cave/explored)
"Or" = (
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -4944,9 +4944,9 @@
/obj/effect/turf_decal/corner/opaque/bar,
/obj/structure/closet/crate/bin,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plasteel,
/area/ruin/lavaland/factory/dorms)
"Xn" = (
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
index a2888e3de87c..9abec503af60 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm
@@ -109,7 +109,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/nanotrasen)
"by" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel,
@@ -960,21 +960,21 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"pj" = (
/obj/structure/table/reinforced,
-/obj/item/slime_extract/grey{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = -4;
pixel_y = -1
},
-/obj/item/slime_extract/grey{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = 8
},
-/obj/item/slime_extract/grey,
-/obj/item/slime_extract/grey,
-/obj/item/slime_extract/green{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_x = 4;
pixel_y = -6
},
/obj/structure/window/reinforced,
-/obj/item/slime_scanner,
+/obj/item/t_scanner,
/turf/open/floor/engine,
/area/ruin/rockplanet/nanotrasen)
"pl" = (
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_crash.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_crash.dmm
index 2e32dddf2a0b..25f2ef15b176 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_crash.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_crash.dmm
@@ -515,7 +515,7 @@
/obj/item/flashlight/glowstick/red{
on = 1
},
-/mob/living/simple_animal/hostile/hivebot/strong/rockplanet,
+/mob/living/simple_animal/hostile/hivebot/strong,
/turf/open/floor/plating,
/area/ruin/unpowered)
"qS" = (
@@ -942,7 +942,7 @@
/obj/effect/turf_decal/corner/opaque/blue{
dir = 1
},
-/mob/living/simple_animal/hostile/hivebot/strong/rockplanet,
+/mob/living/simple_animal/hostile/hivebot/strong,
/turf/open/floor/plating,
/area/ruin/unpowered)
"Dc" = (
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_distillery.dmm
index 655a420f7a05..5b65260ac512 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_distillery.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_distillery.dmm
@@ -395,7 +395,7 @@
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"dZ" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/spline/fancy/opaque/white,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
@@ -592,11 +592,11 @@
start_empty = 1;
layer = 3.1
},
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/carpet,
/area/ruin/rockplanet/distillery/office)
"gM" = (
@@ -1604,12 +1604,12 @@
"sQ" = (
/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/crew)
"tc" = (
@@ -2177,7 +2177,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/pod,
/area/ruin/rockplanet/distillery/office)
"yO" = (
@@ -3019,10 +3019,10 @@
"Iz" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline/red,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
+/obj/effect/spawner/random/circuit/computer/common,
+/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/random/circuit/machine/common,
+/obj/effect/spawner/random/circuit/machine/common,
/turf/open/floor/plasteel/patterned/brushed/rockplanet,
/area/ruin/rockplanet/distillery/crew)
"IA" = (
@@ -3069,11 +3069,11 @@
/obj/structure/closet/crate/secure/weapon{
name = "ammo crate"
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_x = -3
},
/obj/item/ammo_box/magazine/illestren_a850r,
-/obj/item/ammo_box/c9mm/ap,
+/obj/item/storage/box/ammo/c9mm_ap,
/obj/item/ammo_box/magazine/illestren_a850r,
/obj/item/ammo_box/magazine/co9mm{
start_empty = 1
@@ -3081,7 +3081,7 @@
/obj/item/ammo_box/magazine/co9mm{
start_empty = 1
},
-/obj/item/ammo_box/a357{
+/obj/item/storage/box/ammo/a357{
pixel_x = 3
},
/obj/machinery/button/door{
@@ -3406,7 +3406,7 @@
icon_state = "1-5"
},
/obj/machinery/light/small/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/wood/rockplanet{
icon_state = "wood-broken6"
},
@@ -3569,7 +3569,7 @@
},
/area/overmap_encounter/planetoid/rockplanet/explored)
"Os" = (
-/obj/machinery/vending/snack/random{
+/obj/effect/spawner/random/vending/snack{
tilted = 1
},
/obj/effect/turf_decal/spline/fancy/opaque/white,
@@ -4169,7 +4169,7 @@
/obj/structure/fluff/glowshroom,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/wood,
/area/ruin/rockplanet/distillery/crew)
"Vg" = (
@@ -4183,7 +4183,7 @@
widenet = 1
},
/obj/machinery/light/small/broken/directional/east,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/patterned/brushed,
/area/ruin/rockplanet/distillery/crew)
"Vj" = (
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
index 937f7d7a0783..b9fb86484131 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
@@ -255,7 +255,7 @@
pixel_x = 5;
pixel_y = 7
},
-/obj/item/ammo_box/foambox/riot{
+/obj/item/storage/box/ammo/foam_darts/riot{
pixel_x = -3;
pixel_y = -3
},
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
index ff58248ffc4e..6db4bf5240a2 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_nomadcrash.dmm
@@ -408,7 +408,7 @@
icon_state = "1-8"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plasteel/rockplanet,
/area/ruin/rockplanet/nomad)
"oz" = (
@@ -558,7 +558,7 @@
},
/obj/structure/frame/machine,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plating,
/area/ruin/rockplanet/nomad)
"sn" = (
@@ -1272,7 +1272,7 @@
icon_state = "spline_plain_cee"
},
/obj/structure/frame/machine,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/nomad)
"Lk" = (
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_saloon.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_saloon.dmm
index 00451c3d2b3d..d4f95ea87cb5 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_saloon.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_saloon.dmm
@@ -723,7 +723,7 @@
pixel_x = 3;
pixel_y = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 10
@@ -1266,7 +1266,7 @@
/area/ruin/unpowered)
"Ms" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ruin/unpowered)
@@ -1416,7 +1416,7 @@
/area/ruin/unpowered)
"QZ" = (
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ri" = (
@@ -1596,9 +1596,9 @@
pixel_x = 4;
pixel_y = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
@@ -1672,7 +1672,7 @@
/area/ruin/unpowered)
"XZ" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
diff --git a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
index d8c9061355aa..a51c2203dd49 100644
--- a/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
+++ b/_maps/_mod_celadon/RandomRuins/RockRuins/rockplanet_shippingdock.dmm
@@ -288,7 +288,7 @@
/turf/open/floor/wood,
/area/ruin/rockplanet/shippingdockoffice)
"cz" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
@@ -2002,7 +2002,7 @@
},
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
-/obj/item/storage/pistolcase/ringneck,
+/obj/item/storage/guncase/pistol/ringneck,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdocksecure)
"rK" = (
@@ -2068,7 +2068,7 @@
"sa" = (
/obj/effect/turf_decal/rechargefloor,
/obj/effect/turf_decal/industrial/warning/dust,
-/obj/effect/spawner/lootdrop/ripley,
+/obj/effect/spawner/random/exotic/ripley,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/shippingdockwarehouse)
"sc" = (
@@ -2132,7 +2132,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"su" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -2431,7 +2431,7 @@
/area/ruin/rockplanet/shippingdockoffice)
"uo" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/trash/can,
/obj/item/trash/can/food/peaches,
/obj/item/trash/tray,
@@ -4049,7 +4049,7 @@
},
/area/overmap_encounter/planetoid/rockplanet/explored)
"HL" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
@@ -4213,7 +4213,7 @@
/turf/open/floor/concrete/pavement,
/area/ruin/rockplanet/shippingdockwarehouse)
"Ju" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/rockplanet/shippingdock)
"Jz" = (
@@ -4361,7 +4361,9 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/effect/spawner/bundle/costume/marisawizard,
+/obj/item/clothing/head/wizard/marisa/fake,
+/obj/item/clothing/suit/wizrobe/marisa/fake,
+/obj/item/clothing/shoes/wizrobe/marisa,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"Kt" = (
@@ -5288,9 +5290,9 @@
"SJ" = (
/obj/structure/rack,
/obj/structure/window/reinforced,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"SM" = (
@@ -5974,7 +5976,7 @@
/obj/structure/window/reinforced{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/turf/open/floor/plasteel/mono/white,
/area/ruin/rockplanet/shippingdockwarehouse)
"XU" = (
@@ -6026,7 +6028,7 @@
"Yf" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/concrete/pavement{
light_power = 0.6;
light_range = 2
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
index d6238dcf237b..b5a8b09b142d 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm
@@ -115,7 +115,7 @@
/area/ruin)
"fb" = (
/obj/structure/flora/ash/cap_shroom,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -269,7 +269,7 @@
/area/overmap_encounter/planetoid/sand/explored)
"ko" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin)
@@ -290,7 +290,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"kO" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -916,7 +916,7 @@
/turf/open/floor/wood,
/area/ruin)
"HX" = (
-/obj/effect/spawner/lootdrop/armory_contraband/metastation,
+/obj/effect/spawner/random/exotic/armory,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -965,7 +965,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"JE" = (
-/obj/effect/spawner/lootdrop/tool_engie_sydnie,
+/obj/effect/spawner/random/engineering/tool/sydnie,
/turf/open/floor/plating/asteroid/whitesands{
light_range = 2
},
@@ -996,7 +996,7 @@
"KJ" = (
/obj/structure/table,
/obj/item/gun/ballistic/automatic/smg/skm_carbine,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_762_40,
/turf/open/floor/concrete,
/area/ruin)
"Ld" = (
@@ -1165,7 +1165,7 @@
},
/area/overmap_encounter/planetoid/sand/explored)
"SV" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/whitesands/dried{
light_range = 2
},
@@ -1274,7 +1274,7 @@
/area/ruin)
"Xa" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin)
"Xb" = (
@@ -1302,7 +1302,7 @@
"XP" = (
/obj/structure/table,
/obj/item/trash/can,
-/obj/item/ammo_box/c45/surplus,
+/obj/item/storage/box/ammo/c45_surplus,
/turf/open/floor/concrete,
/area/ruin)
"XS" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
index a20f5cf8d265..a65de81b5ffd 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_drugstore.dmm
@@ -23,10 +23,10 @@
/area/ruin/unpowered)
"e" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/unpowered)
@@ -126,8 +126,8 @@
/area/ruin/unpowered)
"t" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/turf/open/floor/wood,
/area/ruin/unpowered)
"u" = (
@@ -184,8 +184,8 @@
},
/area/ruin/unpowered)
"E" = (
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/gloves,
/obj/structure/window,
/obj/structure/rack,
/turf/open/floor/wood,
@@ -203,7 +203,7 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"G" = (
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/clothing/costume,
/obj/structure/window,
/obj/structure/rack,
/turf/open/floor/wood,
@@ -239,8 +239,8 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"M" = (
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/gloves,
/obj/item/shard{
icon_state = "tiny"
},
@@ -284,7 +284,7 @@
/turf/template_noop,
/area/template_noop)
"T" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
/area/ruin/unpowered)
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index d4c307df25d7..c4b81f94a8e0 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -133,7 +133,7 @@
/area/ruin/whitesands/saloon)
"eq" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
@@ -220,7 +220,7 @@
/area/ruin/whitesands/saloon)
"ge" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood{
icon_state = "wood-broken5"
@@ -426,7 +426,7 @@
/area/ruin/whitesands/saloon)
"lg" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"lB" = (
@@ -444,7 +444,7 @@
/area/ruin/whitesands/saloon)
"lI" = (
/obj/structure/table/wood/poker,
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/obj/item/spacecash/bundle/loadsamoney,
/turf/open/floor/carpet,
/area/ruin/whitesands/saloon)
@@ -646,7 +646,7 @@
/area/ruin/whitesands/saloon)
"sj" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/chair/stool/bar,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
@@ -1023,7 +1023,7 @@
/area/ruin/whitesands/saloon)
"EV" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/item/gun/energy/plasmacutter{
icon_state = "pulse_carbine";
@@ -1587,7 +1587,7 @@
/area/ruin/whitesands/saloon)
"Wl" = (
/obj/structure/closet/cabinet,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"WP" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_conveniencestore.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_conveniencestore.dmm
index afab861b7012..cd72b3ffeae7 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_conveniencestore.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_conveniencestore.dmm
@@ -141,7 +141,7 @@
/turf/template_noop,
/area/template_noop)
"uM" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"wd" = (
@@ -213,7 +213,7 @@
/turf/closed/wall,
/area/ruin/unpowered)
"FX" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"Gr" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
index 4961ef905901..b10dc6d9b231 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_medipen_plant.dmm
@@ -751,7 +751,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uu" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -760,7 +760,7 @@
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"uz" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -852,7 +852,7 @@
},
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ruin/powered)
"xd" = (
@@ -1218,7 +1218,7 @@
/area/ruin/powered)
"KU" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
index 397dff3689ee..5953e29111ee 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm
@@ -225,8 +225,8 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/five,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel,
/area/ruin/whitesands/pubbycrash)
"fO" = (
@@ -405,7 +405,7 @@
dir = 8;
name = "engine fuel pump"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"jt" = (
@@ -502,7 +502,7 @@
"ln" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/emcloset/wall/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/whitesands/pubbycrash/engine_room)
"ly" = (
@@ -530,7 +530,7 @@
name = "engine fuel pump"
},
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/sheet/mineral/wood/fifty,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/tech,
@@ -622,7 +622,7 @@
/area/ruin/whitesands/pubbycrash)
"nP" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"nQ" = (
@@ -780,7 +780,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"rT" = (
@@ -931,7 +931,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"vL" = (
@@ -972,7 +972,7 @@
/obj/structure/sign/poster/official/random{
pixel_x = 32
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/whitesands/pubbycrash)
@@ -1063,7 +1063,7 @@
/obj/structure/table,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"xX" = (
@@ -1792,7 +1792,7 @@
/obj/structure/sign/poster/retro/nanotrasen_logo_70s{
pixel_x = -32
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ruin/whitesands/pubbycrash/engine_room)
"KT" = (
@@ -2003,7 +2003,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ruin/whitesands/pubbycrash/engine_room)
"PA" = (
@@ -2118,7 +2118,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/whitesands/pubbycrash/engine_room)
"RC" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/stack/ore/salvage/scraptitanium,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine,
@@ -2292,7 +2292,7 @@
/obj/structure/sign/number/two,
/obj/item/stack/ore/salvage/scrapmetal,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/engine,
/area/ruin/whitesands/pubbycrash)
"Wo" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm
index 126ebb818766..b62f05e99b4d 100644
--- a/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm
@@ -243,7 +243,7 @@
/turf/open/floor/plasteel,
/area/ruin/powered)
"hy" = (
-/obj/structure/statue/gold/hos,
+/obj/structure/statue/bronze/masson_kills,
/turf/open/floor/wood,
/area/ruin/powered)
"hC" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/DJstation.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/DJstation.dmm
index d42ce9d3ae43..ff5fae118f1b 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/DJstation.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/DJstation.dmm
@@ -174,7 +174,7 @@
name = "Listening Post"
})
"aB" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/grimy,
/area/ruin/space/has_grav/powered{
name = "Listening Post"
@@ -320,7 +320,7 @@
})
"aP" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/corner/opaque/white{
dir = 1
},
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/Fast_Food.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/Fast_Food.dmm
index 2471e5dd669f..464b046c9cb5 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/Fast_Food.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/Fast_Food.dmm
@@ -1750,7 +1750,6 @@
name = "Mac Space Restaurant"
})
"df" = (
-/obj/structure/statue/silver/sec,
/turf/open/floor/mineral/titanium,
/area/ruin/space/has_grav{
name = "Mac Space Restaurant"
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/astraeus.dmm
index 2224e0dd60ad..4465897faebb 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/astraeus.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/astraeus.dmm
@@ -101,7 +101,7 @@
/turf/open/space,
/area/space/nearstation)
"dx" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"dA" = (
@@ -326,7 +326,7 @@
/turf/open/space,
/area/space/nearstation)
"jd" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"je" = (
@@ -349,7 +349,7 @@
/obj/machinery/conveyor{
dir = 6
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"jT" = (
@@ -556,7 +556,7 @@
/area/ruin/space/has_grav/astraeus/bridge)
"pT" = (
/obj/item/stack/conveyor,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"pU" = (
@@ -621,7 +621,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark/airless,
/area/ruin/space/has_grav/astraeus/bridge)
"rk" = (
@@ -675,7 +675,7 @@
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"sL" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/dorms_med)
"sR" = (
@@ -731,7 +731,7 @@
"uH" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
lootcount = 2;
name = "2maintenance loot spawner"
},
@@ -800,7 +800,7 @@
/obj/machinery/conveyor{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"wl" = (
@@ -1375,7 +1375,7 @@
/obj/machinery/conveyor/inverted{
dir = 9
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/disposals)
"KD" = (
@@ -1558,7 +1558,7 @@
/obj/machinery/power/apc/auto_name/directional/east{
start_charge = 0
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/airless,
/area/ruin/space/has_grav/astraeus/munitions)
"Pd" = (
@@ -1736,7 +1736,7 @@
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered)
"UK" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ruin/space/has_grav/astraeus/hallway)
"UU" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/corporate_mining.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/corporate_mining.dmm
index 6302f09741b0..a93c9e982708 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/corporate_mining.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/corporate_mining.dmm
@@ -813,7 +813,7 @@
/obj/effect/decal/cleanable/oil/slippery,
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"sb" = (
@@ -1587,8 +1587,8 @@
"IF" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"IS" = (
@@ -1771,7 +1771,7 @@
"NH" = (
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/space/has_grav/corporatemine/hall)
"NO" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/cryocontainment.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/cryocontainment.dmm
index 2e7f664f4aa3..8eb5ac7d50a8 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/cryocontainment.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/cryocontainment.dmm
@@ -394,7 +394,7 @@
/turf/open/floor/plasteel/dark/airless,
/area/ruin/unpowered)
"kT" = (
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/random/medical/beaker,
/turf/open/floor/plating/airless{
icon_state = "platingdmg2"
},
@@ -674,7 +674,7 @@
"xD" = (
/obj/structure/table/chem,
/obj/item/reagent_containers/glass/beaker/sulphuric,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/random/medical/beaker,
/turf/open/floor/plasteel/dark/airless,
/area/ruin/unpowered)
"xL" = (
@@ -1111,7 +1111,7 @@
/turf/open/floor/plasteel/dark/airless,
/area/ruin/unpowered)
"Pg" = (
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/random/medical/beaker,
/turf/open/floor/plasteel/dark/airless,
/area/ruin/unpowered)
"Po" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/dangerous_research.dmm
index 971d868c75df..d2abf5207a42 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/dangerous_research.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/dangerous_research.dmm
@@ -104,7 +104,7 @@
/area/ruin/space/has_grav)
"dA" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/structure/closet/crate,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav)
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/hellfactory.dmm
index 5e57e5bc1a6e..23d472dac61f 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/hellfactory.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/hellfactory.dmm
@@ -997,7 +997,7 @@
/obj/structure/rack,
/obj/item/stack/wrapping_paper,
/obj/item/stack/packageWrap,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/astraeus/disposals{
name = "Hell Factory"
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/ntfacility.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/ntfacility.dmm
index 2a73d1a84db3..534f47955aee 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/ntfacility.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/ntfacility.dmm
@@ -405,7 +405,7 @@
/obj/machinery/door/poddoor/preopen{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
@@ -616,7 +616,7 @@
"os" = (
/obj/item/mop,
/obj/structure/mopbucket,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -653,7 +653,7 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/vault,
@@ -1740,7 +1740,7 @@
"ML" = (
/obj/machinery/door/poddoor/preopen,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/vault,
@@ -1873,7 +1873,7 @@
name = "captain's locker";
req_access = list(103)
},
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/melee/sword/sabre,
/obj/item/clothing/suit/hooded/wintercoat/captain,
/obj/item/clothing/head/beret/captain,
@@ -1900,7 +1900,7 @@
"Rw" = (
/obj/machinery/door/poddoor/preopen,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/camera_bug,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
@@ -2078,7 +2078,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"WU" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ruin/powered)
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/oldstation.dmm
index 0fd25b700c6e..8421f96a1465 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/oldstation.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/oldstation.dmm
@@ -12,7 +12,7 @@
/area/ruin/space/has_grav/ancientstation)
"ah" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/smartfridge/extract,
+/obj/machinery/smartfridge,
/turf/open/floor/plasteel/patterned{
color = "#8a8a8a"
},
@@ -203,7 +203,7 @@
/obj/structure/table,
/obj/machinery/light/small/directional/west,
/obj/item/crowbar,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned{
color = "#8a8a8a"
@@ -1087,7 +1087,7 @@
/obj/item/reagent_containers/syringe{
pixel_x = 6
},
-/obj/item/slime_extract/grey{
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly{
pixel_y = 11
},
/turf/open/floor/plasteel/patterned{
@@ -1279,7 +1279,7 @@
"jp" = (
/obj/structure/table,
/obj/item/crowbar,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned{
@@ -1325,8 +1325,8 @@
dir = 1
},
/obj/structure/rack,
-/obj/item/gun/energy/laser/retro/sc_retro,
-/obj/item/gun/energy/laser/retro/sc_retro{
+/obj/item/gun/energy/laser/retro,
+/obj/item/gun/energy/laser/retro{
pixel_x = -5;
pixel_y = -5
},
@@ -2750,7 +2750,7 @@
/area/ruin/space/has_grav/ancientstation/betanorth)
"wd" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plasteel/patterned{
color = "#8a8a8a"
},
@@ -3754,7 +3754,7 @@
"Ei" = (
/obj/structure/table,
/obj/item/crowbar,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned{
color = "#8a8a8a"
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/power_puzzle.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/power_puzzle.dmm
index 7d284afb9ed4..bc4125341346 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/power_puzzle.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/power_puzzle.dmm
@@ -365,9 +365,9 @@
/area/ruin/space/has_grav/powerpuzzle)
"br" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
@@ -695,14 +695,14 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"cB" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/generic,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/structure/closet/crate/secure,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"cD" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/glass,
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -797,7 +797,7 @@
/obj/effect/decal/cleanable/greenglow,
/obj/item/stack/ore/salvage/scrapuranium,
/obj/item/bodypart/l_arm/robot,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/prox_sensor,
/obj/item/stack/ore/salvage/scrapuranium{
pixel_x = -4;
@@ -1116,7 +1116,7 @@
/area/ruin/space/has_grav/powerpuzzle)
"gM" = (
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/structure/closet/crate/secure,
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plasteel/dark,
@@ -1478,7 +1478,7 @@
pixel_x = 2;
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/broken/directional/south,
/obj/item/poster/random_official,
/obj/item/poster/random_official,
@@ -1677,7 +1677,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/powerpuzzle)
"rI" = (
@@ -1838,7 +1838,7 @@
/obj/structure/railing,
/obj/effect/turf_decal/corner/transparent/grey/diagonal,
/obj/item/stack/ore/salvage/scrapuranium/five,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/closet/crate/engineering,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/dark,
@@ -1850,8 +1850,8 @@
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle/empty,
/obj/item/reagent_containers/food/drinks/waterbottle,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/reagent_containers/food/snacks/sosjerky,
/obj/item/stack/medical/gauze/improvised,
@@ -2167,7 +2167,7 @@
/obj/item/ammo_casing/c9mm/surplus{
pixel_x = 6
},
-/obj/item/ammo_casing/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_casing/c9mm/surplus{
pixel_x = 3;
pixel_y = 5
@@ -2694,8 +2694,8 @@
/obj/structure/closet/crate/secure/weapon{
name = "Ammo Crate"
},
-/obj/item/ammo_box/c9mm/surplus,
-/obj/item/ammo_box/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
/turf/open/floor/plasteel,
@@ -3546,7 +3546,7 @@
dir = 4
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"VV" = (
@@ -3589,7 +3589,7 @@
dir = 6
},
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/structure/noticeboard{
pixel_x = -15;
pixel_y = 32
@@ -3647,7 +3647,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle/engineering)
"Xj" = (
@@ -3692,7 +3692,7 @@
dir = 5
},
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/powerpuzzle)
"Yr" = (
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/provinggrounds.dmm
index 1ee2e5ea427c..d145a6aa2794 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/provinggrounds.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/provinggrounds.dmm
@@ -1919,7 +1919,7 @@
/area/ruin/space/has_grav/powerpuzzle/secure)
"XA" = (
/obj/structure/rack,
-/obj/item/ammo_box/foambox/riot,
+/obj/item/storage/box/ammo/foam_darts/riot,
/obj/item/gun/ballistic/automatic/toy/pistol/riot,
/obj/structure/cable{
icon_state = "1-2"
diff --git a/_maps/_mod_celadon/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/_mod_celadon/RandomRuins/SpaceRuins/spacemall.dmm
index d4989af21fb5..48a4d23ec0c9 100644
--- a/_maps/_mod_celadon/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/_mod_celadon/RandomRuins/SpaceRuins/spacemall.dmm
@@ -320,7 +320,7 @@
/obj/item/toy/talking/AI{
pixel_x = 20
},
-/obj/item/ammo_box/foambox/riot,
+/obj/item/storage/box/ammo/foam_darts/riot,
/obj/item/gun/ballistic/shotgun/toy,
/turf/open/floor/light,
/area/ruin/space/has_grav/spacemall/shop2)
@@ -708,7 +708,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"cO" = (
/obj/effect/turf_decal/box,
-/obj/effect/spawner/lootdrop/salvage_machine,
+/obj/effect/spawner/random/salvage_machine,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"cP" = (
@@ -1299,9 +1299,9 @@
"eS" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"eU" = (
@@ -1326,7 +1326,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"eX" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -1394,7 +1394,7 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/stack/cable_coil/random/five,
-/obj/effect/spawner/lootdrop/techstorage/engineering,
+/obj/effect/spawner/random/techstorage/engineering,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"fi" = (
@@ -1402,8 +1402,8 @@
dir = 2
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"fl" = (
@@ -1658,7 +1658,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"gu" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -2437,7 +2437,7 @@
/area/ruin/space/has_grav/spacemall)
"jm" = (
/obj/structure/rack,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/item/ammo_box/magazine/co9mm{
pixel_x = 5
},
@@ -2519,9 +2519,9 @@
"jD" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/costume,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"jE" = (
@@ -3119,7 +3119,7 @@
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"lR" = (
@@ -3263,7 +3263,7 @@
"mJ" = (
/obj/structure/rack,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"mK" = (
@@ -3646,7 +3646,7 @@
/area/ruin/space/has_grav/spacemall/dorms)
"ob" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"od" = (
@@ -4056,7 +4056,7 @@
/area/ruin/space/has_grav/spacemall)
"pB" = (
/obj/effect/decal/cleanable/ash,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/structure/closet/crate,
/obj/structure/railing,
@@ -5759,7 +5759,7 @@
"vp" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"vs" = (
@@ -5876,7 +5876,7 @@
/area/ruin/space/has_grav/spacemall/shop2)
"vS" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/random/medical/beaker,
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/shop2)
@@ -6461,8 +6461,8 @@
/obj/structure/closet/crate/secure,
/obj/effect/turf_decal/box,
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/stockparts,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"yk" = (
@@ -6534,7 +6534,7 @@
/obj/structure/closet/crate/trashcart,
/obj/item/trash/popcorn,
/obj/item/trash/candy,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"yF" = (
@@ -6676,7 +6676,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"yZ" = (
@@ -6972,9 +6972,9 @@
"Ag" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/circuit/computer/common,
/obj/item/research_notes/loot,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -7277,9 +7277,9 @@
"Bq" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/secure,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"Bu" = (
@@ -7477,7 +7477,7 @@
dir = 10
},
/obj/structure/spider/stickyweb,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Cv" = (
@@ -7908,10 +7908,10 @@
/obj/item/clothing/head/hardhat/weldhat/dblue{
pixel_y = 5
},
-/obj/item/weldingtool/experimental{
+/obj/item/weldingtool/electric{
pixel_y = 5
},
-/obj/item/weldingtool/experimental,
+/obj/item/weldingtool/electric,
/obj/effect/turf_decal/siding/wideplating/dark/end{
dir = 8
},
@@ -8238,9 +8238,9 @@
/turf/open/floor/eighties,
/area/ruin/space/has_grav/spacemall/shop2)
"EI" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"EJ" = (
@@ -9577,7 +9577,7 @@
"Kl" = (
/obj/effect/decal/cleanable/robot_debris/old,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Kn" = (
@@ -10011,9 +10011,9 @@
"LS" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/circuit/computer/common,
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -10068,9 +10068,9 @@
/area/ruin/space/has_grav/spacemall/dorms)
"Mb" = (
/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/lootdrop/random_prosthetic,
-/obj/effect/spawner/lootdrop/memeorgans,
-/obj/effect/spawner/lootdrop/memeorgans,
+/obj/effect/spawner/random/medical/prosthetic,
+/obj/effect/spawner/random/medical/memeorgans,
+/obj/effect/spawner/random/medical/memeorgans,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 4
},
@@ -11278,7 +11278,7 @@
/area/ruin/space/has_grav/spacemall)
"Qf" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/random/engineering/tool/common,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
@@ -11309,7 +11309,7 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"Qn" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/transparent/green/diagonal,
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 8
@@ -11323,7 +11323,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/maint)
"Qu" = (
@@ -12230,7 +12230,7 @@
/obj/structure/rack,
/obj/effect/turf_decal/corner/transparent/black/diagonal,
/obj/machinery/light/directional/east,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shop)
"TZ" = (
@@ -12302,10 +12302,10 @@
"Ul" = (
/obj/effect/turf_decal/box,
/obj/structure/closet/crate/engineering/electrical,
-/obj/effect/spawner/lootdrop/techstorage,
-/obj/effect/spawner/lootdrop/techstorage,
-/obj/effect/spawner/lootdrop/stockparts,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/techstorage,
+/obj/effect/spawner/random/techstorage,
+/obj/effect/spawner/random/stockparts,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/spacemall/shuttle)
"Um" = (
@@ -12618,7 +12618,7 @@
},
/obj/structure/closet/crate,
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
"Vr" = (
@@ -12667,8 +12667,8 @@
"VA" = (
/obj/structure/rack,
/obj/structure/window/reinforced/spawner,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
+/obj/effect/spawner/random/medical/beaker,
+/obj/effect/spawner/random/medical/beaker,
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plasteel/white,
@@ -13471,7 +13471,7 @@
dir = 2
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/box,
/turf/open/floor/plating,
/area/ruin/space/has_grav/spacemall/maint)
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
index bebc25e7b57c..1fadae6e0ca8 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm
@@ -612,7 +612,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"fX" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/light/dim/directional/south,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -1084,8 +1084,8 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/item/mop,
/obj/item/reagent_containers/glass/bucket,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/clothing/costume,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
@@ -1445,7 +1445,7 @@
"qH" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
@@ -2278,7 +2278,7 @@
/area/ruin/wasteplanet/abandoned_mechbay/mainhall)
"Bg" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plasteel/tech/grid,
@@ -2360,13 +2360,13 @@
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
"BF" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/food/salt,
@@ -2411,7 +2411,7 @@
"Cp" = (
/obj/structure/table,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/item/stack/sheet/metal/fifty,
/obj/item/stack/sheet/glass/twenty,
/turf/open/floor/plasteel/tech/grid,
@@ -3424,7 +3424,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"Oj" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/turf/open/floor/plasteel,
/area/ruin/wasteplanet/abandoned_mechbay/crewquarters)
"Om" = (
@@ -3933,7 +3933,7 @@
"Vx" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/mecha_parts/mecha_equipment/drill/diamonddrill,
/turf/open/floor/plasteel/dark,
/area/ruin/wasteplanet/abandoned_mechbay/bay2)
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_claw_ruin.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_claw_ruin.dmm
index a15044749cce..69385fdc1021 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_claw_ruin.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_claw_ruin.dmm
@@ -39,12 +39,12 @@
/obj/machinery/light/small/directional/north{
pixel_x = -9
},
-/obj/effect/spawner/lootdrop/glowstick,
/obj/machinery/shower{
pixel_y = 13
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/spider/stickyweb,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plasteel/showroomfloor,
/area/ship/hallway/central)
"aF" = (
@@ -2112,7 +2112,6 @@
/area/ship/engineering)
"Fs" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/wasteplanet/secure_claw/dorm)
"Fx" = (
@@ -2819,12 +2818,12 @@
pixel_y = -29;
name = "ammo locker"
},
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c46x30mm_box,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/ferropellet,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"PO" = (
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
index b0375ff5e947..e3e8d73b932f 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
@@ -193,7 +193,7 @@
/area/overmap_encounter/planetoid/cave/explored)
"K" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/cave/explored)
"L" = (
@@ -265,7 +265,7 @@
/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/cave/explored)
"Y" = (
-/obj/structure/statue/bananium/clown,
+/obj/item/melee/energy/sword/bananium,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/window/reinforced/survival_pod{
dir = 8
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
index 892b5c2feabe..6c9ed7e6f8a4 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
@@ -487,7 +487,7 @@
/area/ruin/unpowered)
"Vy" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/machinery/button/door{
id = "sgkitchen";
name = "Kitchen Shutters";
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
index a938281fb4ba..4c7848f36fe8 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
@@ -19,7 +19,7 @@
/area/ruin/powered)
"am" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/flashlight/glowstick,
/obj/item/hand_labeler_refill,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -115,7 +115,7 @@
/area/ruin/powered)
"aY" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/poster/random_contraband,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -145,7 +145,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"bs" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating/rust,
@@ -222,7 +222,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/toner,
/obj/item/mop,
/obj/item/weldingtool/empty,
@@ -470,7 +470,7 @@
/turf/open/floor/carpet/royalblack,
/area/ruin/powered)
"ep" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/table,
/obj/item/coin/plastic,
/obj/item/food/butterdog,
@@ -499,7 +499,7 @@
/obj/structure/rack,
/obj/item/trash/plate,
/obj/item/trash/sosjerky,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/igniter,
/obj/item/clipboard,
/obj/item/electronics/airlock,
@@ -524,7 +524,7 @@
/area/ruin/powered)
"eO" = (
/obj/effect/gibspawner/human,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating,
/area/ruin/powered)
"eS" = (
@@ -608,13 +608,13 @@
/obj/item/stack/sheet/mineral/wood,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/trash/waffles,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/flashlight/glowstick,
/turf/open/floor/plating,
/area/ruin/powered)
"fw" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/toner/extreme,
/obj/item/poster/random_contraband,
@@ -670,7 +670,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -722,7 +722,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/coin,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
@@ -732,8 +732,8 @@
/obj/item/trash/sosjerky,
/obj/item/trash/raisins,
/obj/item/folder/blue,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"gG" = (
@@ -858,7 +858,7 @@
/obj/item/trash/can/food/beans,
/obj/structure/closet/crate,
/obj/item/trash/candy,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/prox_sensor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -960,7 +960,6 @@
/area/ruin/powered)
"jr" = (
/obj/structure/table/reinforced,
-/obj/item/slime_cookie/green,
/obj/item/toy/figure/chef,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -1120,7 +1119,7 @@
/turf/open/floor/wood,
/area/ruin/powered)
"kD" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -1154,7 +1153,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/electronics/airlock,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -1303,12 +1302,12 @@
"mc" = (
/obj/structure/closet/crate,
/obj/item/trash/raisins,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/flashlight/glowstick,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"md" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"mh" = (
@@ -1519,7 +1518,7 @@
/area/ruin/powered)
"nK" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/shovel/spoon,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -1536,7 +1535,7 @@
/obj/item/toy/plush/carpplushie,
/obj/item/toy/plush/carpplushie,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/poster/random_contraband,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -1545,7 +1544,7 @@
/obj/item/melee/baton/cattleprod,
/obj/item/restraints/handcuffs/cable/pink,
/obj/item/clothing/mask/muzzle,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"oa" = (
@@ -1570,7 +1569,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"oj" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/oil,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -1603,7 +1602,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-2"
},
@@ -1692,7 +1691,7 @@
/obj/effect/decal/cleanable/insectguts,
/obj/structure/rack,
/obj/item/folder/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/electronics/airlock,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -1742,7 +1741,7 @@
/obj/effect/decal/cleanable/generic,
/obj/structure/rack,
/obj/item/trash/sosjerky,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/prox_sensor,
/obj/item/photo,
/obj/item/poster/random_contraband,
@@ -1778,7 +1777,7 @@
/area/ruin/powered)
"pY" = (
/obj/structure/table,
-/obj/item/ammo_box/c9mm{
+/obj/item/storage/box/ammo/c9mm{
pixel_y = 6
},
/obj/item/gun/ballistic/automatic/zip_pistol,
@@ -1850,7 +1849,7 @@
/obj/item/clothing/suit/toggle/owlwings/griffinwings{
pixel_y = 5
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"qR" = (
@@ -1999,7 +1998,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -2117,7 +2116,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-2"
},
@@ -2148,7 +2147,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"tY" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating,
/area/ruin/powered)
"ub" = (
@@ -2181,7 +2180,7 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/trash/raisins,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/airlock_painter,
/obj/item/tape/random,
/obj/item/poster/random_contraband,
@@ -2450,7 +2449,7 @@
/area/ruin/powered)
"wx" = (
/obj/effect/gibspawner/human,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -2459,7 +2458,7 @@
/obj/item/circuitboard/machine/dnascanner,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/trash/semki,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/photo,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -2500,7 +2499,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"xm" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ruin/powered)
"xu" = (
@@ -2545,7 +2544,7 @@
"yb" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/generic,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
},
@@ -2590,7 +2589,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/book/manual/random,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -2603,7 +2602,7 @@
"yK" = (
/obj/structure/closet/crate,
/obj/item/folder/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"yS" = (
@@ -2615,7 +2614,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ruin/powered)
"yV" = (
@@ -2682,7 +2681,7 @@
/area/ruin/powered)
"zw" = (
/obj/effect/gibspawner/human,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"zy" = (
@@ -2862,7 +2861,7 @@
"AH" = (
/obj/structure/rack,
/obj/item/trash/raisins,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/toner,
/obj/item/assembly/prox_sensor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -2894,7 +2893,7 @@
/obj/effect/decal/cleanable/glass,
/obj/structure/closet/crate,
/obj/item/trash/semki,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/airlock_painter,
/obj/item/hand_labeler_refill,
/turf/open/floor/plating/rust,
@@ -2952,7 +2951,7 @@
/obj/structure/closet/crate,
/obj/item/trash/sosjerky,
/obj/item/trash/syndi_cakes,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
@@ -3004,7 +3003,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-2"
},
@@ -3151,7 +3150,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Db" = (
@@ -3230,7 +3229,7 @@
/area/ruin/powered)
"DX" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/toner/extreme,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -3257,7 +3256,7 @@
/obj/item/clothing/under/color/grey,
/obj/item/trash/sosjerky,
/obj/item/folder/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/book/manual/random,
/obj/item/poster/random_contraband,
/turf/open/floor/plating/rust,
@@ -3267,7 +3266,7 @@
/obj/structure/closet/crate,
/obj/item/trash/sosjerky,
/obj/item/trash/candy,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/book/manual/random,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -3460,7 +3459,7 @@
/area/ruin/powered)
"Gd" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Gg" = (
@@ -3634,7 +3633,7 @@
/area/ruin/powered)
"Ib" = (
/obj/structure/table/wood/poker,
-/obj/item/gun/ballistic/revolver/shadow/no_mag,
+/obj/item/gun/ballistic/revolver/shadow/empty,
/obj/item/ammo_casing/a44roum,
/turf/open/floor/wood,
/area/ruin/powered)
@@ -3709,7 +3708,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"IE" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/blood,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/generic,
@@ -3831,7 +3830,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-2"
},
@@ -3840,7 +3839,7 @@
"JK" = (
/obj/structure/closet/crate,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/clipboard,
/turf/open/floor/plating,
/area/ruin/powered)
@@ -4048,7 +4047,7 @@
/obj/item/clothing/under/misc/assistantformal,
/obj/item/clothing/under/misc/assistantformal,
/obj/item/clothing/under/misc/assistantformal,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ruin/powered)
"LR" = (
@@ -4179,7 +4178,7 @@
/obj/structure/rack,
/obj/item/trash/sosjerky,
/obj/item/trash/candy,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Ny" = (
@@ -4223,7 +4222,7 @@
/obj/structure/rack,
/obj/item/trash/candy,
/obj/item/folder/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/electronics/airlock,
/obj/item/hot_potato/harmless/toy,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -4332,7 +4331,7 @@
"Ox" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"OE" = (
@@ -4341,7 +4340,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"OI" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"OM" = (
@@ -4433,7 +4432,7 @@
/area/ruin/powered)
"PA" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"PE" = (
@@ -4509,7 +4508,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Qm" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -4537,7 +4536,7 @@
/obj/structure/closet/crate,
/obj/item/trash/sosjerky,
/obj/item/trash/raisins,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/toner,
/obj/item/flashlight/glowstick,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -4587,7 +4586,7 @@
/obj/structure/rack,
/obj/item/trash/plate,
/obj/item/trash/raisins,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/book/manual/random,
/obj/item/paper,
/turf/open/floor/plating,
@@ -4660,7 +4659,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"RX" = (
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/structure/table/wood/poker,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -4684,7 +4683,7 @@
/area/ruin/powered)
"Sb" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/assembly/prox_sensor,
/obj/item/camera,
/turf/open/floor/plating,
@@ -4807,8 +4806,8 @@
"Tk" = (
/obj/structure/closet/crate,
/obj/item/trash/popcorn,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/prox_sensor,
/turf/open/floor/plating/rust,
/area/ruin/powered)
@@ -4838,7 +4837,7 @@
/obj/structure/rack,
/obj/item/trash/boritos,
/obj/item/trash/can/food/peaches/maint,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/decal_painter,
/obj/item/poster/random_retro,
/obj/item/poster/random_contraband,
@@ -4890,7 +4889,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -4987,7 +4986,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"UF" = (
@@ -5002,7 +5001,7 @@
/turf/open/floor/plating,
/area/ruin/powered)
"UJ" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/glass,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -5211,7 +5210,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"WM" = (
@@ -5279,7 +5278,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/assembly/prox_sensor,
/obj/item/hand_labeler_refill,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -5346,7 +5345,7 @@
"XS" = (
/obj/structure/rack,
/obj/item/trash/can/food/peaches,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/fakeartefact,
/obj/item/poster/random_retro,
/obj/item/poster/random_contraband,
@@ -5370,7 +5369,7 @@
"Yd" = (
/obj/structure/rack,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/igniter,
/obj/item/camera,
/obj/item/tape/random,
@@ -5434,7 +5433,7 @@
/obj/structure/rack,
/obj/item/trash/can/food,
/obj/item/trash/popcorn,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/toner,
/obj/item/clipboard,
/obj/item/flashlight/glowstick,
@@ -5529,7 +5528,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
/obj/item/trash/plate,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/assembly/igniter,
/obj/item/flashlight/glowstick,
/turf/open/floor/plating,
@@ -5537,7 +5536,7 @@
"Zo" = (
/obj/effect/decal/cleanable/blood,
/obj/effect/decal/cleanable/blood/gibs,
-/mob/living/simple_animal/hostile/human/cat_butcherer{
+/mob/living/simple_animal/hostile/clown/clownhulk/honcmunculus{
dir = 4
},
/turf/open/floor/plating,
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_lab.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index aa5797d05a95..bdfc9c75a4a1 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_lab.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -118,13 +118,13 @@
/area/ruin/powered)
"gw" = (
/obj/structure/table,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gx" = (
/obj/structure/table,
-/obj/item/ammo_box/c9mm/rubbershot,
+/obj/item/storage/box/ammo/c9mm_rubber,
/turf/open/floor/plasteel/mono/white,
/area/ruin/powered)
"gz" = (
@@ -699,7 +699,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"HW" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plating,
/area/ruin/powered)
"Ie" = (
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
index e251b79dc713..bd5a96224bc1 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
@@ -67,7 +67,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"db" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"ed" = (
@@ -123,7 +123,7 @@
/area/ruin/powered)
"jA" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"jE" = (
@@ -456,7 +456,7 @@
dir = 4;
id = "rockplanet_ore_process"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Ff" = (
@@ -661,7 +661,7 @@
dir = 1;
id = "rockplanet_ore_process"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Ql" = (
@@ -693,7 +693,7 @@
/turf/open/floor/plating/rust,
/area/ruin/powered)
"Vf" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/railing{
dir = 4
},
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_pandora.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index 7529934bb4ea..6d37150ea21e 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -23,7 +23,7 @@
/area/ruin/wasteplanet)
"bc" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/plating/wasteplanet,
/area/ruin/wasteplanet)
"bd" = (
@@ -807,7 +807,7 @@
pixel_x = -11;
pixel_y = -5
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq{
pixel_y = -18
},
/turf/open/indestructible/hierophant/two/waste,
diff --git a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
index 63cedb497f90..88986e834081 100644
--- a/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
+++ b/_maps/_mod_celadon/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
@@ -1,7 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aj" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/spawner/random/aimodule_harmless,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
@@ -40,7 +40,7 @@
"fC" = (
/obj/structure/rack,
/obj/item/stack/wrapping_paper,
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating/rust,
/area/ruin/unpowered)
@@ -56,9 +56,9 @@
/area/overmap_encounter/planetoid/wasteplanet/explored)
"im" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/plating,
/area/ruin/unpowered)
"ip" = (
@@ -69,7 +69,7 @@
/area/ruin/unpowered)
"iy" = (
/obj/structure/cable,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/wasteplanet/explored)
"kf" = (
@@ -139,7 +139,7 @@
/area/ruin/unpowered)
"sW" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/plating,
/area/ruin/unpowered)
@@ -199,7 +199,7 @@
/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/wasteplanet/explored)
"yd" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/structure/cable{
icon_state = "4-9"
},
@@ -381,7 +381,7 @@
/area/ruin/unpowered)
"QD" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/obj/effect/decal/cleanable/garbage,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/wrench,
diff --git a/_maps/_mod_celadon/configs/elysium_kondor.json b/_maps/_mod_celadon/configs/elysium_kondor.json
index 232d4e7cc9f1..fdd95ab9ac08 100644
--- a/_maps/_mod_celadon/configs/elysium_kondor.json
+++ b/_maps/_mod_celadon/configs/elysium_kondor.json
@@ -5,7 +5,7 @@
"description": "«Kondor» является одной из разновидностей небольших суден. Судно создано одной из компаний синдиката по заказу влиятельного шейха для сепаратистов Элизиума. В настоящее время корабль был переоборудован для транспортировки грузов что бы снабжать сепаратисткие формирования",
"map_path": "_maps/_mod_celadon/shuttles/elysium/elysium_kondor.dmm",
"enabled": true,
- "limit": 2,
+ "limit": 1,
"prefix": "EUSM",
"faction": "/datum/faction/elysium",
"tags": [
diff --git a/_maps/_mod_celadon/configs/independent_bulk_track.json b/_maps/_mod_celadon/configs/independent_bulk_track.json
index c6459d366fb3..057b4c7affcd 100644
--- a/_maps/_mod_celadon/configs/independent_bulk_track.json
+++ b/_maps/_mod_celadon/configs/independent_bulk_track.json
@@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Bulk track ship",
"map_short_name": "Bulk",
- "description": "Судно типа Bulk, предназначено для перевозки жидкостей, газов, на дальние растояния. По сути, это космический дальнобойщик. На данном судне также есть небольшой грузовой отсек для иных грузоперевозок. Компания делающая данные судна, вскоре после продажи пары суден Bulk, обанкротилась и закрылась, после нескольких судов о несоблюдении технологии постройки суден и нарушения электробезопасности. В щитспавне по причине: Эксперементальный шип!",
+ "description": "Судно типа Bulk, предназначено для перевозки жидкостей, газов, на дальние растояния. По сути, это космический дальнобойщик. На данном судне также есть небольшой грузовой отсек для иных грузоперевозок. Компания делающая данные судна, вскоре после продажи пары суден Bulk, обанкротилась и закрылась, после нескольких судов о несоблюдении технологии постройки суден и нарушения электробезопасности. В щитспавне по причине: Экспериментальный шип!",
"map_path": "_maps/_mod_celadon/shuttles/misc/independent_bulk.dmm",
"enabled": false,
"limit": 1,
diff --git a/_maps/_mod_celadon/configs/independent_module.json b/_maps/_mod_celadon/configs/independent_module.json
index 0294a0eaf2d1..9bec1baa4b52 100644
--- a/_maps/_mod_celadon/configs/independent_module.json
+++ b/_maps/_mod_celadon/configs/independent_module.json
@@ -16,7 +16,7 @@
],
"job_slots": {
"ERT": {
- "outfit": "/datum/outfit/centcom/ert/engineer",
+ "outfit": "/datum/outfit/job/independent/ert/firefighter/leader",
"slots": 3
}
}
diff --git a/_maps/_mod_celadon/configs/inteq_valor.json b/_maps/_mod_celadon/configs/inteq_valor.json
index e2bffad0cb34..d68dea597ca1 100644
--- a/_maps/_mod_celadon/configs/inteq_valor.json
+++ b/_maps/_mod_celadon/configs/inteq_valor.json
@@ -4,7 +4,7 @@
"map_short_name": "Valor",
"description": "'Valor' — специализированное медицинское судно флота Inteq, подходящее как для лечения раненых в боях членов Inteq, так и для платного лечения посторонних. Для этой цели он оснащен высококлассным медицинским оборудованием и небольшим шаттлом для перевозки пациентов.",
"map_path": "_maps/_mod_celadon/shuttles/inteq/inteq_valor.dmm",
- "enabled": false,
+ "enabled": true,
"limit": 1,
"prefix": "SPIQSV",
"faction": "/datum/faction/inteq",
diff --git a/_maps/_mod_celadon/configs/nanotrasen_chariot.json b/_maps/_mod_celadon/configs/nanotrasen_chariot.json
index b2c9b95cec32..33374410f793 100644
--- a/_maps/_mod_celadon/configs/nanotrasen_chariot.json
+++ b/_maps/_mod_celadon/configs/nanotrasen_chariot.json
@@ -4,7 +4,7 @@
"map_short_name": "Chariot",
"description": "NTBSV ''Chariot'' - это боевое судно Нанотрейзен, которое сделано в ответ на боевой корабль синдиката ''Krait''. На борту имеется свой десантный корабль, оборудование для работы с генетическим кодом живых существ и искусственный интеллект. Боевое инновационное судно ''Chariot'' предназначен для долгих перелётов. Это позволяет множество особенностей: продвинутая система жизнеобеспечения, искусственный интеллект, который способен управлять кораблем, свой бар и небольшая кухня. Штурмовой отряд оснащен как лазерным вооружением, так и баллистическим. Корабль оснащен камерой содержания заключённых. Предназначен для относительно большого количества экипажа.",
"map_path": "_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_chariot.dmm",
- "enabled": false,
+ "enabled": true,
"limit": 1,
"starting_funds": 2000,
"prefix": "NTBSV",
@@ -12,47 +12,45 @@
"tags": [
"Combat",
"Riot",
- "Genetics"
+ "Genetics",
+ "Subshuttle"
],
"namelists": [
"NANOTRASEN",
"WEAPONS"
],
"job_slots": {
- "Lieutenant": {
+ "LP Lieutenant": {
"outfit": "/datum/outfit/job/nanotrasen/captain/lp",
"officer": true,
"slots": 1
},
- "Chief Engineer": {
- "outfit": "/datum/outfit/job/nanotrasen/ce",
+ "Research Head": {
+ "outfit": "/datum/outfit/job/nanotrasen/rd",
"officer": true,
"slots": 1
},
- "Research Director": {
- "outfit": "/datum/outfit/job/nanotrasen/rd",
+ "LP Chief Engineering Specialist": {
+ "outfit": "/datum/outfit/job/nanotrasen/engineer/lp",
"officer": true,
"slots": 1
},
- "Assault Officer": {
- "outfit": "/datum/outfit/job/nanotrasen/security",
+ "LP Security Operative": {
+ "outfit": "/datum/outfit/job/nanotrasen/security/lp",
"slots": 3
},
- "Scientist": {
- "outfit": "/datum/outfit/job/nanotrasen/scientist",
- "slots": 1
- },
- "Atmos Technician": {
- "outfit": "/datum/outfit/job/nanotrasen/atmos",
+ "LP Medical Specialist": {
+ "outfit": "/datum/outfit/job/nanotrasen/medic/lp",
"slots": 1
},
- "Cargo Technician": {
- "outfit": "/datum/outfit/job/nanotrasen/cargo_tech",
+ "Ship Scientist": {
+ "outfit": "/datum/outfit/job/nanotrasen/scientist",
"slots": 1
},
- "Field Surgeon": {
- "outfit": "/datum/outfit/job/nanotrasen/paramedic",
+ "Ship Engineer": {
+ "outfit": "/datum/outfit/job/nanotrasen/engineer",
"slots": 1
}
+
}
}
diff --git a/_maps/_mod_celadon/configs/nanotrasen_skybreaker.json b/_maps/_mod_celadon/configs/nanotrasen_skybreaker.json
index 75c940944c24..7317580cf9da 100644
--- a/_maps/_mod_celadon/configs/nanotrasen_skybreaker.json
+++ b/_maps/_mod_celadon/configs/nanotrasen_skybreaker.json
@@ -9,7 +9,6 @@
"prefix": "NTBSV",
"faction": "/datum/faction/nt",
"tags": [
- "Nanotrasen",
"Combat",
"Riot",
"Medical",
diff --git a/_maps/_mod_celadon/configs/solfed_inkwell.json b/_maps/_mod_celadon/configs/solfed_inkwell.json
index 7540ed4c88e8..4c76ad52532e 100644
--- a/_maps/_mod_celadon/configs/solfed_inkwell.json
+++ b/_maps/_mod_celadon/configs/solfed_inkwell.json
@@ -4,11 +4,11 @@
"map_short_name": "Inkwell",
"description": "Одно из немногих суден, спроектированных Солом и используемых вне официального контекста сторонами, не входящими в Конфедерацию, Судно класса 'Inkwell' - грузовое судно, уважаемое за свою инженерную мысль и любимое за роскошные помещения для экипажа. \n 'Inkwell' можно встретить во многих контекстах, но, пожалуй, больше всего среди Вервальтунгскомпаниен, где они играют важную роль в решении логистических проблем любой надлежащей военной администрации. Кроме того, их часто заказывают и продают несоларианцам для использования в межзвездных перевозках. \n Об использовании 'Inkwell' для перевозки незаконных или неотслеживаемых грузов известно любому опытному (или даже полуопытному) портовому начальству; \n '...такие прискорбные действия со стороны исключительного меньшинства - лишь часть реалий межзвездных перевозок, \n' - говорится в официальном ответе.",
"map_path": "_maps/_mod_celadon/shuttles/solfed/solfed_inkwell.dmm",
- "enabled": false,
+ "enabled": true,
"limit": 1,
"prefix": "SSFSV",
"faction": "/datum/faction/solgov",
- "tags": ["RP Focus", "Combat", "Cargo", "Mining"],
+ "tags": ["RP Focus", "Combat", "Cargo", "Mining", "Subshuttle"],
"namelists": [
"SOLGOV",
"SPACE",
diff --git a/_maps/_mod_celadon/configs/syndicate_krait.json b/_maps/_mod_celadon/configs/syndicate_krait.json
index 08f10101ce80..9ef5a390719c 100644
--- a/_maps/_mod_celadon/configs/syndicate_krait.json
+++ b/_maps/_mod_celadon/configs/syndicate_krait.json
@@ -4,11 +4,11 @@
"map_short_name": "Krait",
"description": "Универсальный корабль класса 'Крайт', совмещает в себе две команды SnD и RnD. Команда SnD занимается поиском, захватом и уничтожением для второй команды занимающейся исследованиями. Корабль оснащен передовыми нанотехнологиями для более эффективной работы, обладает суб шаттлом для быстрого захвата и уничтожения объектов.",
"map_path": "_maps/_mod_celadon/shuttles/syndicate/syndicate_krait.dmm",
- "enabled": false,
+ "enabled": true,
"limit": 1,
"prefix": "RSSV",
"faction": "/datum/faction/syndicate",
- "tags": ["Combat", "Survival"],
+ "tags": ["Combat", "Riot", "Medical", "Genetics", "Subshuttle" ],
"namelists": ["CYBERSUN", "GORLEX"],
"job_slots": {
"Search and Destroy Team Leader": {
diff --git a/_maps/_mod_celadon/configs/syndicate_twinkleshine.json b/_maps/_mod_celadon/configs/syndicate_twinkleshine.json
index fd75463fa6a3..8b5379345361 100644
--- a/_maps/_mod_celadon/configs/syndicate_twinkleshine.json
+++ b/_maps/_mod_celadon/configs/syndicate_twinkleshine.json
@@ -2,7 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Twinkleshine-class Battle Cruiser",
"map_short_name": "Twinkleshine",
- "description": "После уничтожения более крупных линейных крейсеров класса 'Starfury' во время межкорпоративной войны Cybersun спроектировала 'Twinkleshine' в качестве замены, чтобы занять освободившуюся теперь роль флагмана. Однако война подошла к концу, прежде чем какие-либо образцы этого класса смогли увидеть бои. Теперь они хранятся как ценный символ могущества и единства Синдиката. В теории. Как и в случае с классом 'Starfury', экипажи 'Twinkleshine' состоят из представителей всех фракций членов Синдиката. В силу политической необходимости никто не согласился бы, чтобы Cybersun управлял такими мощными кораблями в одиночку. В то время как экипажи 'Twinkleshine', предположительно отбираются за более дипломатичные наклонности, чем можно было бы ожидать политическая ситуация на борту 'Twinkleshine' часто бывает деликатной, особенно по мере того, как напряженность между корпоративными и антикорпоративными элементами Синдиката продолжает нарастать. Тем не менее, они остаются самыми мощными единичными активами в объединенном арсенале Синдиката и часто выполняют роль изображения силы в пограничном пространстве. В щитспавне по причине: Эксперементальный шип! ",
+ "description": "После уничтожения более крупных линейных крейсеров класса 'Starfury' во время межкорпоративной войны Cybersun спроектировала 'Twinkleshine' в качестве замены, чтобы занять освободившуюся теперь роль флагмана. Однако война подошла к концу, прежде чем какие-либо образцы этого класса смогли увидеть бои. Теперь они хранятся как ценный символ могущества и единства Синдиката. В теории. Как и в случае с классом 'Starfury', экипажи 'Twinkleshine' состоят из представителей всех фракций членов Синдиката. В силу политической необходимости никто не согласился бы, чтобы Cybersun управлял такими мощными кораблями в одиночку. В то время как экипажи 'Twinkleshine', предположительно отбираются за более дипломатичные наклонности, чем можно было бы ожидать политическая ситуация на борту 'Twinkleshine' часто бывает деликатной, особенно по мере того, как напряженность между корпоративными и антикорпоративными элементами Синдиката продолжает нарастать. Тем не менее, они остаются самыми мощными единичными активами в объединенном арсенале Синдиката и часто выполняют роль изображения силы в пограничном пространстве. В щитспавне по причине: Экспериментальный шип! ",
"map_path": "_maps/_mod_celadon/shuttles/syndicate/syndicate_twinkleshine.dmm",
"enabled" : false,
"limit": 1,
diff --git a/_maps/_mod_celadon/map_files/generic/blank.dmm b/_maps/_mod_celadon/map_files/generic/blank.dmm
index f4819da273ac..7eae974a8f0e 100644
--- a/_maps/_mod_celadon/map_files/generic/blank.dmm
+++ b/_maps/_mod_celadon/map_files/generic/blank.dmm
@@ -77,7 +77,7 @@
"ao" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"ap" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plasteel,
@@ -352,7 +352,7 @@
/obj/effect/decal/cleanable/blood/splatter,
/obj/effect/decal/cleanable/blood/gibs/body,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"bb" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/automatic/assault/skm{
@@ -529,8 +529,7 @@
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
- },
-/area/awaymission/errorroom)
+ })
"bH" = (
/obj/structure/closet/crate/critter{
name = "DANGER: DO NOT OPEN"
@@ -597,7 +596,6 @@
/obj/structure/flora/tree/palm{
pixel_x = 1
},
-/turf/open/floor/plating/beach/sand,
/area/centcom)
"bP" = (
/obj/structure/table/reinforced/plastitaniumglass,
@@ -607,8 +605,7 @@
"bQ" = (
/obj/item/clothing/shoes/sandal/marisa,
/obj/item/staff/broom,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/area/centcom/evac)
"bR" = (
/obj/structure/sauna_oven_steam{
pixel_y = 18;
@@ -691,9 +688,6 @@
/obj/structure/table/reinforced/plastitaniumglass,
/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
-"cf" = (
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"cg" = (
/obj/effect/turf_decal/corner/opaque/green/diagonal,
/obj/machinery/vending/snack{
@@ -746,15 +740,10 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
-"cp" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/ballistic/automatic/surplus,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"cq" = (
/obj/machinery/computer/camera_advanced,
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"cr" = (
/turf/closed/indestructible/riveted,
/area/tdome/tdomeobserve)
@@ -857,8 +846,7 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Cockpit"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/area/centcom/evac)
"cI" = (
/obj/machinery/vending/hydronutrients,
/obj/effect/turf_decal/corner/opaque/green{
@@ -949,8 +937,8 @@
icon_state = "nim";
name = "wizard of yendor showcase"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"cS" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/sparsegrass,
@@ -963,7 +951,7 @@
/obj/structure/dresser,
/obj/item/storage/backpack/satchel,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"cU" = (
/obj/effect/turf_decal/industrial/loading{
dir = 8
@@ -1060,17 +1048,11 @@
icon_state = "processor";
name = "byond random number generator"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
-"dj" = (
-/turf/open/floor/plating/beach/coastline_t{
- dir = 5
- },
-/area/centcom)
+/area/centcom/evac)
"dk" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/clothing/under/rank/civilian/curator/treasure_hunter,
-/obj/item/clothing/under/dress/skirt,
+/obj/item/clothing/under/dress/skirt/color,
/obj/item/clothing/under/shorts/black,
/obj/item/clothing/under/pants/track,
/obj/item/clothing/accessory/armband/deputy,
@@ -1130,8 +1112,7 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Break Room"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/area/centcom/evac)
"dt" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/beam_rifle,
@@ -1140,7 +1121,7 @@
"du" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"dv" = (
/obj/effect/landmark/abductor/agent{
team_number = 3
@@ -1316,7 +1297,7 @@
brightness = 3
},
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"dV" = (
/obj/effect/turf_decal/industrial/loading{
dir = 4
@@ -1404,7 +1385,7 @@
"ek" = (
/obj/effect/decal/remains/xeno/larva,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"el" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/corner/transparent/neutral/full,
@@ -1733,7 +1714,6 @@
/area/outpost/exterior)
"fk" = (
/obj/item/toy/beach_ball,
-/turf/open/floor/plating/beach/water,
/area/centcom)
"fm" = (
/obj/structure/chair/comfy/shuttle{
@@ -1846,7 +1826,7 @@
"fC" = (
/obj/item/reagent_containers/food/snacks/meat/slab/corgi,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"fD" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/shotgun/flamingarrow/factory{
@@ -1909,7 +1889,7 @@
dir = 4
},
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"fO" = (
/obj/structure/chair/comfy/beige{
dir = 4
@@ -2041,8 +2021,7 @@
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
- },
-/area/awaymission/errorroom)
+ })
"gh" = (
/turf/closed/indestructible/abductor,
/area/abductor_ship)
@@ -2109,7 +2088,7 @@
dir = 10
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands
},
/area/centcom)
"gr" = (
@@ -2292,7 +2271,7 @@
resistance_flags = 3
},
/turf/open/lava/airless,
-/area/wizard_station)
+/area/centcom/evac)
"gR" = (
/obj/structure/table/wood,
/obj/item/paper_bin,
@@ -2319,7 +2298,6 @@
/obj/item/clothing/suit/armor/tdome/red,
/obj/item/clothing/head/helmet/thunderdome,
/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/red,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
@@ -2409,11 +2387,11 @@
/obj/item/storage/bag/tray,
/obj/item/reagent_containers/food/snacks/burger/spell,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"hg" = (
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"hh" = (
/obj/machinery/light/floor/hangar,
/turf/open/floor/plasteel/darkbluefull/darkblue,
@@ -2549,13 +2527,6 @@
light_range = 2
},
/area/outpost/exterior)
-"hC" = (
-/obj/structure/destructible/cult/forge{
- desc = "An engine used in powering the wizard's ship";
- name = "magma engine"
- },
-/turf/open/floor/engine/cult,
-/area/wizard_station)
"hD" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Security";
@@ -2828,7 +2799,7 @@
"is" = (
/obj/effect/decal/remains/xeno,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"it" = (
/obj/machinery/door/airlock/external,
/turf/open/floor/plasteel/darkredfull,
@@ -3132,11 +3103,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/wood,
/area/centcom/holding)
-"jk" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"jl" = (
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/kill/real,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -3146,8 +3112,8 @@
/obj/structure/table/wood,
/obj/item/stack/medical/bruise_pack,
/obj/item/stack/medical/ointment,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"jn" = (
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/tank,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -3184,7 +3150,7 @@
},
/obj/structure/fluff/beach_umbrella/science,
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands
},
/area/centcom)
"ju" = (
@@ -3370,8 +3336,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Bathroom"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"jU" = (
/obj/machinery/recharger{
pixel_y = 4
@@ -3442,9 +3408,6 @@
dir = 6
},
/area/centcom)
-"ke" = (
-/turf/open/floor/plating/beach/sand,
-/area/centcom)
"kf" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3602,7 +3565,7 @@
pixel_y = 28
},
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"kA" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/automatic/hmg/skm_lmg/drum_mag,
@@ -3635,17 +3598,17 @@
/area/centcom/control)
"kG" = (
/obj/effect/landmark/start/wizard,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"kH" = (
/obj/structure/punching_bag,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"kI" = (
/obj/structure/table/wood/fancy,
/obj/item/camera/spooky,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"kJ" = (
/obj/effect/turf_decal/industrial/warning{
dir = 6
@@ -3680,7 +3643,6 @@
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/one)
"kP" = (
-/turf/open/floor/plating/beach/coastline_t/sandwater_inner,
/area/centcom)
"kQ" = (
/obj/structure/cable,
@@ -3706,8 +3668,8 @@
/turf/open/floor/wood,
/area/centcom/holding)
"kT" = (
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"kU" = (
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/effect/turf_decal/corner/transparent/neutral{
@@ -4108,8 +4070,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Study"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"me" = (
/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -4324,7 +4286,6 @@
/area/centcom/control)
"mN" = (
/obj/structure/chair/stool/bar,
-/turf/open/floor/plating/beach/sand,
/area/centcom)
"mO" = (
/obj/structure/bed/roller,
@@ -4381,7 +4342,7 @@
/area/outpost/exterior)
"mT" = (
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"mU" = (
/obj/machinery/hydroponics/soil,
/turf/open/floor/ship/dirt,
@@ -4390,7 +4351,6 @@
/obj/item/clothing/shoes/sandal{
pixel_x = 19
},
-/turf/open/floor/plating/beach/coastline_t/sandwater_inner,
/area/centcom)
"mW" = (
/obj/structure/table/wood/reinforced/bar,
@@ -4603,8 +4563,8 @@
/area/outpost/exterior)
"nB" = (
/obj/machinery/light/small/directional/east,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"nC" = (
/obj/structure/closet/wall/directional/east,
/turf/open/floor/wood/mahogany,
@@ -4823,11 +4783,6 @@
},
/turf/open/floor/plasteel,
/area/tdome/arena)
-"ol" = (
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/tearstache,
-/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"om" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/corner/opaque/green{
@@ -5039,10 +4994,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/centcom/control)
-"oQ" = (
-/obj/structure/destructible/cult/tome,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
"oR" = (
/obj/effect/turf_decal/industrial/warning{
dir = 8
@@ -5141,7 +5092,7 @@
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"pj" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/automatic/hmg/solar{
@@ -5382,8 +5333,8 @@
pixel_x = -8;
pixel_y = 8
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"pY" = (
/obj/structure/table/wood,
/obj/item/toy/cards/deck/cas{
@@ -5518,8 +5469,8 @@
/area/centcom/evac)
"qs" = (
/obj/machinery/light/directional/west,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"qt" = (
/obj/effect/turf_decal/trimline/opaque/vired/corner,
/turf/open/floor/plasteel/dark/wasteplanet,
@@ -5537,7 +5488,7 @@
dir = 1
},
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"qw" = (
/obj/structure/bookcase/random,
/obj/structure/window{
@@ -5611,7 +5562,6 @@
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt,
/obj/structure/reagent_dispensers/fueltank,
-/obj/item/weldingtool/experimental,
/obj/machinery/power/terminal{
dir = 8
},
@@ -5627,15 +5577,15 @@
name = "Engine Room"
},
/obj/structure/barricade/wooden,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"qK" = (
/obj/machinery/door/airlock{
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Observation Room"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"qL" = (
/obj/structure/neon_spline/red/corner,
/turf/open/floor/glass/red,
@@ -5650,7 +5600,7 @@
dir = 8
},
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"qO" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/donut_box,
@@ -5832,7 +5782,7 @@
"rp" = (
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"rq" = (
/obj/machinery/door/poddoor{
id = "thunderdomegen";
@@ -5946,8 +5896,8 @@
pixel_y = 28
},
/obj/machinery/light/directional/north,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"rH" = (
/turf/open/floor/plating{
icon_state = "platingdmg2"
@@ -6006,7 +5956,7 @@
/area/centcom/evac)
"rS" = (
/turf/closed/indestructible/riveted/uranium,
-/area/wizard_station)
+/area/centcom/evac)
"rT" = (
/obj/structure/chair/pew{
dir = 1
@@ -6258,7 +6208,7 @@
dir = 8
},
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"sH" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/fullgrass,
@@ -6335,7 +6285,7 @@
/obj/item/coin/antagtoken,
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"sR" = (
/obj/structure/chair/pew/right{
dir = 4
@@ -6385,7 +6335,7 @@
/obj/item/storage/photo_album,
/obj/machinery/light/directional/south,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"sZ" = (
/obj/machinery/abductor/console{
team_number = 3
@@ -6591,7 +6541,7 @@
"tA" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"tB" = (
/obj/effect/turf_decal/corner/opaque/white{
dir = 4
@@ -6927,8 +6877,7 @@
/turf/open/floor/wood,
/area/centcom/ferry)
"uo" = (
-/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
+/turf/closed/mineral/ash_rock)
"up" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/e_gun/advtaser/cyborg,
@@ -7038,8 +6987,8 @@
/area/centcom/control)
"uH" = (
/obj/machinery/light/directional/east,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"uI" = (
/obj/structure/reagent_dispensers/cooking_oil,
/turf/open/floor/plasteel,
@@ -7120,7 +7069,7 @@
/turf/closed/indestructible/fakeglass{
color = "#008000"
},
-/area/wizard_station)
+/area/centcom/evac)
"uV" = (
/obj/machinery/computer/camera_advanced/abductor{
team_number = 1
@@ -7464,7 +7413,7 @@
/area/centcom/ferry)
"vP" = (
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"vQ" = (
/obj/effect/turf_decal/industrial/warning{
dir = 9
@@ -7977,8 +7926,8 @@
/area/centcom/control)
"xq" = (
/obj/machinery/light/directional/north,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"xr" = (
/obj/structure/fans/tiny,
/obj/docking_port/mobile{
@@ -8013,7 +7962,7 @@
dir = 1
},
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"xw" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/printer/commando,
@@ -8230,7 +8179,7 @@
"yd" = (
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"ye" = (
/obj/structure/chair/comfy/beige{
dir = 8
@@ -8391,11 +8340,6 @@
/obj/effect/turf_decal/corner/transparent/neutral/full,
/turf/open/floor/plasteel/dark,
/area/centcom/control)
-"yG" = (
-/obj/item/gun/ballistic/automatic/assault/p16,
-/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"yH" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/automatic/laser{
@@ -8650,8 +8594,8 @@
/area/centcom/evac)
"zw" = (
/obj/structure/table/wood,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"zx" = (
/obj/structure/chair/stool/bar{
dir = 1;
@@ -8790,8 +8734,8 @@
/area/centcom/supplypod/loading/ert)
"zP" = (
/obj/machinery/vending/snack,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"zQ" = (
/obj/structure/sign/nanotrasen,
/turf/closed/indestructible/reinforced,
@@ -9019,8 +8963,8 @@
/obj/machinery/light/small/directional/west{
brightness = 3
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"AC" = (
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 6
@@ -9029,8 +8973,7 @@
/area/centcom)
"AD" = (
/obj/structure/speaking_tile,
-/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
+/turf/closed/mineral/ash_rock)
"AE" = (
/obj/machinery/computer/crew{
dir = 4
@@ -9049,7 +8992,6 @@
/area/tdome/tdomeobserve)
"AH" = (
/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/energy/laser/retro/sc_retro,
/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
"AK" = (
@@ -9297,11 +9239,6 @@
/obj/machinery/newscaster/directional/south,
/turf/open/floor/plasteel/dark,
/area/centcom/control)
-"Bx" = (
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombanana,
-/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"By" = (
/obj/effect/turf_decal/corner/opaque/green{
dir = 4
@@ -9329,7 +9266,7 @@
/area/centcom/evac)
"BC" = (
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"BD" = (
/obj/structure/table/reinforced,
/obj/item/grenade/c4{
@@ -9395,7 +9332,7 @@
/obj/structure/table/wood/fancy,
/obj/item/radio/headset,
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"BM" = (
/obj/item/kirbyplants{
icon_state = "plant-21"
@@ -9653,7 +9590,7 @@
/obj/item/dice/d20,
/obj/item/dice,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"Cz" = (
/obj/structure/window/reinforced/spawner{
opacity = 1;
@@ -9831,11 +9768,6 @@
/obj/item/gun/energy/kinetic_accelerator/minebot,
/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
-"CW" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"CX" = (
/obj/effect/turf_decal/corner/opaque/brown/three_quarters{
dir = 1
@@ -10018,15 +9950,15 @@
name = "Experiment 35b"
},
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"Dy" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
},
/obj/item/staff,
/obj/item/clothing/shoes/sandal/magic,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Dz" = (
/obj/item/mecha_ammo/lmg/tank,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -10041,8 +9973,8 @@
/obj/structure/table/wood,
/obj/item/retractor,
/obj/machinery/light/directional/north,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"DD" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/buster,
@@ -10296,7 +10228,6 @@
/obj/item/reagent_containers/spray/spraytan{
pixel_y = -8
},
-/turf/open/floor/plating/beach/sand,
/area/centcom)
"Em" = (
/obj/effect/turf_decal/corner/transparent/neutral/full,
@@ -10376,8 +10307,6 @@
/turf/open/floor/plasteel/dark,
/area/centcom/supplypod)
"EC" = (
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/shoes/jackboots,
/obj/item/clothing/shoes/jackboots,
@@ -10435,11 +10364,6 @@
/obj/structure/flora/ausbushes/genericbush,
/turf/open/floor/grass,
/area/tdome/tdomeobserve)
-"EK" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact/compact,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"EL" = (
/obj/machinery/button/door/indestructible{
id = "XCCQMLoaddoor";
@@ -10554,16 +10478,6 @@
brightness = 3
},
/turf/open/floor/plasteel/white,
-/area/wizard_station)
-"EW" = (
-/obj/item/mecha_parts/mecha_equipment/weapon/honker,
-/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
-"EX" = (
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced,
-/obj/structure/table/reinforced/plastitaniumglass,
-/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
"EY" = (
/obj/machinery/door/airlock/external,
@@ -10573,9 +10487,6 @@
/obj/effect/turf_decal/corner/transparent/neutral/full,
/turf/open/floor/plasteel,
/area/centcom/ferry)
-"Fb" = (
-/turf/open/floor/plating/beach/water,
-/area/centcom)
"Fd" = (
/obj/structure/curtain/cloth/blacknormal,
/obj/structure/window{
@@ -10596,7 +10507,6 @@
/obj/item/clothing/suit/armor/tdome/green,
/obj/item/clothing/head/helmet/thunderdome,
/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/green,
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
@@ -10624,7 +10534,7 @@
"Fj" = (
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"Fk" = (
/obj/structure/table/wood,
/turf/open/floor/plasteel/grimy,
@@ -10784,7 +10694,7 @@
/obj/item/cardboard_cutout,
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"FH" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/laser/captain,
@@ -10882,8 +10792,8 @@
/area/centcom)
"FT" = (
/obj/item/storage/box/handcuffs,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/gun/ballistic/revolver/mateba,
/obj/structure/table/reinforced,
/obj/effect/turf_decal/industrial/warning{
@@ -10901,8 +10811,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Storage"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"FX" = (
/obj/machinery/door/airlock/centcom{
name = "CentCom Supplypod Loading";
@@ -10934,12 +10844,6 @@
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/grimy,
/area/centcom/control)
-"Gd" = (
-/obj/item/toy/beach_ball,
-/turf/open/floor/plating/beach/coastline_t{
- dir = 6
- },
-/area/centcom)
"Ge" = (
/turf/open/floor/plasteel/stairs/wood/maple/right,
/area/centcom)
@@ -11078,7 +10982,7 @@
resistance_flags = 3
},
/turf/open/lava,
-/area/wizard_station)
+/area/centcom/evac)
"Gu" = (
/obj/structure/flora/ausbushes/fernybush,
/obj/structure/flora/ausbushes/fullgrass,
@@ -11549,7 +11453,7 @@
dir = 4
},
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"HI" = (
/obj/structure/table/reinforced,
/obj/item/stack/packageWrap,
@@ -11611,7 +11515,6 @@
/obj/item/clothing/suit/armor/tdome/green,
/obj/item/clothing/head/helmet/thunderdome,
/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/green,
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
@@ -11671,12 +11574,6 @@
},
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/three)
-"Id" = (
-/obj/structure/destructible/cult/talisman{
- desc = "An altar dedicated to the Wizards' Federation"
- },
-/turf/open/floor/engine/cult,
-/area/wizard_station)
"Ie" = (
/obj/item/mecha_parts/part/honker_torso,
/obj/item/mecha_parts/part/honker_right_leg,
@@ -11694,7 +11591,6 @@
/obj/item/clothing/suit/armor/tdome/red,
/obj/item/clothing/head/helmet/thunderdome,
/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/red,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
@@ -11702,8 +11598,8 @@
/area/tdome/arena)
"Ig" = (
/obj/structure/chair/wood/wings,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Ih" = (
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel,
@@ -12075,8 +11971,8 @@
faction = list("neutral","silicon","creature");
name = "Nobody's Perfect"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Jn" = (
/obj/structure/table/abductor,
/obj/item/surgicaldrill/alien,
@@ -13489,8 +13385,7 @@
/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
"MW" = (
-/turf/closed/indestructible/riveted,
-/area/awaymission/errorroom)
+/turf/closed/indestructible/riveted)
"MX" = (
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 8
@@ -13561,7 +13456,7 @@
icon_state = "magicdicebag"
},
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"Nh" = (
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
@@ -13906,8 +13801,8 @@
/area/centcom/supplypod)
"Oj" = (
/obj/structure/bookcase/random/reference,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Ok" = (
/obj/item/mecha_parts/mecha_equipment/thrusters,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -14058,11 +13953,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plasteel,
/area/centcom/holding)
-"OH" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/energy/laser/practice/sc_laser,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"OI" = (
/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl{
pixel_y = -10
@@ -14100,7 +13990,7 @@
"OO" = (
/obj/structure/chair/wood/wings,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"OP" = (
/obj/item/mecha_parts/mecha_equipment/thrusters/ion,
/obj/structure/table/reinforced/plastitaniumglass,
@@ -14304,7 +14194,6 @@
dir = 1;
pixel_y = 13
},
-/turf/open/floor/plating/beach/sand,
/area/centcom)
"Py" = (
/obj/structure/bookcase/random/fiction,
@@ -14743,7 +14632,7 @@
/area/centcom/control)
"QM" = (
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"QN" = (
/obj/structure/table/wood,
/obj/item/clipboard,
@@ -14788,11 +14677,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/centcom/ferry)
-"QU" = (
-/turf/open/floor/plating/beach/coastline_t{
- dir = 4
- },
-/area/centcom)
"QV" = (
/turf/open/space,
/area/space)
@@ -14853,7 +14737,7 @@
"Rc" = (
/obj/structure/bookcase/random/adult,
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"Rd" = (
/obj/structure/frame,
/obj/effect/turf_decal/trimline/opaque/solgovgold/filled/warning{
@@ -14906,8 +14790,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Personal Quarters"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Rk" = (
/obj/structure/chair/plastic,
/obj/effect/decal/cleanable/dirt/dust,
@@ -14940,12 +14824,6 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -15007,9 +14885,6 @@
/area/centcom)
"Rr" = (
/obj/effect/turf_decal/corner/opaque/green/diagonal,
-/obj/machinery/vending/cola/random{
- all_items_free = 1
- },
/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plasteel,
/area/centcom/control)
@@ -15114,7 +14989,6 @@
dir = 8;
pixel_x = -6
},
-/turf/open/floor/plating/beach/sand,
/area/centcom)
"RF" = (
/obj/machinery/vending/security/marine/syndicate{
@@ -15239,8 +15113,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Game Room"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"RV" = (
/obj/item/storage/box/ids{
pixel_x = 3;
@@ -15259,8 +15133,7 @@
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
- },
-/area/awaymission/errorroom)
+ })
"RX" = (
/obj/item/storage/box/emps{
pixel_x = 3;
@@ -15670,7 +15543,7 @@
dir = 1
},
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"Ti" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/drinks,
@@ -15971,10 +15844,6 @@
},
/turf/open/floor/pod/dark,
/area/outpost/exterior)
-"TO" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel,
-/area/wizard_station)
"TP" = (
/obj/structure/closet/secure_closet/security,
/obj/item/storage/belt/security/full,
@@ -16008,10 +15877,6 @@
},
/turf/open/floor/plasteel,
/area/centcom/supplypod/loading/ert)
-"TV" = (
-/obj/item/toy/beach_ball,
-/turf/open/floor/plating/beach/sand,
-/area/centcom)
"TW" = (
/obj/effect/turf_decal/corner/transparent/neutral/full,
/turf/open/floor/plasteel,
@@ -16109,7 +15974,7 @@
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"Un" = (
/obj/effect/landmark/thunderdome/two,
/obj/effect/turf_decal/industrial/warning{
@@ -16180,8 +16045,8 @@
/area/centcom/control)
"Ux" = (
/obj/machinery/light/directional/south,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"Uy" = (
/obj/effect/turf_decal/siding/wood{
dir = 5;
@@ -16202,17 +16067,12 @@
/obj/item/gun/ballistic/automatic/assault/g36,
/turf/open/floor/plasteel/dark_2,
/area/centcom/evac)
-"UC" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
-/turf/open/floor/plasteel/dark_2,
-/area/centcom/evac)
"UD" = (
/obj/machinery/computer/helm{
name = "Wizzard"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"UE" = (
/obj/item/clipboard,
/obj/item/stamp/denied{
@@ -16622,7 +16482,7 @@
"VM" = (
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"VO" = (
/turf/open/floor/grass,
/area/centcom/ferry)
@@ -16863,12 +16723,7 @@
pixel_y = 20
},
/turf/open/floor/plasteel/white,
-/area/wizard_station)
-"Wz" = (
-/turf/open/floor/plating/beach/coastline_t{
- dir = 6
- },
-/area/centcom)
+/area/centcom/evac)
"WA" = (
/obj/structure/table/wood,
/obj/item/phone{
@@ -16892,7 +16747,7 @@
/obj/structure/table/wood/poker,
/obj/item/toy/figure/wizard,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"WC" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/ionrifle,
@@ -16925,8 +16780,8 @@
icon = 'icons/obj/doors/airlocks/station/uranium.dmi';
name = "Observation Deck"
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"WI" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/corner/transparent/neutral/full,
@@ -17124,7 +16979,7 @@
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/grass,
-/area/wizard_station)
+/area/centcom/evac)
"Xn" = (
/obj/structure/closet/secure_closet/ertEngi,
/obj/effect/turf_decal/industrial/warning,
@@ -17156,7 +17011,7 @@
},
/obj/structure/table/wood/fancy,
/turf/open/floor/wood,
-/area/wizard_station)
+/area/centcom/evac)
"Xs" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/energy/e_gun/advtaser/mounted,
@@ -17190,7 +17045,7 @@
/obj/item/cautery/alien,
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"Xy" = (
/obj/structure/bed,
/obj/item/bedsheet/black,
@@ -17231,8 +17086,8 @@
/obj/structure/chair/wood/wings{
dir = 1
},
-/turf/open/floor/engine/cult,
-/area/wizard_station)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"XE" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/structure/flora/ausbushes/fullgrass,
@@ -17446,8 +17301,7 @@
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
- },
-/area/awaymission/errorroom)
+ })
"Ym" = (
/obj/item/shard{
icon_state = "small";
@@ -17585,7 +17439,7 @@
pixel_y = 16
},
/turf/open/floor/plasteel/white,
-/area/wizard_station)
+/area/centcom/evac)
"YC" = (
/obj/structure/table/reinforced,
/obj/item/storage/fancy/donut_box,
@@ -17644,7 +17498,13 @@
pixel_x = -8;
pixel_y = 11
},
-/obj/item/stamp/centcom{
+/obj/effect/turf_decal/road/line/opaque/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/white/line{
+ dir = 4
+ },
+/obj/item/stamp/nanotrasen/central{
pixel_x = -8;
pixel_y = 2
},
@@ -17652,11 +17512,13 @@
pixel_x = -8;
pixel_y = -6
},
-/obj/effect/turf_decal/road/line/opaque/white{
- dir = 8
+/obj/item/stamp/nanotrasen{
+ pixel_x = 1;
+ pixel_y = 11
},
-/obj/effect/turf_decal/trimline/opaque/white/line{
- dir = 4
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 1;
+ pixel_y = -7
},
/turf/open/floor/marble/black,
/area/centcom)
@@ -17698,7 +17560,7 @@
/obj/structure/closet/cardboard,
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel,
-/area/wizard_station)
+/area/centcom/evac)
"YQ" = (
/obj/structure/chair/office{
dir = 8
@@ -17779,12 +17641,6 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/holding)
-"YZ" = (
-/obj/item/clothing/shoes/sandal{
- pixel_x = 19
- },
-/turf/open/floor/plating/beach/sand,
-/area/centcom)
"Za" = (
/obj/machinery/door/poddoor{
id = "thunderdomehea";
@@ -17923,7 +17779,7 @@
"Zp" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/space,
-/area/wizard_station)
+/area/centcom/evac)
"Zq" = (
/obj/structure/table/reinforced,
/obj/item/storage/lockbox/loyalty,
@@ -17936,7 +17792,7 @@
/obj/structure/bed,
/obj/item/bedsheet/wiz,
/turf/open/floor/carpet,
-/area/wizard_station)
+/area/centcom/evac)
"Zs" = (
/obj/effect/turf_decal/weather/sand{
dir = 9
@@ -18009,13 +17865,8 @@
"ZE" = (
/obj/structure/table/wood,
/obj/item/staff,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
-"ZF" = (
-/turf/open/floor/plating/beach/coastline_t/sandwater_inner{
- dir = 1
- },
-/area/centcom)
+/turf/open/floor/plasteel/dark_2,
+/area/centcom/evac)
"ZG" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/gun/ballistic/automatic/assault/skm/inteq{
@@ -19409,9 +19260,9 @@ rS
rS
rS
Ig
-oQ
+kT
Oj
-oQ
+kT
XD
rS
uU
@@ -19988,9 +19839,9 @@ mT
mT
rS
Ig
-oQ
kT
-oQ
+kT
+kT
XD
rS
kT
@@ -20192,7 +20043,7 @@ kT
FV
tA
tA
-TO
+DV
qJ
kT
kT
@@ -20582,7 +20433,7 @@ rS
rS
kT
kT
-hC
+kT
Gt
rS
gd
@@ -20954,7 +20805,7 @@ kT
ds
kT
kT
-Id
+kT
kG
kT
WH
@@ -21354,7 +21205,7 @@ rS
rS
pX
kT
-hC
+kT
Gt
rS
gd
@@ -35431,8 +35282,8 @@ Ey
Ey
dN
Vd
-ke
-ke
+kP
+kP
mN
mW
Vd
@@ -35442,8 +35293,8 @@ mW
Vd
mW
Px
-ke
-ke
+kP
+kP
Vd
kX
Ey
@@ -35624,8 +35475,8 @@ Ey
Ey
Ge
Vd
-ke
-ke
+kP
+kP
mN
mW
Vd
@@ -35635,8 +35486,8 @@ mW
Vd
mW
Px
-ke
-ke
+kP
+kP
Vd
QQ
Ey
@@ -35817,8 +35668,8 @@ Ey
Ey
Kr
TQ
-ke
-ke
+kP
+kP
mN
mW
Vd
@@ -35828,8 +35679,8 @@ Vd
Vd
mW
Px
-ke
-ke
+kP
+kP
TQ
Kr
Ey
@@ -36010,9 +35861,9 @@ Ey
Ey
Kr
TQ
-ke
-ke
-ke
+kP
+kP
+kP
TQ
mW
mW
@@ -36020,9 +35871,9 @@ mW
mW
mW
TQ
-ke
-ke
-ke
+kP
+kP
+kP
TQ
Kr
Ey
@@ -36203,19 +36054,19 @@ Ey
Ey
Kr
TQ
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
RE
RE
RE
RE
RE
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
TQ
Kr
Ey
@@ -36396,19 +36247,19 @@ Ey
Ey
Kr
TQ
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
TQ
Kr
Ey
@@ -36589,19 +36440,19 @@ Ey
Ey
dN
Vd
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
Vd
kX
Ey
@@ -36667,8 +36518,8 @@ YG
YG
YG
mz
-cf
-cf
+kT
+kT
wz
YG
pP
@@ -36782,19 +36633,19 @@ Ey
Ey
Ge
Vd
-YZ
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
+mV
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
Vd
QQ
Ey
@@ -36854,14 +36705,14 @@ vR
DV
YG
dL
-cf
+kT
Gs
kh
-cf
+kT
ra
zV
-cf
-cf
+kT
+kT
Dm
YG
Vs
@@ -36975,19 +36826,19 @@ Ey
Ey
Kr
TQ
-ke
-ke
+kP
+kP
bO
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
bO
-ke
-ke
+kP
+kP
bO
-ke
-ke
+kP
+kP
TQ
Kr
Ey
@@ -37047,14 +36898,14 @@ vR
DV
YG
wO
-cf
+kT
Kw
hX
-cf
+kT
Pl
LL
-cf
-cf
+kT
+kT
hb
YG
Vs
@@ -37170,15 +37021,15 @@ Kr
TQ
Ai
vU
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
-ke
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
QH
QO
TQ
@@ -37246,7 +37097,7 @@ ZA
kN
UN
CP
-cf
+kT
kN
vz
YG
@@ -37361,19 +37212,19 @@ Ey
Kr
TQ
bO
-ke
-ke
-ke
+kP
+kP
+kP
iU
-ke
+kP
qy
-ke
+kP
jM
-ke
+kP
gt
-ke
-ke
-YZ
+kP
+kP
+mV
bO
TQ
Kr
@@ -37433,14 +37284,14 @@ vR
DV
ca
yE
-cf
+kT
Ij
xm
-cf
+kT
ni
wj
-cf
-cf
+kT
+kT
MH
YG
CF
@@ -37555,17 +37406,17 @@ Kr
TQ
ac
rL
-ke
-ke
+kP
+kP
TF
El
VG
-ke
+kP
TH
-TV
+fk
fb
-ke
-ke
+kP
+kP
Zs
Ac
TQ
@@ -37592,19 +37443,19 @@ gd
gd
gd
YG
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
wy
Qk
vR
@@ -37626,14 +37477,14 @@ vR
DV
hd
MV
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
dQ
tT
yg
@@ -37747,19 +37598,19 @@ Ey
Kr
TQ
El
-ke
-ke
kP
-QU
-QU
-QU
-QU
-QU
-QU
-QU
-ZF
-ke
-ke
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
El
TQ
Kr
@@ -37786,18 +37637,18 @@ gd
gd
YG
kN
-cf
-cf
+kT
+kT
kN
Wl
Sj
kN
VZ
cw
-cf
+kT
Uo
kN
-cf
+kT
wy
LY
xH
@@ -37819,14 +37670,14 @@ xH
uX
hd
MV
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
dQ
tT
BW
@@ -37942,16 +37793,16 @@ TQ
jt
gp
mV
-Wz
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-dj
-ZF
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
IE
wq
TQ
@@ -37981,15 +37832,15 @@ YG
mC
DM
XO
-cf
+kT
qB
BB
-cf
+kT
Jf
qr
-cf
+kT
WJ
-cf
+kT
me
YG
hU
@@ -38012,14 +37863,14 @@ ap
ER
YG
bb
-cf
+kT
UA
rN
-cf
+kT
FR
sF
-cf
-cf
+kT
+kT
Ew
YG
mi
@@ -38134,18 +37985,18 @@ Kr
TQ
bO
kP
-Wz
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-Fb
-dj
-ZF
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
+kP
bO
TQ
Kr
@@ -38174,15 +38025,15 @@ YG
YG
YG
YG
-cf
+kT
we
bA
-cf
+kT
hr
-ol
-cf
+AH
+kT
cz
-cf
+kT
ce
YG
jX
@@ -38205,14 +38056,14 @@ jX
jX
YG
bC
-cf
+kT
xY
YU
-cf
+kT
kA
Rb
-cf
-cf
+kT
+kT
Nv
YG
eF
@@ -38326,20 +38177,20 @@ Ey
Kr
TQ
kP
-Gd
-Fb
-Fb
-Fb
+fk
+kP
+kP
+kP
TQ
TQ
TQ
TQ
TQ
-Fb
-Fb
-Fb
-dj
-ZF
+kP
+kP
+kP
+kP
+kP
TQ
Kr
Ey
@@ -38367,15 +38218,15 @@ gd
gd
gd
YG
-cf
+kT
Nj
km
-cf
+kT
eu
uq
-cf
+kT
ob
-cf
+kT
My
YG
gd
@@ -38398,14 +38249,14 @@ gd
gd
YG
ZG
-cf
+kT
Ds
fU
-cf
+kT
kZ
dh
-cf
-cf
+kT
+kT
UH
YG
PE
@@ -38518,10 +38369,10 @@ Ey
Ey
Kr
TQ
-Wz
-Fb
-Fb
-Fb
+kP
+kP
+kP
+kP
TQ
Kr
Kr
@@ -38529,10 +38380,10 @@ Kr
Kr
Kr
TQ
-Fb
+kP
fk
-Fb
-dj
+kP
+kP
TQ
Kr
Ey
@@ -38560,16 +38411,16 @@ gd
gd
gd
YG
-cf
+kT
Zm
Kk
-cf
+kT
jR
Ef
-cf
+kT
jn
-cf
-EW
+kT
+AH
YG
gd
gd
@@ -38597,7 +38448,7 @@ lu
kN
Cc
Li
-cf
+kT
kN
lL
YG
@@ -38711,9 +38562,9 @@ Ey
Ey
Kr
TQ
-Fb
-Fb
-Fb
+kP
+kP
+kP
TQ
Kr
Kr
@@ -38723,9 +38574,9 @@ Ey
Kr
Kr
TQ
-Fb
-Fb
-Fb
+kP
+kP
+kP
TQ
Kr
Ey
@@ -38753,15 +38604,15 @@ gd
gd
gd
YG
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
cK
-Bx
-cf
+AH
+kT
nT
-cf
+kT
sk
YG
gd
@@ -38784,14 +38635,14 @@ gd
gd
YG
yH
-cf
-yG
+kT
+AH
YF
-cf
+kT
Nx
-jk
-cf
-cf
+AH
+kT
+kT
dB
YG
lZ
@@ -38904,8 +38755,8 @@ Ey
Ey
Kr
TQ
-Fb
-Fb
+kP
+kP
TQ
Kr
Kr
@@ -38917,8 +38768,8 @@ Ey
Kr
Kr
TQ
-Fb
-Fb
+kP
+kP
TQ
Kr
Ey
@@ -38947,13 +38798,13 @@ gd
gd
YG
kN
-cf
-cf
+kT
+kT
kN
jl
fL
-cf
-EX
+kT
+AH
kN
rF
YG
@@ -38977,14 +38828,14 @@ gd
gd
YG
AU
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
XG
YG
mv
@@ -39097,8 +38948,8 @@ Ey
Ey
Kr
TQ
-Fb
-Fb
+kP
+kP
TQ
Kr
Ey
@@ -39110,8 +38961,8 @@ Ey
Ey
Kr
TQ
-Fb
-Fb
+kP
+kP
TQ
Kr
Ey
@@ -39139,15 +38990,15 @@ gd
gd
gd
YG
-cf
+kT
Fp
wt
-cf
+kT
En
lA
-cf
+kT
lB
-cf
+kT
ax
YG
gd
@@ -39170,14 +39021,14 @@ gd
gd
YG
Of
-cf
+kT
XL
JI
-cf
+kT
eE
wS
-cf
-cf
+kT
+kT
CD
YG
mv
@@ -39332,15 +39183,15 @@ gd
gd
gd
YG
-cf
+kT
Dz
wp
-cf
+kT
bJ
OP
-cf
+kT
Pk
-cf
+kT
Vu
YG
gd
@@ -39363,14 +39214,14 @@ gd
gd
YG
es
-cf
+kT
Og
MS
-cf
+kT
ex
-UC
-cf
-cf
+AH
+kT
+kT
Yg
YG
lZ
@@ -39525,15 +39376,15 @@ gd
gd
gd
YG
-cf
+kT
nE
if
-cf
+kT
en
mt
-cf
+kT
Aj
-cf
+kT
Oc
YG
gd
@@ -39556,14 +39407,14 @@ gd
gd
YG
Xp
-cf
+kT
VJ
Oo
-cf
+kT
tG
ja
-cf
-cf
+kT
+kT
WY
YG
PE
@@ -39718,15 +39569,15 @@ gd
gd
gd
YG
-cf
+kT
wg
zr
-cf
+kT
uC
Ok
-cf
+kT
Vr
-cf
+kT
mj
YG
gd
@@ -39755,7 +39606,7 @@ EU
kN
GB
Uv
-cf
+kT
kN
ZS
YG
@@ -39911,15 +39762,15 @@ gd
gd
gd
YG
-cf
+kT
OU
JB
-cf
+kT
Od
bY
-cf
+kT
VE
-cf
+kT
CE
YG
gd
@@ -39942,14 +39793,14 @@ gd
gd
YG
CZ
-cf
+kT
xI
KV
-cf
+kT
LQ
aR
-cf
-cf
+kT
+kT
Hn
YG
YG
@@ -40104,15 +39955,15 @@ gd
gd
gd
YG
-cf
+kT
NI
gL
-cf
+kT
Iw
Qt
-cf
+kT
nd
-cf
+kT
zv
YG
gd
@@ -40135,14 +39986,14 @@ gd
gd
YG
dX
-cf
+kT
OI
eb
-cf
+kT
hK
Tk
-cf
-cf
+kT
+kT
KX
qZ
oT
@@ -40298,13 +40149,13 @@ gd
gd
YG
kN
-cf
-cf
+kT
+kT
kN
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
kN
zy
YG
@@ -40328,18 +40179,18 @@ gd
gd
YG
Yt
-cf
+kT
cx
YR
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
Cd
Cd
Cd
@@ -40490,8 +40341,8 @@ gd
gd
gd
YG
-cf
-cf
+kT
+kT
yy
BE
Pz
@@ -40521,20 +40372,20 @@ gd
gd
YG
Yq
-cf
+kT
jy
lQ
-cf
+kT
bg
AL
-cf
-cf
+kT
+kT
cZ
Ps
sm
Qa
-CW
-EK
+AH
+AH
nj
UO
YG
@@ -40714,22 +40565,22 @@ gd
gd
YG
dW
-cf
+kT
dY
gC
-cf
+kT
PW
fD
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
+kT
YG
TT
Ov
@@ -40907,14 +40758,14 @@ gd
gd
YG
YL
-cf
+kT
jh
nl
-cf
+kT
WW
FY
-cf
-cf
+kT
+kT
LI
sx
rw
@@ -41101,21 +40952,21 @@ gd
YG
Uz
kN
-cf
-cf
+kT
+kT
kN
-cf
-cf
-cf
+kT
+kT
+kT
kN
-cf
-cf
-cf
-cf
-cf
+kT
+kT
+kT
+kT
+kT
kN
-cf
-cf
+kT
+kT
YG
Cd
Cd
@@ -41292,7 +41143,7 @@ gd
gd
gd
YG
-cp
+AH
bX
BP
No
@@ -42850,7 +42701,7 @@ bh
kw
ka
bi
-OH
+AH
iQ
kC
YG
diff --git a/_maps/_mod_celadon/map_files/generic/runtime_check_map.dmm b/_maps/_mod_celadon/map_files/generic/runtime_check_map.dmm
index 9f05c498cbad..8356a8f9bbce 100644
--- a/_maps/_mod_celadon/map_files/generic/runtime_check_map.dmm
+++ b/_maps/_mod_celadon/map_files/generic/runtime_check_map.dmm
@@ -699,7 +699,7 @@
/obj/item/skateboard/hoverboard/admin,
/obj/item/skub,
/obj/item/slapper,
-/obj/item/slime_scanner,
+/obj/item/t_scanner,
/obj/item/smallDelivery,
/obj/item/soap,
/obj/item/soap/deluxe,
@@ -707,11 +707,11 @@
/obj/item/soap/nanotrasen,
/obj/item/soap/omega,
/obj/item/solar_assembly,
-/obj/item/soulstone,
-/obj/item/soulstone/anybody,
-/obj/item/soulstone/anybody/revolver,
-/obj/item/soulstone/anybody/purified,
-/obj/item/soulstone/anybody/chaplain,
+/obj/item/gem/bloodstone
+/obj/item/gem/bloodstone,
+/obj/item/gem/bloodstone,
+/obj/item/gem/bloodstone,
+/obj/item/gem/bloodstone,
/obj/item/spacecash,
/obj/item/spacecash/bundle,
/obj/item/spacecash/bundle/c1,
@@ -831,7 +831,7 @@
/obj/item/weldingtool,
/obj/item/weldingtool/abductor,
/obj/item/weldingtool/empty,
-/obj/item/weldingtool/experimental,
+/obj/item/weldingtool/electric,
/obj/item/weldingtool/hugetank,
/obj/item/weldingtool/hugetank/empty,
/obj/item/weldingtool/largetank,
@@ -909,20 +909,20 @@
/turf/open/floor/plating/asteroid/snow/under,
/area/space)
"bd" = (
-/obj/item/ammo_box/a357/hp,
-/obj/item/ammo_box/a357/match,
-/obj/item/ammo_box/a44roum/rubber,
-/obj/item/ammo_box/a4570/hp,
-/obj/item/ammo_box/c10mm/fire,
-/obj/item/ammo_box/c38_box/hotshot,
-/obj/item/ammo_box/c45/ap,
-/obj/item/ammo_box/c556mmHITP/hp,
-/obj/item/ammo_box/c8x50mm_box,
-/obj/item/ammo_box/c8x50mmhp_box,
-/obj/item/ammo_box/c9mm/fire,
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/generic,
+/obj/item/storage/box/ammo/a357/hp,
+/obj/item/storage/box/ammo/a357/match,
+/obj/item/storage/box/ammo/a44roum/rubber,
+/obj/item/storage/box/ammo/a4570/hp,
+/obj/item/storage/box/ammo/c10mm_ap,
+/obj/item/storage/box/ammo/c38_hotshot,
+/obj/item/storage/box/ammo/c45_ap,
+/obj/item/storage/box/ammo/c556mmHITP/hp,
+/obj/item/storage/box/ammo/c8x50mm_box,
+/obj/item/storage/box/ammo/c8x50mmhp_box,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/ferropelletbox,
+/obj/item/storage/box/ammo/generic,
/obj/item/ammo_box/magazine/cm40_762_40_box,
/obj/item/ammo_box/magazine/co9mm/hp,
/obj/item/ammo_box/magazine/e40,
@@ -960,8 +960,8 @@
/obj/item/ammo_casing/c10mm/rubber,
/obj/item/ammo_casing/c38/hotshot,
/obj/item/ammo_casing/c45/surplus,
-/obj/item/ammo_casing/c9mm/rubber,
-/obj/item/ammo_casing/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_casing/caseless/arrow/bronze,
/obj/item/ammo_casing/caseless/arrow/wood,
/obj/item/ammo_casing/caseless/c299,
@@ -1724,98 +1724,98 @@
/obj/item/aicard/aitater,
/obj/item/airlock_painter,
/obj/item/alquadim_manual,
-/obj/item/ammo_box,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g/beanbag,
-/obj/item/ammo_box/a12g/blanks,
-/obj/item/ammo_box/a12g/rubbershot,
-/obj/item/ammo_box/a12g/slug,
-/obj/item/ammo_box/a300,
-/obj/item/ammo_box/a300/empty,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a308,
-/obj/item/ammo_box/a308/a308_ap,
-/obj/item/ammo_box/a308/a308_brak,
-/obj/item/ammo_box/a308/a308_rubber,
-/obj/item/ammo_box/a308/a308_sp,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357/empty,
-/obj/item/ammo_box/a357/hp,
-/obj/item/ammo_box/a357/match,
-/obj/item/ammo_box/a357_box,
-/obj/item/ammo_box/a357_box/hp,
-/obj/item/ammo_box/a357_box/match,
+/obj/item/storage/box/ammo,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_beanbag,
+/obj/item/storage/box/ammo/a12g_blanks,
+/obj/item/storage/box/ammo/a12g_rubbershot,
+/obj/item/storage/box/ammo/a12g_slug,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300/empty,
+/obj/item/storage/box/ammo/a300_box,
+/obj/item/storage/box/ammo/a308,
+/obj/item/storage/box/ammo/a308/a308_ap,
+/obj/item/storage/box/ammo/a308/a308_brak,
+/obj/item/storage/box/ammo/a308/a308_rubber,
+/obj/item/storage/box/ammo/a308/a308_sp,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357/empty,
+/obj/item/storage/box/ammo/a357/hp,
+/obj/item/storage/box/ammo/a357/match,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357_hp,
+/obj/item/storage/box/ammo/a357_match,
/obj/item/ammo_box/a40mm,
-/obj/item/ammo_box/a44roum,
-/obj/item/ammo_box/a44roum/hp,
-/obj/item/ammo_box/a44roum/rubber,
+/obj/item/storage/box/ammo/a44roum,
+/obj/item/storage/box/ammo/a44roum/hp,
+/obj/item/storage/box/ammo/a44roum/rubber,
/obj/item/ammo_box/a44roum_speedloader,
/obj/item/ammo_box/a44roum_speedloader/empty,
-/obj/item/ammo_box/a4570,
-/obj/item/ammo_box/a4570/explosive,
-/obj/item/ammo_box/a4570/hp,
-/obj/item/ammo_box/a4570/match,
-/obj/item/ammo_box/a556_42,
-/obj/item/ammo_box/a556_box,
-/obj/item/ammo_box/a556_box/a856,
-/obj/item/ammo_box/a556_box/surplus,
-/obj/item/ammo_box/a65clip_box,
-/obj/item/ammo_box/a65clip_box/syndicate,
-/obj/item/ammo_box/a762_40,
-/obj/item/ammo_box/a762_40/inteq,
+/obj/item/storage/box/ammo/a4570,
+/obj/item/storage/box/ammo/a4570/explosive,
+/obj/item/storage/box/ammo/a4570/hp,
+/obj/item/storage/box/ammo/a4570/match,
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_box,
+/obj/item/storage/box/ammo/a556_box/a856,
+/obj/item/storage/box/ammo/a556_box/surplus,
+/obj/item/storage/box/ammo/a65clip_box,
+/obj/item/storage/box/ammo/a65clip_box/syndicate,
+/obj/item/storage/box/ammo/a762_40,
+/obj/item/storage/box/ammo/a762_40/inteq,
/obj/item/ammo_box/a762_stripper,
/obj/item/ammo_box/a762_stripper/empty,
-/obj/item/ammo_box/a858,
-/obj/item/ammo_box/a858/empty,
-/obj/item/ammo_box/a858_ammo_box,
-/obj/item/ammo_box/amagpellet_claris,
-/obj/item/ammo_box/c10mm,
-/obj/item/ammo_box/c10mm/ap,
-/obj/item/ammo_box/c10mm/fire,
-/obj/item/ammo_box/c10mm/hp,
-/obj/item/ammo_box/c10mm/rubbershot,
-/obj/item/ammo_box/c10mm/surplus,
-/obj/item/ammo_box/c22lr_box,
-/obj/item/ammo_box/c299,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38/dumdum,
-/obj/item/ammo_box/c38/empty,
-/obj/item/ammo_box/c38/hotshot,
-/obj/item/ammo_box/c38/iceblox,
-/obj/item/ammo_box/c38/match,
-/obj/item/ammo_box/c38/match/bouncy,
-/obj/item/ammo_box/c38/trac,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box/hotshot,
-/obj/item/ammo_box/c38_box/iceblox,
-/obj/item/ammo_box/c38_box/surplus,
-/obj/item/ammo_box/c45,
-/obj/item/ammo_box/c45/ap,
-/obj/item/ammo_box/c45/fire,
-/obj/item/ammo_box/c45/hp,
-/obj/item/ammo_box/c45/rubbershot,
-/obj/item/ammo_box/c45/surplus,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c556mmHITP,
-/obj/item/ammo_box/c556mmHITP/ap,
-/obj/item/ammo_box/c556mmHITP/hp,
-/obj/item/ammo_box/c556mmHITP/rubbershot,
-/obj/item/ammo_box/c556mmHITP/surplus,
-/obj/item/ammo_box/c57x39mm_box,
-/obj/item/ammo_box/c8x50mm_box,
-/obj/item/ammo_box/c8x50mmhp_box,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm/ap,
-/obj/item/ammo_box/c9mm/fire,
-/obj/item/ammo_box/c9mm/hp,
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/c9mm/surplus,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/ferroslugbox,
-/obj/item/ammo_box/foambox,
-/obj/item/ammo_box/foambox/riot,
-/obj/item/ammo_box/generic,
+/obj/item/storage/box/ammo/a858,
+/obj/item/storage/box/ammo/a858/empty,
+/obj/item/storage/box/ammo/a858_ammo_box,
+/obj/item/storage/box/ammo/amagpellet_claris,
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm_ap,
+/obj/item/storage/box/ammo/c10mm_ap,
+/obj/item/storage/box/ammo/c10mm_hp,
+/obj/item/storage/box/ammo/c10mm_rubber,
+/obj/item/storage/box/ammo/c10mm_surplus,
+/obj/item/storage/box/ammo/c22lr_box,
+/obj/item/storage/box/ammo/c299,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38/dumdum,
+/obj/item/storage/box/ammo/c38/empty,
+/obj/item/storage/box/ammo/c38/hotshot,
+/obj/item/storage/box/ammo/c38/iceblox,
+/obj/item/storage/box/ammo/c38/match,
+/obj/item/storage/box/ammo/c38/match/bouncy,
+/obj/item/storage/box/ammo/c38/trac,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38_hotshot,
+/obj/item/storage/box/ammo/c38_iceblox,
+/obj/item/storage/box/ammo/c38_surplus,
+/obj/item/storage/box/ammo/c45,
+/obj/item/storage/box/ammo/c45_ap,
+/obj/item/storage/box/ammo/c45_ap,
+/obj/item/storage/box/ammo/c45_hp,
+/obj/item/storage/box/ammo/c45_rubber,
+/obj/item/storage/box/ammo/c45_surplus,
+/obj/item/storage/box/ammo/c46x30mm_box,
+/obj/item/storage/box/ammo/c556mmHITP,
+/obj/item/storage/box/ammo/c556mmHITP/ap,
+/obj/item/storage/box/ammo/c556mmHITP/hp,
+/obj/item/storage/box/ammo/c556mmHITP/rubbershot,
+/obj/item/storage/box/ammo/c556mmHITP/surplus,
+/obj/item/storage/box/ammo/c57x39mm_box,
+/obj/item/storage/box/ammo/c8x50mm_box,
+/obj/item/storage/box/ammo/c8x50mmhp_box,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_hp,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm_surplus,
+/obj/item/storage/box/ammo/ferrolancebox,
+/obj/item/storage/box/ammo/ferropelletbox,
+/obj/item/storage/box/ammo/ferroslug,
+/obj/item/storage/box/ammo/foam_darts,
+/obj/item/storage/box/ammo/foam_darts/riot,
+/obj/item/storage/box/ammo/generic,
/obj/item/ammo_box/magazine,
/obj/item/ammo_box/magazine/boomslang,
/obj/item/ammo_box/magazine/boomslang/short,
@@ -1942,7 +1942,7 @@
/obj/item/ammo_box/magazine/recharge/ctf/red,
/obj/item/ammo_box/magazine/recharge/ctf/blue,
/obj/item/ammo_box/magazine/rifle47x33mm,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/ammo_box/magazine/skm_762_40,
/obj/item/ammo_box/magazine/skm_762_40,
/obj/item/ammo_box/magazine/skm_762_40/drum,
/obj/item/ammo_box/magazine/skm_762_40/empty,
@@ -1951,7 +1951,7 @@
/obj/item/ammo_box/magazine/smgm10mm/rubber,
/obj/item/ammo_box/magazine/smgm9mm,
/obj/item/ammo_box/magazine/smgm9mm/ap,
-/obj/item/ammo_box/magazine/smgm9mm/inc,
+/obj/item/ammo_box/magazine/smgm9mm/rubber,
/obj/item/ammo_box/magazine/smgm9mm/rubber,
/obj/item/ammo_box/magazine/sniper_rounds,
/obj/item/ammo_box/magazine/sniper_rounds/penetrator,
@@ -1970,10 +1970,10 @@
/obj/item/ammo_box/magazine/wt550m9/empty,
/obj/item/ammo_box/magazine/wt550m9/inc,
/obj/item/ammo_box/magazine/zip_ammo_9mm,
-/obj/item/ammo_box/shuffler,
-/obj/item/ammo_box/shuffler/a12g,
-/obj/item/ammo_box/vickland_a308,
-/obj/item/ammo_box/vickland_a308/empty,
+/obj/item/storage/box/ammo/shuffler,
+/obj/item/storage/box/ammo/shuffler/a12g,
+/obj/item/storage/box/ammo/vickland_a308,
+/obj/item/storage/box/ammo/vickland_a308/empty,
/obj/item/ammo_casing,
/obj/item/ammo_casing/a300,
/obj/item/ammo_casing/a308,
@@ -2033,12 +2033,12 @@
/obj/item/ammo_casing/c46x30mm/bof,
/obj/item/ammo_casing/c46x30mm/inc,
/obj/item/ammo_casing/c57x39mm,
-/obj/item/ammo_casing/c9mm,
-/obj/item/ammo_casing/c9mm/ap,
-/obj/item/ammo_casing/c9mm/hp,
-/obj/item/ammo_casing/c9mm/inc,
-/obj/item/ammo_casing/c9mm/rubber,
-/obj/item/ammo_casing/c9mm/surplus,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_hp
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm_surplus,
/obj/item/ammo_casing/caseless,
/obj/item/ammo_casing/caseless/a75,
/obj/item/ammo_casing/caseless/a858,
@@ -3289,61 +3289,7 @@
/obj/item/robot_module/syndieproto,
/obj/item/robot_module/syndicate_medical,
/obj/item/robot_module/saboteur,
-/obj/item/slime_cookie,
-/obj/item/slime_cookie/grey,
-/obj/item/slime_cookie/orange,
-/obj/item/slime_cookie/purple,
-/obj/item/slime_cookie/blue,
-/obj/item/slime_cookie/metal,
-/obj/item/slime_cookie/yellow,
-/obj/item/slime_cookie/darkpurple,
-/obj/item/slime_cookie/darkblue,
-/obj/item/slime_cookie/silver,
-/obj/item/slime_cookie/bluespace,
-/obj/item/slime_cookie/sepia,
-/obj/item/slime_cookie/cerulean,
-/obj/item/slime_cookie/pyrite,
-/obj/item/slime_cookie/red,
-/obj/item/slime_cookie/green,
-/obj/item/slime_cookie/pink,
-/obj/item/slime_cookie/gold,
-/obj/item/slime_cookie/oil,
-/obj/item/slime_cookie/black,
-/obj/item/slime_cookie/lightpink,
-/obj/item/slime_cookie/adamantine,
-/obj/item/slime_extract,
-/obj/item/slime_extract/grey,
-/obj/item/slime_extract/gold,
-/obj/item/slime_extract/silver,
-/obj/item/slime_extract/metal,
-/obj/item/slime_extract/purple,
-/obj/item/slime_extract/darkpurple,
-/obj/item/slime_extract/orange,
-/obj/item/slime_extract/yellow,
-/obj/item/slime_extract/red,
-/obj/item/slime_extract/blue,
-/obj/item/slime_extract/darkblue,
-/obj/item/slime_extract/pink,
-/obj/item/slime_extract/green,
-/obj/item/slime_extract/lightpink,
-/obj/item/slime_extract/black,
-/obj/item/slime_extract/oil,
-/obj/item/slime_extract/adamantine,
-/obj/item/slime_extract/bluespace,
-/obj/item/slime_extract/pyrite,
-/obj/item/slime_extract/cerulean,
-/obj/item/slime_extract/sepia,
-/obj/item/slime_extract/rainbow,
-/obj/item/slimecross,
-/obj/item/slimecrossbeaker,
-/obj/item/slimecrossbeaker/bloodpack,
-/obj/item/slimecrossbeaker/pax,
-/obj/item/slimecrossbeaker/omnizine,
-/obj/item/slimecrossbeaker/autoinjector,
-/obj/item/slimecrossbeaker/autoinjector/regenpack,
-/obj/item/slimecrossbeaker/autoinjector/slimejelly,
-/obj/item/slimecrossbeaker/autoinjector/peaceandlove,
-/obj/item/slimecrossbeaker/autoinjector/slimestimulant,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
/obj/item/slimepotion,
/obj/item/slimepotion/slime/docility,
/obj/item/slimepotion/slime/sentience,
@@ -3695,7 +3641,7 @@
/obj/item/stamp/artificer,
/obj/item/stamp/clip,
/obj/item/stamp/gold,
-/obj/item/stamp/bard,
+/obj/item/stamp/clip/bard,
/obj/item/stamp/suns,
/obj/item/stock_parts,
/obj/item/stock_parts/capacitor,
@@ -3776,7 +3722,7 @@
/obj/item/storage/belt/mining/vendor,
/obj/item/storage/belt/mining/alt,
/obj/item/storage/belt/mining/primitive,
-/obj/item/storage/belt/soulstone,
+/obj/item/storage/belt/chameleon,
/obj/item/storage/belt/champion,
/obj/item/storage/belt/military,
/obj/item/storage/belt/military/snack,
@@ -3921,7 +3867,7 @@
/obj/item/storage/box/stockparts/t3,
/obj/item/storage/box/stockparts/deluxe,
/obj/item/storage/box/dishdrive,
-/obj/item/storage/box/inteqmaid,
+/obj/item/storage/box/maid,
/obj/item/storage/box/syndimaid,
/obj/item/storage/box/maid,
/obj/item/storage/box/material,
@@ -4020,25 +3966,25 @@
/obj/item/storage/guncase/brimstone,
/obj/item/storage/guncase/illestren,
/obj/item/storage/guncase/wt550,
-/obj/item/storage/pistolcase,
-/obj/item/storage/pistolcase/modelh,
-/obj/item/storage/pistolcase/ringneck,
-/obj/item/storage/pistolcase/candor,
-/obj/item/storage/pistolcase/detective,
-/obj/item/storage/pistolcase/shadow,
-/obj/item/storage/pistolcase/viper,
-/obj/item/storage/pistolcase/commander,
-/obj/item/storage/pistolcase/firebrand,
-/obj/item/storage/pistolcase/derringer,
-/obj/item/storage/pistolcase/a357,
-/obj/item/storage/pistolcase/montagne,
-/obj/item/storage/pistolcase/disposable,
-/obj/item/storage/pistolcase/laser,
-/obj/item/storage/pistolcase/egun,
-/obj/item/storage/pistolcase/kalixpistol,
+/obj/item/storage/guncase/pistol,
+/obj/item/storage/guncase/pistol/modelh,
+/obj/item/storage/guncase/pistol/ringneck,
+/obj/item/storage/guncase/pistol/candor,
+/obj/item/storage/guncase/pistol/detective,
+/obj/item/storage/guncase/pistol/shadow,
+/obj/item/storage/guncase/pistol/viper,
+/obj/item/storage/guncase/pistol/commander,
+/obj/item/storage/guncase/pistol/firebrand,
+/obj/item/storage/guncase/pistol/derringer,
+/obj/item/storage/guncase/pistol/a357,
+/obj/item/storage/guncase/pistol/montagne,
+/obj/item/storage/guncase/pistol/disposable,
+/obj/item/storage/guncase/pistol/laser,
+/obj/item/storage/guncase/pistol/egun,
+/obj/item/storage/guncase/pistol/kalixpistol,
/obj/item/storage/guncase/kalixrifle,
-/obj/item/storage/pistolcase/miniegun,
-/obj/item/storage/pistolcase/iongun,
+/obj/item/storage/guncase/pistol/miniegun,
+/obj/item/storage/guncase/pistol/iongun,
/obj/item/storage/lockbox,
/obj/item/storage/lockbox/loyalty,
/obj/item/storage/lockbox/clusterbang,
@@ -4170,7 +4116,7 @@
/obj/item/toy/snappop/phoenix,
/obj/item/toy/talking,
/obj/item/toy/talking/AI,
-/obj/item/toy/talking/codex_gigas,
+/obj/item/storage/book/bible,
/obj/item/toy/talking/owl,
/obj/item/toy/talking/griffin,
/obj/item/toy/cards,
@@ -4449,8 +4395,8 @@
/obj/item/gun/ballistic/automatic/assault/skm/no_mag,
/obj/item/gun/ballistic/automatic/assault/skm/pirate,
/obj/item/gun/ballistic/automatic/assault/skm/inteq,
-/obj/item/gun/ballistic/automatic/assault/p16,
-/obj/item/gun/ballistic/automatic/assault/p16/no_mag,
+/obj/item/gun/ballistic/automatic/assault/cm82,
+/obj/item/gun/ballistic/automatic/assault/cm82/no_mag,
/obj/item/gun/ballistic/automatic/assault/cm82,
/obj/item/gun/ballistic/automatic/assault/swiss_cheese,
/obj/item/gun/ballistic/automatic/assault/e40,
@@ -4509,7 +4455,7 @@
/obj/item/gun/ballistic/revolver/firebrand,
/obj/item/gun/ballistic/revolver/firebrand/no_mag,
/obj/item/gun/ballistic/revolver/shadow,
-/obj/item/gun/ballistic/revolver/shadow/no_mag,
+/obj/item/gun/ballistic/revolver/shadow/empty,
/obj/item/gun/ballistic/rifle,
/obj/item/gun/ballistic/rifle/illestren,
/obj/item/gun/ballistic/rifle/illestren/empty,
@@ -4560,7 +4506,7 @@
/obj/item/gun/ballistic/automatic/smg/firestorm/pan,
/obj/item/gun/ballistic/automatic/smg/skm_carbine,
/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq,
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq,
/obj/item/gun/ballistic/automatic/toy,
/obj/item/gun/ballistic/automatic/toy/pistol,
/obj/item/gun/ballistic/automatic/toy/pistol/riot,
@@ -5119,12 +5065,12 @@
/obj/item/melee/transforming/energy/sword/saber/green,
/obj/item/melee/transforming/energy/sword/saber/purple,
/obj/item/melee/transforming/energy/sword/saber/yellow,
-/obj/item/melee/transforming/energy/sword/saber/pirate,
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
-/obj/item/melee/transforming/energy/sword/saber/pirate/blue,
-/obj/item/melee/transforming/energy/sword/saber/pirate/green,
-/obj/item/melee/transforming/energy/sword/saber/pirate/purple,
-/obj/item/melee/transforming/energy/sword/saber/pirate/yellow,
+/obj/item/melee/energy/sword/saber/pirate,
+/obj/item/melee/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/blue,
+/obj/item/melee/energy/sword/saber/pirate/green,
+/obj/item/melee/energy/sword/saber/pirate/purple,
+/obj/item/melee/energy/sword/saber/pirate/yellow,
/obj/item/melee/transforming/energy/blade,
/obj/item/melee/transforming/energy/blade/hardlight,
/obj/item/melee/transforming/energy/ctf,
@@ -5629,7 +5575,7 @@
/turf/open/space/basic,
/area/ruin/space/has_grav)
"mJ" = (
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/space)
"mM" = (
/turf/open/space/transit/south,
@@ -6556,7 +6502,7 @@
/obj/item/clothing/under/frontiersmen/officer,
/obj/item/clothing/under/frontiersmen/admiral,
/obj/item/clothing/suit/frontiersmen,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/suit/armor/vest/marine/frontier,
/obj/item/clothing/suit/armor/frontier,
/obj/item/clothing/suit/armor/frontier/fireproof,
@@ -6873,7 +6819,7 @@
/obj/item/clothing/under/color/lightbrown,
/obj/item/clothing/under/color/jumpskirt/lightbrown,
/obj/item/clothing/under/color/khaki,
-/obj/item/clothing/under/color/khaki/buster,
+/obj/item/clothing/glasses/welding/ghostbuster,
/obj/item/clothing/under/color/brown,
/obj/item/clothing/under/color/jumpskirt/brown,
/obj/item/clothing/under/color/maroon,
@@ -6915,14 +6861,14 @@
/obj/item/clothing/under/dress/striped,
/obj/item/clothing/under/dress/sailor,
/obj/item/clothing/under/dress/redeveninggown,
-/obj/item/clothing/under/dress/skirt,
-/obj/item/clothing/under/dress/skirt/blue,
-/obj/item/clothing/under/dress/skirt/red,
-/obj/item/clothing/under/dress/skirt/purple,
-/obj/item/clothing/under/dress/skirt/plaid,
-/obj/item/clothing/under/dress/skirt/plaid/blue,
-/obj/item/clothing/under/dress/skirt/plaid/purple,
-/obj/item/clothing/under/dress/skirt/plaid/green,
+/obj/item/clothing/under/dress/skirt/color,
+/obj/item/clothing/under/dress/skirt/color/blue,
+/obj/item/clothing/under/dress/skirt/color/red,
+/obj/item/clothing/under/dress/skirt/color/purple,
+/obj/item/clothing/under/dress/skirt/color/plaid,
+/obj/item/clothing/under/dress/skirt/color/plaid/blue,
+/obj/item/clothing/under/dress/skirt/color/plaid/purple,
+/obj/item/clothing/under/dress/skirt/color/plaid/green,
/obj/item/clothing/under/dress/rilena,
/obj/item/clothing/head/helmet/riot/gamma_vision,
/obj/item/clothing/head/helmet/space/hardsuit/security/gamma/white_squadron_rig,
@@ -7430,7 +7376,7 @@
/obj/item/storage/box/stockparts/t3,
/obj/item/storage/box/stockparts/deluxe,
/obj/item/storage/box/dishdrive,
-/obj/item/storage/box/inteqmaid,
+/obj/item/storage/box/maid,
/obj/item/storage/box/syndimaid,
/obj/item/storage/box/maid,
/obj/item/storage/box/material,
@@ -7561,7 +7507,7 @@
/obj/item/key/lasso,
/obj/item/storage/belt/mining/vendor,
/obj/item/storage/belt/mining/primitive,
-/obj/item/storage/belt/soulstone,
+/obj/item/storage/belt/chameleon,
/obj/item/storage/belt/champion,
/obj/item/storage/belt/military,
/obj/item/storage/belt/military/snack,
@@ -7792,7 +7738,7 @@
/obj/item/clothing/head/nun_hood,
/obj/item/clothing/head/nursehat,
/obj/item/clothing/head/papersack,
-/obj/item/clothing/head/peaceflower,
+/obj/item/clothing/head/plastic_flower,
/obj/item/clothing/head/pharaoh,
/obj/item/clothing/head/pirate,
/obj/item/clothing/head/plaguedoctorhat,
@@ -7854,10 +7800,7 @@
/obj/item/clothing/head/helmet,
/obj/item/clothing/head/helmet/sec,
/obj/item/clothing/head/helmet/bulletproof,
-/obj/item/clothing/head/helmet/marine,
-/obj/item/clothing/head/helmet/marine/security,
-/obj/item/clothing/head/helmet/marine/engineer,
-/obj/item/clothing/head/helmet/marine/medic,
+/obj/item/clothing/head/helmet/gezena,
/obj/item/clothing/head/helmet/old,
/obj/item/clothing/head/helmet/blueshirt,
/obj/item/clothing/head/helmet/riot,
@@ -8360,7 +8303,7 @@
/obj/machinery/porta_turret/syndicate/energy/raven,
/obj/machinery/porta_turret/syndicate/pod,
/obj/machinery/porta_turret/syndicate/shuttle,
-/obj/machinery/porta_turret/ai,
+/obj/machinery/porta_turret,
/obj/machinery/porta_turret/ship,
/obj/machinery/porta_turret/ship/weak,
/obj/machinery/porta_turret/ship/ballistic,
@@ -8744,10 +8687,10 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/portable_atmospherics/canister/tritium,
-/obj/machinery/portable_atmospherics/canister/nob,
-/obj/machinery/portable_atmospherics/canister/nitryl,
-/obj/machinery/portable_atmospherics/canister/stimulum,
-/obj/machinery/portable_atmospherics/canister/pluoxium,
+/obj/machinery/portable_atmospherics/canister/freon,
+/obj/machinery/portable_atmospherics/canister/freon,
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/portable_atmospherics/canister/toxins,
/obj/machinery/portable_atmospherics/canister/water_vapor,
/obj/machinery/portable_atmospherics/canister/freon,
/obj/machinery/portable_atmospherics/canister/hydrogen,
@@ -8816,8 +8759,6 @@
/obj/machinery/smartfridge/drying_rack,
/obj/machinery/smartfridge/drinks,
/obj/machinery/smartfridge/food,
-/obj/machinery/smartfridge/extract,
-/obj/machinery/smartfridge/extract/preloaded,
/obj/machinery/smartfridge/organ,
/obj/machinery/smartfridge/chemistry,
/obj/machinery/smartfridge/chemistry/preloaded,
@@ -9150,7 +9091,7 @@
/obj/machinery/vending/clothing,
/obj/machinery/vending/coffee,
/obj/machinery/vending/cola,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/machinery/vending/cola/blue,
/obj/machinery/vending/cola/black,
/obj/machinery/vending/cola/red,
@@ -9178,7 +9119,7 @@
/obj/machinery/vending/security/marine/syndicate,
/obj/machinery/vending/security/marine/nanotrasen,
/obj/machinery/vending/snack,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/vending/snack/blue,
/obj/machinery/vending/snack/orange,
/obj/machinery/vending/snack/green,
@@ -9266,7 +9207,7 @@
/obj/structure/shuttle/engine/router,
/obj/structure/shuttle/engine/large,
/obj/structure/shuttle/engine/huge,
-/obj/structure/mecha_wreckage/honker/dark,
+/obj/structure/mecha_wreckage/honker,
/obj/structure/door_assembly,
/obj/structure/frame,
/obj/structure/frame/machine,
@@ -10329,7 +10270,7 @@
/obj/structure/disposalpipe/broken,
/obj/structure/altar_of_gods,
/obj/structure/barricade/slime,
-/obj/structure/ice_stasis,
+/obj/structure/chair,
/obj/structure/puzzle_element,
/obj/structure/puzzle_element/prison,
/obj/structure/lavaland/ash_walker,
@@ -10699,7 +10640,7 @@
/mob/living/simple_animal/hostile/hivebot/rapid,
/mob/living/simple_animal/hostile/hivebot/rapid/rockplanet,
/mob/living/simple_animal/hostile/hivebot/strong,
-/mob/living/simple_animal/hostile/hivebot/strong/rockplanet,
+/mob/living/simple_animal/hostile/hivebot/strong,
/mob/living/simple_animal/hostile/hivebot/mechanic,
/mob/living/simple_animal/hostile/hivebot/wasteplanet,
/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged,
@@ -10736,7 +10677,7 @@
/mob/living/simple_animal/hostile/asteroid/fugu/asteroid,
/mob/living/simple_animal/hostile/boss,
/mob/living/simple_animal/hostile/gorilla,
-/mob/living/simple_animal/hostile/human/cat_butcherer,
+/mob/living/simple_animal/hostile/clown/clownhulk/honcmunculus,
/mob/living/simple_animal/hostile/human/frontier,
/mob/living/simple_animal/hostile/human/frontier/internals,
/mob/living/simple_animal/hostile/human/frontier/ranged,
@@ -10761,8 +10702,8 @@
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/neutered,
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy,
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals,
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered,
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered,
/mob/living/simple_animal/hostile/human/frontier/ranged/officer,
/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals,
/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals/neutered,
@@ -11138,7 +11079,7 @@
/turf/open/space/basic,
/area/ruin/beach/piratecrash/storage)
"sx" = (
-/turf/open/floor/sepia,
+/turf/open/floor/plasteel/sepia,
/area/space)
"sz" = (
/turf/open/space/basic,
@@ -13927,7 +13868,9 @@
/obj/effect/spawner/bundle/costume/madscientist,
/obj/effect/spawner/bundle/costume/mafia,
/obj/effect/spawner/bundle/costume/maid,
-/obj/effect/spawner/bundle/costume/marisawizard,
+/obj/item/clothing/head/wizard/marisa/fake,
+/obj/item/clothing/suit/wizrobe/marisa/fake,
+/obj/item/clothing/shoes/wizrobe/marisa,
/obj/effect/spawner/bundle/costume/nightowl,
/obj/effect/spawner/bundle/costume/nyangirl,
/obj/effect/spawner/bundle/costume/pirate,
@@ -13938,135 +13881,135 @@
/obj/effect/spawner/bunk_bed,
/obj/effect/spawner/clawloot,
/obj/effect/spawner/clawloot/crusher,
-/obj/effect/spawner/lootdrop,
-/obj/effect/spawner/lootdrop/aimodule_harmful,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/effect/spawner/lootdrop/aimodule_neutral,
-/obj/effect/spawner/lootdrop/anomaly,
-/obj/effect/spawner/lootdrop/anomaly/beach,
-/obj/effect/spawner/lootdrop/anomaly/beach/cave,
-/obj/effect/spawner/lootdrop/anomaly/big,
-/obj/effect/spawner/lootdrop/anomaly/dangerous,
-/obj/effect/spawner/lootdrop/anomaly/ice,
-/obj/effect/spawner/lootdrop/anomaly/ice/cave,
-/obj/effect/spawner/lootdrop/anomaly/jungle,
-/obj/effect/spawner/lootdrop/anomaly/jungle/cave,
-/obj/effect/spawner/lootdrop/anomaly/lava,
-/obj/effect/spawner/lootdrop/anomaly/lava/cave,
-/obj/effect/spawner/lootdrop/anomaly/rock,
-/obj/effect/spawner/lootdrop/anomaly/rock/cave,
-/obj/effect/spawner/lootdrop/anomaly/safe,
-/obj/effect/spawner/lootdrop/anomaly/sand,
-/obj/effect/spawner/lootdrop/anomaly/sand/cave,
-/obj/effect/spawner/lootdrop/anomaly/storm,
-/obj/effect/spawner/lootdrop/anomaly/waste,
-/obj/effect/spawner/lootdrop/anomaly/waste/cave,
-/obj/effect/spawner/lootdrop/armory_contraband,
-/obj/effect/spawner/lootdrop/armory_contraband/donutstation,
-/obj/effect/spawner/lootdrop/armory_contraband/metastation,
-/obj/effect/spawner/lootdrop/beaker_loot_spawner,
-/obj/effect/spawner/lootdrop/chicken,
-/obj/effect/spawner/lootdrop/chicken/jungle,
-/obj/effect/spawner/lootdrop/chicken/jungle/flock,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/crate_spawner,
-/obj/effect/spawner/lootdrop/destructive_anal_loot,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut/slimejelly,
-/obj/effect/spawner/lootdrop/flora,
-/obj/effect/spawner/lootdrop/flower,
-/obj/effect/spawner/lootdrop/gambling,
-/obj/effect/spawner/lootdrop/garden,
-/obj/effect/spawner/lootdrop/garden/arid,
-/obj/effect/spawner/lootdrop/garden/cold,
-/obj/effect/spawner/lootdrop/garden/seaweed,
-/obj/effect/spawner/lootdrop/garden/sick,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/spawner/lootdrop/hivebotspawner,
-/obj/effect/spawner/lootdrop/lpaid,
-/obj/effect/spawner/lootdrop/lpretrieval,
-/obj/effect/spawner/lootdrop/mafia_outfit,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance/eight,
-/obj/effect/spawner/lootdrop/maintenance/five,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/effect/spawner/lootdrop/maintenance/seven,
-/obj/effect/spawner/lootdrop/maintenance/six,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/materials,
-/obj/effect/spawner/lootdrop/memeorgans,
-/obj/effect/spawner/lootdrop/mine,
-/obj/effect/spawner/lootdrop/minebot,
-/obj/effect/spawner/lootdrop/minor,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
-/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask,
-/obj/effect/spawner/lootdrop/plushie,
-/obj/effect/spawner/lootdrop/plushie/moth,
-/obj/effect/spawner/lootdrop/prison_contraband,
-/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop,
-/obj/effect/spawner/lootdrop/random_computer_circuit_common,
-/obj/effect/spawner/lootdrop/random_computer_circuit_rare,
-/obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop,
-/obj/effect/spawner/lootdrop/random_machine_circuit_common,
-/obj/effect/spawner/lootdrop/random_machine_circuit_mech,
-/obj/effect/spawner/lootdrop/random_machine_circuit_rare,
-/obj/effect/spawner/lootdrop/random_prosthetic,
-/obj/effect/spawner/lootdrop/randomimprinter,
-/obj/effect/spawner/lootdrop/randomprotolathe,
-/obj/effect/spawner/lootdrop/randomtechfab,
-/obj/effect/spawner/lootdrop/randomthreat,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ripley,
-/obj/effect/spawner/lootdrop/rnd,
-/obj/effect/spawner/lootdrop/salvage,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/spawner/lootdrop/salvage_capacitor,
-/obj/effect/spawner/lootdrop/salvage_laser,
-/obj/effect/spawner/lootdrop/salvage_machine,
-/obj/effect/spawner/lootdrop/salvage_manipulator,
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
-/obj/effect/spawner/lootdrop/salvage_scanning,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/singularitygen,
-/obj/effect/spawner/lootdrop/snowdin,
-/obj/effect/spawner/lootdrop/spiderspawner,
-/obj/effect/spawner/lootdrop/stockparts,
-/obj/effect/spawner/lootdrop/techstorage,
-/obj/effect/spawner/lootdrop/thirtyfive_percent_borerspawner,
-/obj/effect/spawner/lootdrop/three_course_meal,
-/obj/effect/spawner/lootdrop/tool_engie_adv,
-/obj/effect/spawner/lootdrop/tool_engie_common,
-/obj/effect/spawner/lootdrop/tool_engie_proto,
-/obj/effect/spawner/lootdrop/tool_engie_sydnie,
-/obj/effect/spawner/lootdrop/tool_surgery_adv,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
-/obj/effect/spawner/lootdrop/tool_surgery_proto,
-/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner,
-/obj/effect/spawner/lootdrop/waste,
-/obj/effect/spawner/lootdrop/xenoqueenspawner,
-/obj/effect/spawner/lootdrop/xenospawner,
-/obj/effect/spawner/lootdrop/waste/atmos_can,
-/obj/effect/spawner/lootdrop/waste/girder,
-/obj/effect/spawner/lootdrop/waste/grille_or_trash,
-/obj/effect/spawner/lootdrop/waste/grille_or_trash,
-/obj/effect/spawner/lootdrop/waste/hivebot,
-/obj/effect/spawner/lootdrop/waste/mechwreck,
-/obj/effect/spawner/lootdrop/waste/radiation,
-/obj/effect/spawner/lootdrop/waste/salvageable,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/radiation/more_rads,
-/obj/effect/spawner/lootdrop/waste/mechwreck/rare,
-/obj/effect/spawner/lootdrop/waste/hivebot/beacon,
-/obj/effect/spawner/lootdrop/waste/atmos_can/rare,
-/obj/effect/spawner/lootdrop/xenoqueenspawner,
-/obj/effect/spawner/lootdrop/xenospawner,
+/obj/effect/spawner/random,
+/obj/effect/spawner/random/aimodule_harmful,
+/obj/effect/spawner/random/aimodule_harmless,
+/obj/effect/spawner/random/aimodule_neutral,
+/obj/effect/spawner/random/anomaly,
+/obj/effect/spawner/random/anomaly/beach,
+/obj/effect/spawner/random/anomaly/beach/cave,
+/obj/effect/spawner/random/anomaly/big,
+/obj/effect/spawner/random/anomaly/dangerous,
+/obj/effect/spawner/random/anomaly/ice,
+/obj/effect/spawner/random/anomaly/ice/cave,
+/obj/effect/spawner/random/anomaly/jungle,
+/obj/effect/spawner/random/anomaly/jungle/cave,
+/obj/effect/spawner/random/anomaly/lava,
+/obj/effect/spawner/random/anomaly/lava/cave,
+/obj/effect/spawner/random/anomaly/rock,
+/obj/effect/spawner/random/anomaly/rock/cave,
+/obj/effect/spawner/random/anomaly/safe,
+/obj/effect/spawner/random/anomaly/sand,
+/obj/effect/spawner/random/anomaly/sand/cave,
+/obj/effect/spawner/random/anomaly/storm,
+/obj/effect/spawner/random/anomaly/waste,
+/obj/effect/spawner/random/anomaly/waste/cave,
+/obj/effect/spawner/random/exotic/armory,
+/obj/effect/spawner/random/armory_contraband/donutstation,
+/obj/effect/spawner/random/exotic/armory,
+/obj/effect/spawner/random/medical/beaker,
+/obj/effect/spawner/random/chicken,
+/obj/effect/spawner/random/chicken/jungle,
+/obj/effect/spawner/random/chicken/jungle/flock,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/structure/crate_abandoned,
+/obj/effect/spawner/random/destructive_anal_loot,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly,
+/obj/effect/spawner/random/flora,
+/obj/effect/spawner/random/flower,
+/obj/effect/spawner/random/entertainment/gambling,
+/obj/effect/spawner/random/garden,
+/obj/effect/spawner/random/garden/arid,
+/obj/effect/spawner/random/garden/cold,
+/obj/effect/spawner/random/food_or_drink/garden/seaweed,
+/obj/effect/spawner/random/garden/sick,
+/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/hivebotspawner,
+/obj/effect/spawner/random/lpaid,
+/obj/effect/spawner/random/lpretrieval,
+/obj/effect/spawner/random/clothing/mafia_outfit,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/maintenance/four,
+/obj/effect/spawner/random/maintenance/seven,
+/obj/effect/spawner/random/maintenance/six,
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/materials,
+/obj/effect/spawner/random/medical/memeorgans,
+/obj/effect/spawner/random/mine,
+/obj/effect/spawner/random/minebot,
+/obj/effect/spawner/random/minor,
+/obj/effect/spawner/random/minor/beret_or_rabbitears,
+/obj/effect/spawner/random/minor/bowler_or_that,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/random/minor/twentyfive_percent_cyborg_mask,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie/moth,
+/obj/effect/spawner/random/stockparts,
+/obj/effect/spawner/random/random_ammo_protolathe_lootdrop,
+/obj/effect/spawner/random/circuit/computer/common,
+/obj/effect/spawner/random/circuit/computer/rare,
+/obj/effect/spawner/random/random_gun_protolathe_lootdrop,
+/obj/effect/spawner/random/circuit/machine/common,
+/obj/effect/spawner/random/circuit/machine/mech,
+/obj/effect/spawner/random/circuit/machine/rare,
+/obj/effect/spawner/random/medical/prosthetic,
+/obj/effect/spawner/random/randomimprinter,
+/obj/effect/spawner/random/randomprotolathe,
+/obj/effect/spawner/random/randomtechfab,
+/obj/effect/spawner/random/randomthreat,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/exotic/ripley,
+/obj/effect/spawner/random/rnd,
+/obj/effect/spawner/random/salvage,
+/obj/effect/spawner/random/salvage_50,
+/obj/effect/spawner/random/salvage_capacitor,
+/obj/effect/spawner/random/salvage_laser,
+/obj/effect/spawner/random/salvage_machine,
+/obj/effect/spawner/random/salvage_manipulator,
+/obj/effect/spawner/random/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_scanning,
+/obj/effect/spawner/random/seeded,
+/obj/effect/spawner/random/singularitygen,
+/obj/effect/spawner/random/snowdin,
+/obj/effect/spawner/random/spiderspawner,
+/obj/effect/spawner/random/stockparts,
+/obj/effect/spawner/random/techstorage,
+/obj/effect/spawner/random/thirtyfive_percent_borerspawner,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
+/obj/effect/spawner/random/engineering/tool/adv,
+/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/spawner/random/engineering/tool,
+/obj/effect/spawner/random/engineering/tool/sydnie,
+/obj/effect/spawner/random/medical/surgery_tool/adv,
+/obj/effect/spawner/random/medical/surgery_tool/common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
+/obj/effect/spawner/random/two_percent_xeno_egg_spawner,
+/obj/effect/spawner/random/waste,
+/obj/effect/spawner/random/xenoqueenspawner,
+/obj/effect/spawner/random/xenospawner,
+/obj/effect/spawner/random/waste/atmos_can,
+/obj/effect/spawner/random/waste/girder,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/hivebot,
+/obj/effect/spawner/random/waste/mechwreck,
+/obj/effect/spawner/random/waste/radiation,
+/obj/effect/spawner/random/waste/salvageable,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/waste/radiation/more_rads,
+/obj/effect/spawner/random/waste/mechwreck/rare,
+/obj/effect/spawner/random/waste/hivebot/beacon,
+/obj/effect/spawner/random/waste/atmos_can/rare,
+/obj/effect/spawner/random/xenoqueenspawner,
+/obj/effect/spawner/random/xenospawner,
/obj/effect/spawner/minefield,
/obj/effect/spawner/minefield/manhack,
/obj/effect/spawner/minefield/random,
@@ -14545,35 +14488,15 @@
/obj/structure/statue,
/obj/structure/statue/uranium,
/obj/structure/statue/uranium/nuke,
-/obj/structure/statue/uranium/eng,
-/obj/structure/statue/plasma,
-/obj/structure/statue/plasma/scientist,
-/obj/structure/statue/gold,
-/obj/structure/statue/gold/hos,
-/obj/structure/statue/gold/head_of_personnel,
-/obj/structure/statue/gold/cmo,
-/obj/structure/statue/gold/ce,
-/obj/structure/statue/gold/rd,
-/obj/structure/statue/silver,
-/obj/structure/statue/silver/md,
-/obj/structure/statue/silver/janitor,
-/obj/structure/statue/silver/sec,
-/obj/structure/statue/silver/secborg,
-/obj/structure/statue/silver/medborg,
-/obj/structure/statue/diamond,
-/obj/structure/statue/diamond/captain,
-/obj/structure/statue/diamond/ai1,
-/obj/structure/statue/diamond/ai2,
-/obj/structure/statue/bananium,
-/obj/structure/statue/bananium/clown,
+/obj/structure/statue/bronze/masson_kills,
/obj/structure/statue/sandstone,
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/obj/structure/statue/sandstone/venus,
/obj/structure/statue/snow,
/obj/structure/statue/snow/snowman,
/obj/structure/statue/snow/snowlegion,
/obj/structure/statue/bronze,
-/obj/structure/statue/bronze/marx,
+/obj/item/statuebust,
/obj/structure/statue/bone,
/obj/structure/statue/bone/rib,
/obj/structure/statue/bone/skull,
diff --git a/_maps/_mod_celadon/outpost/elysium_asteroid.dmm b/_maps/_mod_celadon/outpost/elysium_asteroid.dmm
index e23243d52644..279d1af61af2 100644
--- a/_maps/_mod_celadon/outpost/elysium_asteroid.dmm
+++ b/_maps/_mod_celadon/outpost/elysium_asteroid.dmm
@@ -52,7 +52,7 @@
"aj" = (
/obj/structure/table/scrap,
/obj/machinery/light/small/directional/south,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
"ak" = (
@@ -95,7 +95,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/fraction/inteq)
"as" = (
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -177,7 +177,7 @@
/area/outpost/vacant_rooms)
"aD" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/wood/walnut,
/area/outpost/fraction/syndi/donkco_shop)
"aE" = (
@@ -1014,7 +1014,7 @@
/turf/closed/indestructible/reinforced,
/area/outpost/maintenance/aft)
"cM" = (
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -1496,7 +1496,7 @@
/area/outpost/crew/canteen)
"dV" = (
/obj/machinery/light/small/directional/south,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -1661,7 +1661,7 @@
/area/outpost/hallway/central)
"es" = (
/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/mono,
/area/outpost/cargo/faction/solfed)
"et" = (
@@ -1999,7 +1999,7 @@
/turf/open/floor/plasteel/white,
/area/outpost/crew/library)
"fm" = (
-/obj/effect/spawner/lootdrop/flora,
+/obj/effect/spawner/random/flora,
/obj/effect/turf_decal/siding/wood{
dir = 1
},
@@ -2086,7 +2086,7 @@
/obj/effect/turf_decal/weather/dirt{
dir = 8
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -2779,7 +2779,7 @@
"hl" = (
/obj/structure/closet/crate/goldcrate,
/obj/item/surgical_processor,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
"hm" = (
@@ -3003,7 +3003,7 @@
/turf/open/floor/wood/ebony,
/area/outpost/fraction/solfed)
"hU" = (
-/obj/effect/spawner/lootdrop/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"hV" = (
@@ -3068,7 +3068,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/cargo/office)
"id" = (
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plating/dirt/rockplanet,
/area/outpost/hallway/central)
"ie" = (
@@ -3134,7 +3134,7 @@
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"io" = (
-/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/random/engineering/tool/common,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/rockvault,
/area/outpost/hallway/central)
@@ -3632,7 +3632,7 @@
/obj/effect/turf_decal/weather/dirt{
dir = 9
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -4031,7 +4031,7 @@
dir = 4;
pixel_x = 3
},
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/structure/window/reinforced/spawner{
dir = 8;
pixel_x = -2
@@ -4219,7 +4219,7 @@
dir = 1;
pixel_y = 5
},
-/obj/effect/spawner/lootdrop/mine,
+/obj/effect/spawner/random/mine,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -4649,7 +4649,7 @@
/turf/open/floor/plasteel/rockvault,
/area/outpost/hallway/central)
"mh" = (
-/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/random/engineering/tool/common,
/obj/structure/table/reinforced,
/obj/item/phone{
pixel_y = 12
@@ -4788,7 +4788,7 @@
/turf/open/floor/wood,
/area/outpost/operations)
"mC" = (
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating/rust,
/area/outpost/hallway/central)
"mD" = (
@@ -4894,10 +4894,10 @@
},
/area/outpost/maintenance/fore)
"mT" = (
-/obj/effect/spawner/lootdrop/tool_engie_sydnie,
-/obj/effect/spawner/lootdrop/tool_engie_sydnie,
+/obj/effect/spawner/random/engineering/tool/sydnie,
+/obj/effect/spawner/random/engineering/tool/sydnie,
/obj/structure/closet/crate,
-/obj/item/storage/pistolcase/candor,
+/obj/item/storage/guncase/pistol/candor,
/turf/open/floor/plating,
/area/outpost/hallway/central)
"mU" = (
@@ -5217,7 +5217,7 @@
"nK" = (
/obj/structure/closet/crate/goldcrate,
/obj/item/survey_handheld/elite,
-/obj/effect/spawner/lootdrop/memeorgans,
+/obj/effect/spawner/random/medical/memeorgans,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
"nL" = (
@@ -5729,7 +5729,7 @@
/area/outpost/operations)
"oY" = (
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"oZ" = (
@@ -6430,7 +6430,7 @@
/area/outpost/fraction/inteq)
"qJ" = (
/obj/machinery/light/small/directional/east,
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"qK" = (
@@ -6678,7 +6678,7 @@
/area/outpost/hallway/central)
"rn" = (
/obj/effect/turf_decal/syndicateemblem/bottom/right,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/mineral/plastitanium/red,
/area/outpost/cargo/faction/syndicate)
"ro" = (
@@ -7705,7 +7705,7 @@
},
/area/outpost/vacant_rooms/trash_factory)
"tS" = (
-/obj/effect/spawner/lootdrop/waste/mechwreck,
+/obj/effect/spawner/random/waste/mechwreck,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"tT" = (
@@ -7841,7 +7841,7 @@
/turf/open/floor/concrete/reinforced,
/area/outpost/crew/garden)
"ul" = (
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"un" = (
@@ -8071,7 +8071,7 @@
/turf/open/floor/carpet/red,
/area/outpost/vacant_rooms/office)
"uM" = (
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/turf/open/floor/wood{
light_range = 2
},
@@ -8865,7 +8865,7 @@
/obj/structure/sign/warning/fire{
pixel_y = 32
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/rockvault,
/area/outpost/hallway/central)
@@ -8983,7 +8983,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -9031,12 +9031,12 @@
},
/area/outpost/fraction/solfed)
"xh" = (
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/closet/crate,
/turf/open/floor/engine/hull/rockplanet,
/area/outpost/hallway/central)
"xi" = (
-/obj/effect/spawner/lootdrop/waste/salvageable,
+/obj/effect/spawner/random/waste/salvageable,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"xj" = (
@@ -9432,7 +9432,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/engineering/atmospherics)
"yf" = (
-/obj/effect/spawner/lootdrop/mine,
+/obj/effect/spawner/random/mine,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -9564,7 +9564,7 @@
/turf/open/water/beach,
/area/outpost/hallway/central)
"yx" = (
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -10059,7 +10059,7 @@
"zP" = (
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/aft)
"zQ" = (
@@ -10784,7 +10784,7 @@
},
/obj/machinery/light/small/directional/west,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -11044,7 +11044,7 @@
/area/outpost/hallway/central)
"Cj" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/fraction/inteq)
"Ck" = (
@@ -11115,7 +11115,7 @@
/area/outpost/operations)
"Ct" = (
/obj/effect/turf_decal/syndicateemblem/bottom/left,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/mineral/plastitanium/red,
/area/outpost/cargo/faction/syndicate)
"Cu" = (
@@ -11344,12 +11344,12 @@
dir = 1;
icon_state = "box_corners"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/mono,
/area/outpost/cargo/faction/solfed)
"CP" = (
/obj/effect/turf_decal/syndicateemblem/top/middle,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/mineral/plastitanium/red,
/area/outpost/cargo/faction/syndicate)
"CQ" = (
@@ -11434,7 +11434,7 @@
/turf/open/floor/concrete/reinforced,
/area/outpost/hallway/central)
"De" = (
-/obj/effect/spawner/lootdrop/mine,
+/obj/effect/spawner/random/mine,
/turf/open/space/basic,
/area/space)
"Df" = (
@@ -11530,7 +11530,7 @@
/turf/open/floor/concrete/slab_3,
/area/outpost/hallway/central)
"Ds" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/siding/wood{
dir = 8
},
@@ -11709,7 +11709,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/engineering)
"DS" = (
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -12134,7 +12134,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/fraction/inteq)
"EQ" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"ER" = (
@@ -12142,7 +12142,7 @@
/turf/open/floor/wood,
/area/outpost/fraction/solfed)
"ES" = (
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/obj/structure/table/reinforced,
/obj/item/paper/crumpled{
default_raw_text = "Сфера по изучению влияния аномалии ракушка. Довольно странное явление, видеть как аномалия повторяет стиль и дизайн пляжного небольшого курорта. Почему именно пляж?"
@@ -12550,7 +12550,7 @@
/turf/open/floor/plasteel/dark,
/area/outpost/operations)
"FS" = (
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/dirt/jungle,
/area/outpost/hallway/central)
"FT" = (
@@ -12575,7 +12575,7 @@
/turf/open/floor/plasteel/rockvault,
/area/outpost/operations)
"FZ" = (
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -13274,7 +13274,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/crew/cryo)
"HP" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/rockvault,
/area/outpost/hallway/central)
@@ -13449,7 +13449,7 @@
"Im" = (
/obj/machinery/light/small/directional/east,
/obj/structure/chair/comfy/blue/corpo/directional/south,
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"In" = (
@@ -13542,7 +13542,7 @@
/turf/open/floor/carpet/nanoweave,
/area/outpost/hallway/central)
"Ix" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating/dirt/jungle,
/area/outpost/hallway/central)
"Iy" = (
@@ -13713,7 +13713,7 @@
dir = 8;
pixel_x = 26
},
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/wood/walnut,
/area/outpost/fraction/syndi/donkco_shop)
"IP" = (
@@ -13748,7 +13748,7 @@
/obj/machinery/door/airlock/maintenance_hatch{
req_access_txt = "60003"
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -13937,7 +13937,7 @@
id = "OutpostPoligonExit_6";
pixel_x = 1
},
-/obj/effect/spawner/lootdrop/waste/hivebot,
+/obj/effect/spawner/random/waste/hivebot,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
"Jm" = (
@@ -13963,7 +13963,7 @@
/obj/effect/turf_decal/weather/dirt{
dir = 1
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -14140,7 +14140,7 @@
dir = 4;
pixel_x = 3
},
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/wood/walnut,
/area/outpost/fraction/syndi/donkco_shop)
"JH" = (
@@ -14625,7 +14625,7 @@
/area/outpost/hallway/starboard)
"KW" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/aft)
"KX" = (
@@ -14708,7 +14708,7 @@
/turf/open/floor/wood/ebony,
/area/outpost/fraction/solfed)
"Lk" = (
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/structure/lattice,
/turf/open/space/basic,
/area/outpost/external)
@@ -14813,7 +14813,7 @@
/turf/open/floor/grass/snow/safe,
/area/outpost/hallway/fore)
"Lw" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/concrete/reinforced,
/area/outpost/hallway/central)
"Lx" = (
@@ -14835,7 +14835,7 @@
"LB" = (
/mob/living/simple_animal/hostile/mimic/crate,
/obj/item/storage/photo_album/prison,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
@@ -15217,7 +15217,7 @@
/turf/open/space/basic,
/area/outpost/crew/garden)
"Mz" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/table/reinforced,
/turf/open/floor/plasteel/rockvault,
/area/outpost/hallway/central)
@@ -15749,7 +15749,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"NN" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/wood{
light_range = 2
},
@@ -15962,7 +15962,7 @@
dir = 8;
pixel_x = 26
},
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/wood/walnut,
/area/outpost/fraction/syndi/donkco_shop)
"Oo" = (
@@ -16210,7 +16210,7 @@
/area/outpost/hallway/central)
"OT" = (
/obj/item/storage/fancy/candle_box,
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -16274,7 +16274,7 @@
"Pb" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -16482,7 +16482,7 @@
/obj/structure/fluff/paper/stack,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/wood,
/area/outpost/maintenance/aft)
"PC" = (
@@ -16593,7 +16593,7 @@
/obj/structure/window/reinforced{
pixel_y = -5
},
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
"PP" = (
@@ -16934,7 +16934,7 @@
/area/outpost/hallway/central)
"QH" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/obj/machinery/light/small/directional/north,
/turf/open/floor/wood/walnut,
/area/outpost/fraction/syndi/donkco_shop)
@@ -17089,8 +17089,8 @@
/area/outpost/hallway/central)
"QZ" = (
/obj/structure/closet/crate/goldcrate,
-/obj/item/storage/pistolcase/viper,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/item/storage/guncase/pistol/viper,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/concrete,
/area/outpost/hallway/central)
"Ra" = (
@@ -17220,7 +17220,7 @@
/area/outpost/hallway/central)
"Ru" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
@@ -17459,7 +17459,7 @@
/area/outpost/crew/canteen)
"Sd" = (
/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Se" = (
@@ -17481,7 +17481,7 @@
/turf/open/floor/carpet/red,
/area/outpost/vacant_rooms/office)
"Sj" = (
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/outpost/hallway/central)
"Sk" = (
@@ -17584,7 +17584,7 @@
/obj/item/towel{
pixel_y = 15
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -17656,10 +17656,10 @@
/obj/structure/filler{
icon_state = "safe-open"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating{
icon_state = "foam_plating"
},
@@ -17701,7 +17701,7 @@
/turf/open/floor/concrete/slab_3,
/area/outpost/hallway/central)
"SM" = (
-/obj/effect/spawner/lootdrop/waste/girder,
+/obj/effect/spawner/random/waste/girder,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"SN" = (
@@ -17874,7 +17874,7 @@
/area/outpost/hallway/central)
"Tm" = (
/obj/structure/closet/crate/coffin,
-/obj/effect/spawner/lootdrop/waste/radiation/more_rads,
+/obj/effect/spawner/random/waste/radiation/more_rads,
/obj/item/storage/belt/medical,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
@@ -18172,7 +18172,7 @@
dir = 8;
pixel_x = 26
},
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/machinery/camera/autoname{
pixel_y = 11;
network = list("outpostelysium")
@@ -18301,7 +18301,7 @@
/obj/effect/turf_decal/weather/dirt/corner{
dir = 1
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
@@ -18322,7 +18322,7 @@
/area/outpost/fraction/syndi)
"Um" = (
/obj/structure/lattice,
-/obj/effect/spawner/lootdrop/mine,
+/obj/effect/spawner/random/mine,
/turf/open/space/basic,
/area/outpost/external)
"Un" = (
@@ -18365,7 +18365,7 @@
/area/outpost/fraction/syndi)
"Ut" = (
/obj/structure/closet/crate/coffin,
-/obj/effect/spawner/lootdrop/waste/radiation/more_rads,
+/obj/effect/spawner/random/waste/radiation/more_rads,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"Uu" = (
@@ -18895,7 +18895,7 @@
/turf/open/floor/carpet/nanoweave,
/area/outpost/crew/canteen)
"VH" = (
-/obj/effect/spawner/lootdrop/stockparts,
+/obj/effect/spawner/random/stockparts,
/obj/structure/chair/comfy/blue/corpo/directional/north,
/turf/open/floor/plating/foam,
/area/outpost/hallway/central)
@@ -19140,7 +19140,7 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/outpost/crew/cryo)
"Ws" = (
-/obj/structure/ice_stasis,
+/obj/structure/chair,
/turf/open/space/basic,
/area/outpost/crew/garden)
"Wu" = (
@@ -19495,7 +19495,7 @@
/obj/structure/closet/crate/grave/loot{
desc = "Here lies our great brother and infamous pirate"
},
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/clothing/costume,
/turf/open/floor/plating/dirt/jungle,
/area/outpost/hallway/central)
"Xo" = (
@@ -19711,7 +19711,7 @@
/obj/structure/deployable_barricade/guardrail{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/asteroid/wasteplanet,
/area/outpost/hallway/central)
"XM" = (
@@ -19751,7 +19751,7 @@
/obj/item/reagent_containers/spray/spraytan{
pixel_y = -8
},
-/turf/open/floor/plating/beach/sand{
+/turf/open/floor/plating/asteroid/sand/lit{
light_range = 2
},
/area/outpost/hallway/central)
diff --git a/_maps/_mod_celadon/outpost/elysium_ice.dmm b/_maps/_mod_celadon/outpost/elysium_ice.dmm
index 395c5a35368e..d954db5344ea 100644
--- a/_maps/_mod_celadon/outpost/elysium_ice.dmm
+++ b/_maps/_mod_celadon/outpost/elysium_ice.dmm
@@ -631,7 +631,7 @@
/area/outpost/security)
"axu" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"axV" = (
@@ -835,7 +835,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plating/rust,
/area/outpost/maintenance/port)
"aHx" = (
@@ -1324,7 +1324,7 @@
req_one_access_txt = "8125";
req_access = null
},
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/box/ammo/ferroslug,
/obj/item/storage/box/slugshot,
/obj/item/storage/fancy/cigarettes/cigars,
/obj/item/storage/fancy/cigarettes/cigars/havana,
@@ -1332,7 +1332,7 @@
/obj/item/storage/photo_album/bar,
/obj/item/storage/box/matches,
/obj/item/pda/bar,
-/obj/item/stamp/bard,
+/obj/item/stamp/clip/bard,
/obj/item/clothing/under/rank/civilian/bartender/skirt,
/obj/item/clothing/under/rank/civilian/bartender/purple,
/obj/item/clothing/under/rank/civilian/bartender,
@@ -1380,7 +1380,7 @@
"aZB" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/port)
"bav" = (
@@ -1795,7 +1795,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = -9
},
/turf/open/floor/plating{
@@ -2253,7 +2253,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/outpost/medical/hall_1)
"bJc" = (
@@ -3090,7 +3090,7 @@
icon_state = "1-2"
},
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -3747,7 +3747,7 @@
"cPP" = (
/obj/effect/mob_spawn/human/cook/husked,
/obj/item/spacecash/bundle/c100,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -3839,7 +3839,7 @@
/turf/closed/indestructible/reinforced,
/area/outpost/exterior)
"cVC" = (
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/item/spacecash/bundle/c10,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -3937,7 +3937,7 @@
"daH" = (
/obj/item/soap/syndie,
/obj/structure/closet/crate/wooden,
-/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine,
+/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine,
/obj/item/reagent_containers/glass/bottle/antitoxin,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -4040,7 +4040,7 @@
/area/outpost/fraction/solfed)
"dfm" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/table/scrap,
/turf/open/floor/plating{
light_color = "#1B1D2E";
@@ -4304,7 +4304,7 @@
"dns" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/clothing/head/hardhat/pumpkinhead/blumpkin{
light_on = 1
},
@@ -4423,7 +4423,7 @@
/turf/open/floor/plasteel/white,
/area/outpost/crew/canteen)
"dsZ" = (
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"dtD" = (
@@ -4632,7 +4632,7 @@
/obj/item/shard{
pixel_x = -5
},
-/obj/effect/spawner/lootdrop/maintenance/three{
+/obj/effect/spawner/random/maintenance/three{
pixel_y = -2;
pixel_x = 6
},
@@ -4942,7 +4942,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/outpost/maintenance/starboard)
"dLa" = (
@@ -4988,7 +4988,7 @@
pixel_y = 14;
pixel_x = 12
},
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/item/tank/internals/oxygen/empty,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -5726,7 +5726,7 @@
/turf/open/floor/wood,
/area/outpost/medical/cmo)
"eij" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating{
@@ -5936,7 +5936,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/starboard)
"eoJ" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -6054,9 +6054,6 @@
/area/outpost/crew/bar/vip_elysium_zone)
"erZ" = (
/obj/structure/table/abductor,
-/obj/item/clothing/suit/armor/heavy/adamantine{
- anchored = 1
- },
/obj/effect/landmark/portal_exit{
id = "outpost_dungeon_trapshaft_deep_exit_wrong"
},
@@ -6082,7 +6079,7 @@
/turf/open/floor/carpet/purple,
/area/outpost/crew/bar)
"ess" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -6168,10 +6165,6 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/security/hall)
"ewr" = (
-/obj/machinery/door/airlock{
- dir = 2;
- name = "Bar"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/structure/cable{
icon_state = "1-2"
@@ -6180,6 +6173,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
+/obj/machinery/door/airlock/multi_tile/public/glass,
/turf/open/floor/wood/walnut,
/area/outpost/crew/bar)
"ewD" = (
@@ -6866,11 +6860,6 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/plasteel/tech,
/area/outpost/crew/cryo)
-"eSU" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/portable_atmospherics/canister/freon,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
"eTT" = (
/obj/item/pickaxe/rusted,
/turf/open/floor/plating/asteroid/icerock/temperate,
@@ -7223,7 +7212,7 @@
/turf/open/floor/plasteel/dark,
/area/outpost/medical/morgue)
"ffJ" = (
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"ffR" = (
@@ -7337,7 +7326,7 @@
/area/outpost/cargo/smeltery)
"fmB" = (
/obj/structure/curtain/cloth/grey,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/mob_spawn/human/elysium_outpost/wagabond{
layer = 2
},
@@ -7365,11 +7354,6 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/outpost/operations/outpost_command)
-"fmX" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/portable_atmospherics/canister/stimulum,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
"foo" = (
/obj/item/stack/sheet/mineral/uranium/twenty,
/obj/structure/closet/crate/radiation,
@@ -8423,7 +8407,7 @@
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"gaf" = (
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/clothing/mask/gas/tiki_mask,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -9242,7 +9226,7 @@
},
/area/outpost/fraction/separatist)
"gCN" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -9318,7 +9302,7 @@
/turf/open/floor/plasteel/white,
/area/outpost/medical/reseption)
"gGe" = (
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"gGh" = (
@@ -9414,7 +9398,6 @@
/turf/open/floor/plasteel/showroomfloor,
/area/outpost/medical)
"gIu" = (
-/obj/effect/spawner/lootdrop/maintenance,
/obj/effect/mob_spawn/human/elysium_outpost/wagabond,
/obj/structure/curtain/cloth/grey,
/turf/open/floor/plating/asteroid/icerock/temperate,
@@ -9776,7 +9759,7 @@
/area/outpost/crew/cryo)
"gVe" = (
/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/spider/stickyweb,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating/rust,
@@ -10692,7 +10675,7 @@
},
/area/outpost/exterior)
"hEO" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating{
@@ -12100,7 +12083,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/trash/sosjerky,
/obj/item/trash/can,
/turf/open/floor/plasteel/patterned/brushed{
@@ -12477,7 +12460,7 @@
"iRB" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/sign/poster/retro/random{
pixel_x = -32
},
@@ -12854,12 +12837,12 @@
pixel_x = -1;
pixel_y = 16
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"jgu" = (
@@ -13319,7 +13302,7 @@
/turf/open/floor/carpet/cyan,
/area/outpost/medical/palata_1)
"jtg" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/portal/permanent/one_way{
id = "outpost_joke_endless_1l";
alpha = 0;
@@ -13462,7 +13445,7 @@
/obj/structure/flora/grass/green{
layer = 3.1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -13607,7 +13590,7 @@
/turf/open/floor/plasteel/dark,
/area/outpost/security)
"jDr" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/spacecash/bundle/c10,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -13714,7 +13697,7 @@
default_raw_text = "Это снова Энди. Ох, незнаю как вам а это были очень острые ощущения, ходить по мосту который вот вот грохнется в лаву! Но да ладно. Мы открыли вход. Нам удалось раскапать тунель, который судя по всему ведет куда-то глубоко вниз. Ну что ж, будем готовиться к спуску. К сожалению туннель тут слегка обвалился, приходится ползти ползком. Черт, придется оставить ящики с инструментами, они не пролезут дальше...";
pixel_x = 10
},
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"jHw" = (
@@ -13723,7 +13706,7 @@
},
/obj/structure/closet/crate/wooden,
/obj/item/stack/sheet/mineral/sandstone,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
@@ -14300,7 +14283,7 @@
/turf/open/floor/plasteel/dark,
/area/outpost/fraction/inteq)
"kfF" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -14386,15 +14369,15 @@
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/closet/wall/directional/north,
/obj/machinery/door/window,
/obj/machinery/light/small/directional/north{
@@ -14588,7 +14571,7 @@
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"kqB" = (
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"kqF" = (
@@ -14885,6 +14868,9 @@
},
/area/outpost/exterior)
"kDj" = (
+/obj/item/clothing/suit/armor/heavy{
+ anchored = 1
+ },
/obj/structure/chair/sofa/red/old/left{
dir = 8
},
@@ -14958,7 +14944,7 @@
/area/outpost/cargo)
"kFW" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating{
@@ -15107,7 +15093,7 @@
/area/outpost/fraction/separatist)
"kLU" = (
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/portable_atmospherics/canister/pluoxium,
+/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plasteel/mono/dark,
/area/outpost/cargo)
"kLZ" = (
@@ -15438,7 +15424,7 @@
/area/outpost/crew/cryo)
"kVU" = (
/obj/structure/table/abductor,
-/obj/effect/spawner/lootdrop/random_machine_circuit_mech,
+/obj/effect/spawner/random/circuit/machine/mech,
/turf/open/floor/plating/abductor,
/area/outpost/exterior)
"kVV" = (
@@ -15812,7 +15798,7 @@
/turf/open/floor/plasteel/white,
/area/outpost/crew/canteen)
"lqe" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/portal/permanent/one_way{
id = "outpost_joke_endless_105l";
alpha = 0;
@@ -15871,7 +15857,7 @@
/area/outpost/exterior)
"lsF" = (
/obj/structure/table/abductor,
-/obj/effect/spawner/lootdrop/random_computer_circuit_rare,
+/obj/effect/spawner/random/circuit/computer/rare,
/turf/open/floor/plating/abductor,
/area/outpost/exterior)
"lug" = (
@@ -16121,7 +16107,7 @@
layer = 3.1;
pixel_x = 13
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -17263,14 +17249,15 @@
/area/outpost/exterior)
"mrw" = (
/obj/structure/dresser{
- pixel_y = 14;
- layer = 3.05
+ pixel_y = 20;
+ layer = 3.05;
+ density = 0
},
/turf/open/floor/carpet/green,
/area/outpost/crew/bar/vip_elysium_zone)
"mrG" = (
/obj/structure/table/reinforced/titaniumglass,
-/obj/structure/statue/bronze/marx{
+/obj/item/statuebust{
pixel_y = 16;
mouse_opacity = 0
},
@@ -18592,7 +18579,7 @@
/area/outpost/maintenance/port)
"nlC" = (
/obj/structure/table/abductor,
-/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop,
+/obj/effect/spawner/random/random_ammo_protolathe_lootdrop,
/turf/open/floor/plating/abductor,
/area/outpost/exterior)
"nlM" = (
@@ -19044,7 +19031,7 @@
/area/outpost/cargo/smeltery)
"nyo" = (
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/portable_atmospherics/canister/nitryl,
+/obj/machinery/portable_atmospherics/canister/freon,
/turf/open/floor/plasteel/mono/dark,
/area/outpost/cargo)
"nzG" = (
@@ -19147,7 +19134,7 @@
short_desc = "Искусаное тараканами тело клоуна выглядит так как-будто его задушили одноцветным зеленым шарфом. Вы также замечаете что вокруг его шеи обмотан шарф в полосочку запачканый то ли грязью толи блевотиной клоуна. По цветам не скажешь, но кажется он был красно-серого цвета. Хороший был шарф, жаль его.";
desc = "Искусаное тараканами тело клоуна выглядит так как-будто его задушили одноцветным зеленым шарфом. Вы также замечаете что вокруг его шеи обмотан шарф в полосочку запачканый то ли грязью толи блевотиной клоуна. По цветам не скажешь, но кажется он был красно-серого цвета. Хороший был шарф, жаль его."
},
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -19926,7 +19913,7 @@
pixel_x = 14;
all_items_free = 1
},
-/obj/machinery/vending/snack/random{
+/obj/effect/spawner/random/vending/snack{
pixel_x = -14;
all_items_free = 1
},
@@ -20601,7 +20588,8 @@
/area/outpost/crew/cryo)
"oEp" = (
/obj/machinery/jukebox{
- pixel_y = 14
+ pixel_y = 19;
+ density = 0
},
/turf/open/floor/wood/walnut,
/area/outpost/crew/bar)
@@ -20658,7 +20646,7 @@
pixel_x = 10;
pixel_y = 1
},
-/obj/item/toy/talking/codex_gigas{
+/obj/item/storage/book/bible{
pixel_y = 10;
pixel_x = 12
},
@@ -20967,7 +20955,7 @@
pixel_y = 7;
pixel_x = -6
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
"oOO" = (
@@ -20975,7 +20963,7 @@
color = "#808080"
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
"oPl" = (
@@ -21116,7 +21104,7 @@
},
/obj/structure/closet/crate/wooden,
/obj/item/stack/sheet/mineral/sandstone/thirty,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
@@ -21625,7 +21613,7 @@
/obj/item/reagent_containers/glass/bottle/antitoxin,
/obj/item/storage/ration/pepper_jack_beef_patty,
/obj/item/storage/ration/pepper_jack_beef_patty,
-/obj/effect/spawner/lootdrop/salvage/plasma,
+/obj/effect/spawner/random/salvage/plasma,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"prZ" = (
@@ -22016,7 +22004,7 @@
"pBF" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/portable_atmospherics/canister/stimulum,
+/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plasteel/mono/dark,
/area/outpost/cargo)
"pCc" = (
@@ -22060,7 +22048,7 @@
"pDh" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/port)
"pDq" = (
@@ -22200,7 +22188,7 @@
},
/obj/item/stack/sheet/mineral/plasma,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
@@ -22208,7 +22196,7 @@
/obj/structure/spider/stickyweb{
color = "#808080"
},
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
"pIS" = (
@@ -22281,7 +22269,7 @@
/turf/open/floor/plasteel/white,
/area/outpost/crew/garden)
"pLe" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/portal/permanent/one_way{
id = "outpost_joke_endless_101l";
alpha = 0;
@@ -23005,7 +22993,7 @@
/area/outpost/crew/garden)
"qlM" = (
/obj/structure/table/abductor,
-/obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop,
+/obj/effect/spawner/random/random_gun_protolathe_lootdrop,
/turf/open/floor/plating/abductor,
/area/outpost/exterior)
"qlN" = (
@@ -23876,15 +23864,15 @@
"qRW" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = -2;
pixel_y = -11
},
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = 3;
pixel_y = 13
},
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = 21;
pixel_y = 11
},
@@ -24499,7 +24487,7 @@
/obj/structure/closet/crate/secure/loot,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -24791,7 +24779,7 @@
/area/outpost/fraction/separatist)
"rBo" = (
/obj/machinery/light/small/directional/east,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -24871,7 +24859,7 @@
/area/outpost/fraction/solfed)
"rDZ" = (
/obj/effect/turf_decal/borderfloor/full,
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = -9
},
/turf/open/floor/plating{
@@ -25374,7 +25362,7 @@
},
/area/outpost/fraction/separatist)
"rVu" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"rVx" = (
@@ -25516,7 +25504,6 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo/smeltery)
"sdG" = (
-/obj/effect/spawner/lootdrop/ration,
/obj/item/storage/backpack/duffelbag/med,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -25790,10 +25777,6 @@
/turf/open/floor/plasteel/elevatorshaft,
/area/outpost/maintenance/port)
"slA" = (
-/obj/machinery/door/airlock{
- dir = 2;
- name = "Bar"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor/border_only,
@@ -25838,7 +25821,7 @@
/area/outpost/medical/reseption)
"smM" = (
/obj/machinery/light/small/directional/east,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating{
@@ -26023,7 +26006,7 @@
/obj/structure/closet/crate/wooden,
/obj/item/reagent_containers/glass/bottle/antitoxin,
/obj/item/reagent_containers/glass/bottle/antitoxin,
-/obj/effect/spawner/lootdrop/salvage,
+/obj/effect/spawner/random/salvage,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"ssN" = (
@@ -26116,7 +26099,7 @@
/turf/open/floor/plating/rust,
/area/outpost/maintenance/starboard)
"suZ" = (
-/obj/effect/spawner/lootdrop/rnd{
+/obj/effect/spawner/random/rnd{
max_integrity = 100000;
pixel_x = 0;
anchored = 1;
@@ -26307,7 +26290,7 @@
dir = 8;
pixel_y = -15
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/mob_spawn/human/elysium_outpost/wagabond{
layer = 2
},
@@ -26329,7 +26312,7 @@
/obj/structure/closet/crate/radiation,
/obj/effect/radiation/waste/intense,
/obj/item/mining_scanner,
-/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plating,
/area/outpost/exterior)
"sDN" = (
@@ -26456,7 +26439,7 @@
},
/obj/item/stack/sheet/mineral/sandstone/thirty,
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
@@ -26525,7 +26508,8 @@
/area/outpost/security/detective)
"sLK" = (
/obj/machinery/disposal/bin{
- pixel_y = 16
+ pixel_y = 16;
+ density = 0
},
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -27130,7 +27114,7 @@
/area/outpost/operations/outpost_command)
"tig" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/portable_atmospherics/canister/nob,
+/obj/machinery/portable_atmospherics/canister/freon,
/turf/open/floor/plasteel/mono/dark,
/area/outpost/cargo)
"tjC" = (
@@ -27432,7 +27416,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -27598,7 +27582,7 @@
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
"tBn" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/portal/permanent/one_way{
id = "outpost_joke_endless_222r";
alpha = 0;
@@ -27687,6 +27671,13 @@
light_range = 2
},
/area/outpost/fraction/separatist)
+"tEq" = (
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_y = 22;
+ density = 0
+ },
+/turf/open/floor/wood/walnut,
+/area/outpost/crew/bar)
"tEK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
/obj/effect/turf_decal/siding/wood{
@@ -27969,7 +27960,7 @@
},
/obj/machinery/light/small/directional/west,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -28065,7 +28056,7 @@
/area/outpost/exterior)
"tWq" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"tWE" = (
@@ -28073,7 +28064,7 @@
layer = 3.1
},
/obj/item/shard,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -28332,7 +28323,7 @@
/turf/open/floor/wood/walnut,
/area/outpost/crew/lounge/cab_4)
"udk" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"udN" = (
@@ -28908,7 +28899,7 @@
/turf/open/floor/plating/asteroid/icerock/smooth,
/area/outpost/exterior)
"uGn" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/portal/permanent/one_way{
id = "outpost_joke_endless_333l";
alpha = 0;
@@ -29267,9 +29258,9 @@
/obj/structure/spider/stickyweb{
color = "#808080"
},
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/turf/open/floor/wood/walnut,
/area/outpost/exterior)
"uXa" = (
@@ -29869,7 +29860,7 @@
/turf/open/floor/wood/walnut,
/area/outpost/fraction/solfed)
"vCR" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/tank/internals/emergency_oxygen,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
@@ -30122,7 +30113,7 @@
icon_state = "2-8"
},
/obj/effect/turf_decal/borderfloor/full,
-/obj/effect/spawner/lootdrop/maintenance{
+/obj/effect/spawner/random/maintenance{
pixel_x = -9
},
/turf/open/floor/plating{
@@ -30176,7 +30167,7 @@
/turf/open/floor/carpet/orange,
/area/outpost/medical/relax_room)
"vNC" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating{
light_color = "#1B1D2E";
@@ -30991,9 +30982,9 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
/obj/item/reagent_containers/food/drinks/flask/det,
/obj/item/storage/box/matches,
-/obj/item/ammo_box/a357_box/match,
-/obj/item/ammo_box/a357_box/hp,
-/obj/item/ammo_box/a357_box,
+/obj/item/storage/box/ammo/a357_match,
+/obj/item/storage/box/ammo/a357_hp,
+/obj/item/storage/box/ammo/a357,
/obj/machinery/light/directional/west,
/obj/item/pda/detective,
/obj/structure/closet/secure_closet/detective{
@@ -31012,8 +31003,8 @@
/obj/item/cartridge/detective,
/obj/item/camera/detective,
/obj/item/gun/ballistic/revolver/viper,
-/obj/item/ammo_box/c38_box,
-/obj/item/storage/pistolcase/detective,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/guncase/pistol/detective,
/obj/item/detective_scanner,
/obj/item/camera_film,
/obj/item/camera_film,
@@ -32160,7 +32151,7 @@
/area/outpost/security/armory)
"xaZ" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/turf/open/floor/plating/asteroid/icerock/temperate,
/area/outpost/exterior)
"xbv" = (
@@ -32861,7 +32852,7 @@
"xEL" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/west,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/closet/crate/secure/loot,
/turf/open/floor/plating,
/area/outpost/maintenance/starboard)
@@ -33376,7 +33367,7 @@
/turf/open/floor/wood/walnut,
/area/outpost/crew/bar)
"xZy" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating{
@@ -33525,7 +33516,7 @@
/obj/structure/closet/crate/radiation,
/obj/effect/radiation/waste/intense,
/obj/item/pizzabox/bomb,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/plating,
/area/outpost/exterior)
"yfF" = (
@@ -50848,7 +50839,7 @@ sTV
vqa
vks
sTV
-uLL
+tEq
grB
xNN
dKG
@@ -61145,7 +61136,7 @@ rgY
rfa
nyo
oUL
-eSU
+nyo
vcw
pgO
qDA
@@ -62453,7 +62444,7 @@ rgY
rgY
rfa
bKE
-fmX
+kLU
kLU
tig
bmM
diff --git a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x20.dmm b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x20.dmm
index d6b1b6cc5566..1aca57647036 100644
--- a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x20.dmm
+++ b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x20.dmm
@@ -388,7 +388,7 @@
},
/area/hangar)
"kU" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -397,7 +397,7 @@
pixel_y = 7
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/stack/sheet/mineral/wood{
pixel_x = -6
},
@@ -866,7 +866,7 @@
},
/area/hangar)
"vh" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating{
planetary_atmos = 1
diff --git a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x40.dmm b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x40.dmm
index 98cc44e68897..ac65ac13683b 100644
--- a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x40.dmm
+++ b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_40x40.dmm
@@ -1062,7 +1062,7 @@
/area/hangar)
"NE" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
@@ -1325,7 +1325,7 @@
/obj/structure/catwalk/over/plated_catwalk,
/obj/item/stack/cable_coil/cut/yellow,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating{
icon_state = "panelscorched";
planetary_atmos = 1
diff --git a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x20.dmm b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x20.dmm
index 762deecbbeba..269f6c80f05d 100644
--- a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x20.dmm
+++ b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x20.dmm
@@ -106,7 +106,7 @@
/area/hangar)
"cz" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -1016,8 +1016,8 @@
/area/hangar)
"MI" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark{
@@ -1246,7 +1246,7 @@
/area/hangar)
"Wp" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
diff --git a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x40.dmm b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x40.dmm
index e265413c9556..d87b972d73c7 100644
--- a/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x40.dmm
+++ b/_maps/_mod_celadon/outpost/hangar/elysium_asteroid_56x40.dmm
@@ -265,8 +265,8 @@
/area/hangar)
"lZ" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark{
@@ -791,7 +791,7 @@
/area/hangar)
"Hs" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -948,7 +948,7 @@
/area/hangar)
"KT" = (
/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
diff --git a/_maps/_mod_celadon/outpost/indie_space.dmm b/_maps/_mod_celadon/outpost/indie_space.dmm
index 20d3df1579fb..031ffa9cc672 100644
--- a/_maps/_mod_celadon/outpost/indie_space.dmm
+++ b/_maps/_mod_celadon/outpost/indie_space.dmm
@@ -109,7 +109,7 @@
/area/outpost/crew/library)
"aM" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms)
"aP" = (
@@ -255,7 +255,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
-/obj/effect/spawner/lootdrop/salvage/metal,
+/obj/effect/spawner/random/salvage/metal,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/central)
"bL" = (
@@ -269,7 +269,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"bS" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/turf_decal/corner_techfloor_grid{
dir = 8
},
@@ -328,7 +328,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"ci" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -463,7 +463,7 @@
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms)
"dl" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/turf_decal/steeldecal/steel_decals7{
dir = 9
},
@@ -495,6 +495,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/item/storage/bag/trash,
+/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"dw" = (
@@ -945,7 +946,7 @@
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"gz" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
@@ -988,7 +989,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"gS" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"gT" = (
@@ -1065,7 +1066,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"hz" = (
@@ -1110,8 +1111,8 @@
/area/outpost/hallway/port)
"hK" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/salvage_laser,
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_laser,
+/obj/effect/spawner/random/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"hM" = (
@@ -1172,7 +1173,7 @@
/area/outpost/maintenance/central)
"hZ" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/wood,
/area/outpost/crew/bar)
"ib" = (
@@ -1253,7 +1254,7 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"iD" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"iG" = (
@@ -1342,7 +1343,7 @@
/area/outpost/crew/bar)
"jn" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
@@ -1422,7 +1423,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/hallway/central)
"jM" = (
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/ship/dirt,
/area/outpost/hallway/port)
"jO" = (
@@ -1691,7 +1692,7 @@
/area/outpost/maintenance/central)
"lA" = (
/obj/structure/flora/grass/jungle,
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/grass/ship/jungle,
/area/outpost/hallway/central)
"lB" = (
@@ -1744,6 +1745,7 @@
/obj/effect/turf_decal/steeldecal/steel_decals_central2{
dir = 4
},
+/obj/effect/spawner/random/clothing/bowler_or_that,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"lY" = (
@@ -1842,7 +1844,7 @@
/area/outpost/hallway/port)
"mv" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
@@ -2582,8 +2584,8 @@
/area/outpost/maintenance/fore)
"rp" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"rr" = (
@@ -2655,7 +2657,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -2767,7 +2769,7 @@
/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
@@ -2973,9 +2975,8 @@
/area/outpost/crew/library)
"ta" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
@@ -3159,7 +3160,7 @@
/area/outpost/cargo)
"tS" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"tT" = (
@@ -3323,7 +3324,7 @@
/turf/open/floor/ship/dirt,
/area/outpost/hallway/central)
"uE" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3756,7 +3757,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"xu" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3847,7 +3848,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"xZ" = (
@@ -3942,7 +3943,7 @@
/area/outpost/vacant_rooms)
"yN" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"yQ" = (
@@ -4136,7 +4137,7 @@
/turf/open/floor/plating/asteroid,
/area/outpost/external)
"zS" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"zY" = (
@@ -4189,7 +4190,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/maintenance/fore)
"Am" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
@@ -4845,8 +4846,7 @@
/area/outpost/hallway/port)
"DH" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"DI" = (
@@ -4899,7 +4899,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/lootdrop/salvage/metal,
+/obj/effect/spawner/random/salvage/metal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -4970,7 +4970,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"ER" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"EV" = (
@@ -4981,7 +4981,7 @@
/area/outpost/crew/bar)
"EX" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Fa" = (
@@ -5181,7 +5181,7 @@
},
/area/outpost/crew/cryo)
"Gj" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -5214,7 +5214,7 @@
/area/outpost/external)
"Gn" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
+/obj/effect/spawner/random/clothing/beret_or_rabbitears,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Gu" = (
@@ -5386,8 +5386,8 @@
/area/outpost/hallway/central)
"Hk" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
/obj/machinery/light/dim/directional/west,
+/obj/effect/spawner/random/clothing/bowler_or_that,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"Hl" = (
@@ -5401,11 +5401,11 @@
/area/outpost/maintenance/fore)
"HB" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/firealarm/directional/east,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms)
@@ -5830,7 +5830,7 @@
/area/outpost/cargo/office)
"JV" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
@@ -6181,8 +6181,8 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"LR" = (
-/obj/effect/spawner/lootdrop/tool_engie_common,
-/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/spawner/random/engineering/tool/common,
/obj/structure/rack,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -6420,7 +6420,7 @@
/area/outpost/hallway/port)
"No" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/security)
@@ -6497,7 +6497,7 @@
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"NV" = (
@@ -6842,8 +6842,7 @@
/area/outpost/maintenance/fore)
"Qx" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"QA" = (
@@ -7006,7 +7005,7 @@
/obj/structure/cable/yellow{
icon_state = "4-6"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 10
},
@@ -7093,7 +7092,7 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"RJ" = (
@@ -7317,8 +7316,8 @@
/area/outpost/hallway/port)
"SW" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"SY" = (
@@ -7327,7 +7326,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Ta" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/steeldecal/steel_decals9,
/turf/open/floor/plating,
@@ -7353,7 +7352,7 @@
/area/outpost/security)
"Tg" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms)
"Th" = (
@@ -7479,7 +7478,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -7531,7 +7530,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"Uq" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/hallway/port)
"Us" = (
@@ -7541,7 +7540,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -7578,6 +7577,7 @@
/area/outpost/crew/bar)
"Uv" = (
/obj/machinery/light/small/directional/south,
+/obj/effect/spawner/random/clothing/bowler_or_that,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Uw" = (
@@ -7723,7 +7723,7 @@
},
/obj/item/bedsheet/double/captain,
/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/head/papersack/smiley{
pixel_x = 7
@@ -7828,7 +7828,7 @@
/turf/open/floor/carpet/green,
/area/outpost/crew/bar)
"Wa" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/mouse/brown,
/turf/open/floor/plating,
@@ -7938,7 +7938,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"WO" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WR" = (
@@ -7963,7 +7963,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WV" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
@@ -8092,7 +8092,7 @@
/area/outpost/hallway/port)
"XA" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"XD" = (
@@ -8264,7 +8264,7 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo)
"YC" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/structure/rack,
/obj/effect/turf_decal/steeldecal/steel_decals_central2{
dir = 4
@@ -8307,7 +8307,7 @@
/area/outpost/maintenance/fore)
"YJ" = (
/obj/structure/flora/grass/jungle,
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/grass/ship/jungle,
/area/outpost/hallway/port)
"YL" = (
diff --git a/_maps/_mod_celadon/shuttles/elysium/elysium_aldaama.dmm b/_maps/_mod_celadon/shuttles/elysium/elysium_aldaama.dmm
index 58c649fff121..1e916a19335e 100644
--- a/_maps/_mod_celadon/shuttles/elysium/elysium_aldaama.dmm
+++ b/_maps/_mod_celadon/shuttles/elysium/elysium_aldaama.dmm
@@ -385,7 +385,7 @@
/area/ship/bridge)
"dc" = (
/obj/effect/turf_decal/industrial/traffic,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -1255,7 +1255,7 @@
"mH" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating,
/area/ship/engineering/engine)
@@ -1777,7 +1777,7 @@
icon_state = "2-8"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = 3;
pixel_y = 4
},
@@ -2464,7 +2464,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/green,
/area/ship/crew/dorm)
"xR" = (
@@ -2543,7 +2543,7 @@
/area/ship/engineering/engine)
"yQ" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"za" = (
@@ -2553,7 +2553,7 @@
"zb" = (
/obj/machinery/light/small/directional/east,
/obj/machinery/atmospherics/components/binary/pump/on/layer2,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"zc" = (
@@ -2867,7 +2867,7 @@
/area/ship/crew)
"Cn" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating{
icon_state = "platingdmg1"
},
@@ -3123,7 +3123,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"EW" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -3276,7 +3276,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"Gz" = (
@@ -4019,7 +4019,7 @@
"PU" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plating/rust,
/area/ship/engineering/engine)
@@ -4311,7 +4311,7 @@
/area/ship/engineering/communications)
"SL" = (
/obj/structure/rack,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = 3;
pixel_y = 4
},
diff --git a/_maps/_mod_celadon/shuttles/elysium/elysium_homa.dmm b/_maps/_mod_celadon/shuttles/elysium/elysium_homa.dmm
index 07da31dd3e36..ffdc721a89ac 100644
--- a/_maps/_mod_celadon/shuttles/elysium/elysium_homa.dmm
+++ b/_maps/_mod_celadon/shuttles/elysium/elysium_homa.dmm
@@ -14,7 +14,7 @@
/area/ship/bridge)
"az" = (
/obj/structure/rack,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
@@ -68,7 +68,8 @@
/area/ship/crew/canteen)
"bh" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/pizza/arnold{
+/obj/item/reagent_containers/food/snacks/pizza/meat{
+ pixel_x = 0;
pixel_y = 6
},
/turf/open/floor/carpet/green,
@@ -318,7 +319,7 @@
"je" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/catwalk,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ship/cargo)
"js" = (
@@ -695,7 +696,7 @@
/turf/open/floor/plating,
/area/ship/hallway/central)
"ry" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
icon_state = "0-8"
@@ -985,7 +986,7 @@
"Aw" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating,
/area/ship/cargo)
@@ -1039,7 +1040,7 @@
"Dd" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ship/cargo)
"Dj" = (
@@ -1115,7 +1116,7 @@
/turf/closed/wall/r_wall/rust,
/area/ship/bridge)
"Fr" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/green,
/area/ship/crew/canteen)
"Gl" = (
@@ -1706,7 +1707,7 @@
/obj/structure/catwalk,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ship/cargo)
"Xv" = (
diff --git a/_maps/_mod_celadon/shuttles/elysium/elysium_iron_maiden.dmm b/_maps/_mod_celadon/shuttles/elysium/elysium_iron_maiden.dmm
index 1e53c59fe14c..3335b8787ff8 100644
--- a/_maps/_mod_celadon/shuttles/elysium/elysium_iron_maiden.dmm
+++ b/_maps/_mod_celadon/shuttles/elysium/elysium_iron_maiden.dmm
@@ -158,7 +158,7 @@
},
/obj/machinery/power/terminal,
/obj/structure/cable,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/green,
/area/ship/crew/cryo)
"gE" = (
@@ -246,14 +246,15 @@
/obj/effect/turf_decal/trimline/opaque/green/arrow_ccw{
dir = 1
},
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"kT" = (
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
dir = 8;
pixel_x = -32;
- req_access = null
+ req_access = null;
+ id = "iron_turrets"
},
/obj/machinery/holopad,
/obj/structure/cable{
@@ -441,6 +442,12 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
+"qp" = (
+/obj/machinery/porta_turret/ship/elysium{
+ id = "iron_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"rv" = (
/obj/effect/turf_decal/industrial/stand_clear{
dir = 8
@@ -471,12 +478,8 @@
pixel_x = 7;
pixel_y = 3
},
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold{
- pixel_y = -6;
- pixel_x = 9;
- name = "pizza slice"
- },
/obj/machinery/newscaster/directional/south,
+/obj/item/reagent_containers/food/snacks/pizzaslice/meat,
/turf/open/floor/carpet/green,
/area/ship/crew/cryo)
"tb" = (
@@ -637,11 +640,11 @@
/obj/effect/turf_decal/trimline/opaque/green/arrow_ccw{
dir = 1
},
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
@@ -758,7 +761,6 @@
"yX" = (
/obj/structure/catwalk,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/porta_turret/ship/faction/elysium/laser/cover,
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"zc" = (
@@ -792,6 +794,13 @@
/obj/item/clothing/mask/bandana/black,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
+"zI" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 1;
+ id = "iron_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"Ah" = (
/turf/closed/wall/r_wall/rust,
/area/ship/crew/cryo)
@@ -1108,7 +1117,10 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"MP" = (
-/obj/machinery/porta_turret/ship/faction/elysium/laser/cover,
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 10;
+ id = "iron_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"MV" = (
@@ -1804,7 +1816,7 @@ gD
JU
"}
(13,1,1) = {"
-CO
+zI
yM
oZ
Gh
@@ -1814,7 +1826,7 @@ gL
Sv
Uj
uZ
-MP
+qp
"}
(14,1,1) = {"
CO
@@ -1861,7 +1873,7 @@ Cf
QG
dB
CO
-MP
+CO
CO
bX
vg
diff --git a/_maps/_mod_celadon/shuttles/elysium/elysium_khalifat.dmm b/_maps/_mod_celadon/shuttles/elysium/elysium_khalifat.dmm
index 8741e01b3d41..4b7fbae8df90 100644
--- a/_maps/_mod_celadon/shuttles/elysium/elysium_khalifat.dmm
+++ b/_maps/_mod_celadon/shuttles/elysium/elysium_khalifat.dmm
@@ -282,7 +282,7 @@
/area/ship/bridge)
"bR" = (
/obj/machinery/light/directional/south,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/borderfloorblack{
dir = 1
},
@@ -858,7 +858,9 @@
/turf/open/floor/plasteel/darkgreenfull,
/area/ship/security)
"eJ" = (
-/obj/machinery/porta_turret/ship/faction/elysium/laser/cover,
+/obj/machinery/porta_turret/ship/elysium/light{
+ dir = 8
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"eL" = (
@@ -873,7 +875,6 @@
"eN" = (
/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
/obj/structure/closet/crate/bin,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"eQ" = (
@@ -957,7 +958,6 @@
/obj/structure/table/scrap,
/obj/item/gun/ballistic/shotgun/brimstone,
/obj/item/gun/energy/kinetic_accelerator,
-/obj/item/ammo_box/a12g/blanks,
/turf/open/floor/plasteel/darkgreenfull,
/area/ship/security)
"fN" = (
@@ -1019,6 +1019,13 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/medical)
+"fU" = (
+/obj/machinery/porta_turret/ship/elysium/heavy{
+ dir = 5;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"fV" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -1170,6 +1177,13 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating/rust,
/area/ship/hallway/central)
+"gK" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 1;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"gL" = (
/obj/structure/sauna_oven_steam,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -1218,7 +1232,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/dorm)
"hb" = (
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/green,
/area/ship/medical/surgery)
@@ -1704,7 +1718,7 @@
dir = 8
},
/obj/effect/decal/cleanable/glass,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"ka" = (
@@ -1780,10 +1794,10 @@
/obj/item/gun/ballistic/derringer/gold,
/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/item/gun/ballistic/automatic/smg/skm_carbine,
-/obj/item/ammo_box/c10mm,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
-/obj/item/ammo_box/magazine/skm_545_39,
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/ammo_box/magazine/skm_762_40,
+/obj/item/ammo_box/magazine/skm_762_40,
+/obj/item/ammo_box/magazine/skm_762_40,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"kJ" = (
@@ -1936,6 +1950,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/gun/ballistic/automatic/assault/skm/pirate,
+/obj/item/clothing/mask/balaclava,
/turf/open/floor/plasteel,
/area/ship/crew/dorm)
"lo" = (
@@ -2146,6 +2161,13 @@
},
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
+"mC" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 5;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"mG" = (
/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
/turf/open/floor/plasteel/dark,
@@ -2337,7 +2359,7 @@
},
/obj/machinery/power/terminal,
/obj/structure/cable,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/green,
/area/ship/cargo)
"oi" = (
@@ -2487,7 +2509,7 @@
/obj/effect/turf_decal/trimline/opaque/green/arrow_ccw{
dir = 1
},
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/item/stack/sheet/metal/five{
pixel_x = -3
},
@@ -2698,8 +2720,8 @@
/obj/item/grenade/firecracker,
/obj/item/grenade/firecracker,
/obj/item/grenade/firecracker,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/grenade/c4,
+/obj/item/clothing/mask/balaclava,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"pO" = (
@@ -2875,8 +2897,8 @@
/obj/item/storage/box/ingredients/vegetarian,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/carpet/green,
/area/ship/crew/canteen)
"qQ" = (
@@ -2904,6 +2926,12 @@
"qS" = (
/turf/closed/wall/mineral/titanium/survival,
/area/ship/engineering/engine)
+"qW" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 1
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"qY" = (
/obj/machinery/light_switch{
dir = 1;
@@ -4135,7 +4163,7 @@
/obj/structure/table/scrap,
/obj/item/gun/ballistic/revolver/montagne,
/obj/item/gun/ballistic/rifle/illestren/sawn,
-/obj/item/ammo_box/a357_box,
+/obj/item/storage/box/ammo/a357,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"yO" = (
@@ -4170,7 +4198,7 @@
/area/ship/hallway/port)
"yT" = (
/obj/structure/closet/crate/secure/exo,
-/obj/item/ammo_box/a762_40{
+/obj/item/storage/box/ammo/a762_40{
pixel_x = -5;
pixel_y = -3
},
@@ -4233,10 +4261,11 @@
/area/ship/engineering/atmospherics)
"zf" = (
/obj/structure/table/reinforced,
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
dir = 8;
pixel_x = -1;
- req_access = null
+ req_access = null;
+ id = "khalifat_turrets"
},
/turf/open/floor/carpet/green,
/area/ship/bridge)
@@ -4596,8 +4625,8 @@
/obj/item/grenade/firecracker,
/obj/item/grenade/firecracker,
/obj/item/grenade/firecracker,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/grenade/c4,
+/obj/item/clothing/mask/balaclava,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"Bo" = (
@@ -4994,6 +5023,7 @@
dir = 5
},
/obj/structure/closet/crate/bin,
+/obj/item/clothing/mask/balaclava,
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
"Df" = (
@@ -5010,7 +5040,7 @@
/obj/item/borg/upgrade/hypospray/expanded,
/obj/item/borg/upgrade/defib,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"Dk" = (
@@ -5109,6 +5139,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel,
/area/ship/crew/dorm)
+"DJ" = (
+/obj/machinery/porta_turret/ship/elysium/heavy{
+ dir = 6;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"DK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
@@ -5215,7 +5252,6 @@
/obj/structure/catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/glass,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/turf/open/floor/plating/wasteplanet/rust,
/area/ship/security)
"ED" = (
@@ -5374,11 +5410,6 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/oil/slippery,
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold{
- pixel_y = -6;
- pixel_x = 9;
- name = "pizza slice"
- },
/turf/open/floor/plating,
/area/ship/cargo)
"Fm" = (
@@ -5499,7 +5530,7 @@
/obj/effect/turf_decal/steeldecal/steel_decals_central1,
/obj/structure/table/glass,
/obj/item/storage/book/bible/koran,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"Gg" = (
@@ -5711,7 +5742,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/item/circuitboard/machine/autolathe,
/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/matter_bin,
@@ -6127,6 +6158,12 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
+"Ji" = (
+/obj/machinery/porta_turret/ship/elysium{
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"Jk" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -6197,6 +6234,10 @@
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/engine,
/area/ship/engineering/engine)
+"JC" = (
+/obj/machinery/porta_turret/ship/elysium/light,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"JE" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -6259,7 +6300,7 @@
/area/ship/crew/canteen)
"Kg" = (
/obj/machinery/light/directional/north,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/borderfloorblack/corner{
dir = 8
},
@@ -6274,7 +6315,6 @@
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/xenoblood/xgibs,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"Kk" = (
@@ -6581,8 +6621,8 @@
/turf/open/floor/plating/grass/jungle/lit,
/area/ship/engineering/engine)
"Mr" = (
-/obj/machinery/porta_turret/ship/faction/elysium/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 1
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
@@ -6842,7 +6882,6 @@
name = "mot containment box";
desc = "WARNING: Contains mot."
},
-/obj/item/storage/box/syndimaid,
/obj/item/trash/cheesie,
/obj/item/reagent_containers/food/snacks/spacetwinkie{
pixel_y = 12;
@@ -7396,7 +7435,7 @@
icon_state = "2-8"
},
/obj/structure/closet/emcloset,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/reagent_containers/food/snacks/burger/red{
name = "suspicious red burger";
desc = "A suspicious looking burger.";
@@ -7452,7 +7491,7 @@
/area/ship/cargo)
"Ry" = (
/obj/structure/table/scrap,
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn,
/obj/item/ammo_casing/shotgun/improvised,
/obj/item/ammo_casing/shotgun/improvised,
@@ -7468,6 +7507,7 @@
/obj/machinery/camera/autoname{
dir = 10
},
+/obj/item/storage/box/ammo/a12g_blank,
/turf/open/floor/plasteel/darkgreenfull,
/area/ship/security)
"RA" = (
@@ -8138,6 +8178,15 @@
/obj/structure/table/wood,
/turf/open/floor/wood/ebony,
/area/ship/crew/canteen)
+"Vv" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 6;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/bridge)
"Vy" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -8145,6 +8194,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/item/clothing/mask/balaclava,
/turf/open/floor/plating/wasteplanet/rust,
/area/ship/cargo)
"VA" = (
@@ -8292,8 +8342,9 @@
/turf/closed/wall/r_wall/rust/wasteplanet,
/area/ship/crew/cryo)
"We" = (
-/obj/machinery/porta_turret/ship/faction/elysium/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 8;
+ id = "khalifat_turrets"
},
/turf/closed/wall/r_wall/rust/wasteplanet,
/area/ship/bridge)
@@ -8466,7 +8517,7 @@
"Xf" = (
/obj/structure/table/wood,
/obj/machinery/door/firedoor/border_only,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/carpet/green,
/area/ship/crew/canteen)
"Xg" = (
@@ -8838,6 +8889,13 @@
/obj/structure/crate_shelf,
/turf/open/floor/plating/wasteplanet/rust,
/area/ship/hallway/port)
+"Zh" = (
+/obj/machinery/porta_turret/ship/elysium{
+ dir = 10;
+ id = "khalifat_turrets"
+ },
+/turf/closed/wall/r_wall/rust/wasteplanet,
+/area/ship/bridge)
"Zk" = (
/obj/effect/turf_decal/elysium_logo/three_one{
color = "#758967"
@@ -9208,7 +9266,7 @@ wH
kE
kE
sY
-We
+Zh
"}
(8,1,1) = {"
qM
@@ -9281,7 +9339,7 @@ Pn
Lp
"}
(10,1,1) = {"
-We
+qW
Pz
Aq
Aq
@@ -9558,7 +9616,7 @@ kT
iI
iI
iI
-We
+Zh
"}
(18,1,1) = {"
xj
@@ -9833,7 +9891,7 @@ lw
pw
ow
gk
-eJ
+JC
Nh
mG
fJ
@@ -10052,7 +10110,7 @@ mW
"}
(32,1,1) = {"
mp
-We
+gK
AW
dY
dY
@@ -10153,7 +10211,7 @@ OY
cd
iI
iI
-dP
+Ji
"}
(35,1,1) = {"
mp
@@ -10265,7 +10323,7 @@ mp
mp
mp
mp
-We
+mC
Bw
Bw
Bw
@@ -10289,7 +10347,7 @@ lx
xB
xB
xB
-Mr
+Vv
mp
mp
mp
@@ -10623,7 +10681,7 @@ zJ
oM
dP
mp
-We
+dP
VB
VB
VB
@@ -10631,7 +10689,7 @@ VB
VB
VB
VB
-We
+dP
mp
dP
KD
@@ -10652,11 +10710,11 @@ mp
mp
mp
mp
-We
dP
-nn
dP
+nn
dP
+DJ
mp
mp
mp
@@ -10668,11 +10726,11 @@ mp
mp
mp
mp
-dP
+fU
dP
Ib
dP
-We
+dP
mp
mp
mp
diff --git a/_maps/_mod_celadon/shuttles/elysium/elysium_kondor.dmm b/_maps/_mod_celadon/shuttles/elysium/elysium_kondor.dmm
index 9d6bc0d1f163..2d6d1dfaccd6 100644
--- a/_maps/_mod_celadon/shuttles/elysium/elysium_kondor.dmm
+++ b/_maps/_mod_celadon/shuttles/elysium/elysium_kondor.dmm
@@ -39,7 +39,7 @@
"be" = (
/obj/machinery/jukebox/boombox{
pixel_x = 2;
- pixel_y = -3
+ pixel_y = -4
},
/obj/structure/table/wood,
/obj/machinery/light/directional/east,
@@ -54,7 +54,7 @@
},
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"bx" = (
@@ -78,6 +78,7 @@
/turf/closed/wall/rust,
/area/ship/hallway/central)
"cw" = (
+/obj/effect/decal/cleanable/dirt,
/obj/item/trash/raisins,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -120,22 +121,19 @@
icon_state = "1-2"
},
/obj/structure/closet/wall/directional/east,
+/obj/item/clothing/mask/bandana/green,
+/obj/item/clothing/mask/bandana/black,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility,
/obj/item/clothing/head/bandana/elysium/green,
-/obj/item/clothing/head/bandana/elysium/white,
/obj/item/clothing/head/bandana/elysium/black,
-/obj/item/clothing/suit/apparel/black,
/obj/item/clothing/head/shemag/black,
-/obj/item/clothing/mask/bandana/green,
-/obj/item/clothing/suit/apparel/black,
-/obj/item/clothing/suit/apparel/black,
/obj/item/clothing/head/shemag/white,
-/obj/item/clothing/mask/bandana/black,
/obj/item/clothing/head/shemag/green,
/obj/item/clothing/suit/apparel/black,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/clothing/head/helmet/m10_elysium,
-/obj/item/clothing/head/helmet/m10_elysium,
+/obj/item/clothing/suit/apparel/black,
/obj/item/clothing/head/helmet/m10_elysium,
/obj/item/clothing/head/helmet/m10_elysium,
/turf/open/floor/plasteel/dark,
@@ -232,6 +230,7 @@
/obj/structure/sign/poster/contraband/syndicate_recruitment{
pixel_x = 32
},
+/obj/item/grenade/c4,
/turf/open/floor/plating,
/area/ship/storage/eva)
"fC" = (
@@ -240,7 +239,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/white,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plating,
/area/ship/storage/eva)
"gu" = (
@@ -363,14 +362,6 @@
pixel_x = 2;
pixel_y = 5
},
-/obj/item/radio{
- pixel_x = 2;
- pixel_y = 5
- },
-/obj/item/radio{
- pixel_x = 2;
- pixel_y = 5
- },
/turf/open/floor/carpet/green,
/area/ship/crew/dorm)
"jU" = (
@@ -552,13 +543,12 @@
dir = 10
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/pump/layer2{
- dir = 1
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/binary/pump/on/layer2{
+ dir = 1
+ },
/obj/structure/closet/secure_closet/engineering_personal{
- anchored = 1;
req_access = null
},
/turf/open/floor/plating,
@@ -595,16 +585,19 @@
},
/obj/structure/closet,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
-/obj/item/ammo_box/magazine/skm_762_40,
/obj/machinery/airalarm/directional/east,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
+/obj/item/ammo_box/magazine/skm_46_30,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"oh" = (
@@ -768,6 +761,7 @@
/obj/effect/turf_decal/trimline/transparent/green/filled/line{
dir = 1
},
+/obj/item/banner/elysium/mundane,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"rg" = (
@@ -788,15 +782,14 @@
/obj/effect/turf_decal/box/white,
/obj/effect/turf_decal/box/white,
/obj/structure/closet/crate/large,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
-/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/stack/sheet/glass/five{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/stack/sheet/metal/five{
+ pixel_x = -3;
+ amount = 15
+ },
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"sn" = (
@@ -1140,13 +1133,13 @@
/obj/structure/catwalk/over,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/trash/syndi_cakes,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/electrical)
"AN" = (
/obj/effect/turf_decal/spline/fancy/transparent/grey{
dir = 4
},
-/obj/machinery/power/smes/engineering,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -1155,6 +1148,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/smes/engineering,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"AP" = (
@@ -1174,19 +1168,19 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/white,
/obj/structure/closet/crate/medical,
-/obj/item/stack/medical/bruise_pack,
-/obj/item/stack/medical/bruise_pack,
+/obj/item/bodybag{
+ pixel_x = 1;
+ pixel_y = 3
+ },
/obj/item/stack/medical/bruise_pack/herb{
pixel_x = -5;
- name = "herbal pack"
+ name = "herbal pack";
+ amount = 10
},
/obj/item/stack/medical/bruise_pack/herb{
pixel_x = -5;
- name = "herbal pack"
- },
-/obj/item/bodybag{
- pixel_x = 1;
- pixel_y = 3
+ name = "herbal pack";
+ amount = 10
},
/obj/item/storage/firstaid/regular,
/turf/open/floor/plasteel/dark,
@@ -1255,7 +1249,7 @@
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Ce" = (
@@ -1273,14 +1267,16 @@
/turf/open/floor/plasteel/dark,
/area/ship/storage/eva)
"Cn" = (
-/obj/effect/decal/cleanable/oil,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
-/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/trimline/transparent/green/warning{
dir = 1
},
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor5"
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/rust,
/area/ship/hallway/central)
"Cr" = (
@@ -1295,7 +1291,7 @@
icon_state = "0-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/banner/elysium/mundane,
+/obj/structure/table_frame,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"CO" = (
@@ -1319,10 +1315,10 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet,
-/obj/item/gun/ballistic/automatic/assault/skm,
-/obj/item/gun/ballistic/automatic/assault/skm,
-/obj/item/gun/ballistic/automatic/assault/skm,
/obj/machinery/light/directional/north,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine,
+/obj/item/gun/ballistic/automatic/smg/skm_carbine,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"DP" = (
@@ -1336,7 +1332,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/trash/can,
/obj/effect/turf_decal/box/white,
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/dark,
/area/ship/storage/eva)
"Er" = (
@@ -1646,9 +1642,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/effect/spawner/lootdrop/maintenance/three,
/obj/structure/closet/crate/wooden,
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/cargo)
"MD" = (
@@ -1679,7 +1675,6 @@
/obj/structure/sign/poster/elysium/random{
pixel_x = -32
},
-/obj/structure/spider/cocoon,
/obj/structure/spider/stickyweb{
icon_state = "stickyweb2"
},
@@ -1687,12 +1682,13 @@
pixel_y = -24
},
/obj/effect/decal/cleanable/xenoblood/xgibs,
-/mob/living/simple_animal/hostile/poison/giant_spider{
- health = 160
- },
/obj/item/clothing/shoes/laceup,
/obj/item/clothing/under/solgov/formal,
/obj/item/radio/headset/solgov,
+/obj/structure/spider/cocoon,
+/mob/living/simple_animal/hostile/poison/giant_spider{
+ health = 160
+ },
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"Nx" = (
@@ -1773,8 +1769,10 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/wall/directional/west,
+/obj/item/storage/toolbox/emergency/old{
+ pixel_x = 2
+ },
/obj/structure/rack,
-/obj/item/storage/toolbox/emergency/old,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"OJ" = (
@@ -1790,7 +1788,6 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/garbage,
/turf/open/floor/plasteel/tech/grid/airless,
/area/ship/engineering/electrical)
"Pa" = (
@@ -1806,7 +1803,7 @@
/turf/open/floor/carpet/green,
/area/ship/crew/dorm)
"Pb" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Pv" = (
@@ -1850,6 +1847,10 @@
/obj/effect/turf_decal/box/white,
/obj/structure/closet/wall/directional/east,
/obj/structure/closet/secure_closet/miner/unlocked,
+/obj/item/gps/mining{
+ pixel_x = -5;
+ pixel_y = 1
+ },
/turf/open/floor/plating,
/area/ship/cargo)
"PS" = (
@@ -1925,13 +1926,13 @@
},
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/power/port_gen/pacman{
- anchored = 1
- },
/obj/machinery/atmospherics/components/binary/pump/on/layer4{
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"QX" = (
@@ -2022,14 +2023,18 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/white,
/obj/structure/closet/crate/large,
-/obj/item/stack/sheet/metal/five{
- pixel_x = -3;
- amount = 10
- },
-/obj/item/stack/sheet/glass/five{
- pixel_x = 2;
- pixel_y = 5
- },
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
+/obj/item/reagent_containers/food/snacks/burger/xeno,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Ul" = (
@@ -2038,9 +2043,14 @@
dir = 4
},
/obj/structure/closet/crate/secure/weapon,
-/obj/item/storage/toolbox/ammo/a762_40,
/obj/item/grenade/frag,
/obj/item/grenade/frag,
+/obj/item/storage/box/ammo/a762_40,
+/obj/item/storage/box/ammo/a762_40,
+/obj/item/storage/box/ammo/c46x30mm/ap,
+/obj/item/storage/box/ammo/c46x30mm/ap,
+/obj/item/storage/box/ammo/c46x30mm/ap,
+/obj/item/storage/box/ammo/c46x30mm/ap,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Us" = (
@@ -2051,7 +2061,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
},
-/obj/item/trash/syndi_cakes,
/turf/open/floor/plating/rust,
/area/ship/engineering/electrical)
"UB" = (
@@ -2065,8 +2074,8 @@
/area/template_noop)
"UC" = (
/obj/effect/decal/cleanable/blood/drip,
-/mob/living/simple_animal/hostile/cockroach,
/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plasteel/dark,
/area/ship/storage/eva)
"UN" = (
diff --git a/_maps/_mod_celadon/shuttles/events/nanotrasen_darect_gold.dmm b/_maps/_mod_celadon/shuttles/events/nanotrasen_darect_gold.dmm
index 22f1fc6ca447..be4416e2e673 100644
--- a/_maps/_mod_celadon/shuttles/events/nanotrasen_darect_gold.dmm
+++ b/_maps/_mod_celadon/shuttles/events/nanotrasen_darect_gold.dmm
@@ -955,7 +955,7 @@
/obj/machinery/light/small/directional/north{
pixel_x = -9
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/shower{
pixel_y = 13
},
@@ -2127,10 +2127,10 @@
dir = 10
},
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/trash/chips{
pixel_x = 7;
pixel_y = 6
diff --git a/_maps/_mod_celadon/shuttles/events/solfed_saber_gold.dmm b/_maps/_mod_celadon/shuttles/events/solfed_saber_gold.dmm
index 049172387016..121b825beea1 100644
--- a/_maps/_mod_celadon/shuttles/events/solfed_saber_gold.dmm
+++ b/_maps/_mod_celadon/shuttles/events/solfed_saber_gold.dmm
@@ -123,7 +123,6 @@
},
/obj/item/toy/plush/lizardplushie,
/obj/effect/gibspawner/generic,
-/obj/item/paper/fluff/awaymissions/moonoutpost19/goodbye_note,
/obj/item/clothing/head/solgov_surgery,
/turf/open/floor/plasteel/mono/white,
/area/ship/medical/surgery)
@@ -468,13 +467,13 @@
/obj/item/clothing/head/solfed/elysium/turban,
/obj/item/clothing/gloves/combat,
/obj/item/storage/belt/military/solfed/elysium,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/clothing/suit/armor/solfed/elysium/jacket,
/obj/item/storage/backpack/messenger/sec,
/obj/item/clothing/accessory/armband/deputy,
/obj/item/clothing/shoes/combat,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/carpet/green,
/area/ship/security/range)
"dI" = (
@@ -638,7 +637,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -655,6 +653,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"ex" = (
@@ -750,8 +749,8 @@
/obj/machinery/microwave{
pixel_y = 2
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
@@ -1849,19 +1848,19 @@
dir = 2;
req_one_access_txt = "2"
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -11;
pixel_y = 9
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = 4;
pixel_y = -6
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -2;
pixel_y = -1
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -7;
pixel_y = 5
},
@@ -1901,7 +1900,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -1915,6 +1913,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"oQ" = (
@@ -2003,7 +2002,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/mineral/gold,
/area/ship/engineering)
"ps" = (
@@ -2081,7 +2080,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart,
/obj/item/paper/pamphlet,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/mineral/gold,
/area/ship/crew/office)
"qi" = (
@@ -2315,7 +2314,7 @@
pixel_y = -28;
pixel_x = -5
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/trimline/opaque/blue/warning{
dir = 10
},
@@ -2999,19 +2998,12 @@
/turf/open/floor/plasteel/mono/white,
/area/ship/medical/surgery)
"xz" = (
-/obj/item/ammo_box/a556_box,
/obj/structure/rack,
/obj/effect/turf_decal/box/red,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/corner/opaque/bar{
dir = 5
},
-/obj/item/ammo_box/a556_box{
- pixel_y = 10
- },
-/obj/item/ammo_box/a556_box{
- pixel_y = 19
- },
/obj/structure/window/reinforced{
dir = 4
},
@@ -3019,6 +3011,9 @@
dir = 2;
req_one_access_txt = "2"
},
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_42,
/turf/open/floor/wood/ebony,
/area/ship/security/armory)
"xH" = (
@@ -3171,7 +3166,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -3186,6 +3180,7 @@
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
/obj/machinery/light/directional/north,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"yH" = (
@@ -3431,7 +3426,6 @@
/obj/item/clothing/head/solfed/elysium/beret,
/obj/item/clothing/head/shemag/green,
/obj/item/melee/classic_baton/telescopic,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/secure_closet{
icon_state = "cap";
@@ -3449,6 +3443,7 @@
},
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/carpet/green,
/area/ship/crew/solgov)
"Bb" = (
@@ -3468,7 +3463,7 @@
/obj/structure/closet/firecloset/wall{
pixel_y = -28
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/corner/opaque/solgovgold{
dir = 10
},
@@ -3574,7 +3569,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -3583,6 +3577,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"BX" = (
@@ -4674,22 +4669,22 @@
/obj/machinery/airalarm/directional/north,
/obj/structure/rack,
/obj/structure/rack,
-/obj/item/ammo_box/c556mmHITP/rubbershot{
- pixel_x = -7;
- pixel_y = 10
- },
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = -1;
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/storage/box/ammo/c556mm_rubber{
+ pixel_x = 5;
pixel_y = 6
},
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = 6;
- pixel_y = 1
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = 3
},
-/obj/effect/decal/cleanable/cobweb,
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = 6;
- pixel_y = 1
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = 9
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
@@ -5194,14 +5189,14 @@
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -4;
pixel_y = 7
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_y = 11
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -1;
pixel_y = 1
},
@@ -5303,7 +5298,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
@@ -6021,12 +6016,12 @@
req_one_access_txt = "3"
},
/obj/item/gun/ballistic/rifle/solgov,
-/obj/item/ammo_box/a858,
-/obj/item/ammo_box/a858{
+/obj/item/storage/box/ammo/a858,
+/obj/item/storage/box/ammo/a858{
pixel_x = 3;
pixel_y = -4
},
-/obj/item/ammo_box/a858{
+/obj/item/storage/box/ammo/a858{
pixel_x = 6;
pixel_y = -8
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_alone.dmm b/_maps/_mod_celadon/shuttles/independent/independent_alone.dmm
index af988160e06e..c577e8e87373 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_alone.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_alone.dmm
@@ -153,9 +153,9 @@
"ry" = (
/obj/structure/closet/crate/trashcart,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plasteel,
/area/ship/bridge)
"tK" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_beluga.dmm b/_maps/_mod_celadon/shuttles/independent/independent_beluga.dmm
index 7611abc9b948..3fcf5773a1d1 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_beluga.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_beluga.dmm
@@ -1091,7 +1091,7 @@
all_items_free = 1
},
/obj/item/storage/bag/tray,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 6;
pixel_y = 6
},
@@ -4963,7 +4963,6 @@
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/under/syndicate/inteq/skirt,
/obj/item/clothing/under/syndicate/inteq,
/obj/item/clothing/head/beret/sec/inteq,
@@ -4973,6 +4972,7 @@
pixel_y = -3
},
/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"WS" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_box.dmm b/_maps/_mod_celadon/shuttles/independent/independent_box.dmm
index 7c4165633f99..10859df5465e 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_box.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_box.dmm
@@ -74,12 +74,6 @@
/obj/machinery/suit_storage_unit/cmo{
suit_type = /obj/item/clothing/suit/space/hardsuit/medical
},
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"at" = (
@@ -125,12 +119,12 @@
/area/ship/cargo)
"aC" = (
/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
/obj/effect/turf_decal/trimline/opaque/white/filled/line{
dir = 8
},
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 4
- },
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"aE" = (
@@ -163,19 +157,7 @@
dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/crate/medical,
-/obj/item/storage/box/beakers{
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/item/shard{
- pixel_x = 8;
- pixel_y = -1
- },
-/obj/item/shard{
- pixel_x = -7;
- pixel_y = -1
- },
+/obj/structure/closet/crate/freezer/surplus_limbs/organs,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"aN" = (
@@ -284,7 +266,6 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 10
},
-/obj/structure/closet/body_bag,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -294,7 +275,9 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/structure/closet/body_bag,
/obj/effect/mob_spawn/human/corpse/assistant,
+/obj/item/circuitboard/machine/techfab/department/medical,
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical/morgue)
"bm" = (
@@ -352,10 +335,15 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"bu" = (
-/obj/structure/table/glass,
-/obj/structure/bedsheetbin,
+/obj/structure/table/optable,
+/obj/machinery/iv_drip{
+ pixel_x = 7;
+ pixel_y = 21;
+ layer = 5
+ },
/obj/structure/curtain{
- pixel_y = 32
+ pixel_x = 0;
+ pixel_y = 33
},
/turf/open/floor/plasteel/dark,
/area/ship/medical)
@@ -413,35 +401,11 @@
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"bI" = (
-/obj/machinery/door/window/southleft{
- name = "Equipment Storage"
- },
-/obj/structure/window/reinforced/spawner/west,
-/obj/item/reagent_containers/glass/bottle/formaldehyde{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/item/storage/box/syringes,
-/obj/item/storage/box/bodybags,
-/obj/item/reagent_containers/glass/bottle{
- list_reagents = list(/datum/reagent/medicine/rezadone=30);
- name = "rezadone bottle";
- pixel_x = -3;
- pixel_y = 8
- },
-/obj/item/reagent_containers/glass/bottle{
- list_reagents = list(/datum/reagent/medicine/thializid=30);
- name = "thializid bottle"
- },
-/obj/structure/closet/secure_closet{
- icon_state = "med";
- name = "medicine locker"
+/obj/machinery/computer/operating/retro,
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_x = 0;
+ pixel_y = 23
},
-/obj/item/storage/firstaid/regular,
-/obj/item/storage/firstaid/toxin,
-/obj/item/storage/firstaid/o2,
-/obj/item/storage/firstaid/fire,
-/obj/item/storage/firstaid/brute,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"bJ" = (
@@ -481,6 +445,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"bP" = (
@@ -513,8 +478,6 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"bS" = (
-/obj/structure/table/optable,
-/obj/effect/decal/cleanable/blood/gibs/down,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -524,6 +487,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/item/stock_parts/manipulator,
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical)
"bU" = (
@@ -600,7 +564,9 @@
},
/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"ck" = (
@@ -650,6 +616,7 @@
/turf/open/floor/plasteel/freezer,
/area/ship/crew/toilet)
"cB" = (
+/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/mono/dark,
/area/ship/medical)
"cC" = (
@@ -674,21 +641,17 @@
/turf/open/floor/engine,
/area/ship/cargo)
"cD" = (
-/obj/effect/turf_decal/industrial/warning/corner{
+/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
-/obj/structure/flora/bigplant,
-/obj/effect/turf_decal/trimline/opaque/white/filled/corner{
+/obj/effect/turf_decal/box/corners{
dir = 8
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
+/obj/machinery/suit_storage_unit/cmo,
/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"cE" = (
/obj/machinery/door/firedoor/border_only,
@@ -711,7 +674,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"cG" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/emcloset/anchored,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 4
@@ -756,6 +719,10 @@
/obj/item/reagent_containers/glass/filter{
pixel_x = -8
},
+/obj/item/reagent_containers/glass/filter{
+ pixel_x = -1;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/toilet)
"cO" = (
@@ -770,7 +737,6 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/item/cigbutt/roach,
/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen/corner{
dir = 4
},
@@ -795,9 +761,12 @@
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"cQ" = (
-/obj/machinery/smartfridge/chemistry/preloaded,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew/toilet)
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
"cT" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -942,6 +911,10 @@
},
/obj/effect/turf_decal/corner/transparent/neutral,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/trash/can{
+ pixel_x = -7;
+ pixel_y = 9
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"dm" = (
@@ -952,14 +925,14 @@
/obj/structure/window/reinforced/spawner/north,
/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
/obj/machinery/light/small/directional/west,
+/obj/item/stamp/cmo{
+ pixel_x = -10;
+ pixel_y = 7
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"do" = (
/obj/effect/turf_decal/siding/wood,
-/obj/structure/bed/dogbed/runtime{
- name = "Proc's bed"
- },
-/mob/living/simple_animal/pet/cat/Proc,
/turf/open/floor/wood,
/area/ship/crew)
"dp" = (
@@ -975,16 +948,19 @@
/obj/effect/turf_decal/siding/white/corner{
dir = 8
},
-/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"ds" = (
-/obj/machinery/suit_storage_unit/cmo,
/obj/machinery/airalarm/directional/east,
+/obj/structure/bed/dogbed/runtime{
+ name = "Proc's bed"
+ },
+/mob/living/simple_animal/pet/cat/Proc,
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"dt" = (
@@ -1011,6 +987,14 @@
},
/turf/open/floor/plasteel/white,
/area/ship/cargo)
+"dD" = (
+/obj/structure/aquarium/prefilled,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
"dR" = (
/obj/effect/spawner/structure/window/shuttle,
/obj/machinery/door/poddoor{
@@ -1036,19 +1020,20 @@
/turf/open/floor/plating,
/area/ship/engineering)
"ei" = (
-/obj/machinery/cryopod,
/obj/effect/turf_decal/box/white,
/obj/machinery/computer/cryopod/retro/directional/north,
+/obj/machinery/cryopod{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"eH" = (
-/obj/structure/closet/crate/freezer/blood,
-/obj/machinery/iv_drip,
/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
/obj/structure/sign/poster/official/here_for_your_safety{
pixel_y = -32
},
/obj/machinery/firealarm/directional/east,
+/obj/structure/flora/bigplant,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"eR" = (
@@ -1129,17 +1114,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"gB" = (
-/obj/machinery/light/small/built/directional/east,
/obj/structure/rack,
-/obj/item/roller{
- pixel_y = 4
- },
-/obj/item/roller{
- pixel_y = 8
- },
-/obj/item/roller{
- pixel_y = 12
- },
/obj/effect/turf_decal/trimline/opaque/blue/warning{
dir = 5
},
@@ -1147,6 +1122,50 @@
dir = 5
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/door/window/southleft{
+ name = "Equipment Storage"
+ },
+/obj/structure/window/reinforced/spawner/west{
+ pixel_x = 0;
+ pixel_y = 0
+ },
+/obj/item/storage/firstaid/brute{
+ pixel_x = -3;
+ pixel_y = 11
+ },
+/obj/item/storage/firstaid/fire{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/firstaid/o2{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin{
+ pixel_x = -3;
+ pixel_y = -1
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -5
+ },
+/obj/item/reagent_containers/glass/bottle{
+ list_reagents = list(/datum/reagent/medicine/thializid=30);
+ name = "thializid bottle";
+ pixel_x = 10;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/glass/bottle{
+ list_reagents = list(/datum/reagent/medicine/rezadone=30);
+ name = "rezadone bottle";
+ pixel_x = 10;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/glass/bottle/formaldehyde{
+ pixel_x = 10;
+ pixel_y = 0
+ },
+/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"gC" = (
@@ -1158,21 +1177,50 @@
/turf/open/floor/pod/dark,
/area/ship/medical/morgue)
"gD" = (
-/obj/structure/closet/secure_closet/CMO,
/obj/structure/sign/poster/official/help_others{
pixel_x = -32
},
-/obj/effect/spawner/lootdrop/tool_surgery_adv,
-/obj/item/megaphone/command,
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
},
+/obj/structure/closet/secure_closet{
+ req_access = list(40);
+ icon_state = "cmo";
+ anchored = 1
+ },
+/obj/item/clothing/glasses/hud/health/sunglasses,
+/obj/item/megaphone/command,
+/obj/item/clothing/neck/cloak/cmo,
+/obj/item/defibrillator/compact/loaded,
+/obj/item/storage/belt/medical/surgery,
+/obj/item/clothing/head/beret/cmo,
+/obj/item/clothing/suit/longcoat/cmo,
+/obj/item/clothing/suit/toggle/labcoat/cmo,
+/obj/item/radio/headset/heads/cmo,
+/obj/item/clothing/suit/bio_suit/cmo,
+/obj/item/clothing/head/bio_hood/cmo,
+/obj/item/autosurgeon/cmo,
+/obj/item/healthanalyzer/advanced,
+/obj/item/clothing/under/rank/medical/chief_medical_officer,
+/obj/item/clothing/under/rank/medical/chief_medical_officer/skirt,
+/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/clothing/shoes/sneakers/brown{
+ pixel_x = -4;
+ pixel_y = -12
+ },
+/obj/item/reagent_containers/medigel/sterilizine,
+/obj/item/fish_feed{
+ layer = 2
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"gE" = (
/obj/effect/turf_decal/siding/white,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{
+ dir = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"gM" = (
@@ -1181,7 +1229,6 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/firecloset/wall/directional/west,
-/obj/item/storage/firstaid/fire,
/obj/item/extinguisher/mini,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
@@ -1223,6 +1270,9 @@
/obj/structure/cable{
icon_state = "1-4"
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"hQ" = (
@@ -1237,10 +1287,6 @@
/turf/open/floor/plating,
/area/ship/medical)
"hS" = (
-/obj/item/clothing/head/beret/chem,
-/obj/item/clothing/suit/longcoat/chemist,
-/obj/item/reagent_containers/dropper,
-/obj/item/storage/box/pillbottles,
/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
dir = 1
},
@@ -1248,6 +1294,14 @@
dir = 8
},
/obj/structure/closet/wall/white/directional/north,
+/obj/item/storage/bag/medical{
+ pixel_y = -4;
+ pixel_x = 5
+ },
+/obj/item/storage/box/pillbottles,
+/obj/item/clothing/head/beret/chem,
+/obj/item/clothing/suit/longcoat/chemist,
+/obj/item/reagent_containers/dropper,
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"iv" = (
@@ -1270,26 +1324,45 @@
/obj/item/circuitboard/machine/ore_redemption,
/obj/item/pickaxe/emergency,
/obj/item/storage/box/lights/mixed,
-/obj/item/stack/sheet/mineral/plasma/twenty,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
/obj/machinery/cell_charger,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
/turf/open/floor/plating,
/area/ship/engineering)
"iU" = (
-/obj/structure/closet/secure_closet/medical2,
+/obj/structure/table/optable,
+/obj/machinery/iv_drip{
+ pixel_x = -9;
+ pixel_y = 21;
+ layer = 5
+ },
+/obj/structure/curtain{
+ pixel_x = 0;
+ pixel_y = 33
+ },
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"iV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/poddoor{
+ id = "emergencybay_blastdoors"
+ },
/obj/docking_port/mobile{
dir = 8;
launch_status = 0;
name = "Hospital Ship";
preferred_direction = 4
},
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/engineering)
+/turf/open/floor/engine,
+/area/ship/cargo)
"ja" = (
/obj/structure/sign/poster/official/cleanliness{
pixel_x = 32
@@ -1297,22 +1370,31 @@
/obj/effect/turf_decal/siding/white{
dir = 1
},
-/obj/structure/frame/machine,
-/obj/item/stack/cable_coil/cyan{
- amount = 5
- },
/obj/machinery/airalarm/directional/south,
+/obj/machinery/chem_master,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/toilet)
+"jg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/obj/item/clothing/mask/surgical{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
"jk" = (
-/obj/machinery/firealarm/directional/south,
-/obj/machinery/stasis{
- dir = 4
+/obj/machinery/smartfridge/chemistry/preloaded{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = 0
},
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"jr" = (
-/obj/machinery/smartfridge/bloodbank/preloaded,
+/obj/structure/sign/poster/official/moth/epi,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/cargo)
"jG" = (
@@ -1328,26 +1410,40 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"jR" = (
-/obj/machinery/light/built/directional/south,
-/obj/machinery/defibrillator_mount/charging{
- pixel_y = -32
+/obj/machinery/smartfridge/bloodbank/preloaded{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = 0
},
-/obj/structure/rack,
-/obj/item/defibrillator/loaded,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"jV" = (
/obj/effect/turf_decal/siding/blue,
/obj/item/radio/intercom/wideband/directional/west,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
-"kQ" = (
-/obj/docking_port/stationary{
- width = 15;
- height = 15
+"kA" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
},
-/turf/template_noop,
-/area/template_noop)
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/obj/item/shard{
+ pixel_x = -7;
+ pixel_y = -12
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/screwdriver{
+ pixel_x = -21;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"kQ" = (
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"kZ" = (
/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
/obj/effect/turf_decal/trimline/opaque/white/filled/corner{
@@ -1356,20 +1452,16 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"lp" = (
-/obj/structure/closet/secure_closet{
- icon_state = "med";
- name = "equipment locker"
- },
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/item/reagent_containers/spray/cleaner,
-/obj/item/storage/belt/medical,
-/obj/item/storage/belt/medical,
-/obj/item/clothing/glasses/hud/health/prescription,
-/obj/item/clothing/glasses/hud/health/prescription,
-/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/glasses/hud/health,
-/obj/item/storage/belt/medical/webbing,
-/obj/item/radio/intercom/directional/north,
+/obj/structure/table,
+/obj/machinery/light/built/directional/north,
+/obj/item/reagent_containers/spray/cleaner{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/fish_feed{
+ pixel_x = 5;
+ pixel_y = 10
+ },
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"lI" = (
@@ -1417,7 +1509,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/machinery/light/directional/west,
+/obj/machinery/light/built/directional/west,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"mx" = (
@@ -1426,9 +1518,6 @@
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
},
-/obj/structure/sign/poster/random{
- pixel_x = 32
- },
/obj/structure/bed/pod,
/turf/open/floor/carpet/blue,
/area/ship/crew)
@@ -1443,9 +1532,6 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"mE" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -1455,15 +1541,17 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/structure/table,
+/obj/machinery/stasis{
+ density = 1
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical)
"nA" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_y = 3
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -5;
pixel_y = 3
},
@@ -1471,19 +1559,42 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/power/apc/auto_name/directional/north{
+ pixel_x = -1;
+ pixel_y = 25
+ },
/obj/machinery/light_switch{
- pixel_x = 11;
+ pixel_x = 10;
pixel_y = 21
},
+/obj/item/trash/popcorn{
+ pixel_x = -4;
+ pixel_y = 11
+ },
+/obj/item/trash/can{
+ pixel_x = 9;
+ pixel_y = 15
+ },
+/obj/effect/spawner/random/food_or_drink/ration{
+ pixel_x = -9;
+ pixel_y = 3
+ },
/turf/open/floor/wood,
/area/ship/crew)
"nQ" = (
/turf/closed/wall/mineral/titanium,
/area/ship/crew)
"og" = (
-/obj/machinery/stasis,
/obj/item/radio/intercom/directional/east,
+/obj/structure/frame/machine,
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/stock_parts/matter_bin{
+ pixel_x = -4;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"ot" = (
@@ -1506,6 +1617,14 @@
/obj/effect/turf_decal/industrial/stand_clear,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
+"qw" = (
+/obj/docking_port/stationary{
+ width = 30;
+ height = 15;
+ dwidth = 15
+ },
+/turf/template_noop,
+/area/template_noop)
"qx" = (
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/poddoor{
@@ -1532,8 +1651,9 @@
/turf/open/floor/plating,
/area/ship/engineering)
"qX" = (
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/obj/structure/sign/poster/official/moth/piping,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering)
"ri" = (
/obj/structure/railing{
dir = 8
@@ -1587,7 +1707,10 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/computer/operating/retro,
+/obj/machinery/stasis{
+ dir = 4;
+ density = 1
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical)
"sz" = (
@@ -1598,9 +1721,6 @@
/turf/open/floor/wood,
/area/ship/crew)
"tn" = (
-/obj/machinery/vending/wardrobe/medi_wardrobe{
- all_items_free = 1
- },
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
},
@@ -1608,6 +1728,9 @@
dir = 8
},
/obj/machinery/light/small/directional/north,
+/obj/machinery/vending/wardrobe/medi_wardrobe{
+ all_items_free = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"tw" = (
@@ -1643,6 +1766,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 8
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"tT" = (
@@ -1653,6 +1779,11 @@
/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
dir = 4
},
+/obj/effect/decal/cleanable/blood/drip,
+/obj/item/stack/medical/gauze/improvised{
+ pixel_x = 4;
+ pixel_y = 8
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"uj" = (
@@ -1712,7 +1843,6 @@
/area/ship/cargo)
"uJ" = (
/obj/machinery/autolathe,
-/obj/item/paicard,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
@@ -1779,6 +1909,9 @@
pixel_x = 11;
pixel_y = -16
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical/morgue)
"vq" = (
@@ -1817,8 +1950,8 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"vE" = (
-/obj/structure/dresser,
/obj/machinery/firealarm/directional/north,
+/obj/structure/dresser,
/turf/open/floor/plasteel,
/area/ship/crew)
"vX" = (
@@ -1851,6 +1984,10 @@
/obj/item/wrench,
/obj/structure/cable/yellow,
/obj/machinery/airalarm/directional/south,
+/obj/item/stack/sheet/mineral/plasma/twenty{
+ pixel_x = -4;
+ pixel_y = -6
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"wd" = (
@@ -1867,6 +2004,9 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"wh" = (
@@ -1883,6 +2023,7 @@
icon_state = "2-4"
},
/obj/structure/catwalk/over,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering)
"wj" = (
@@ -1918,9 +2059,6 @@
/obj/item/assembly/flash/handheld{
pixel_x = -9
},
-/obj/item/melee/classic_baton/telescopic{
- pixel_x = 8
- },
/obj/structure/table/reinforced,
/obj/item/stock_parts/cell/gun/mini{
pixel_x = 10;
@@ -1989,6 +2127,11 @@
dir = 1
},
/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8;
+ pixel_x = 0;
+ pixel_y = -9
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"yA" = (
@@ -2022,16 +2165,12 @@
/turf/open/floor/plating,
/area/ship/engineering)
"yN" = (
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 4
+/obj/machinery/computer/operating/retro,
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_x = 0;
+ pixel_y = 24
},
-/obj/structure/closet/crate/bin,
-/obj/item/circuitboard/machine/chem_master,
-/obj/item/reagent_containers/glass/beaker/large,
-/obj/item/stack/sheet/glass/two,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/item/trash/can/food/beans,
-/turf/open/floor/plasteel/white,
+/turf/open/floor/plasteel/dark,
/area/ship/medical)
"yU" = (
/obj/effect/turf_decal/industrial/warning{
@@ -2040,12 +2179,8 @@
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"zl" = (
-/obj/structure/closet/crate/freezer/surplus_limbs,
-/obj/item/reagent_containers/glass/beaker/synthflesh,
/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal,
-/obj/structure/sign/poster/official/random{
- pixel_y = -32
- },
+/obj/structure/crate_shelf/built,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"zy" = (
@@ -2064,6 +2199,9 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 5
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Ag" = (
@@ -2105,10 +2243,6 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/machinery/door/airlock/medical/glass{
- dir = 4;
- name = "Medbay"
- },
/obj/effect/turf_decal/trimline/opaque/white/filled/line{
dir = 4
},
@@ -2121,6 +2255,10 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/door/airlock/medical/glass{
+ dir = 4;
+ name = "Medbay"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Bh" = (
@@ -2166,14 +2304,13 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"BV" = (
-/obj/structure/closet/crate/medical,
-/obj/item/vending_refill/medical,
-/obj/item/screwdriver,
/obj/machinery/airalarm/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Cn" = (
@@ -2196,16 +2333,36 @@
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 8
},
-/obj/structure/closet/secure_closet/medical3{
- anchored = 1
+/obj/machinery/light/small/directional/south,
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/soda_cans/tonic{
+ pixel_x = -6;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/vimukti{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/tadrixx{
+ pixel_x = 2;
+ pixel_y = 11
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy{
+ pixel_x = 1;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 8;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/obj/item/trash/cheesie{
+ pixel_x = -25;
+ pixel_y = 0
},
-/obj/item/clothing/accessory/armband/medblue,
-/obj/item/clothing/accessory/armband/medblue,
-/obj/item/clothing/accessory/armband/med,
-/obj/item/clothing/accessory/armband/med,
-/obj/item/clothing/accessory/pocketprotector,
-/obj/item/clothing/accessory/pocketprotector,
-/obj/item/clothing/accessory/pocketprotector,
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"CR" = (
@@ -2259,12 +2416,11 @@
/turf/open/floor/plating,
/area/ship/engineering)
"ED" = (
-/obj/machinery/iv_drip,
/obj/machinery/smartfridge/organ{
- density = 0;
- pixel_y = -32
+ pixel_y = 0;
+ dir = 1;
+ pixel_x = 0
},
-/obj/item/light/tube/broken,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"ER" = (
@@ -2335,7 +2491,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/item/wallframe/firealarm,
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 4
},
@@ -2388,17 +2543,16 @@
/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/item/bot_assembly/hygienebot,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/item/areaeditor/shuttle,
+/obj/effect/spawner/random/maintenance/three,
+/obj/structure/rack,
+/obj/item/storage/box/stockparts/t2,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 4
+ },
/obj/item/flashlight{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/storage/toolbox/mechanical{
- pixel_y = 4
- },
-/obj/structure/rack,
/turf/open/floor/plating,
/area/ship/engineering)
"Ic" = (
@@ -2418,6 +2572,9 @@
pixel_y = -8
},
/obj/item/radio/intercom/directional/west,
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_y = -32
+ },
/turf/open/floor/plasteel/mono/dark,
/area/ship/medical)
"In" = (
@@ -2444,6 +2601,22 @@
/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
dir = 1
},
+/obj/item/stock_parts/manipulator{
+ pixel_x = -12;
+ pixel_y = -15
+ },
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = -18;
+ pixel_y = 10
+ },
+/obj/item/shard{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/stack/cable_coil/cut/pink{
+ pixel_x = 8;
+ pixel_y = -10
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Jy" = (
@@ -2571,8 +2744,6 @@
/area/ship/engineering)
"NK" = (
/obj/structure/extinguisher_cabinet/directional/north,
-/obj/structure/window/reinforced/spawner/west,
-/obj/item/kirbyplants/random,
/obj/effect/turf_decal/trimline/opaque/blue/warning{
dir = 9
},
@@ -2582,6 +2753,10 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
+/obj/structure/window/reinforced/spawner/west,
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/random/maintenance/two,
+/obj/item/trash/sosjerky,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"NT" = (
@@ -2601,7 +2776,6 @@
"OF" = (
/obj/machinery/fax/indie,
/obj/structure/table/reinforced,
-/obj/machinery/light/small/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"OS" = (
@@ -2642,6 +2816,7 @@
pixel_x = 12;
pixel_y = -17
},
+/obj/structure/closet/crate/freezer/blood,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"QD" = (
@@ -2681,6 +2856,7 @@
"RR" = (
/obj/structure/filingcabinet/medical,
/obj/item/radio/intercom/directional/west,
+/obj/machinery/light/small/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"RS" = (
@@ -2708,7 +2884,7 @@
pixel_x = -16;
pixel_y = 14
},
-/obj/item/stock_parts/manipulator,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"Sx" = (
@@ -2726,7 +2902,10 @@
/obj/effect/turf_decal/siding/wood{
dir = 5
},
-/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_x = -28;
+ pixel_y = 1
+ },
/turf/open/floor/wood,
/area/ship/crew)
"Tr" = (
@@ -2780,14 +2959,16 @@
/turf/open/floor/wood,
/area/ship/crew)
"Vp" = (
-/obj/machinery/iv_drip,
-/obj/machinery/airalarm/directional/south,
+/obj/structure/table_frame,
+/obj/item/shard{
+ pixel_x = 5;
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/blood/gibs/down,
+/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"VC" = (
-/obj/structure/sign/poster/official/safety_internals{
- pixel_y = -32
- },
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"VQ" = (
@@ -2796,7 +2977,7 @@
/obj/machinery/atmospherics/components/unary/portables_connector{
dir = 4
},
-/obj/machinery/light/small/directional/west,
+/obj/machinery/light/directional/west,
/turf/open/floor/plasteel/mono/dark,
/area/ship/medical)
"Wd" = (
@@ -2821,15 +3002,11 @@
/obj/item/pen{
pixel_x = 4
},
-/obj/item/clothing/glasses/hud/health/sunglasses,
/obj/structure/window/reinforced/spawner/north,
/obj/structure/window/reinforced/spawner/east,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
/obj/item/spacecash/bundle/c1000,
/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/effect/turf_decal/spline/fancy/opaque/black,
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"WI" = (
@@ -2884,7 +3061,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/effect/spawner/structure/window/shuttle,
+/obj/structure/aquarium/prefilled,
/turf/open/floor/plating,
/area/ship/cargo)
"Yd" = (
@@ -2912,12 +3089,14 @@
/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
dir = 8
},
+/obj/item/stock_parts/matter_bin{
+ pixel_x = 6;
+ pixel_y = -11
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Yg" = (
/obj/machinery/light/small/built/directional/east,
-/obj/structure/rack,
-/obj/item/storage/toolbox/emergency,
/obj/item/gps{
gpstag = "NTREC1";
pixel_x = -9;
@@ -2925,7 +3104,7 @@
},
/obj/item/gps{
gpstag = "NTREC1";
- pixel_x = -9;
+ pixel_x = -6;
pixel_y = 4
},
/obj/effect/turf_decal/trimline/opaque/blue/warning{
@@ -2937,6 +3116,63 @@
/obj/structure/sign/poster/random{
pixel_y = -32
},
+/obj/structure/closet/secure_closet{
+ icon_state = "med";
+ name = "equipment locker";
+ req_access = list(45)
+ },
+/obj/item/storage/belt/medical{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/storage/belt/medical{
+ pixel_x = 3;
+ pixel_y = 0
+ },
+/obj/item/storage/box/bodybags{
+ pixel_x = 6;
+ pixel_y = -12
+ },
+/obj/item/storage/box/syringes{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/roller{
+ pixel_y = -7;
+ pixel_x = -5
+ },
+/obj/item/roller{
+ pixel_y = -1;
+ pixel_x = -6
+ },
+/obj/item/clothing/glasses/hud/health{
+ pixel_x = 0;
+ pixel_y = -1
+ },
+/obj/item/clothing/glasses/hud/health{
+ pixel_x = 0;
+ pixel_y = -4
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = -8;
+ pixel_y = -12
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = -12;
+ pixel_y = -12
+ },
+/obj/item/storage/box/masks{
+ pixel_x = 9;
+ pixel_y = -14
+ },
+/obj/item/storage/case/surgery{
+ pixel_x = 9;
+ pixel_y = -4
+ },
+/obj/item/storage/case/surgery{
+ pixel_x = 9;
+ pixel_y = -7
+ },
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"Yj" = (
@@ -2963,6 +3199,13 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/item/vending_refill/medical,
+/obj/item/storage/box/beakers{
+ pixel_x = -1;
+ pixel_y = 3
+ },
+/obj/structure/closet/crate/trashcart,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Zq" = (
@@ -2980,7 +3223,7 @@
"ZN" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/obj/machinery/light/small/directional/east,
-/obj/structure/salvageable/machine,
+/obj/structure/salvageable/safe_server,
/turf/open/floor/plating,
/area/ship/engineering)
@@ -2992,10 +3235,11 @@ aa
aa
aa
aa
+aa
vk
at
aa
-iV
+at
vk
aa
aa
@@ -3011,6 +3255,7 @@ aa
aa
aa
aa
+aa
aS
Gs
at
@@ -3031,6 +3276,7 @@ aa
aa
aa
aa
+aa
at
cG
at
@@ -3051,6 +3297,7 @@ aa
aa
aa
aa
+aa
at
DP
by
@@ -3071,6 +3318,7 @@ aa
aa
aa
aa
+aa
at
AH
at
@@ -3090,6 +3338,7 @@ aa
aa
aa
aa
+aa
aS
at
Gi
@@ -3110,6 +3359,7 @@ aa
aa
aa
aa
+aa
at
dS
bk
@@ -3130,12 +3380,13 @@ aa
aa
aa
aa
+aa
at
Sx
vl
at
hc
-at
+qX
wh
CR
at
@@ -3149,6 +3400,7 @@ aa
aa
aa
aa
+aa
aS
at
cJ
@@ -3169,6 +3421,7 @@ aa
aa
aa
aa
+aa
at
aT
Ln
@@ -3189,6 +3442,7 @@ aa
aa
aa
aa
+aa
bq
Tv
vj
@@ -3208,6 +3462,7 @@ aa
aa
aa
aa
+aa
Mi
bq
XN
@@ -3228,6 +3483,7 @@ aa
aa
aa
aa
+aa
bq
gC
aF
@@ -3247,6 +3503,7 @@ aa
(14,1,1) = {"
aa
aa
+aa
ag
al
al
@@ -3267,6 +3524,7 @@ aa
(15,1,1) = {"
aa
aa
+aa
al
lQ
gM
@@ -3287,6 +3545,7 @@ aa
(16,1,1) = {"
aa
aa
+aa
wG
Sg
au
@@ -3307,17 +3566,18 @@ aa
(17,1,1) = {"
aa
aa
+aa
al
am
FA
bU
xz
-qX
+gi
gE
xA
tE
-gi
cQ
+cF
cP
da
ja
@@ -3326,12 +3586,13 @@ aa
"}
(18,1,1) = {"
aa
+aa
ad
uD
uD
AL
fN
-jr
+uD
yN
dr
Bh
@@ -3346,12 +3607,13 @@ cY
"}
(19,1,1) = {"
aa
+kQ
cC
aj
sl
QD
VC
-uD
+dD
iU
lI
su
@@ -3366,6 +3628,7 @@ Rx
"}
(20,1,1) = {"
aa
+kQ
aN
dt
ah
@@ -3373,7 +3636,7 @@ Yz
BV
uD
lp
-lI
+jg
bS
ch
jR
@@ -3385,8 +3648,9 @@ JI
Rx
"}
(21,1,1) = {"
+qw
kQ
-aN
+iV
ql
aB
az
@@ -3395,7 +3659,7 @@ XY
bu
lI
mE
-xP
+kA
Vp
tD
cT
@@ -3406,6 +3670,7 @@ vq
"}
(22,1,1) = {"
aa
+kQ
iv
my
aA
@@ -3426,6 +3691,7 @@ Rx
"}
(23,1,1) = {"
aa
+kQ
ae
aj
yU
@@ -3446,8 +3712,9 @@ Rx
"}
(24,1,1) = {"
aa
+aa
ad
-uD
+jr
cD
aC
ro
@@ -3467,6 +3734,7 @@ cY
(25,1,1) = {"
aa
aa
+aa
ak
aq
bc
@@ -3487,6 +3755,7 @@ aa
(26,1,1) = {"
aa
aa
+aa
ak
Ff
aE
@@ -3507,6 +3776,7 @@ aa
(27,1,1) = {"
aa
aa
+aa
ab
uD
uJ
@@ -3528,6 +3798,7 @@ aa
aa
aa
aa
+aa
ab
qx
ad
@@ -3551,6 +3822,7 @@ aa
aa
aa
aa
+aa
bf
Tr
Cn
@@ -3572,6 +3844,7 @@ aa
aa
aa
aa
+aa
vY
WI
WI
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_boyardee.dmm b/_maps/_mod_celadon/shuttles/independent/independent_boyardee.dmm
index d17e9044d2a7..6f5b7eb9ffae 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_boyardee.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_boyardee.dmm
@@ -228,7 +228,7 @@
/area/ship/storage)
"ej" = (
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/corner/opaque/white/half,
/obj/effect/turf_decal/corner/opaque/white{
dir = 4
@@ -2269,7 +2269,7 @@
/area/ship/crew/canteen/kitchen)
"Qc" = (
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/cable{
icon_state = "4-8"
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_byo.dmm b/_maps/_mod_celadon/shuttles/independent/independent_byo.dmm
index 936b7d5e3584..b2a616807ef7 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_byo.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_byo.dmm
@@ -169,12 +169,12 @@
/area/ship/construction)
"rS" = (
/obj/structure/closet/wall/directional/north,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/drinks/waterbottle/large{
pixel_x = 8;
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_caravan.dmm b/_maps/_mod_celadon/shuttles/independent/independent_caravan.dmm
index 4e6e52f52e6c..9f8571d0cf9b 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_caravan.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_caravan.dmm
@@ -579,7 +579,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"kY" = (
@@ -587,7 +587,7 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"ll" = (
@@ -832,8 +832,8 @@
/area/ship/crew)
"oA" = (
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/melee/knife/kitchen,
/obj/item/kitchen/rollingpin,
/turf/open/floor/carpet/royalblue,
@@ -1096,7 +1096,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
"tQ" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/number/five{
dir = 8
@@ -1125,8 +1125,14 @@
},
/obj/machinery/airalarm/directional/north,
/obj/structure/table/glass,
-/obj/item/reagent_containers/spray/cleaner,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery{
+ pixel_x = 4;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/spray/cleaner{
+ pixel_x = -5;
+ pixel_y = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/science)
"uZ" = (
@@ -1270,7 +1276,7 @@
/area/ship/bridge)
"xF" = (
/obj/machinery/atmospherics/pipe/simple/violet/visible,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"xI" = (
@@ -1509,7 +1515,7 @@
/area/ship/bridge)
"BV" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"Ca" = (
@@ -2012,7 +2018,7 @@
"Ko" = (
/obj/effect/turf_decal/box/corners,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"Kx" = (
@@ -2890,8 +2896,8 @@
/obj/item/reagent_containers/food/drinks/flask/gold,
/obj/item/gun/ballistic/revolver/detective,
/obj/item/gun/ballistic/derringer,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"ZM" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_dwayne.dmm b/_maps/_mod_celadon/shuttles/independent/independent_dwayne.dmm
index 24d1f158bcb0..3ae4f4bc1851 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_dwayne.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_dwayne.dmm
@@ -24,6 +24,13 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
+"az" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"aD" = (
/obj/machinery/power/shuttle/engine/electric{
dir = 4
@@ -70,7 +77,7 @@
icon_state = "4-8"
},
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/turf/open/floor/wood,
/area/ship/crew)
@@ -164,6 +171,16 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/wood,
/area/ship/crew)
+"co" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/structure/closet/crate/radiation{
+ name = "fuel crate"
+ },
+/obj/item/stack/sheet/mineral/uranium/five,
+/turf/open/floor/plating,
+/area/ship/construction)
"dx" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -376,6 +393,13 @@
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plating,
/area/ship/engineering)
+"ic" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/industrial/traffic,
+/turf/open/floor/plating,
+/area/ship/construction)
"ig" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/spawner/structure/window/reinforced,
@@ -421,8 +445,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"js" = (
-/obj/effect/turf_decal/box,
-/obj/item/rack_parts/shelf,
+/obj/effect/turf_decal/industrial/traffic,
/turf/open/floor/plating,
/area/ship/construction)
"jS" = (
@@ -624,7 +647,7 @@
/turf/open/floor/wood,
/area/ship/crew)
"nL" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/closet/crate/internals,
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -717,6 +740,12 @@
},
/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
+"pp" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/turf/open/floor/plating/rust,
+/area/ship/construction)
"pq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -809,12 +838,12 @@
icon_state = "1-2"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"rp" = (
@@ -840,6 +869,12 @@
/obj/structure/catwalk/over,
/turf/open/floor/plating,
/area/ship/engineering)
+"sy" = (
+/obj/effect/turf_decal/industrial/stand_clear/white{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"sD" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -885,6 +920,12 @@
"tq" = (
/turf/closed/wall/r_wall,
/area/ship/engineering)
+"tC" = (
+/obj/machinery/door/poddoor{
+ id = "mining_ship_starboard"
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"tX" = (
/obj/structure/ore_box,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -896,6 +937,14 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/ship/cargo)
+"ud" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/stand_clear/white,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"uk" = (
/turf/open/floor/plating,
/area/ship/construction)
@@ -959,8 +1008,9 @@
/turf/open/floor/wood,
/area/ship/crew)
"vz" = (
-/obj/effect/turf_decal/box,
-/obj/item/rack_parts,
+/obj/effect/turf_decal/industrial/stand_clear/white{
+ dir = 1
+ },
/turf/open/floor/plating/rust,
/area/ship/construction)
"vA" = (
@@ -1453,6 +1503,13 @@
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/plasteel/mono,
/area/ship/medical)
+"IU" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/turf/open/floor/plating/rust,
+/area/ship/construction)
"IZ" = (
/obj/item/clothing/suit/hazardvest{
desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks.";
@@ -1552,6 +1609,12 @@
/obj/effect/turf_decal/corner/opaque/blue/border,
/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
+"LE" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"LH" = (
/obj/machinery/door/poddoor/preopen{
id = "mining_ship_blast"
@@ -1620,15 +1683,15 @@
/area/ship/bridge)
"Mo" = (
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/circuitboard/machine/chem_dispenser/drinks,
/obj/item/circuitboard/computer/arcade/orion_trail,
/obj/item/kinetic_crusher,
/obj/effect/turf_decal/box,
/obj/item/vending_refill/mining_equipment,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -1712,6 +1775,9 @@
/area/ship/cargo)
"Nf" = (
/obj/effect/turf_decal/number/zero,
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/construction)
"Nw" = (
@@ -1740,6 +1806,7 @@
/area/ship/cargo)
"Op" = (
/obj/effect/turf_decal/number/five,
+/obj/effect/turf_decal/industrial/traffic,
/turf/open/floor/plating,
/area/ship/construction)
"OJ" = (
@@ -1765,7 +1832,10 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"OW" = (
-/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/ship/construction)
"Pd" = (
@@ -1830,6 +1900,13 @@
/obj/effect/turf_decal/corner/opaque/white/mono,
/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
+"PD" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"PP" = (
/obj/effect/turf_decal/corner/opaque/blue{
dir = 5
@@ -2007,6 +2084,12 @@
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel,
/area/ship/cargo)
+"Ut" = (
+/obj/effect/landmark/subship{
+ subship_template = /datum/map_template/shuttle/subshuttles/independent_pebble
+ },
+/turf/open/floor/plating,
+/area/ship/construction)
"UK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
@@ -2023,7 +2106,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"UY" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/closet/crate,
/obj/effect/turf_decal/box,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
@@ -2045,6 +2128,10 @@
},
/turf/open/floor/plating,
/area/ship/medical)
+"Vt" = (
+/obj/effect/turf_decal/industrial/traffic/corner,
+/turf/open/floor/plating,
+/area/ship/construction)
"Vv" = (
/obj/machinery/power/smes/engineering,
/obj/structure/cable{
@@ -2116,8 +2203,10 @@
/turf/open/floor/plating/airless,
/area/ship/external)
"Xk" = (
-/obj/effect/turf_decal/box,
-/obj/item/rack_parts,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/traffic,
/turf/open/floor/plating,
/area/ship/construction)
"Xl" = (
@@ -2181,8 +2270,10 @@
/turf/open/floor/plasteel/mono,
/area/ship/medical)
"XO" = (
-/obj/effect/turf_decal/box,
-/turf/open/floor/plating/rust,
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plating,
/area/ship/construction)
"Yp" = (
/obj/machinery/newscaster/directional/east,
@@ -2466,12 +2557,12 @@ mE
yu
iZ
bj
-uk
-uk
-uk
-SB
-uk
-uk
+Vt
+LE
+LE
+pp
+LE
+az
YN
"}
(10,1,1) = {"
@@ -2488,13 +2579,13 @@ Sg
lv
Zj
bj
+js
uk
uk
uk
-uk
-uk
-uk
-YN
+Ut
+OW
+tC
"}
(11,1,1) = {"
OJ
@@ -2510,13 +2601,13 @@ aI
TP
ZR
bj
-uk
+ic
vz
-OW
-js
-OW
-SB
-YN
+uk
+uk
+uk
+ud
+tC
"}
(12,1,1) = {"
OJ
@@ -2532,13 +2623,13 @@ or
lv
sD
Mb
-uk
+Xk
uk
SB
uk
uk
-uk
-YN
+OW
+tC
"}
(13,1,1) = {"
fp
@@ -2554,13 +2645,13 @@ wW
vP
sg
Hh
+js
uk
-OW
-OW
-OW
-Xk
uk
-YN
+uk
+uk
+IU
+tC
"}
(14,1,1) = {"
OJ
@@ -2576,13 +2667,13 @@ or
lv
sD
Mb
+js
+sy
uk
uk
uk
-uk
-uk
-uk
-YN
+ud
+tC
"}
(15,1,1) = {"
OJ
@@ -2599,12 +2690,12 @@ lv
dK
bj
Op
-XO
-Xk
-OW
-XO
+SB
uk
-YN
+uk
+uk
+OW
+tC
"}
(16,1,1) = {"
OJ
@@ -2621,12 +2712,12 @@ lv
tj
bj
Nf
-uk
-uk
-uk
-uk
-uk
-YN
+XO
+XO
+XO
+XO
+PD
+tC
"}
(17,1,1) = {"
OJ
@@ -2647,7 +2738,7 @@ uk
rp
uk
uk
-uk
+co
YN
"}
(18,1,1) = {"
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_elder.dmm b/_maps/_mod_celadon/shuttles/independent/independent_elder.dmm
index 73403f20fe69..c3eb2bb4a040 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_elder.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_elder.dmm
@@ -341,7 +341,7 @@
pixel_y = 14;
pixel_x = 5
},
-/obj/item/ammo_box/c38_box{
+/obj/item/storage/box/ammo/c38{
pixel_x = -6;
pixel_y = 7
},
@@ -349,7 +349,7 @@
pixel_x = 8;
pixel_y = 6
},
-/obj/item/ammo_box/c38_box{
+/obj/item/storage/box/ammo/c38{
pixel_x = -6;
pixel_y = 1
},
@@ -1477,7 +1477,6 @@
/obj/vehicle/ridden/wheelchair{
dir = 4
},
-/obj/item/melee/transforming/cleaving_saw/old,
/turf/open/floor/ship/dirt/dark,
/area/ship/bridge)
"rj" = (
@@ -2033,7 +2032,7 @@
},
/obj/item/gun/ballistic/revolver/montagne,
/obj/item/storage/backpack/satchel/leather,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/obj/item/clothing/head/cowboy/sec/roumain/montagne,
/obj/item/clothing/suit/armor/roumain/montagne,
/obj/item/ammo_box/a44roum_speedloader,
@@ -2701,6 +2700,10 @@
},
/turf/open/floor/wood/mahogany,
/area/ship/bridge)
+"Ih" = (
+/obj/item/melee/cleaving_saw/old,
+/turf/open/floor/ship/dirt/dark,
+/area/ship/bridge)
"Ii" = (
/obj/structure/closet/firecloset/wall{
dir = 4;
@@ -4577,7 +4580,7 @@ aP
aP
MZ
wD
-xC
+Ih
re
xC
wD
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_escapepod.dmm b/_maps/_mod_celadon/shuttles/independent/independent_escapepod.dmm
index a32e51b0a227..00342470019d 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_escapepod.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_escapepod.dmm
@@ -7,8 +7,8 @@
/obj/item/clothing/mask/gas/sechailer,
/obj/item/tank/internals/emergency_oxygen/double,
/obj/item/tank/internals/emergency_oxygen/double,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/structure/cable{
icon_state = "2-8"
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_halftrack.dmm b/_maps/_mod_celadon/shuttles/independent/independent_halftrack.dmm
index afa5df0df97b..0725f699e5ae 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_halftrack.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_halftrack.dmm
@@ -179,8 +179,8 @@
/area/ship/crew)
"fa" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/newscaster/directional/south,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
@@ -200,16 +200,16 @@
/obj/machinery/airalarm/directional/south,
/obj/machinery/firealarm/directional/west,
/obj/structure/closet/crate/secure/weapon,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g/beanbag,
-/obj/item/ammo_box/a12g/beanbag,
-/obj/item/ammo_box/a12g/beanbag,
-/obj/item/ammo_box/a12g/beanbag,
-/obj/item/ammo_box/a12g/beanbag,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_beanbag,
+/obj/item/storage/box/ammo/a12g_beanbag,
+/obj/item/storage/box/ammo/a12g_beanbag,
+/obj/item/storage/box/ammo/a12g_beanbag,
+/obj/item/storage/box/ammo/a12g_beanbag,
/obj/effect/turf_decal/box/red,
/turf/open/floor/plasteel/dark,
/area/ship/security)
@@ -1156,10 +1156,10 @@
/obj/item/melee/baton/loaded,
/obj/item/melee/baton/loaded,
/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber,
/obj/item/melee/knife/combat,
/obj/item/melee/knife/combat,
/obj/effect/turf_decal/box/red,
+/obj/item/holo/esword,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"Ev" = (
@@ -1621,8 +1621,8 @@
/obj/item/ammo_box/magazine/toy/smg,
/obj/item/ammo_box/magazine/toy/smg,
/obj/item/ammo_box/magazine/toy/smg,
-/obj/item/ammo_box/foambox,
-/obj/item/ammo_box/foambox,
+/obj/item/storage/box/ammo/foam_darts,
+/obj/item/storage/box/ammo/foam_darts,
/turf/open/floor/plasteel/dark,
/area/ship/security/range)
"Ob" = (
@@ -1730,7 +1730,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/storage)
"Qp" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/west,
/obj/machinery/newscaster/directional/south,
/turf/open/floor/carpet/nanoweave/beige,
@@ -2211,7 +2211,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/security)
"ZO" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/machinery/light/directional/east,
/turf/open/floor/carpet/nanoweave/beige,
/area/ship/hallway/aft)
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_junker.dmm b/_maps/_mod_celadon/shuttles/independent/independent_junker.dmm
index cf8d94742709..87acaef9ef40 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_junker.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_junker.dmm
@@ -464,7 +464,7 @@
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/wrapping,
/obj/item/reagent_containers/glass/bottle/welding_fuel,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/cable{
icon_state = "0-2"
@@ -476,7 +476,7 @@
/turf/open/floor/plating,
/area/ship/storage/eva)
"jm" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
@@ -570,7 +570,7 @@
/area/ship/storage/eva)
"km" = (
/obj/item/trash/sosjerky,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/areaeditor/shuttle{
pixel_y = 7
},
@@ -1007,7 +1007,7 @@
/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"sM" = (
@@ -1099,7 +1099,7 @@
/area/ship/storage/eva)
"un" = (
/obj/machinery/door/firedoor,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -1295,7 +1295,7 @@
/area/ship/maintenance/starboard)
"zy" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/decal_painter,
/obj/item/storage/box/mousetraps,
/obj/structure/closet/toolcloset{
@@ -1425,7 +1425,7 @@
"Cf" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/flashlight/pen,
/obj/machinery/light/small/broken/directional/north{
pixel_y = 0;
@@ -1628,7 +1628,7 @@
/area/ship/maintenance/central)
"Fl" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/toner,
/obj/item/clothing/neck/stethoscope,
/obj/machinery/light/small/broken/directional/north,
@@ -2157,7 +2157,7 @@
"Pf" = (
/obj/structure/rack,
/obj/item/storage/backpack/explorer,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/pickaxe/rusted,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
@@ -2245,7 +2245,7 @@
/obj/structure/closet/crate/trashcart,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/light/small/directional/east,
/turf/open/floor/wood/walnut{
icon_state = "wood-broken3"
@@ -2352,7 +2352,7 @@
/turf/open/floor/pod/dark,
/area/ship/crew/canteen)
"Uu" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/mob/living/simple_animal/hostile/cockroach/glockroach,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/purple/hidden{
@@ -2451,7 +2451,7 @@
"Wr" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/reagent_containers/food/snacks/canned/peaches/maint,
/turf/open/floor/plating,
/area/ship/construction)
@@ -2586,7 +2586,7 @@
"Yx" = (
/obj/effect/decal/cleanable/sprayweb,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/light/small/directional/north,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/effect/decal/cleanable/dirt/dust,
@@ -2622,7 +2622,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/structure/safe/floor{
number_of_tumblers = 5
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_kilo.dmm b/_maps/_mod_celadon/shuttles/independent/independent_kilo.dmm
index d3e6ccc64a0a..31dcd48abf76 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_kilo.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_kilo.dmm
@@ -929,7 +929,7 @@
/obj/structure/rack,
/obj/item/storage/box/lights/mixed,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/sign/poster/contraband/random{
pixel_x = 32
},
@@ -1417,11 +1417,11 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6;
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6;
pixel_y = 8
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_koi.dmm b/_maps/_mod_celadon/shuttles/independent/independent_koi.dmm
index fd3ade35ec3f..8fa1eac84bde 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_koi.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_koi.dmm
@@ -25,15 +25,15 @@
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/closet/wall/directional/north,
/obj/machinery/door/window,
/obj/machinery/light/small/directional/north{
@@ -625,16 +625,16 @@
/area/ship/bridge)
"X" = (
/obj/structure/table/optable,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 11;
- pixel_x = 12
+/obj/effect/turf_decal/corner/opaque/black/three_quarters{
+ dir = 8
+ },
+/obj/item/storage/case/surgery{
+ pixel_x = 5;
+ pixel_y = 6
},
/obj/item/reagent_containers/medigel/sterilizine{
pixel_x = 13
},
-/obj/effect/turf_decal/corner/opaque/black/three_quarters{
- dir = 8
- },
/turf/open/floor/plasteel/white,
/area/ship/bridge)
"Y" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_lagoon.dmm b/_maps/_mod_celadon/shuttles/independent/independent_lagoon.dmm
index 55d5f9bb0194..4d2908330c13 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_lagoon.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_lagoon.dmm
@@ -678,9 +678,6 @@
},
/turf/open/floor/wood,
/area/ship/crew/canteen)
-"dN" = (
-/turf/open/floor/plating/beach/water,
-/area/ship/hallway/central)
"dP" = (
/obj/effect/turf_decal/corner/opaque/white/border{
dir = 1
@@ -2820,7 +2817,7 @@
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
"qx" = (
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ship/hallway/central)
"qA" = (
/obj/structure/chair/comfy/orange/directional/north,
@@ -2908,7 +2905,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/turf_decal/industrial/radiation/full,
+/obj/effect/turf_decal/industrial/warning/full,
/turf/open/floor/plating,
/area/ship/external)
"rb" = (
@@ -3093,15 +3090,12 @@
/area/ship/crew)
"sm" = (
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
- },
/obj/item/reagent_containers/spray/cleaner,
/obj/item/clothing/neck/stethoscope,
/obj/structure/cable{
icon_state = "0-8"
},
+/obj/item/storage/case/surgery,
/obj/item/sensor_device,
/turf/open/floor/plasteel/white,
/area/ship/medical)
@@ -3109,7 +3103,7 @@
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
dir = 4
},
-/obj/effect/turf_decal/industrial/radiation/full,
+/obj/effect/turf_decal/industrial/warning/full,
/turf/open/floor/engine,
/area/ship/external)
"sp" = (
@@ -3211,9 +3205,6 @@
/obj/machinery/computer/slot_machine,
/turf/open/floor/carpet/black,
/area/ship/crew/office)
-"ta" = (
-/turf/open/floor/plating/beach/coastline_t,
-/area/ship/hallway/central)
"tb" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/dorm)
@@ -3830,7 +3821,7 @@
/area/ship/hallway/fore)
"wV" = (
/obj/structure/mineral_door/sandstone,
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ship/hallway/central)
"wX" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
@@ -3852,7 +3843,7 @@
dir = 8
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/ship/hallway/central)
"xc" = (
@@ -4480,11 +4471,11 @@
/obj/item/towel{
pixel_y = 15
},
-/turf/open/floor/plating/beach/coastline_t,
+/turf/open/floor/plating/ship/water/beach,
/area/ship/hallway/central)
"AI" = (
/obj/machinery/light/directional/south,
-/turf/open/floor/plating/beach/water,
+/turf/open/floor/plating/ship/water/beach,
/area/ship/hallway/central)
"AJ" = (
/obj/effect/turf_decal/corner/opaque/white/border{
@@ -4529,11 +4520,11 @@
},
/obj/item/clothing/head/plastic_flower,
/obj/item/clothing/head/plastic_flower,
-/obj/item/clothing/head/peaceflower,
-/obj/item/clothing/head/peaceflower,
-/obj/item/clothing/head/peaceflower,
-/obj/effect/spawner/lootdrop/flower,
-/obj/effect/spawner/lootdrop/flower,
+/obj/item/clothing/head/plastic_flower,
+/obj/item/clothing/head/plastic_flower,
+/obj/item/clothing/head/plastic_flower,
+/obj/effect/spawner/random/flower,
+/obj/effect/spawner/random/flower,
/obj/item/clothing/under/dress/flower,
/obj/item/grown/novaflower,
/obj/item/grown/novaflower,
@@ -5764,7 +5755,7 @@
pixel_x = 19
},
/turf/open/floor/carpet/blue{
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand/lit
},
/area/ship/hallway/central)
"Iy" = (
@@ -6242,7 +6233,7 @@
/obj/item/reagent_containers/spray/spraytan{
pixel_y = -8
},
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ship/hallway/central)
"LF" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
@@ -6376,7 +6367,7 @@
/area/ship/hallway/starboard)
"Mz" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/flower,
+/obj/effect/spawner/random/flower,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ship/crew/chapel)
@@ -7283,7 +7274,7 @@
/turf/open/floor/grass,
/area/ship/crew/canteen/kitchen)
"RR" = (
-/turf/open/floor/plating/beach/coastline_b,
+/turf/open/floor/plating/ship/water/beach,
/area/ship/hallway/central)
"RS" = (
/obj/structure/window/plasma/reinforced/spawner/west,
@@ -8490,7 +8481,7 @@
/obj/structure/flora/tree/palm{
pixel_x = 1
},
-/turf/open/floor/plating/beach/sand,
+/turf/open/floor/plating/asteroid/sand/lit,
/area/ship/hallway/central)
"ZA" = (
/obj/structure/fluff/beach_umbrella/engine,
@@ -9885,7 +9876,7 @@ cP
gf
PE
Kd
-ta
+RR
RR
AI
Pw
@@ -9926,9 +9917,9 @@ cP
Mx
Zx
qx
-ta
RR
-dN
+RR
+RR
Pw
wU
rI
@@ -9967,9 +9958,9 @@ cP
Tt
wZ
Iw
-ta
RR
-dN
+RR
+RR
Pw
yn
rI
@@ -10008,9 +9999,9 @@ cP
Gw
qx
LD
-ta
RR
-dN
+RR
+RR
Pw
wU
rI
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_mimos.dmm b/_maps/_mod_celadon/shuttles/independent/independent_mimos.dmm
index af91cbe7c1d2..c8c7d9bd40b4 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_mimos.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_mimos.dmm
@@ -278,22 +278,22 @@
/area/ship/engineering/atmospherics)
"cG" = (
/obj/structure/safe/floor,
-/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop,
+/obj/effect/spawner/random/random_ammo_protolathe_lootdrop,
/obj/item/beacon{
icon_state = "bluebeacon";
name = "Подозрительный маяк"
},
/mob/living/simple_animal/hostile/rat,
-/obj/item/ammo_box/foambox/riot,
-/obj/item/ammo_box/foambox,
-/obj/item/ammo_box/foambox,
+/obj/item/storage/box/ammo/foam_darts/riot,
+/obj/item/storage/box/ammo/foam_darts,
+/obj/item/storage/box/ammo/foam_darts,
/obj/item/gun/ballistic/automatic/toy,
/turf/open/floor/plasteel/tech/grid,
/area/ship/construction)
"cH" = (
/obj/effect/turf_decal/corner/opaque/black/mono,
/obj/effect/turf_decal/corner/opaque/white/diagonal,
-/obj/item/gun/ballistic/revolver/shadow/no_mag{
+/obj/item/gun/ballistic/revolver/shadow/empty{
pixel_x = 2;
pixel_y = 6
},
@@ -526,7 +526,7 @@
"fc" = (
/obj/machinery/light/small/directional/south,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/item/ammo_casing/shotgun/buckshot,
/obj/item/ammo_casing/shotgun/buckshot,
/turf/open/floor/plasteel/vaporwave{
@@ -638,7 +638,7 @@
/turf/open/floor/wood,
/area/ship/crew)
"gu" = (
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/seeds/banana/mime,
/obj/structure/closet/crate/bin,
/turf/open/floor/carpet/royalblack,
@@ -664,7 +664,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/item/ammo_casing/shotgun/buckshot{
pixel_x = 2;
pixel_y = 8
@@ -1014,11 +1014,11 @@
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/a12g_buckshot,
/obj/item/gun/ballistic/automatic/pistol/solgov/old,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/ammo_box/c556mmHITP/hp,
+/obj/item/storage/box/ammo/c556mm_hp,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
"mg" = (
@@ -1352,9 +1352,9 @@
/obj/machinery/camera/preset,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart/laundry,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plasteel/vaporwave{
icon_state = "floor"
},
@@ -1591,8 +1591,8 @@
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/door/window/northright{
dir = 8
},
@@ -1809,7 +1809,7 @@
dir = 9
},
/obj/machinery/airalarm/directional/east,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/obj/item/cane,
/obj/item/storage/backpack/mime,
/turf/open/floor/plasteel/vaporwave{
@@ -1845,7 +1845,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/obj/structure/statue/bananium/clown,
+/obj/item/melee/energy/sword/bananium,
/obj/structure/safe/floor,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/circuitboard/machine/circuit_imprinter/department/civ,
@@ -1853,7 +1853,7 @@
/obj/item/circuitboard/machine/ore_redemption,
/obj/item/circuitboard/computer/rdconsole,
/obj/item/circuitboard/machine/rdserver,
-/obj/item/ammo_box/c10mm/hp,
+/obj/item/storage/box/ammo/c10mm_hp,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
@@ -1903,7 +1903,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/bin,
/obj/item/tank/internals/emergency_oxygen,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel/vaporwave{
icon_state = "floor"
},
@@ -2071,7 +2071,7 @@
pixel_x = 1;
pixel_y = 1
},
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/plasteel/vaporwave{
icon_state = "floor"
@@ -2221,12 +2221,12 @@
},
/obj/item/storage/bag/tray,
/obj/item/reagent_containers/glass/beaker,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/machinery/door/window/northleft{
dir = 8;
req_access_txt = null
@@ -2411,9 +2411,9 @@
},
/obj/machinery/airalarm/directional/east,
/obj/item/bedsheet/dorms,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
/obj/item/cane,
/obj/item/storage/backpack/mime,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/vaporwave{
icon_state = "cafeteria"
},
@@ -2425,7 +2425,7 @@
id = "Ext.Windows";
name = "Ext.Windows"
},
-/obj/effect/spawner/lootdrop/tool_surgery_adv,
+/obj/effect/spawner/random/medical/surgery_tool/adv,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"BF" = (
@@ -2637,7 +2637,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/mob/living/simple_animal/hostile/cockroach,
/turf/open/floor/plating,
/area/ship/engineering/incinerator)
@@ -2692,7 +2692,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart,
-/obj/item/ammo_box/a12g/rubbershot,
+/obj/item/storage/box/ammo/a12g_rubbershot,
/obj/item/gun/ballistic/shotgun/doublebarrel,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
@@ -2783,7 +2783,7 @@
/area/ship/construction)
"ES" = (
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/wood,
/area/ship/crew)
"EU" = (
@@ -2971,7 +2971,7 @@
"Hg" = (
/obj/structure/closet/crate/bin,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/wood,
/area/ship/crew)
"Hi" = (
@@ -3169,7 +3169,7 @@
icon_state = "4-8"
},
/obj/item/extinguisher/mini,
-/obj/effect/spawner/lootdrop/tool_engie_adv,
+/obj/effect/spawner/random/engineering/tool/adv,
/turf/open/floor/plasteel/vaporwave{
icon_state = "floorscorched1"
},
@@ -4015,7 +4015,7 @@
"Vi" = (
/obj/effect/turf_decal/corner/opaque/black/mono,
/obj/effect/turf_decal/corner/opaque/white/diagonal,
-/obj/item/clothing/head/peaceflower,
+/obj/item/clothing/head/plastic_flower,
/turf/open/floor/plating,
/area/ship/crew)
"Vp" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_mudskipper.dmm b/_maps/_mod_celadon/shuttles/independent/independent_mudskipper.dmm
index 4a80df0adb1f..a48407412d92 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_mudskipper.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_mudskipper.dmm
@@ -1806,10 +1806,10 @@
/obj/structure/closet/crate{
name = "ration crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
@@ -2080,7 +2080,7 @@
dir = 1
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/structure/closet/secure_closet/freezer{
anchored = 1;
name = "fridge"
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_nemo.dmm b/_maps/_mod_celadon/shuttles/independent/independent_nemo.dmm
index 5dde87d4c7d2..a84808c50928 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_nemo.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_nemo.dmm
@@ -1038,7 +1038,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/effect/spawner/lootdrop/techstorage/tcomms,
+/obj/effect/spawner/random/techstorage/tcomms,
/obj/structure/closet/crate,
/obj/item/stock_parts/subspace/filter,
/obj/item/stock_parts/subspace/filter,
@@ -1709,8 +1709,8 @@
/obj/structure/rack,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/gun/ballistic/automatic/surplus,
-/obj/item/gun/ballistic/automatic/surplus,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
+/obj/item/gun/ballistic/automatic/pistol/ringneck,
/turf/open/floor/pod,
/area/ship/hallway/central)
"xW" = (
@@ -2241,8 +2241,8 @@
},
/obj/item/melee/knife/hunting,
/obj/item/gun/ballistic/shotgun/doublebarrel/beacon,
-/obj/item/ammo_box/a4570,
-/obj/item/ammo_box/a4570,
+/obj/item/storage/box/ammo/a4570,
+/obj/item/storage/box/ammo/a4570,
/turf/open/floor/carpet/black,
/area/ship/bridge)
"FT" = (
@@ -2792,10 +2792,7 @@
"Oc" = (
/obj/structure/table/optable,
/obj/effect/turf_decal/siding/blue,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 3
- },
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Oe" = (
@@ -2936,7 +2933,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Qj" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_qurk.dmm b/_maps/_mod_celadon/shuttles/independent/independent_qurk.dmm
index 47709c9d05cc..663c7d5feb89 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_qurk.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_qurk.dmm
@@ -1047,7 +1047,7 @@
/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"cj" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/mono/white,
/area/ship/hallway/aft)
"ck" = (
@@ -2806,7 +2806,7 @@
/obj/item/storage/backpack/messenger/para,
/obj/item/storage/belt/medical/webbing/paramedic,
/obj/item/storage/firstaid/advanced,
-/obj/item/clothing/head/helmet/marine/medic,
+/obj/item/clothing/head/helmet/gezena,
/obj/item/clothing/head/soft/paramedic,
/obj/item/clothing/suit/toggle/labcoat/paramedic,
/obj/item/clothing/mask/gas/sechailer,
@@ -3112,7 +3112,7 @@
/obj/item/storage/backpack/messenger/para,
/obj/item/storage/belt/medical/webbing/paramedic,
/obj/item/storage/firstaid/advanced,
-/obj/item/clothing/head/helmet/marine/medic,
+/obj/item/clothing/head/helmet/gezena,
/obj/item/clothing/head/soft/paramedic,
/obj/item/clothing/suit/toggle/labcoat/paramedic,
/obj/item/clothing/mask/gas/sechailer,
@@ -3838,7 +3838,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/science/robotics)
"CG" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"CO" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_radio_broadcast.dmm b/_maps/_mod_celadon/shuttles/independent/independent_radio_broadcast.dmm
index cab7f429e0ae..b221bb3cd329 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_radio_broadcast.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_radio_broadcast.dmm
@@ -23,12 +23,11 @@
/obj/item/megaphone/command,
/obj/item/binoculars,
/obj/item/gun/ballistic/automatic/pistol/commissar,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/storage/firstaid/medical,
/obj/item/clothing/suit/armor/vest/capcarapace/duster,
-/obj/item/ammo_box/magazine/co9mm/inc,
/obj/structure/window/reinforced/tinted/frosted{
dir = 8;
pixel_x = -4
@@ -36,6 +35,7 @@
/obj/item/clothing/under/syndicate,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/item/clothing/head/beret/captain,
+/obj/item/storage/box/ammo/c9mm_hp,
/turf/open/floor/carpet/nanoweave/blue,
/area/ship/bridge)
"cs" = (
@@ -460,13 +460,13 @@
pixel_y = 5
},
/obj/item/camera/detective,
-/obj/item/ammo_box/c38/dumdum,
-/obj/item/ammo_box/c38/iceblox,
/obj/structure/closet/wall/directional/south{
pixel_y = -32
},
/obj/item/clothing/suit/det_suit,
/obj/item/clothing/head/fedora/det_hat,
+/obj/item/ammo_box/c38/dumdum,
+/obj/item/ammo_box/c38/iceblox,
/turf/open/floor/carpet/nanoweave/orange,
/area/ship/crew/office)
"xF" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_ramo.dmm b/_maps/_mod_celadon/shuttles/independent/independent_ramo.dmm
index fe9a661185c8..c2dbd1ee2d56 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_ramo.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_ramo.dmm
@@ -17,12 +17,12 @@
/area/ship/medical/surgery)
"ad" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/effect/decal/cleanable/cobweb,
/obj/machinery/light_switch{
pixel_y = 21;
pixel_x = 13
},
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
"ae" = (
@@ -72,7 +72,7 @@
pixel_y = 26;
id = 51321
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/ore_silo,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
@@ -87,7 +87,7 @@
"am" = (
/obj/effect/turf_decal/siding/thinplating/light,
/obj/item/radio/intercom/directional/west,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/holopad,
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
@@ -512,7 +512,7 @@
icon_state = "vent_map_on-2";
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/cryo)
"aZ" = (
@@ -641,7 +641,7 @@
icon_state = "borderfloor_black";
dir = 10
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/holopad,
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
@@ -744,7 +744,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/cryo)
"bq" = (
@@ -1029,7 +1029,7 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"bG" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/borderfloorblack{
icon_state = "borderfloor_black";
dir = 4
@@ -1046,7 +1046,7 @@
/obj/effect/turf_decal/box/corners,
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"bI" = (
@@ -1125,9 +1125,9 @@
/obj/item/storage/cans/sixsoda,
/obj/item/storage/cans/sixsoda,
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/machinery/door/firedoor/border_only{
dir = 4
},
@@ -1498,7 +1498,7 @@
icon_state = "siding_wood_line";
dir = 9
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/holopad,
/turf/open/floor/wood/walnut,
/area/ship/crew/canteen)
@@ -1526,7 +1526,7 @@
/turf/open/floor/carpet/orange,
/area/ship/engineering)
"cz" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
@@ -1592,7 +1592,7 @@
/obj/structure/closet/crate/bin,
/obj/item/clothing/head/wizard/marisa/fake,
/obj/item/clothing/suit/wizrobe/marisa/fake,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/canteen)
@@ -1601,7 +1601,7 @@
icon_state = "pipe11-2";
dir = 10
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/holopad/emergency/command,
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -1680,7 +1680,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/external)
"cO" = (
@@ -1958,7 +1958,7 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew/canteen)
"dg" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/atmospherics/components/binary/dp_vent_pump{
icon_state = "dpvent_map-3";
@@ -1980,7 +1980,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"di" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/firealarm/directional/south{
pixel_x = 5
},
@@ -2164,7 +2164,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/external)
"du" = (
@@ -2205,7 +2205,7 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew/canteen)
"dz" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -2310,9 +2310,9 @@
/obj/effect/turf_decal/box/corners,
/obj/structure/closet/crate/trashcart,
/obj/item/clothing/head/kitty,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/armory_contraband,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/exotic/armory,
+/obj/effect/spawner/random/maintenance/eight,
/obj/effect/decal/cleanable/wrapping,
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -2468,7 +2468,7 @@
/turf/open/floor/plating,
/area/ship/external)
"dZ" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/advanced_airlock_controller{
pixel_x = -28;
pixel_y = -5
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_rigger.dmm b/_maps/_mod_celadon/shuttles/independent/independent_rigger.dmm
index 2165167e6277..b143c676c42b 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_rigger.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_rigger.dmm
@@ -70,7 +70,7 @@
"bc" = (
/obj/structure/closet/cardboard,
/obj/item/circuitboard/machine/mechfab,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/construction)
"bi" = (
@@ -228,8 +228,8 @@
/area/ship/construction)
"dx" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/plasteel/white,
@@ -264,7 +264,7 @@
"eu" = (
/obj/structure/closet/crate,
/obj/machinery/airalarm/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/circuitboard/machine/circuit_imprinter/department/science,
/turf/open/floor/plating,
/area/ship/construction)
@@ -472,7 +472,7 @@
/area/ship/cargo)
"hE" = (
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/radio/intercom/directional/north{
pixel_x = 10
},
@@ -730,7 +730,7 @@
/turf/open/floor/plating,
/area/ship/engineering/communications)
"jx" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"jy" = (
@@ -809,7 +809,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/firealarm/directional/east,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -956,12 +956,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/box/corners{
dir = 1
},
@@ -1153,7 +1153,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"oX" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/construction)
"ph" = (
@@ -2619,7 +2619,7 @@
},
/obj/structure/closet/crate,
/obj/machinery/firealarm/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Fu" = (
@@ -3397,7 +3397,7 @@
pixel_x = -32
},
/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"ON" = (
@@ -3582,7 +3582,7 @@
"Qv" = (
/obj/structure/closet/crate,
/obj/item/circuitboard/computer/rdconsole,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel,
/area/ship/construction)
"QB" = (
@@ -3614,8 +3614,8 @@
pixel_x = -28;
req_access_txt = "57"
},
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/turf/open/floor/carpet/blue,
/area/ship/engineering/communications)
"QT" = (
@@ -4146,7 +4146,7 @@
req_access_txt = "1";
dir = 1
},
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45,
@@ -4248,7 +4248,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/construction)
"XD" = (
@@ -4426,16 +4426,16 @@
/turf/closed/wall/mineral/plastitanium,
/area/ship/engineering/atmospherics)
"ZI" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
- },
-/obj/item/clothing/gloves/color/latex/nitrile,
/obj/structure/table/glass,
/obj/effect/turf_decal/borderfloor/cee,
/obj/machinery/defibrillator_mount/loaded{
pixel_y = 25
},
+/obj/item/storage/case/surgery{
+ pixel_x = -5;
+ pixel_y = 10
+ },
+/obj/item/clothing/gloves/color/latex/nitrile,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"ZW" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_rube_goldberg.dmm b/_maps/_mod_celadon/shuttles/independent/independent_rube_goldberg.dmm
index c1caf10dbf69..d0b468843797 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_rube_goldberg.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_rube_goldberg.dmm
@@ -1307,7 +1307,7 @@
/obj/item/rcd_ammo,
/obj/item/clothing/gloves/color/yellow,
/obj/item/gun/ballistic/shotgun/flamingarrow,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/item/storage/fancy/cigarettes/cigars/cohiba,
/obj/effect/turf_decal/corner/opaque/yellow/border{
dir = 6
@@ -2847,9 +2847,9 @@
/area/ship/engineering/atmospherics)
"Ck" = (
/obj/structure/closet/crate/freezer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/pizzabox/meat,
/obj/item/pizzabox/vegetable,
/obj/machinery/camera/autoname{
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_schmiedeberg.dmm b/_maps/_mod_celadon/shuttles/independent/independent_schmiedeberg.dmm
index a7666f680710..f576f6abee19 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_schmiedeberg.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_schmiedeberg.dmm
@@ -167,7 +167,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -439,7 +439,7 @@
/area/ship/cargo)
"fq" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/greenglow/filled,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
@@ -1182,8 +1182,8 @@
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/mineral/titanium,
/area/ship/cargo)
"qj" = (
@@ -1228,7 +1228,7 @@
/area/ship/medical)
"qU" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 9
@@ -2366,7 +2366,7 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
@@ -2734,14 +2734,14 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/wood/walnut,
/area/ship/cargo)
"OO" = (
@@ -3058,7 +3058,7 @@
/obj/item/flashlight/glowstick/blue,
/obj/item/flashlight/glowstick/cyan,
/obj/item/storage/pill_bottle/floorpill,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 1
@@ -3105,7 +3105,7 @@
dir = 8
},
/obj/item/storage/pill_bottle/zoom,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
@@ -3213,7 +3213,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_shepherd.dmm b/_maps/_mod_celadon/shuttles/independent/independent_shepherd.dmm
index 68bfff86c508..62d41edc0fa1 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_shepherd.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_shepherd.dmm
@@ -2504,7 +2504,7 @@
/turf/open/floor/ship/dirt/dark,
/area/ship/crew/hydroponics)
"wz" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ship/hallway/starboard)
@@ -2613,7 +2613,7 @@
/area/ship/hallway/port)
"xs" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
/obj/effect/turf_decal/corner_techfloor_grid/diagonal,
/obj/machinery/light/small/directional/west,
/turf/open/floor/pod/dark,
@@ -2660,7 +2660,7 @@
/area/ship/medical/morgue)
"yg" = (
/obj/structure/table/wood/fancy,
-/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
/obj/effect/turf_decal/siding/wood{
color = "#332521"
},
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_shetland.dmm b/_maps/_mod_celadon/shuttles/independent/independent_shetland.dmm
index 633d89ba20bf..97cf9166aed8 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_shetland.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_shetland.dmm
@@ -304,11 +304,9 @@
/turf/open/floor/plasteel/elevatorshaft,
/area/ship/security/weapons_control)
"cJ" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
- },
/obj/structure/table,
/obj/machinery/light/directional/west,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"cO" = (
@@ -533,7 +531,7 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/fore)
"eJ" = (
-/obj/machinery/vending/snack/random{
+/obj/effect/spawner/random/vending/snack{
all_items_free = 1
},
/turf/open/floor/plasteel,
@@ -3676,12 +3674,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -3708,7 +3706,7 @@
/area/ship/hallway/port)
"LK" = (
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/item/trash/can/food/beans,
/obj/item/trash/energybar,
/obj/item/trash/can,
@@ -4554,7 +4552,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/hydroponics)
"Tc" = (
-/obj/machinery/vending/cola/random{
+/obj/effect/spawner/random/vending/cola{
all_items_free = 1
},
/turf/open/floor/plasteel,
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_skipjack.dmm b/_maps/_mod_celadon/shuttles/independent/independent_skipjack.dmm
index 97a2cdcd2fdf..1f29a7d754ee 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_skipjack.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_skipjack.dmm
@@ -264,15 +264,15 @@
/turf/open/floor/plating,
/area/ship/security/armory)
"fa" = (
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/newscaster/directional/south,
/obj/structure/table/wood/reinforced,
/obj/effect/decal/cleanable/dirt,
/obj/item/melee/knife/kitchen{
pixel_x = -11
},
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"fe" = (
@@ -507,7 +507,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"kR" = (
@@ -759,7 +759,7 @@
/area/ship/maintenance/port)
"pw" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"pK" = (
@@ -948,7 +948,7 @@
/obj/machinery/airalarm/directional/west,
/obj/structure/window/reinforced/spawner/north,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/reagent_containers/food/snacks/canned/peaches{
pixel_x = 10
},
@@ -2257,7 +2257,7 @@
/area/ship/crew)
"UT" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/salvage/gold,
+/obj/effect/spawner/random/salvage/gold,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"UX" = (
@@ -2282,7 +2282,7 @@
pixel_y = 22
},
/obj/machinery/airalarm/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Vs" = (
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_tranquility.dmm b/_maps/_mod_celadon/shuttles/independent/independent_tranquility.dmm
index 3a987fe98e3b..4d78a498740b 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_tranquility.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_tranquility.dmm
@@ -1149,12 +1149,17 @@
/area/ship/hallway/starboard)
"ld" = (
/obj/structure/closet/crate/hydroponics,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
/obj/item/seeds/random,
/obj/machinery/light/directional/east,
+/obj/item/seeds/whitebeet,
+/obj/item/seeds/wheat/rice,
+/obj/item/seeds/wheat/oat,
+/obj/item/seeds/wheat,
+/obj/item/seeds/watermelon,
+/obj/item/seeds/tomato,
+/obj/item/seeds/potato,
+/obj/item/seeds/pumpkin,
+/obj/item/seeds/lemon,
/turf/open/floor/grass,
/area/ship/crew/hydroponics)
"lf" = (
@@ -4318,7 +4323,7 @@
/obj/item/clothing/head/beret,
/obj/item/clothing/under/color/jumpskirt/random,
/obj/item/clothing/under/color/random,
-/obj/item/clothing/under/dress/skirt/red,
+/obj/item/clothing/under/dress/skirt/color/red,
/obj/item/clothing/suit/longcoat,
/obj/item/clothing/suit/jacket/letterman_red,
/obj/item/clothing/head/wizard/marisa,
diff --git a/_maps/_mod_celadon/shuttles/independent/independent_vela.dmm b/_maps/_mod_celadon/shuttles/independent/independent_vela.dmm
index 2ef108551787..455f6732652e 100644
--- a/_maps/_mod_celadon/shuttles/independent/independent_vela.dmm
+++ b/_maps/_mod_celadon/shuttles/independent/independent_vela.dmm
@@ -30,9 +30,9 @@
/obj/structure/cable{
icon_state = "0-6"
},
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"al" = (
@@ -408,7 +408,6 @@
populate = 0
},
/obj/item/reagent_containers/spray/pepper,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/clothing/under/clip/minutemen,
/obj/item/clothing/head/helmet/bulletproof/x11/clip,
/obj/item/storage/belt/military/clip,
@@ -420,6 +419,7 @@
pixel_y = 32
},
/obj/item/clothing/suit/armor/vest/bulletproof,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"dc" = (
@@ -1076,7 +1076,7 @@
/area/ship/science/ai_chamber)
"gX" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
"hf" = (
@@ -3056,9 +3056,9 @@
dir = 1
},
/obj/effect/turf_decal/techfloor,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/spawner/random/aimodule_harmless,
+/obj/effect/spawner/random/aimodule_harmless,
+/obj/effect/spawner/random/aimodule_harmless,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plasteel/tech/grid,
/area/ship/science/ai_chamber)
@@ -3435,7 +3435,7 @@
/obj/item/pizzabox/pineapple,
/obj/item/pizzabox/pineapple,
/obj/item/pizzabox/pineapple,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/glass/mortar/metal,
/obj/item/pestle,
/obj/item/reagent_containers/condiment/saltshaker,
@@ -4673,7 +4673,7 @@
/area/ship/bridge)
"zC" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/central)
"zE" = (
@@ -4812,9 +4812,9 @@
dir = 1
},
/obj/effect/turf_decal/techfloor,
-/obj/effect/spawner/lootdrop/aimodule_neutral,
-/obj/effect/spawner/lootdrop/aimodule_neutral,
-/obj/effect/spawner/lootdrop/aimodule_neutral,
+/obj/effect/spawner/random/aimodule_neutral,
+/obj/effect/spawner/random/aimodule_neutral,
+/obj/effect/spawner/random/aimodule_neutral,
/turf/open/floor/plasteel/tech/grid,
/area/ship/science/ai_chamber)
"Aq" = (
@@ -7718,7 +7718,6 @@
populate = 0
},
/obj/item/reagent_containers/spray/pepper,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/clothing/under/clip/minutemen,
/obj/item/clothing/head/helmet/bulletproof/x11/clip,
/obj/item/storage/belt/military/clip,
@@ -7728,6 +7727,7 @@
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/structure/extinguisher_cabinet/directional/east,
/obj/item/clothing/suit/armor/vest/bulletproof,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"PZ" = (
@@ -9178,9 +9178,6 @@
dir = 1
},
/obj/structure/table/glass,
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_social{
- pixel_x = -6
- },
/obj/item/clothing/glasses/science{
pixel_x = 2;
pixel_y = 10
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_colossus.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_colossus.dmm
index 2638fb1f65bb..e56314ef7c9e 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_colossus.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_colossus.dmm
@@ -244,8 +244,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
@@ -720,7 +720,6 @@
/area/ship/security)
"hx" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -749,6 +748,7 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/clothing/head/warden/inteq,
/obj/item/clothing/suit/armor/vest/security/warden/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"hD" = (
@@ -844,7 +844,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"iT" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/structure/cable,
@@ -1431,8 +1431,9 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
"qJ" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 9
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 9;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -1606,16 +1607,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -2133,8 +2134,9 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"xh" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2493,7 +2495,7 @@
},
/obj/structure/closet/cardboard,
/obj/item/radio/intercom/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -2627,7 +2629,6 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -2647,9 +2648,10 @@
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/military/assault,
/obj/item/clothing/head/inteq_peaked,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"Dq" = (
@@ -3002,8 +3004,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"Hu" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -3280,8 +3283,9 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/security/armory)
"Ll" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -3479,8 +3483,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
-/obj/machinery/turretid/lethal{
- pixel_y = 22
+/obj/machinery/turretid/ship{
+ pixel_y = 22;
+ id = "colossus_turrets"
},
/obj/structure/cable{
icon_state = "4-8"
@@ -3528,8 +3533,9 @@
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Oa" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -3616,7 +3622,7 @@
/obj/structure/closet/crate/trashcart,
/obj/machinery/airalarm/directional/east,
/obj/machinery/firealarm/directional/south,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -3813,8 +3819,9 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"QZ" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 10;
+ id = "colossus_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -4262,9 +4269,6 @@
name = "equipment locker";
req_access_txt = "1"
},
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq,
@@ -4298,6 +4302,9 @@
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"WG" = (
@@ -4452,7 +4459,7 @@
/turf/open/floor/carpet/black,
/area/ship/crew)
"XS" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/machinery/airalarm/directional/south,
@@ -5345,7 +5352,7 @@ Ll
SC
SC
SC
-Oa
+It
XJ
XJ
XJ
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_executer.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_executer.dmm
index d433747208d8..ad7f2781c1a7 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_executer.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_executer.dmm
@@ -303,8 +303,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"cM" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 5;
+ id = "executer_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -461,8 +462,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"ej" = (
-/obj/machinery/porta_turret/ship/faction/inteq/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "executer_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1188,7 +1190,7 @@
pixel_x = -20;
pixel_y = -10
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"mK" = (
@@ -1249,9 +1251,9 @@
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/gun/energy/e_gun/adv_stopping,
/obj/item/stock_parts/cell/gun/upgraded,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"nB" = (
@@ -2458,6 +2460,13 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
+"DW" = (
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 6;
+ id = "executer_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"Ed" = (
/obj/effect/turf_decal/hardline_small/left{
color = "#BA9F6D";
@@ -2539,6 +2548,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"EW" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "executer_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"Fe" = (
/obj/machinery/power/terminal{
dir = 8
@@ -2870,10 +2886,7 @@
pixel_y = 17;
pixel_x = 5
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 5;
- pixel_x = -5
- },
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Kl" = (
@@ -2922,8 +2935,8 @@
/area/ship/crew/office)
"Ky" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/seven,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/maintenance/seven,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"KL" = (
@@ -3457,7 +3470,7 @@
dir = 9
},
/obj/machinery/airalarm/directional/east,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"RO" = (
@@ -3592,7 +3605,7 @@
pixel_x = -10;
pixel_y = -19
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/extinguisher_cabinet/directional/east,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/plasteel/dark,
@@ -3651,7 +3664,7 @@
/area/ship/engineering)
"TQ" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance/six,
+/obj/effect/spawner/random/maintenance/six,
/obj/structure/sign/poster/official/help_others{
pixel_x = 32
},
@@ -3788,7 +3801,7 @@
/obj/effect/turf_decal/corner/opaque/yellow/half{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Wh" = (
@@ -3911,12 +3924,12 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/corner/opaque/yellow/three_quarters,
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable{
@@ -3966,7 +3979,7 @@
/obj/structure/closet/crate,
/obj/item/stack/sheet/metal/fifty,
/obj/item/stack/sheet/glass/fifty,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/cable{
icon_state = "2-4";
@@ -4025,8 +4038,9 @@
pixel_y = 25;
req_access_txt = "8485"
},
-/obj/machinery/turretid{
- pixel_y = 34
+/obj/machinery/turretid/ship{
+ pixel_y = 34;
+ id = "executer_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -4413,7 +4427,7 @@ El
(12,1,1) = {"
El
El
-cM
+EW
YQ
uo
tw
@@ -4820,7 +4834,7 @@ Dr
AT
Dr
Dr
-ej
+Dr
El
El
El
@@ -4831,7 +4845,7 @@ El
El
El
El
-cM
+EW
CI
xP
ar
@@ -4915,7 +4929,7 @@ CV
CV
CV
CV
-ej
+DW
El
oF
El
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_hammerhead.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_hammerhead.dmm
index 260a4cf7750d..33f200b4d021 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_hammerhead.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_hammerhead.dmm
@@ -68,12 +68,11 @@
anchored = 1;
req_access_txt = "8486"
},
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/clothing/accessory/holster,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/suit/armor/hos/inteq/honorable,
/obj/item/clothing/head/beret/sec/hos/inteq/honorable,
@@ -81,6 +80,7 @@
/obj/item/storage/backpack/ert/security{
name = "Vanguard backpack"
},
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/royalblue,
/area/ship/crew)
"aq" = (
@@ -112,6 +112,13 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
+"aw" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 8;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"ax" = (
/obj/structure/railing{
dir = 4
@@ -340,7 +347,6 @@
},
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
/obj/item/clothing/shoes/magboots,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/turf/open/floor/engine{
icon_state = "plastitanium";
explosion_block = 7
@@ -451,8 +457,9 @@
"bU" = (
/obj/machinery/light/directional/north,
/obj/effect/decal/cleanable/robot_debris,
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover{
- density = null
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 6;
+ id = "hammerhead_turrets"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -717,7 +724,6 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/item/clothing/under/syndicate/inteq/artificer,
/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/structure/closet/secure_closet{
icon_state = "eng_secure";
anchored = 1;
@@ -727,6 +733,7 @@
/obj/item/clothing/glasses/meson/engine,
/obj/item/tank/internals/emergency_oxygen/double,
/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"dD" = (
@@ -780,7 +787,7 @@
/area/ship/security/prison)
"dS" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/central)
"dU" = (
@@ -940,9 +947,8 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold,
-/obj/effect/spawner/lootdrop/maintenance/eight,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/obj/structure/closet/crate/wooden{
name = "old wooden crate"
},
@@ -1094,7 +1100,10 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo/office)
"gy" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 8;
+ id = "hammerhead_turrets"
+ },
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
"gF" = (
@@ -1124,7 +1133,10 @@
/area/ship/maintenance/central)
"gG" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "hammerhead_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"gJ" = (
@@ -1153,7 +1165,6 @@
},
/obj/item/clothing/shoes/magboots,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/turf/open/floor/engine{
icon_state = "plastitanium";
explosion_block = 7
@@ -1543,8 +1554,9 @@
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"ji" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover{
- density = null
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 5;
+ id = "hammerhead_turrets"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -2314,8 +2326,9 @@
/area/ship/security/prison)
"oN" = (
/obj/effect/decal/cleanable/squid_ink,
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover{
- density = null
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 5;
+ id = "hammerhead_turrets"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -2550,13 +2563,11 @@
pixel_x = 32
},
/obj/structure/table,
-/obj/item/stamp/artificer{
- pixel_x = 9
- },
/obj/item/storage/photo_album/CE{
pixel_y = 5;
pixel_x = -5
},
+/obj/item/stamp/inteq/artificer,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/electrical)
"qN" = (
@@ -2625,7 +2636,7 @@
dir = 5
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo/office)
"rD" = (
@@ -3116,6 +3127,7 @@
pixel_x = -2;
pixel_y = -3
},
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"us" = (
@@ -3128,7 +3140,6 @@
/obj/item/clothing/under/syndicate/inteq/skirt/corpsman,
/obj/item/clothing/head/soft/inteq/corpsman,
/obj/item/toy/plush/plushvar,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/structure/closet/secure_closet{
icon_state = "med_secure";
name = "medical doctor's locker";
@@ -3312,7 +3323,10 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"vU" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 1;
+ id = "hammerhead_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"vX" = (
@@ -3469,7 +3483,7 @@
},
/obj/effect/turf_decal/box/white,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plating,
/area/ship/cargo)
"wR" = (
@@ -3700,6 +3714,13 @@
"yb" = (
/turf/closed/wall/mineral/plastitanium,
/area/ship/medical)
+"yh" = (
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 4;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"yj" = (
/obj/structure/window/plasma/reinforced/spawner/west,
/obj/structure/window/plasma/reinforced/spawner,
@@ -3756,6 +3777,13 @@
/obj/machinery/vending/cigarette,
/turf/open/floor/plasteel/dark,
/area/ship/security/prison)
+"yu" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"yv" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{
@@ -3908,9 +3936,9 @@
name = "Kitchen"
},
/obj/machinery/door/firedoor,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plastic,
/area/ship/crew/canteen/kitchen)
"zh" = (
@@ -3976,12 +4004,12 @@
/obj/item/clothing/suit/armor/vest/inteq,
/obj/item/shield/riot/tele,
/obj/item/clothing/head/helmet/swat/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/ammo_box/magazine/usp45_standart,
/obj/item/storage/backpack/ert{
name = "Enforcer backpack"
},
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/red_gold,
/area/ship/crew/crewtwo)
"zM" = (
@@ -4114,9 +4142,8 @@
/obj/item/clothing/head/helmet/inteq,
/obj/item/clothing/head/helmet/inteq,
/obj/item/clothing/head/helmet/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plating,
/area/ship/cargo)
"AA" = (
@@ -4252,7 +4279,7 @@
/obj/structure/closet/crate/large,
/obj/effect/turf_decal/industrial/traffic,
/obj/effect/turf_decal/box/white,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plating,
/area/ship/cargo)
"AT" = (
@@ -4488,7 +4515,7 @@
/turf/open/floor/plating,
/area/ship/cargo)
"Cd" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/disposalpipe/segment{
dir = 2
},
@@ -4501,14 +4528,13 @@
/obj/effect/turf_decal/techfloor/orange,
/obj/item/clothing/glasses/meson/sunglasses,
/obj/item/clothing/head/hardhat/weldhat/white,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/storage/belt/utility/chief/full,
/obj/item/storage/box/stockparts/t2,
/obj/item/clothing/under/syndicate/inteq/honorable{
name = "good looking turtleneck";
desc = "a midnight black turtleneck."
},
-/obj/item/storage/box/inteqmaid,
+/obj/item/storage/box/maid,
/obj/item/storage/belt/security/webbing/inteq/alt,
/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
/obj/item/clothing/head/beret/sec/hos/inteq/honorable{
@@ -4745,7 +4771,7 @@
/obj/structure/closet/crate/engineering,
/obj/item/storage/cans/sixbeer,
/obj/item/storage/cans/sixbeer,
-/obj/item/storage/box/inteqmaid,
+/obj/item/storage/box/maid,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/ship/engineering/engine)
@@ -4797,6 +4823,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
+"DW" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"DY" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/autolathe/hacked,
@@ -4850,7 +4883,7 @@
dir = 4
},
/obj/effect/turf_decal/box/white,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plating,
/area/ship/cargo)
"Em" = (
@@ -4938,15 +4971,15 @@
/area/ship/engineering/electrical)
"EY" = (
/obj/effect/turf_decal/box/white,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/structure/closet/crate/large,
/turf/open/floor/plating,
/area/ship/cargo)
@@ -5415,6 +5448,7 @@
pixel_x = -2;
pixel_y = -3
},
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"He" = (
@@ -5605,6 +5639,13 @@
/obj/machinery/iv_drip,
/turf/open/floor/plating,
/area/ship/cargo)
+"Im" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 1;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"Iq" = (
/obj/structure/window/plasma/reinforced/spawner,
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input,
@@ -5959,8 +6000,9 @@
/obj/effect/turf_decal/corner/opaque/yellow/border{
dir = 8
},
-/obj/machinery/turretid{
- pixel_x = -32
+/obj/machinery/turretid/ship{
+ pixel_x = -32;
+ id = "hammerhead_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -6021,6 +6063,13 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"Lj" = (
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 4;
+ id = "hammerhead_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"Ln" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/atmospherics/components/trinary/mixer{
@@ -6170,6 +6219,7 @@
},
/obj/item/clothing/shoes/magboots/advance,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/electrical)
"Mt" = (
@@ -6595,7 +6645,9 @@
/turf/open/floor/mineral/titanium/white,
/area/ship/medical)
"PB" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ id = "hammerhead_turrets"
+ },
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
"PC" = (
@@ -6726,7 +6778,6 @@
},
/obj/item/clothing/shoes/magboots,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/turf/open/floor/engine{
icon_state = "plastitanium";
explosion_block = 7
@@ -6872,6 +6923,8 @@
/obj/item/clothing/head/inteq_peaked,
/obj/item/clothing/suit/armor/vest/inteq,
/obj/item/clothing/suit/armor/vest/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security/prison)
"Rx" = (
@@ -6990,8 +7043,9 @@
/area/ship/cargo/office)
"SU" = (
/obj/machinery/light/directional/north,
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover{
- density = null
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 6;
+ id = "hammerhead_turrets"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
@@ -7194,7 +7248,7 @@
},
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plating,
/area/ship/cargo)
"Un" = (
@@ -7500,7 +7554,6 @@
req_access_txt = "8485"
},
/obj/item/clothing/shoes/magboots,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/turf/open/floor/engine{
icon_state = "plastitanium";
explosion_block = 7
@@ -7585,7 +7638,6 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/item/clothing/under/syndicate/inteq/artificer,
/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/structure/closet/secure_closet{
icon_state = "atmos";
anchored = 1;
@@ -7596,6 +7648,7 @@
/obj/item/tank/internals/emergency_oxygen/double,
/obj/item/holosign_creator/atmos,
/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"WZ" = (
@@ -7657,6 +7710,12 @@
/obj/item/bedsheet/random,
/turf/open/floor/plasteel/tech,
/area/ship/security/prison)
+"Xy" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 1
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"XD" = (
/obj/effect/turf_decal/corner/opaque/brown/border{
dir = 1
@@ -7891,7 +7950,7 @@
"Yv" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/dresser,
-/obj/item/ammo_box/foambox{
+/obj/item/storage/box/ammo/foam_darts{
pixel_y = 11;
layer = 6
},
@@ -8114,11 +8173,11 @@ Vx
Vx
fn
fn
-PB
+aw
Gf
fO
mW
-PB
+aw
Vx
Vx
Vx
@@ -8130,11 +8189,11 @@ Vx
Vx
Vx
Vx
-PB
+aw
Jy
wW
Ok
-PB
+aw
fn
fn
Vx
@@ -8148,7 +8207,7 @@ Vx
Vx
Vx
fn
-PB
+Xy
fO
WZ
qD
@@ -8358,7 +8417,7 @@ Vx
Vx
Vx
fn
-PB
+Im
fO
tH
tH
@@ -8640,7 +8699,7 @@ Vx
Vx
Vx
fn
-PB
+Im
eL
Bm
GD
@@ -9131,7 +9190,7 @@ Vx
Vx
Vx
fn
-PB
+Im
yb
fP
fP
@@ -9466,7 +9525,7 @@ dp
Sy
mR
dp
-PB
+aw
Gf
mW
PB
@@ -9544,7 +9603,7 @@ Vx
"}
(43,1,1) = {"
Vx
-PB
+Im
CM
tH
tH
@@ -9895,7 +9954,7 @@ Vx
(53,1,1) = {"
Vx
Vx
-vU
+DW
pD
IR
xA
@@ -9923,7 +9982,7 @@ Ig
kw
Dg
Tb
-PB
+yu
Vx
Vx
"}
@@ -9974,7 +10033,7 @@ gG
tI
lN
lN
-vU
+yh
nS
VP
VP
@@ -9984,11 +10043,11 @@ VP
VP
VP
nS
-PB
+Lj
Tc
Tc
Tb
-PB
+yu
Vx
Vx
Vx
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_hound.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_hound.dmm
index e0830ed9bf98..2d32410556f1 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_hound.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_hound.dmm
@@ -27,8 +27,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/machinery/light/directional/south,
@@ -956,7 +956,6 @@
req_access_txt = "58"
},
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -969,9 +968,10 @@
/obj/item/radio/headset/inteq/alt/captain,
/obj/item/shield/riot/tele,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"ve" = (
@@ -2044,11 +2044,11 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/turf/open/floor/plasteel/patterned/cargo_one,
@@ -2085,7 +2085,7 @@
/obj/item/storage/fancy/cigarettes/cigars{
pixel_x = 8
},
-/obj/item/ammo_box/a762_40/inteq{
+/obj/item/storage/box/ammo/a762_40/inteq{
pixel_x = 5;
pixel_y = 12
},
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_iron_maiden.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_iron_maiden.dmm
index b096ef9fd04c..d940ab30f23b 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_iron_maiden.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_iron_maiden.dmm
@@ -86,6 +86,20 @@
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/turf/open/floor/plating,
/area/ship/bridge)
+"eQ" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 1;
+ id = "iron2_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"fF" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 9;
+ id = "iron2_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"fO" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -239,9 +253,10 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"kT" = (
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
dir = 8;
- pixel_x = -32
+ pixel_x = -32;
+ id = "iron2_turrets"
},
/obj/machinery/holopad,
/obj/structure/cable{
@@ -429,6 +444,12 @@
},
/turf/open/floor/plasteel/mono/white,
/area/ship/crew/cryo)
+"rL" = (
+/obj/machinery/porta_turret/ship/inteq{
+ id = "iron2_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"te" = (
/obj/machinery/door/firedoor/border_only{
dir = 4
@@ -576,13 +597,13 @@
/obj/structure/closet/crate/secure/weapon{
req_access_txt = "3"
},
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/a556_box,
/obj/item/ammo_box/a556_box,
/obj/item/ammo_box/a556_box/a856,
/obj/item/ammo_box/a556_box/m903,
-/obj/item/ammo_box/c10mm,
-/obj/item/ammo_box/c10mm,
-/obj/item/ammo_box/c10mm,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"xk" = (
@@ -701,7 +722,10 @@
"yX" = (
/obj/structure/catwalk,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "iron2_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"zc" = (
@@ -853,6 +877,15 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/cryo)
+"He" = (
+/obj/structure/catwalk,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "iron2_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"Is" = (
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
@@ -884,14 +917,14 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"JU" = (
@@ -989,9 +1022,6 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"LV" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover{
- density = 0
- },
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/bridge)
@@ -1071,7 +1101,10 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"MP" = (
-/obj/machinery/porta_turret/ship/faction/inteq/laser/cover,
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 10;
+ id = "iron2_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"MV" = (
@@ -1246,9 +1279,9 @@
req_access_txt = "20"
},
/obj/item/melee/knife/combat,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/melee/baton/loaded,
/obj/item/storage/belt/military/assault,
/obj/structure/sign/poster/contraband/inteq{
@@ -1352,7 +1385,6 @@
pixel_x = -6;
pixel_y = -3
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/stack/medical/splint{
pixel_x = 6
},
@@ -1373,6 +1405,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"UR" = (
@@ -1625,14 +1658,14 @@
/obj/structure/closet/crate/secure/weapon{
req_access_txt = "3"
},
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c45,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c45,
+/obj/item/storage/box/ammo/c45,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"ZZ" = (
@@ -1675,7 +1708,7 @@ Le
Kq
"}
(2,1,1) = {"
-MP
+fF
VA
hb
WJ
@@ -1818,7 +1851,7 @@ gD
JU
"}
(13,1,1) = {"
-MP
+eQ
yM
oZ
Gh
@@ -1828,7 +1861,7 @@ gL
Sv
gd
uZ
-MP
+rL
"}
(14,1,1) = {"
CO
@@ -1875,10 +1908,10 @@ CO
QG
dB
CO
-MP
+CO
CO
bX
bX
bX
-yX
+He
"}
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_talos.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_talos.dmm
index 38d9af33bd70..2ffeb33ce0fa 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_talos.dmm
@@ -33,7 +33,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"au" = (
@@ -139,7 +139,6 @@
},
/obj/structure/extinguisher_cabinet/directional/east,
/obj/item/storage/box/handcuffs,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/storage/belt/security/webbing/inteq/alt,
/obj/item/storage/belt/security/webbing/inteq,
@@ -165,6 +164,7 @@
/obj/item/clothing/head/beret/sec/inteq,
/obj/item/radio/headset/inteq/alt,
/obj/item/melee/baton/loaded,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"aT" = (
@@ -423,7 +423,7 @@
/area/ship/crew/canteen)
"cr" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"cx" = (
@@ -560,7 +560,6 @@
},
/obj/effect/turf_decal/siding/thinplating/dark,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/box/handcuffs,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -587,6 +586,7 @@
/obj/item/radio/headset/inteq/alt,
/obj/machinery/light/directional/south,
/obj/item/melee/baton/loaded,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"dw" = (
@@ -853,7 +853,6 @@
/obj/item/storage/box/handcuffs,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/storage/belt/security/webbing/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 8
},
@@ -869,9 +868,10 @@
},
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/storage/belt/security/webbing/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/melee/baton/loaded,
/obj/item/melee/baton/loaded,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"eJ" = (
@@ -903,7 +903,7 @@
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/plasma,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/cargo/port)
"eO" = (
@@ -1057,11 +1057,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/ship/crew/crewtwo)
-"fO" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/clothing/gloves/combat/maid/inteq,
-/turf/open/floor/plating/airless,
-/area/ship/cargo/starboard)
"fR" = (
/obj/structure/closet/secure_closet/freezer/meat,
/turf/open/floor/plasteel/tech,
@@ -1070,9 +1065,10 @@
/obj/structure/chair/comfy/shuttle{
dir = 4
},
-/obj/machinery/turretid/lethal{
+/obj/machinery/turretid/ship{
pixel_y = -27;
- pixel_x = -27
+ pixel_x = -27;
+ id = "talos_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -1145,7 +1141,7 @@
"gj" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/port)
"gm" = (
@@ -1842,7 +1838,7 @@
/area/ship/security)
"kK" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
@@ -1994,7 +1990,6 @@
req_access_txt = "1"
},
/obj/item/storage/box/handcuffs,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/storage/belt/security/webbing/inteq/alt,
/obj/item/storage/belt/security/webbing/inteq,
@@ -2013,6 +2008,7 @@
/obj/item/clothing/head/beret/sec/inteq,
/obj/item/radio/headset/inteq/alt,
/obj/item/melee/baton/loaded,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"lG" = (
@@ -2041,7 +2037,7 @@
/area/ship/engineering)
"lL" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"lN" = (
@@ -2119,7 +2115,7 @@
/area/ship/storage)
"mu" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"mv" = (
@@ -2344,7 +2340,7 @@
/area/ship/engineering/engine)
"nC" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/cargo/port)
"nF" = (
@@ -2671,7 +2667,7 @@
/area/ship/hallway/central)
"ph" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/structure/cable{
icon_state = "1-6"
},
@@ -3000,7 +2996,7 @@
/area/ship/cargo)
"rc" = (
/obj/machinery/light/small/directional/east,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"rh" = (
@@ -3613,7 +3609,7 @@
/area/ship/security)
"vm" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/port)
"vv" = (
@@ -3824,7 +3820,7 @@
/obj/effect/turf_decal/corner/opaque/brown{
dir = 8
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"wl" = (
@@ -3873,6 +3869,7 @@
/obj/item/clothing/head/helmet/inteq,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/suit/armor/vest/alt,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"wt" = (
@@ -3927,7 +3924,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"wO" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/crewtwo)
@@ -4032,7 +4029,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"xx" = (
@@ -4253,6 +4250,7 @@
req_access_txt = "11"
},
/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"yi" = (
@@ -4407,7 +4405,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/cigbutt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"zc" = (
@@ -4595,9 +4593,9 @@
"Aq" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/machinery/light_switch{
dir = 4;
pixel_x = -22;
@@ -5073,6 +5071,7 @@
pixel_y = 11
},
/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"CC" = (
@@ -5200,7 +5199,6 @@
/obj/item/clothing/head/hardhat/white,
/obj/item/clothing/head/beret/sec/inteq,
/obj/item/clothing/shoes/combat,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/combat,
/obj/item/megaphone/cargo{
name = "engineering megaphone"
@@ -5216,6 +5214,7 @@
},
/obj/item/radio/headset/inteq,
/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/engineering/communications)
"DK" = (
@@ -5236,7 +5235,7 @@
/area/ship/engineering)
"DS" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/machinery/light_switch{
dir = 4;
pixel_x = -22;
@@ -5304,8 +5303,9 @@
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Ek" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 5
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 5;
+ id = "talos_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -5339,8 +5339,9 @@
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
"Ez" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 9
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 9;
+ id = "talos_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -5568,7 +5569,7 @@
/area/ship/crew/crewtwo)
"Gm" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Gn" = (
@@ -5788,8 +5789,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/item/clothing/head/maidheadband/inteq,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"HF" = (
@@ -6003,7 +6003,6 @@
/area/ship/engineering/engine)
"Jh" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -6025,6 +6024,7 @@
/obj/item/clothing/suit/armor/vest/security/warden/inteq,
/obj/item/radio/headset/inteq,
/obj/effect/turf_decal/siding/brown,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/red,
/area/ship/crew/crewthree)
"Ji" = (
@@ -6100,8 +6100,9 @@
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"JL" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 6;
+ id = "talos_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -6461,7 +6462,7 @@
"Lx" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"LA" = (
@@ -6552,7 +6553,6 @@
/area/ship/medical)
"Me" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -6587,9 +6587,10 @@
/obj/item/storage/lockbox/medal/sec{
pixel_y = 5
},
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Mo" = (
@@ -6650,7 +6651,7 @@
icon_state = "1-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/item/instrument/harmonica{
pixel_x = -4;
pixel_y = 21
@@ -7018,7 +7019,7 @@
/area/ship/external/dark)
"OP" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/machinery/light_switch{
pixel_y = 22
},
@@ -7069,7 +7070,7 @@
/area/ship/engineering/engine)
"Ph" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Pj" = (
@@ -7107,7 +7108,7 @@
/area/ship/cargo)
"PB" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/port)
"PF" = (
@@ -7117,11 +7118,11 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -7450,7 +7451,7 @@
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Rw" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/cardboard,
/obj/effect/turf_decal/techfloor{
dir = 1
@@ -7682,7 +7683,7 @@
icon_state = "1-8"
},
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"Sw" = (
@@ -7971,7 +7972,7 @@
"TE" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"TI" = (
@@ -8147,7 +8148,7 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Vh" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"Vi" = (
@@ -8215,7 +8216,7 @@
/obj/structure/sign/poster/contraband/eat{
pixel_y = 32
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"VB" = (
@@ -8280,7 +8281,7 @@
/area/ship/hallway/central)
"VS" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"VX" = (
@@ -8404,6 +8405,7 @@
req_access_txt = "11"
},
/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"Wu" = (
@@ -8647,7 +8649,6 @@
/area/ship/medical)
"XE" = (
/obj/machinery/light/small/directional/west,
-/obj/item/clothing/under/syndicate/inteq/skirt/maid,
/turf/open/floor/plating/airless,
/area/ship/cargo/starboard)
"XJ" = (
@@ -8733,7 +8734,7 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Yd" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Yg" = (
@@ -8989,8 +8990,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"ZH" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 10
+/obj/machinery/porta_turret/ship/inteq/light{
+ dir = 10;
+ id = "talos_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -9012,7 +9014,7 @@
"ZU" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating/airless,
/area/ship/cargo/port)
"ZZ" = (
@@ -10536,7 +10538,7 @@ tk
tk
tk
aN
-fO
+uV
Vh
FQ
Tp
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_valor.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_valor.dmm
index a551f25ebab4..122991b17a5b 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_valor.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_valor.dmm
@@ -111,7 +111,7 @@
},
/obj/effect/turf_decal/box/corners,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bv" = (
@@ -557,15 +557,12 @@
/area/ship/medical)
"eU" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -2;
- pixel_y = 7
- },
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/item/storage/case/surgery,
/obj/item/reagent_containers/medigel/sterilizine{
pixel_x = 8;
pixel_y = 3
},
-/obj/effect/turf_decal/borderfloorwhite,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"eV" = (
@@ -596,9 +593,9 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/ration/crayons,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
@@ -1467,7 +1464,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 5
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
@@ -2651,8 +2648,8 @@
dir = 1
},
/obj/item/reagent_containers/food/snacks/hotdog,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/machinery/newscaster/directional/south,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
@@ -2960,16 +2957,13 @@
/area/ship/maintenance/starboard)
"AE" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -2;
- pixel_y = 7
- },
+/obj/machinery/airalarm/directional/east,
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/item/storage/case/surgery,
/obj/item/reagent_containers/medigel/sterilizine{
pixel_x = 8;
pixel_y = 3
},
-/obj/machinery/airalarm/directional/east,
-/obj/effect/turf_decal/borderfloorwhite,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"AG" = (
@@ -3896,7 +3890,7 @@
dir = 1
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"JT" = (
@@ -4337,7 +4331,6 @@
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"Oc" = (
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/backpack/messenger/inteq,
@@ -4355,9 +4348,10 @@
/obj/item/storage/lockbox/medal/sec,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/head/inteq_peaked,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"Od" = (
@@ -4571,7 +4565,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Qn" = (
@@ -4980,11 +4974,11 @@
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/structure/rack,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/ammo_box/c9mm/rubbershot{
+/obj/item/storage/box/ammo/c9mm_rubber{
pixel_x = 5;
pixel_y = 10
},
-/obj/item/ammo_box/c9mm{
+/obj/item/storage/box/ammo/c9mm{
pixel_x = -2;
pixel_y = 2
},
@@ -5284,7 +5278,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 4
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/patterned/grid,
diff --git a/_maps/_mod_celadon/shuttles/inteq/inteq_vaquero.dmm b/_maps/_mod_celadon/shuttles/inteq/inteq_vaquero.dmm
index 2dd69b1c7c08..9b6e49d7c4b4 100644
--- a/_maps/_mod_celadon/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/_mod_celadon/shuttles/inteq/inteq_vaquero.dmm
@@ -916,7 +916,6 @@
req_access_txt = "20"
},
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -937,9 +936,10 @@
dir = 1
},
/obj/item/clothing/head/inteq_peaked,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"mE" = (
@@ -1289,15 +1289,16 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew/toilet)
"vd" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 5
- },
/obj/docking_port/mobile{
dir = 2;
launch_status = 0;
port_direction = 8;
preferred_direction = 4
},
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 5;
+ id = "vaquero_turrets"
+ },
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
"vg" = (
@@ -1436,8 +1437,9 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/cargo)
"xX" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "vaquero_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -1517,16 +1519,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -1594,8 +1596,9 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"zP" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 6
+/obj/machinery/porta_turret/ship/inteq/heavy{
+ dir = 6;
+ id = "vaquero_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1950,7 +1953,6 @@
/area/ship/maintenance/starboard)
"DP" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -1983,6 +1985,7 @@
/obj/machinery/light/small/directional/south,
/obj/item/clothing/head/warden/inteq,
/obj/item/clothing/suit/armor/vest/security/warden/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"Eh" = (
@@ -2203,7 +2206,6 @@
/obj/item/clothing/head/helmet/swat/inteq,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq/alt,
/obj/item/melee/baton/loaded,
@@ -2216,6 +2218,7 @@
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
+/obj/item/clothing/mask/balaclava/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
"HN" = (
@@ -2285,8 +2288,9 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid{
- pixel_y = 25
+/obj/machinery/turretid/ship{
+ pixel_y = 25;
+ id = "vaquero_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -2724,7 +2728,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/machinery/light_switch{
dir = 4;
pixel_x = -20;
@@ -2738,6 +2741,7 @@
dir = 6
},
/obj/structure/bed,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"Qy" = (
@@ -2883,8 +2887,9 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Td" = (
-/obj/machinery/porta_turret/ship/faction/inteq{
- dir = 5
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "vaquero_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -3145,7 +3150,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"XG" = (
@@ -3165,8 +3170,8 @@
name = "fridge"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/carneburrito,
/obj/effect/turf_decal/corner/opaque/yellow{
diff --git a/_maps/_mod_celadon/shuttles/misc/independent_bulk.dmm b/_maps/_mod_celadon/shuttles/misc/independent_bulk.dmm
index 7ec780f7855d..11562c32c792 100644
--- a/_maps/_mod_celadon/shuttles/misc/independent_bulk.dmm
+++ b/_maps/_mod_celadon/shuttles/misc/independent_bulk.dmm
@@ -455,7 +455,7 @@
icon_state = "1-4"
},
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ship/maintenance/central)
"ju" = (
@@ -676,7 +676,7 @@
icon_state = "0-10"
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"nI" = (
@@ -1283,7 +1283,7 @@
icon_state = "1-2"
},
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ship/maintenance/central)
"AV" = (
@@ -1760,10 +1760,10 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/light_switch{
pixel_x = -12;
pixel_y = 23
@@ -1848,7 +1848,7 @@
/obj/effect/decal/cleanable/greenglow{
color = "#808080"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/door/firedoor/border_only,
/obj/effect/turf_decal/industrial/fire/corner,
/obj/structure/closet/cardboard,
@@ -2064,10 +2064,10 @@
icon_state = "0-2"
},
/obj/machinery/light/directional/east,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Pm" = (
@@ -2297,13 +2297,13 @@
title = "Атлас галактики";
author = "Мама кошка"
},
-/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/spawner/random/stockparts,
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"Uu" = (
/obj/effect/turf_decal/box,
/obj/effect/decal/cleanable/sprayweb,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
@@ -2478,7 +2478,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/random/entertainment/gambling,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_chariot.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_chariot.dmm
index 06cde8c9ba3b..a0842b5efc6a 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_chariot.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_chariot.dmm
@@ -1,14 +1,8 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"ae" = (
/obj/structure/table,
-/obj/item/multitool{
- pixel_y = 8
- },
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/glasses/welding{
- pixel_y = -1
- },
/obj/machinery/light/floor,
+/obj/machinery/defibrillator_mount/loaded,
/turf/open/floor/carpet/nanoweave/purple,
/area/ship/science)
"am" = (
@@ -63,7 +57,7 @@
pixel_x = -8;
pixel_y = 1;
id = "Lockdown";
- name = "Lockdown shuttle";
+ name = "shuttle window shutters";
dir = 8
},
/obj/machinery/light_switch{
@@ -99,13 +93,11 @@
"aL" = (
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/floor,
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"aM" = (
/obj/machinery/firealarm/directional/east,
+/obj/structure/closet/crate/internals,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"aP" = (
@@ -114,8 +106,11 @@
icon_state = "0-8"
},
/obj/structure/chair,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"aQ" = (
/obj/effect/decal/cleanable/blood,
/obj/machinery/light/small/directional/west,
@@ -147,11 +142,6 @@
/obj/machinery/computer/helm/viewscreen/directional/east,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
-"aZ" = (
-/obj/structure/closet/crate/engineering,
-/obj/item/stack/sheet/mineral/uranium/ten,
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
"bc" = (
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -262,6 +252,7 @@
icon_state = "2-8"
},
/obj/effect/decal/cleanable/oil,
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"bM" = (
@@ -322,7 +313,7 @@
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 1
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"cg" = (
@@ -446,7 +437,6 @@
pixel_y = 41
},
/obj/machinery/airalarm/directional/north,
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"cW" = (
@@ -456,7 +446,7 @@
dir = 2
},
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"cZ" = (
/obj/structure/rack,
/obj/item/storage/bag/ore{
@@ -483,11 +473,11 @@
/turf/open/floor/plating/ship,
/area/ship/science/ai_chamber)
"de" = (
-/obj/structure/cable/yellow{
+/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"df" = (
/obj/machinery/conveyor/inverted{
dir = 5;
@@ -529,6 +519,9 @@
/obj/machinery/power/port_gen/pacman/super{
anchored = 1
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"do" = (
@@ -549,7 +542,7 @@
dir = 1
},
/turf/open/floor/plasteel/stairs/stairs_pack/right,
-/area/ship/security/dock)
+/area/ship/hangar)
"dv" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/science/ai_chamber)
@@ -570,14 +563,6 @@
pixel_x = -11;
pixel_y = 3
},
-/obj/item/clothing/suit/hooded/explorer{
- pixel_x = 0;
- pixel_y = -2
- },
-/obj/item/borg/sight/meson{
- pixel_x = 2;
- pixel_y = 6
- },
/obj/item/pickaxe/drill{
pixel_x = -4;
pixel_y = -8
@@ -591,6 +576,7 @@
pixel_y = 0
},
/obj/machinery/firealarm/directional/east,
+/obj/item/clothing/glasses/meson,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"dF" = (
@@ -651,8 +637,11 @@
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"eg" = (
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 10
@@ -688,10 +677,11 @@
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"eM" = (
-/obj/item/chair/stool/bar,
-/obj/effect/decal/cleanable/vomit,
-/turf/open/floor/carpet/green,
-/area/ship/crew)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/stasis,
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
"eX" = (
/obj/effect/turf_decal/corner/opaque/ntblue{
dir = 5
@@ -707,7 +697,7 @@
dir = 1
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"fn" = (
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
@@ -771,25 +761,28 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"fF" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 1;
- color = "#212d60"
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/industrial/stand_clear,
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
"fG" = (
/turf/open/floor/plasteel/freezer,
/area/ship/crew/dorm)
"fN" = (
/obj/machinery/light/directional/east,
-/obj/structure/closet/secure_closet/atmospherics{
- anchored = 1
+/obj/structure/closet/crate/engineering{
+ name = "fuel crate"
},
+/obj/item/stack/sheet/mineral/plasma/fifty,
+/obj/item/stack/sheet/mineral/uranium/twenty,
+/obj/item/stack/sheet/mineral/uranium/ten,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"fT" = (
@@ -845,7 +838,7 @@
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"gA" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/item/radio/intercom/directional/west,
/turf/open/floor/concrete,
/area/ship/security/prison)
@@ -869,7 +862,7 @@
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"gV" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/concrete,
/area/ship/security/prison)
"hc" = (
@@ -896,11 +889,11 @@
/area/ship/crew)
"hr" = (
/turf/closed/wall/mineral/titanium,
-/area/ship/security/dock)
+/area/ship/hangar)
"hD" = (
/obj/structure/curtain/cloth/blacknormal,
/obj/structure/bed,
-/obj/item/bedsheet/nanotrasen,
+/obj/item/bedsheet/orange,
/turf/open/floor/concrete,
/area/ship/security/prison)
"hE" = (
@@ -957,7 +950,7 @@
"hL" = (
/obj/machinery/door/airlock/external,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"hN" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
@@ -965,12 +958,9 @@
/turf/open/floor/carpet/nanoweave/purple,
/area/ship/science)
"hT" = (
-/obj/effect/turf_decal/corner/opaque/ntblue/border{
- dir = 8
- },
-/obj/effect/spawner/lootdrop/waste/trash,
-/turf/open/floor/hangar/plasteel,
-/area/ship/hallway/central)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/dorm)
"ik" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -1036,17 +1026,13 @@
/turf/open/floor/plating,
/area/ship/science)
"iM" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/general/command_crew/rd)
"iT" = (
-/obj/effect/decal/cleanable/food/flour,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/ship/crew)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/security/armory)
"iX" = (
/obj/structure/marker_beacon,
/obj/effect/turf_decal/industrial/warning/corner{
@@ -1068,7 +1054,7 @@
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 8
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"ji" = (
@@ -1086,7 +1072,7 @@
dir = 6
},
/obj/effect/decal/cleanable/oil,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"jL" = (
@@ -1132,7 +1118,7 @@
dir = 4
},
/obj/machinery/computer/helm/viewscreen/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"ki" = (
@@ -1249,16 +1235,6 @@
},
/turf/open/floor/wood,
/area/ship/crew)
-"kZ" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 4;
- color = "#212d60"
- },
-/obj/effect/turf_decal/industrial/stand_clear{
- dir = 8
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
"lh" = (
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
@@ -1377,12 +1353,12 @@
},
/obj/structure/bed,
/obj/structure/curtain/cloth/blacknormal,
-/obj/item/bedsheet/nanotrasen,
/obj/machinery/flasher{
id = "minuteman_cell1";
pixel_y = -1;
pixel_x = 23
},
+/obj/item/bedsheet/orange,
/turf/open/floor/concrete,
/area/ship/security/prison)
"mm" = (
@@ -1390,7 +1366,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/concrete,
/area/ship/security/prison)
"mv" = (
@@ -1436,7 +1412,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"mG" = (
@@ -1452,6 +1427,9 @@
/obj/machinery/power/port_gen/pacman{
anchored = 1
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"mP" = (
@@ -1511,7 +1489,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"ng" = (
@@ -1519,11 +1496,11 @@
dir = 8
},
/obj/structure/curtain/cloth/blacknormal,
-/obj/item/bedsheet/nanotrasen,
/obj/machinery/light/small/directional/north{
pixel_x = 3;
pixel_y = 23
},
+/obj/item/bedsheet/orange,
/turf/open/floor/concrete,
/area/ship/security/prison)
"ni" = (
@@ -1574,7 +1551,7 @@
/area/ship/science)
"nV" = (
/obj/structure/closet/wall/red{
- name = "Clothes locker";
+ name = "clothes locker";
pixel_y = 28;
pixel_x = 1;
dir = 1
@@ -1582,21 +1559,8 @@
/obj/item/clothing/gloves/combat,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/gloves/combat,
-/obj/item/clothing/mask/gas/sechailer/swat,
-/obj/item/clothing/mask/gas/sechailer/swat,
-/obj/item/clothing/mask/gas/sechailer/swat,
-/obj/item/taperecorder{
- pixel_y = 4;
- pixel_x = 7
- },
-/obj/item/taperecorder{
- pixel_y = 4;
- pixel_x = 7
- },
/obj/item/clothing/under/plasmaman/security,
/obj/item/clothing/under/plasmaman/security/skirt,
-/obj/item/clothing/under/plasmaman/security/skirt,
-/obj/item/clothing/under/plasmaman/security/skirt,
/obj/effect/turf_decal/box/red,
/obj/effect/turf_decal/siding/red{
dir = 1;
@@ -1605,9 +1569,6 @@
/obj/item/clothing/head/nanotrasen/beret/security,
/obj/item/clothing/head/nanotrasen/beret/security,
/obj/item/clothing/head/nanotrasen/beret/security,
-/obj/item/clothing/under/rank/security/officer/military,
-/obj/item/clothing/under/rank/security/officer/military,
-/obj/item/clothing/under/rank/security/officer/military,
/obj/item/clothing/shoes/combat,
/obj/item/clothing/shoes/combat,
/obj/item/clothing/shoes/combat,
@@ -1616,19 +1577,21 @@
pixel_x = -38;
pixel_y = 22
},
+/obj/item/storage/backpack/ert/security,
+/obj/item/storage/backpack/ert/security,
+/obj/item/storage/backpack/ert/security,
+/obj/item/clothing/suit/armor/vest/security/officer,
+/obj/item/clothing/suit/armor/vest/security/officer,
+/obj/item/clothing/suit/armor/vest/security/officer,
+/obj/item/clothing/under/rank/security/head_of_security/nt/lp,
+/obj/item/clothing/under/rank/security/head_of_security/nt/lp,
+/obj/item/clothing/under/rank/security/head_of_security/nt/lp,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
-"nY" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
"og" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/lootdrop/waste/trash,
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/security/prison)
"oi" = (
/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{
dir = 8
@@ -1687,6 +1650,13 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"oO" = (
@@ -1698,15 +1668,11 @@
/turf/open/floor/concrete,
/area/ship/security/prison)
"oY" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 10;
- color = "#212d60"
- },
/obj/effect/landmark/subship{
subship_template = /datum/map_template/shuttle/subshuttles/nanotrasen_rider
},
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"pb" = (
/obj/structure/sign/departments/engineering,
/turf/closed/wall/mineral/titanium/nodiagonal,
@@ -1732,7 +1698,7 @@
/area/ship/science)
"pi" = (
/obj/effect/turf_decal/box,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"pk" = (
@@ -1813,19 +1779,20 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/security/prison)
"pM" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/waste/trash,
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/obj/effect/turf_decal/box,
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/turf/open/floor/hangar/plasteel,
+/area/ship/cargo)
"pS" = (
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"pX" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -1845,7 +1812,8 @@
dir = 4
},
/obj/item/bedsheet/rd{
- dir = 4
+ dir = 4;
+ name = "research head's bedsheet"
},
/turf/open/floor/carpet/purple,
/area/ship/general/command_crew/rd)
@@ -1885,7 +1853,6 @@
/obj/machinery/camera/autoname{
dir = 10
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"qB" = (
@@ -1920,7 +1887,6 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/corner/opaque/ntblue/border,
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"qP" = (
@@ -1947,14 +1913,11 @@
dir = 8
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"rd" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 9;
- color = "#212d60"
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/general/engineering/engineering_1)
"re" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -1968,6 +1931,7 @@
dir = 10
},
/obj/item/clothing/suit/space/hardsuit/ert/lp/engi,
+/obj/item/tank/jetpack/oxygen,
/turf/open/floor/wood,
/area/ship/bridge)
"ri" = (
@@ -1977,7 +1941,7 @@
},
/obj/machinery/light/floor,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"rm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -2011,7 +1975,7 @@
/obj/machinery/light/directional/east,
/obj/item/radio/intercom/directional/south,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"rA" = (
/obj/effect/turf_decal/corner/opaque/ntblue/border,
/obj/effect/turf_decal/corner/opaque/ntblue/border{
@@ -2033,6 +1997,15 @@
/obj/effect/turf_decal/siding/wood{
dir = 5
},
+/obj/structure/closet/secure_closet/wall/directional/east{
+ name = "janitorial supplies closet"
+ },
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/soap/nanotrasen,
+/obj/item/toy/plush/celadon/hampter/janitor,
+/obj/item/mop,
+/obj/item/storage/bag/trash,
+/obj/item/reagent_containers/glass/bucket,
/turf/open/floor/wood,
/area/ship/crew)
"rK" = (
@@ -2098,7 +2071,7 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"sg" = (
@@ -2117,7 +2090,9 @@
dir = 4
},
/obj/structure/curtain/cloth/fancy,
-/obj/item/bedsheet/ce,
+/obj/item/bedsheet/ce{
+ name = "chief engineering specialist's bedsheet"
+ },
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"sj" = (
@@ -2146,6 +2121,10 @@
},
/obj/effect/turf_decal/box/red,
/obj/machinery/door/window/brigdoor/southright,
+/obj/item/gun/energy/disabler{
+ pixel_y = 6;
+ pixel_x = -4
+ },
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/security/armory)
"sp" = (
@@ -2159,14 +2138,14 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"sG" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood,
+/obj/item/bedsheet/nanotrasen,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"sH" = (
@@ -2217,7 +2196,7 @@
/obj/machinery/atmospherics/pipe/simple/green/visible/layer2{
dir = 4
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"tp" = (
@@ -2233,7 +2212,6 @@
name = "\proper captain's locker";
req_access_txt = "20"
},
-/obj/item/clothing/glasses/sunglasses,
/obj/item/clothing/under/rank/security/head_of_security/alt,
/obj/item/clothing/under/rank/security/head_of_security/alt/skirt,
/obj/item/clothing/under/rank/security/head_of_security/nt,
@@ -2247,6 +2225,23 @@
/obj/effect/turf_decal/siding/wood{
dir = 5
},
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/combat,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/melee/baton,
+/obj/item/storage/belt/military/assault,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/assembly/flash,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/melee/knife/combat,
+/obj/item/clothing/suit/armor/vest/security,
+/obj/item/clothing/glasses/hud/security/night,
+/obj/item/stock_parts/cell/gun{
+ maxcharge = 20000;
+ pixel_y = -3;
+ name = "special weapon power cell";
+ pixel_x = 0
+ },
/turf/open/floor/wood,
/area/ship/bridge)
"tq" = (
@@ -2262,6 +2257,7 @@
pixel_x = 5
},
/obj/item/storage/firstaid/medical,
+/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/carpet/nanoweave/purple,
/area/ship/science)
"ts" = (
@@ -2297,21 +2293,17 @@
dir = 1
},
/turf/open/floor/plasteel/stairs/stairs_pack/mid,
-/area/ship/security/dock)
+/area/ship/hangar)
"tG" = (
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
/obj/machinery/light/dim/directional/west,
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
-"uj" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 2;
- color = "#212d60"
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
"un" = (
/obj/machinery/light/directional/east,
/obj/structure/table/wood,
@@ -2343,6 +2335,7 @@
/area/ship/cargo)
"uv" = (
/obj/machinery/atmospherics/components/binary/valve/digital/layer2,
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"ux" = (
@@ -2370,15 +2363,9 @@
/obj/machinery/camera/autoname{
dir = 6
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
-"uJ" = (
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
"uL" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -2422,7 +2409,7 @@
dir = 1
},
/turf/open/floor/plasteel/stairs/stairs_pack/mid,
-/area/ship/security/dock)
+/area/ship/hangar)
"vb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -2467,7 +2454,7 @@
pixel_x = -26
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"vk" = (
/turf/open/floor/carpet/nanoweave/purple,
/area/ship/science)
@@ -2486,6 +2473,24 @@
/obj/item/binoculars,
/obj/item/clothing/glasses/science,
/obj/item/gps/science,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/combat,
+/obj/item/gun/energy/e_gun/plasmapistol_cryo,
+/obj/item/stock_parts/cell/gun{
+ maxcharge = 20000;
+ pixel_y = -5;
+ name = "special weapon power cell";
+ pixel_x = 1
+ },
+/obj/item/stock_parts/cell/gun{
+ maxcharge = 20000;
+ pixel_y = -5;
+ name = "special weapon power cell";
+ pixel_x = 1
+ },
+/obj/item/clothing/suit/armor/vest/security,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/glasses/welding,
/turf/open/floor/carpet/purple,
/area/ship/general/command_crew/rd)
"vz" = (
@@ -2538,13 +2543,15 @@
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 10
},
-/obj/machinery/vending/snack/random,
/obj/machinery/light/directional/south,
/obj/machinery/camera/autoname{
dir = 8;
pixel_x = 1;
pixel_y = 17
},
+/obj/structure/frame{
+ anchored = 1
+ },
/turf/open/floor/hangar/plasteel/white,
/area/ship/science)
"vU" = (
@@ -2621,9 +2628,9 @@
pixel_x = 35;
pixel_y = 0
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/machinery/stasis,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"wN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -2649,7 +2656,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"xd" = (
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 4
@@ -2685,10 +2692,10 @@
"xk" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
/obj/effect/turf_decal/siding/wood{
dir = 1
},
+/obj/item/bedsheet/nanotrasen,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"xl" = (
@@ -2735,7 +2742,6 @@
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/under/rank/engineering/engineer/nt/skirt,
/obj/item/clothing/under/rank/engineering/engineer/nt,
-/obj/item/clothing/shoes/workboots,
/obj/item/storage/backpack/industrial,
/obj/structure/closet/secure_closet{
icon_state = "eng_secure";
@@ -2743,7 +2749,20 @@
req_access = list(11);
anchored = 1
},
-/obj/item/clothing/gloves/color/yellow,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/meson,
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_y = -1;
+ pixel_x = -2
+ },
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_y = -1;
+ pixel_x = -2
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"xL" = (
@@ -2777,7 +2796,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"xY" = (
@@ -2799,17 +2818,17 @@
/obj/machinery/power/terminal{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"yp" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/eva,
+/obj/item/tank/jetpack/carbondioxide,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"yz" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/food/drinks/bottle/vodka{
@@ -2862,11 +2881,21 @@
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"yY" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/structure/cable{
+ icon_state = "0-1"
},
-/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/obj/machinery/door/poddoor{
+ id = "khangar";
+ name = "Hangar";
+ dir = 2
+ },
+/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{
+ dir = 8;
+ id = "chariothangar"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating/ship,
+/area/ship/hangar)
"za" = (
/obj/effect/turf_decal/siding/red{
dir = 4;
@@ -2901,6 +2930,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
+/obj/machinery/stasis{
+ dir = 4
+ },
/turf/open/floor/carpet/nanoweave/purple,
/area/ship/science)
"zw" = (
@@ -2911,15 +2943,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"zx" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 2;
- color = "#212d60"
- },
-/obj/effect/turf_decal/industrial/stand_clear{
- dir = 1
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/engineering/atmospherics)
"zy" = (
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 1
@@ -2967,13 +2993,14 @@
/area/ship/hallway/central)
"zR" = (
/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/tank/internals/oxygen,
/obj/effect/turf_decal/box/red,
/obj/effect/turf_decal/siding/red{
dir = 2;
color = "#870505"
},
/obj/item/clothing/suit/space/hardsuit/ert/lp/sec,
+/obj/item/tank/jetpack/oxygen/security,
+/obj/item/clothing/mask/gas/sechailer/swat,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"zZ" = (
@@ -2988,18 +3015,14 @@
dir = 1
},
/obj/machinery/light/directional/north,
-/obj/structure/frame{
- anchored = 1
- },
+/obj/item/clothing/suit/space/hardsuit/ert/lp/med,
+/obj/item/clothing/mask/breath/medical,
+/obj/item/tank/jetpack/oxygen,
+/obj/machinery/suit_storage_unit/inherit,
/turf/open/floor/plasteel/white,
/area/ship/science)
"Ah" = (
-/obj/structure/table/reinforced,
-/obj/item/radio/intercom/wideband/table{
- dir = 4;
- pixel_x = 1;
- pixel_y = 1
- },
+/obj/machinery/telecomms/relay/preset/nanotrasen,
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"Am" = (
@@ -3089,18 +3112,17 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"AX" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 8;
- color = "#212d60"
- },
/obj/effect/turf_decal/industrial/stand_clear{
dir = 4
},
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"Bf" = (
/obj/structure/AIcore,
-/obj/item/radio/intercom/directional/west,
+/obj/item/radio/intercom/directional/west{
+ pixel_x = -31;
+ pixel_y = -5
+ },
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"Bj" = (
@@ -3166,7 +3188,9 @@
icon_state = "0-4"
},
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/power/smes/engineering,
+/obj/machinery/power/smes/engineering{
+ charge = 4e+006
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"Bv" = (
@@ -3175,6 +3199,7 @@
/area/ship/crew)
"BC" = (
/obj/effect/turf_decal/box,
+/obj/structure/closet/crate/rations,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"BP" = (
@@ -3183,6 +3208,8 @@
dir = 9
},
/obj/item/clothing/suit/space/hardsuit/ert/lp,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas/sechailer/swat,
/turf/open/floor/wood,
/area/ship/bridge)
"BS" = (
@@ -3195,6 +3222,9 @@
/obj/structure/cable{
icon_state = "0-2"
},
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"BW" = (
@@ -3224,7 +3254,6 @@
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/flour,
-/obj/item/gun/ballistic/shotgun/doublebarrel,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -3245,7 +3274,7 @@
/area/ship/security/prison)
"Cq" = (
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Cv" = (
/obj/structure/table/wood,
/obj/item/cutting_board{
@@ -3260,7 +3289,6 @@
/area/ship/crew)
"CD" = (
/obj/structure/extinguisher_cabinet/directional/south,
-/obj/effect/decal/cleanable/food/flour,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ship/crew)
@@ -3310,8 +3338,11 @@
dir = 4
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"DH" = (
/obj/effect/turf_decal/corner/opaque/mauve,
/obj/effect/turf_decal/corner/opaque/mauve{
@@ -3330,6 +3361,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"DL" = (
@@ -3340,11 +3372,11 @@
pixel_x = -10;
pixel_y = 0
},
-/obj/structure/cable/yellow{
+/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"DP" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3352,8 +3384,11 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"DV" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/drinks/bottle/sake{
@@ -3438,7 +3473,7 @@
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 1
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Fd" = (
@@ -3473,7 +3508,6 @@
/obj/effect/turf_decal/corner/opaque/ntblue/bordercorner{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Fi" = (
@@ -3490,6 +3524,17 @@
/obj/machinery/camera/autoname{
dir = 5
},
+/obj/machinery/button/door{
+ dir = 4;
+ id = "AI";
+ name = "ai shutters control";
+ pixel_x = -22;
+ pixel_y = -22
+ },
+/obj/item/radio/intercom/wideband/directional/west{
+ pixel_x = -29;
+ pixel_y = 0
+ },
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"Fk" = (
@@ -3544,18 +3589,16 @@
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"FD" = (
-/obj/effect/turf_decal/corner/opaque/ntblue/border{
- dir = 1
+/obj/machinery/button/door{
+ pixel_x = 0;
+ pixel_y = 24;
+ id = "nthip_armorybay";
+ name = "armory shutters"
},
-/obj/effect/spawner/lootdrop/waste/trash,
-/turf/open/floor/hangar/plasteel,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
"FH" = (
/obj/machinery/power/apc/auto_name/directional/north,
-/obj/item/aiModule/core/full/robocop{
- pixel_x = 7;
- pixel_y = 4
- },
/obj/structure/cable{
icon_state = "0-8"
},
@@ -3569,10 +3612,22 @@
pixel_y = -8
},
/obj/item/stack/cable_coil/red{
- pixel_x = 9;
- pixel_y = -1
+ pixel_x = -8;
+ pixel_y = 0
},
-/turf/open/floor/circuit,
+/obj/item/aiModule/core/full/nanotrasen{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/aiModule/reset/purge{
+ pixel_x = 7;
+ pixel_y = 12
+ },
+/obj/item/aiModule/reset{
+ pixel_x = 7;
+ pixel_y = -6
+ },
+/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"FJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -3589,8 +3644,11 @@
"FM" = (
/obj/structure/chair,
/obj/machinery/firealarm/directional/north,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"FX" = (
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 4
@@ -3629,14 +3687,12 @@
/area/ship/hallway/central)
"Gi" = (
/obj/machinery/light/directional/north,
-/obj/machinery/power/port_gen/pacman/super{
- anchored = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/eva,
+/obj/item/tank/jetpack/carbondioxide,
+/obj/item/clothing/head/helmet/space/eva,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Gl" = (
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
@@ -3674,6 +3730,7 @@
/area/ship/bridge)
"GE" = (
/obj/machinery/light/directional/north,
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"GF" = (
@@ -3687,29 +3744,20 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"GZ" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew)
"Ha" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 8;
- color = "#212d60"
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/obj/effect/spawner/random/structure/closet_empty/crate,
+/turf/open/floor/hangar/plasteel,
+/area/ship/cargo)
"Hb" = (
-/obj/effect/turf_decal/industrial/stand_clear{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 8;
- color = "#212d60"
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"Hc" = (
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 1
@@ -3730,7 +3778,7 @@
icon_state = "1-2"
},
/obj/effect/decal/cleanable/oil,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"Hf" = (
@@ -3759,8 +3807,9 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/stasis,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Hp" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -3776,8 +3825,11 @@
dir = 1
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Hv" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/structure/cable{
@@ -3794,8 +3846,11 @@
dir = 4
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Hz" = (
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 8
@@ -3817,9 +3872,6 @@
anchored = 1
},
/obj/item/gun/energy/e_gun,
-/obj/item/gun/energy/e_gun,
-/obj/item/gun/ballistic/automatic/smg/wt550,
-/obj/item/gun/ballistic/automatic/smg/wt550,
/obj/effect/turf_decal/box/red,
/obj/effect/turf_decal/siding/red{
dir = 6;
@@ -3828,32 +3880,23 @@
/obj/machinery/camera/autoname{
dir = 10
},
+/obj/item/gun/energy/e_gun/smg,
+/obj/item/gun/ballistic/automatic/smg/wt550,
+/obj/item/gun/ballistic/automatic/smg/wt550,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"Id" = (
-/obj/item/gun/energy/disabler,
-/obj/item/gun/energy/disabler,
-/obj/item/gun/energy/disabler,
/obj/item/melee/baton,
/obj/item/melee/baton,
/obj/item/melee/baton,
/obj/item/storage/box/handcuffs,
/obj/item/storage/box/handcuffs,
-/obj/item/clothing/suit/armor/vest/security/officer,
-/obj/item/clothing/suit/armor/vest/security/officer,
-/obj/item/clothing/suit/armor/vest/security/officer,
-/obj/item/clothing/under/nanotrasen/security,
-/obj/item/clothing/under/nanotrasen/security,
-/obj/item/clothing/under/nanotrasen/security,
/obj/item/storage/belt/security/webbing,
/obj/item/storage/belt/security/webbing,
/obj/item/storage/belt/security/webbing,
/obj/item/assembly/flash,
/obj/item/assembly/flash,
/obj/item/assembly/flash,
-/obj/item/clothing/glasses/hud/security/sunglasses,
-/obj/item/clothing/glasses/hud/security/sunglasses,
-/obj/item/clothing/glasses/hud/security/sunglasses,
/obj/effect/turf_decal/box/red,
/obj/effect/turf_decal/siding/red{
dir = 4;
@@ -3868,7 +3911,22 @@
pixel_x = 20;
pixel_y = -10
},
-/obj/structure/closet/secure_closet/security,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/melee/knife/combat,
+/obj/item/melee/knife/combat,
+/obj/item/melee/knife/combat,
+/obj/item/clothing/glasses/hud/security/night,
+/obj/item/clothing/glasses/hud/security/night,
+/obj/item/clothing/glasses/hud/security/night,
+/obj/structure/closet/secure_closet{
+ icon_state = "armory";
+ name = "equipment locker"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"Ih" = (
@@ -3901,11 +3959,11 @@
/area/ship/cargo)
"Is" = (
/obj/effect/turf_decal/industrial/warning,
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Iu" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -3919,12 +3977,8 @@
/obj/effect/turf_decal/industrial/stand_clear{
dir = 8
},
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 4;
- color = "#212d60"
- },
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"Iz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -3933,7 +3987,7 @@
dir = 5
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"IA" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/camera/autoname{
@@ -3966,7 +4020,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"IE" = (
@@ -4207,11 +4261,14 @@
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"JS" = (
-/obj/machinery/suit_storage_unit/atmos,
+/obj/item/clothing/suit/space/hardsuit/engine,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/clothing/mask/gas/atmos,
+/obj/machinery/suit_storage_unit/inherit,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"JT" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"JU" = (
@@ -4246,8 +4303,11 @@
/obj/machinery/airalarm/directional/west,
/obj/effect/turf_decal/industrial/warning/corner,
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Ka" = (
/obj/structure/chair/greyscale{
dir = 1
@@ -4272,7 +4332,7 @@
"KD" = (
/obj/structure/tank_dispenser/oxygen,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"KI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -4280,14 +4340,14 @@
/obj/structure/cable{
icon_state = "1-4"
},
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"KM" = (
/obj/effect/decal/cleanable/oil,
/obj/structure/cable{
@@ -4409,7 +4469,9 @@
/obj/effect/turf_decal/corner/opaque/mauve{
dir = 8
},
-/obj/structure/closet/wall/directional/west,
+/obj/structure/closet/wall/directional/west{
+ name = "ship scientist's locker"
+ },
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/suit/toggle/labcoat/science,
/obj/item/clothing/under/rank/rnd/scientist,
@@ -4419,6 +4481,8 @@
/obj/item/storage/backpack/satchel/tox,
/obj/item/storage/backpack/messenger/tox,
/obj/item/storage/backpack/duffelbag,
+/obj/item/storage/firstaid/toxin,
+/obj/item/storage/firstaid/radiation,
/turf/open/floor/hangar/plasteel/white,
/area/ship/science)
"Lk" = (
@@ -4457,18 +4521,17 @@
/obj/machinery/camera/autoname{
dir = 10
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"LC" = (
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"LD" = (
/obj/structure/chair/comfy/shuttle{
dir = 4;
- name = "Kover";
- color = "#00BFFF"
+ color = "#00BFFF";
+ name = "Kover"
},
/obj/effect/decal/cleanable/vomit,
/obj/item/toy/plush/moth/firewatch{
@@ -4536,7 +4599,7 @@
dir = 6
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Mj" = (
/obj/machinery/atmospherics/pipe/simple/dark/visible{
dir = 10
@@ -4580,12 +4643,8 @@
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
},
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 2;
- color = "#212d60"
- },
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"MF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -4624,18 +4683,16 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/carpet/nanoweave/orange,
/area/ship/general/engineering/engineering_1)
"MY" = (
/obj/structure/closet/secure_closet{
icon_state = "brig_phys";
- name = "Field surgeon locker"
+ name = "medical specialist's locker"
},
/obj/item/clothing/under/rank/medical/paramedic/emt,
-/obj/item/clothing/under/rank/medical/paramedic,
/obj/item/clothing/under/rank/medical/paramedic/emt/skirt,
-/obj/item/clothing/under/rank/medical/paramedic/skirt,
/obj/item/crowbar/red,
/obj/item/storage/bag/medical,
/obj/effect/turf_decal/corner/opaque/mauve{
@@ -4645,8 +4702,27 @@
dir = 4
},
/obj/item/clothing/head/soft/paramedic,
-/obj/item/clothing/shoes/sneakers/blue,
/obj/item/clothing/mask/surgical,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_y = -1;
+ pixel_x = -2
+ },
+/obj/item/ammo_box/magazine/co9mm{
+ pixel_y = -1;
+ pixel_x = -2
+ },
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/storage/backpack/ert/medical,
+/obj/item/clothing/under/rank/medical/paramedic/lp,
+/obj/item/clothing/under/rank/medical/paramedic/skirt/lp,
+/obj/item/storage/firstaid/medical,
+/obj/item/storage/firstaid/brute,
+/obj/item/storage/firstaid/fire,
+/obj/item/defibrillator/compact/loaded,
+/obj/item/clothing/glasses/hud/health/night,
/turf/open/floor/plasteel/white,
/area/ship/science)
"Nc" = (
@@ -4693,7 +4769,7 @@
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Nq" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 8
},
@@ -4712,8 +4788,9 @@
/turf/open/floor/wood,
/area/ship/bridge)
"NF" = (
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium,
+/area/ship/hangar)
"NJ" = (
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
@@ -4741,7 +4818,6 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Os" = (
@@ -4784,6 +4860,12 @@
"Ov" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/holopad/emergency/engineering,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"Ow" = (
@@ -4798,16 +4880,16 @@
"OB" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"OM" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"OO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
@@ -4830,13 +4912,13 @@
},
/obj/structure/bed,
/obj/structure/curtain/cloth/blacknormal,
-/obj/item/bedsheet/nanotrasen,
/obj/item/trash/can/food/beans,
/obj/machinery/flasher{
id = "minuteman_cell1";
pixel_y = -2;
pixel_x = -23
},
+/obj/item/bedsheet/orange,
/turf/open/floor/concrete,
/area/ship/security/prison)
"OY" = (
@@ -4847,14 +4929,11 @@
dir = 10
},
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Ph" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 6;
- color = "#212d60"
- },
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/general/engineering/engineering_1)
"Pi" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/southright,
@@ -4883,13 +4962,6 @@
},
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
-"Pz" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 5;
- color = "#212d60"
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
"PD" = (
/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer4{
dir = 8
@@ -4920,7 +4992,7 @@
dir = 1
},
/turf/open/floor/plasteel/stairs/stairs_pack/left,
-/area/ship/security/dock)
+/area/ship/hangar)
"PP" = (
/obj/machinery/door/poddoor/shutters{
id = "nthip_armorybay";
@@ -4974,10 +5046,6 @@
/obj/structure/window/reinforced/spawner{
dir = 8
},
-/obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{
- pixel_y = 7;
- pixel_x = -3
- },
/obj/item/stock_parts/cell/gun{
maxcharge = 20000;
pixel_y = -1;
@@ -5018,6 +5086,11 @@
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/security/armory)
"Qx" = (
@@ -5051,26 +5124,27 @@
/obj/structure/closet/secure_closet{
anchored = 1;
icon_state = "ce";
- name = "operations chief's locker";
- req_access_txt = "56"
+ name = "medical specialist's locker";
+ req_one_access_txt = list(50, 10, 5, 1, 20)
},
/obj/item/pipe_dispenser,
/obj/item/construction/rcd,
-/obj/item/clothing/under/rank/engineering/chief_engineer,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/head/hardhat/white,
-/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/glasses/meson/engine,
-/obj/item/tank/internals/emergency_oxygen/engi,
/obj/item/megaphone,
/obj/item/storage/belt/utility/chief/full,
-/obj/item/storage/photo_album/CE,
/obj/item/holosign_creator/atmos/infinite,
/obj/item/clothing/neck/cloak/ce,
/obj/effect/turf_decal/siding/wood{
dir = 9
},
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/gloves/combat,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/under/rank/engineering/engineer/nt/lp,
+/obj/item/clothing/suit/armor/vest/security,
+/obj/item/clothing/glasses/hud/diagnostic/night,
+/obj/item/storage/backpack/ert/engineer,
+/obj/item/clothing/head/beret/eng/hazard,
/turf/open/floor/wood,
/area/ship/bridge)
"QM" = (
@@ -5118,13 +5192,7 @@
/turf/open/floor/wood,
/area/ship/crew/dorm)
"QU" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/structure/closet/crate/trashcart,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"QV" = (
@@ -5154,12 +5222,8 @@
/area/ship/crew)
"Rm" = (
/obj/effect/turf_decal/industrial/stand_clear,
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 1;
- color = "#212d60"
- },
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"Ro" = (
/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on/layer2{
dir = 1
@@ -5177,8 +5241,11 @@
dir = 8
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Ry" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -5209,7 +5276,6 @@
dir = 4;
color = "#c3893f"
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"RL" = (
@@ -5238,7 +5304,7 @@
dir = 8;
color = "#c3893f"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/cargo)
"RM" = (
@@ -5251,7 +5317,10 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"RN" = (
@@ -5295,8 +5364,8 @@
},
/obj/machinery/door/airlock/command{
name = "Bridge";
- req_access_txt = "19";
- dir = 4
+ dir = 4;
+ req_one_access_txt = list(50, 10, 5, 1, 20)
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -5310,12 +5379,8 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"RX" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 1;
- color = "#212d60"
- },
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"RY" = (
/obj/machinery/airalarm/directional/east,
/obj/machinery/space_heater,
@@ -5358,7 +5423,8 @@
},
/obj/item/clothing/suit/space/hardsuit/ert/lp/sec,
/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/tank/internals/oxygen,
+/obj/item/tank/jetpack/oxygen/security,
+/obj/item/clothing/mask/gas/sechailer/swat,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"Sn" = (
@@ -5383,7 +5449,7 @@
/obj/machinery/button/door{
dir = 4;
id = "khangar";
- name = "Hangar doors";
+ name = "hangar blast doors";
pixel_x = -24;
pixel_y = -10
},
@@ -5391,6 +5457,12 @@
dir = 8
},
/obj/effect/turf_decal/corner/opaque/ntblue/border,
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ pixel_x = -22;
+ pixel_y = -1;
+ id = "chariothangar"
+ },
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Sw" = (
@@ -5442,9 +5514,11 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"SW" = (
-/obj/effect/spawner/lootdrop/waste/trash,
-/turf/open/floor/hangar/plasteel,
-/area/ship/hallway/central)
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
"Tb" = (
/obj/structure/chair/comfy/blue/corpo{
dir = 1
@@ -5552,13 +5626,14 @@
/obj/machinery/camera/autoname{
dir = 5
},
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"UF" = (
/obj/machinery/door/airlock/command{
- name = "Engineering Head's Quarters";
- req_access_txt = "19";
- dir = 2
+ name = "Chief Engineering Specialist's Quarters";
+ dir = 2;
+ req_one_access_txt = list(50, 10, 5, 1, 20)
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -5608,7 +5683,7 @@
/area/ship/science)
"UW" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/security/dock)
+/area/ship/hangar)
"Vh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/effect/decal/cleanable/oil/slippery,
@@ -5620,13 +5695,6 @@
},
/turf/open/floor/carpet/green,
/area/ship/crew)
-"Vp" = (
-/obj/effect/turf_decal/spline/fancy/transparent/solgovblue{
- dir = 4;
- color = "#212d60"
- },
-/turf/open/floor/plating/ship,
-/area/ship/security/dock)
"Vu" = (
/obj/machinery/camera/autoname{
dir = 5
@@ -5648,6 +5716,8 @@
/obj/machinery/light/directional/east,
/obj/machinery/suit_storage_unit/inherit/industrial,
/obj/item/clothing/suit/space/hardsuit/rd,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
/turf/open/floor/carpet/purple,
/area/ship/general/command_crew/rd)
"VB" = (
@@ -5671,6 +5741,12 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
+/obj/machinery/power/port_gen/pacman/super{
+ anchored = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"VR" = (
@@ -5696,7 +5772,6 @@
dir = 4
},
/obj/machinery/light/dim/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"Wa" = (
@@ -5737,7 +5812,9 @@
/obj/item/clothing/under/rank/prisoner,
/obj/item/card/id/prisoner/two,
/obj/item/clothing/under/rank/prisoner,
-/obj/structure/closet/secure_closet/empty/warden,
+/obj/structure/closet/secure_closet/empty/warden{
+ name = "prison equipment locker"
+ },
/obj/machinery/airalarm/directional/east,
/turf/open/floor/hangar/plasteel,
/area/ship/security/prison)
@@ -5750,8 +5827,13 @@
name = "Hangar";
dir = 2
},
+/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{
+ dir = 4;
+ id = "chariothangar"
+ },
+/obj/structure/cable,
/turf/open/floor/plating/ship,
-/area/ship/security/dock)
+/area/ship/hangar)
"Wm" = (
/obj/machinery/atmospherics/pipe/layer_manifold/visible{
dir = 4
@@ -5804,7 +5886,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/waste/trash,
/turf/open/floor/hangar/plasteel,
/area/ship/hallway/central)
"WI" = (
@@ -5916,7 +5997,6 @@
/obj/item/bedsheet/captain,
/obj/structure/bed,
/obj/structure/curtain/cloth,
-/obj/effect/decal/cleanable/food/flour,
/turf/open/floor/carpet/royalblue,
/area/ship/bridge)
"XG" = (
@@ -5929,7 +6009,7 @@
/obj/machinery/button/door{
dir = 4;
id = "AI";
- name = "Blast Door Control";
+ name = "ai shutters control";
pixel_x = -24;
pixel_y = 8
},
@@ -6130,6 +6210,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/effect/spawner/random/structure/closet_empty/crate,
/turf/open/floor/plating/ship,
/area/ship/engineering/atmospherics)
"Zc" = (
@@ -6163,8 +6244,11 @@
/obj/machinery/camera/autoname{
dir = 5
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel/dark,
-/area/ship/security/dock)
+/area/ship/hangar)
"Zk" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -6233,9 +6317,12 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/closet/crate/engineering,
-/obj/item/stack/sheet/mineral/uranium/ten,
-/obj/item/stack/sheet/mineral/plasma/twenty,
+/obj/machinery/power/smes/engineering{
+ charge = 4e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating/ship,
/area/ship/general/engineering/engineering_1)
"ZP" = (
@@ -6250,7 +6337,7 @@
id = "nthip_armorybay";
dir = 4;
pixel_y = 0;
- name = "Armory";
+ name = "armory shutters";
req_ship_access = 1;
req_access_txt = "3";
pixel_x = -22
@@ -6283,7 +6370,7 @@
(1,1,1) = {"
jU
-Qi
+rd
bq
bq
Qi
@@ -6311,7 +6398,7 @@ jU
xD
Ow
Ow
-xD
+zx
jU
"}
(2,1,1) = {"
@@ -6362,7 +6449,7 @@ df
fx
bO
Hp
-QU
+fT
Ii
fT
us
@@ -6397,8 +6484,8 @@ lh
lh
BC
SE
-BC
-JT
+pM
+lh
ny
lh
AC
@@ -6416,7 +6503,7 @@ jU
(5,1,1) = {"
jU
KR
-hc
+Ph
Yr
pF
qP
@@ -6431,9 +6518,9 @@ JT
Vh
Wz
mD
+QU
lh
lh
-JT
AC
UQ
Wm
@@ -6459,12 +6546,12 @@ Iu
UQ
Fy
lh
-JT
+lh
lh
lh
FJ
Lm
-lh
+Ha
pi
lh
cZ
@@ -6617,11 +6704,11 @@ Qi
YE
Qi
Qi
-Yr
+fN
RY
xK
JS
-fN
+Yr
aM
pb
zi
@@ -6781,7 +6868,7 @@ jU
jU
jU
jU
-MP
+og
MP
pJ
pJ
@@ -6798,7 +6885,7 @@ yz
Ih
yH
GZ
-iT
+uL
Cv
GZ
fG
@@ -6827,7 +6914,7 @@ oE
xL
lo
xl
-eM
+Vj
Vj
pz
GZ
@@ -6857,7 +6944,7 @@ Sw
cu
ft
Np
-SW
+lM
Ul
lt
qm
@@ -6869,7 +6956,7 @@ GZ
GZ
be
Iw
-Iw
+hT
jU
jU
jU
@@ -6922,7 +7009,7 @@ vk
zk
Vu
UU
-FD
+ky
lM
XY
lt
@@ -7058,15 +7145,15 @@ ky
lM
YS
UW
-KD
-Cq
+yp
+fF
JZ
tG
Zi
Hw
Hw
ea
-yp
+ea
Dn
Wl
jU
@@ -7092,13 +7179,13 @@ lM
Ul
UW
Gi
-uJ
-og
-rd
-Ha
-Hb
+de
+LC
+RX
+RX
AX
-Ha
+AX
+RX
oY
fk
cW
@@ -7124,15 +7211,15 @@ aF
xx
KQ
UW
-aZ
+KD
de
LC
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7161,11 +7248,11 @@ UW
DL
LC
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7191,14 +7278,14 @@ ky
Fh
Sv
PO
-pM
+de
LC
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7225,12 +7312,12 @@ Os
Re
uV
OM
-iM
+aL
Rm
-NF
-NF
-NF
-NF
+RX
+RX
+RX
+RX
ME
ri
cW
@@ -7259,12 +7346,12 @@ XR
tD
KI
aL
-fF
-NF
-NF
-NF
-NF
-zx
+Rm
+RX
+RX
+RX
+RX
+ME
ri
cW
jU
@@ -7293,11 +7380,11 @@ uV
DP
Is
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7311,7 +7398,7 @@ jU
jU
jU
jU
-Fu
+iM
Fu
je
om
@@ -7319,18 +7406,18 @@ pu
da
da
Xv
-FD
+ky
Eu
sx
dt
-nY
+de
LC
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7349,7 +7436,7 @@ LY
jg
Zc
Hz
-hT
+Pu
Pu
ll
CW
@@ -7359,11 +7446,11 @@ UW
aP
LC
RX
-NF
-NF
-NF
-NF
-uj
+RX
+RX
+RX
+RX
+RX
fk
cW
jU
@@ -7391,12 +7478,12 @@ bt
UW
FM
LC
-Pz
-Vp
+RX
+RX
Iy
-kZ
-Vp
-Ph
+Iy
+RX
+RX
fk
cW
jU
@@ -7422,16 +7509,16 @@ xe
es
Zt
UW
-Cq
+SW
Rx
-yY
-yY
+fD
+fD
pS
pS
fD
-yY
+fD
Hq
-Wl
+yY
jU
jU
jU
@@ -7455,16 +7542,16 @@ xQ
Gc
rA
UW
-Cq
+FD
Cq
wK
Mg
wQ
Hn
-wQ
+eM
Iz
-og
-hr
+LC
+NF
jU
jU
jU
@@ -7676,7 +7763,7 @@ jU
jU
jU
jU
-wC
+Hb
Uc
LN
XD
@@ -7692,7 +7779,7 @@ HL
qh
qh
qh
-im
+iT
jU
jU
jU
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_darect.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_darect.dmm
index b95e1b25cae4..3b1278265e8d 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_darect.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_darect.dmm
@@ -56,10 +56,6 @@
"bA" = (
/turf/template_noop,
/area/template_noop)
-"bX" = (
-/obj/structure/sign/poster/official/ion_carbine,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/bridge)
"cq" = (
/obj/effect/turf_decal/techfloor{
dir = 10
@@ -541,6 +537,7 @@
/obj/item/clothing/suit/nanotrasen/vest/blue,
/obj/item/clothing/suit/nanotrasen/suitjacket,
/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/storage/belt/medical,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"jk" = (
@@ -778,14 +775,15 @@
},
/obj/item/radio/intercom/directional/west,
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 10;
- pixel_x = -5
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/item/storage/case/surgery{
+ pixel_x = -4;
+ pixel_y = 9
},
/obj/item/storage/box/bodybags{
- pixel_x = 11
+ pixel_x = 9;
+ pixel_y = 4
},
-/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"nW" = (
@@ -944,7 +942,7 @@
/obj/machinery/light/small/directional/north{
pixel_x = -9
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/shower{
pixel_y = 13
},
@@ -1235,8 +1233,9 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/medical)
"uH" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 4;
+ id = "darect_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -1263,18 +1262,18 @@
/obj/structure/closet/secure_closet/freezer{
name = "emergency donuts locker"
},
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/obj/item/storage/fancy/donut_box{
pixel_x = 0;
pixel_y = -4
@@ -1372,9 +1371,6 @@
name = "ammo locker"
},
/obj/item/ammo_box/magazine/gauss,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c46x30mm_box,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
@@ -1382,6 +1378,9 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/ferropellet,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"yE" = (
@@ -1781,10 +1780,6 @@
/obj/machinery/light/small/directional/south{
pixel_x = 10
},
-/obj/item/stamp/hos{
- pixel_x = -9;
- pixel_y = -6
- },
/obj/item/stamp/nt/captain{
pixel_x = 0;
pixel_y = -6
@@ -1795,6 +1790,15 @@
pixel_x = 5;
pixel_y = 8
},
+/obj/item/stamp/nanotrasen/vigilitas/captain{
+ name = "Patrol Leader's rubber stamp";
+ pixel_x = -9;
+ pixel_y = -6
+ },
+/obj/item/stamp/nanotrasen{
+ pixel_x = 9;
+ pixel_y = -6
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"EO" = (
@@ -1815,8 +1819,9 @@
/turf/open/floor/engine,
/area/ship/cargo)
"EW" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 5;
+ id = "darect_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -1871,6 +1876,13 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/central)
+"FR" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 9;
+ id = "darect_turrets"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"FW" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
dir = 1
@@ -1921,8 +1933,9 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"Gu" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 6;
+ id = "darect_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -2350,6 +2363,10 @@
/obj/item/stock_parts/cell/gun/upgraded,
/obj/item/stock_parts/cell/gun/upgraded,
/obj/item/radio/headset/nanotrasen/alt/captain,
+/obj/structure/sign/poster/official/ion_carbine{
+ pixel_x = 0;
+ pixel_y = 31
+ },
/turf/open/floor/wood,
/area/ship/bridge)
"OG" = (
@@ -2703,9 +2720,10 @@
"Yn" = (
/obj/machinery/light/directional/north,
/obj/machinery/holopad/emergency/command,
-/obj/machinery/turretid/lethal{
+/obj/machinery/turretid/ship{
pixel_y = 24;
- pixel_x = 17
+ pixel_x = 17;
+ id = "darect_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -2826,8 +2844,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"YT" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt{
+ dir = 10;
+ id = "darect_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -2882,7 +2901,7 @@ bA
bA
bA
bA
-EW
+FR
IX
WY
iJ
@@ -3168,7 +3187,7 @@ bA
"}
(21,1,1) = {"
bA
-uH
+EW
Sn
Sn
Sn
@@ -3249,8 +3268,8 @@ bA
(26,1,1) = {"
bA
bA
-uH
-bX
+EO
+cR
Ok
cR
Yn
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_delta.dmm
index 4bf41dd918f6..17f9967ce8bb 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_delta.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_delta.dmm
@@ -1309,8 +1309,9 @@
/turf/open/floor/plating,
/area/ship/engineering)
"jH" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 9;
+ id = "delta_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -1627,10 +1628,8 @@
dir = 8
},
/obj/item/storage/firstaid/medical,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 4
- },
/obj/structure/table/reinforced/glass,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/crew)
"rs" = (
@@ -2489,9 +2488,10 @@
dir = 4;
name = "Helm"
},
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
pixel_x = 27;
- pixel_y = 25
+ pixel_y = 25;
+ id = "delta_turrets"
},
/obj/effect/turf_decal/road/line/opaque/white{
dir = 8
@@ -2851,8 +2851,9 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"WG" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt{
+ dir = 6;
+ id = "delta_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -2931,17 +2932,25 @@
/obj/structure/table/reinforced/titaniumglass,
/obj/item/folder/blue,
/obj/item/paper_bin,
-/obj/item/stamp/rd{
- pixel_x = 9;
- pixel_y = 0
- },
/obj/item/pen/fountain/captain,
/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/road/line/opaque/white,
+/obj/item/stamp/nanotrasen/science{
+ pixel_x = 9;
+ pixel_y = -1
+ },
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = -8;
+ pixel_y = -1
+ },
/obj/item/stamp/nt/captain{
pixel_x = -8;
- pixel_y = 0
+ pixel_y = 8
+ },
+/obj/item/stamp/nanotrasen{
+ pixel_x = 9;
+ pixel_y = 8
},
-/obj/effect/turf_decal/road/line/opaque/white,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"XZ" = (
@@ -3003,14 +3012,16 @@
/turf/open/floor/plasteel,
/area/ship/cargo)
"YY" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt{
+ dir = 5;
+ id = "delta_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
"YZ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 10;
+ id = "delta_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_gecko.dmm
index 6ec097aaa7c8..a4e20f1f3ad2 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_gecko.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_gecko.dmm
@@ -201,10 +201,10 @@
})
"bU" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
@@ -414,7 +414,6 @@
/turf/open/floor/plating,
/area/ship/engineering/engine)
"ej" = (
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/borderfloor,
/obj/structure/extinguisher_cabinet/directional/west,
@@ -642,7 +641,6 @@
/turf/open/floor/engine/o2,
/area/ship/engineering/engine)
"gh" = (
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -686,7 +684,6 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/starboard)
"gN" = (
@@ -831,7 +828,7 @@
icon_state = "4-8"
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"iQ" = (
@@ -860,9 +857,9 @@
/area/ship/crew/toilet)
"jc" = (
/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -1025,7 +1022,7 @@
/area/ship/crew)
"lE" = (
/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/lootdrop/salvage_50,
+/obj/effect/spawner/random/salvage_machine,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"lS" = (
@@ -1051,7 +1048,6 @@
/area/ship/engineering/engine)
"mb" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"ms" = (
@@ -1092,7 +1088,7 @@
pixel_x = 11;
pixel_y = 23
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"mN" = (
@@ -1426,7 +1422,7 @@
/obj/effect/turf_decal/industrial/fire{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/button/door{
id = "gecko_starboard_thrusters";
name = "Thruster Blast Door Control";
@@ -1647,7 +1643,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -1808,10 +1804,10 @@
/area/ship/medical/surgery)
"wV" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/salvage,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/salvage,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"wY" = (
@@ -1989,7 +1985,6 @@
/obj/effect/turf_decal/box/corners{
dir = 8
},
-/obj/effect/spawner/lootdrop/salvage_50,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"zE" = (
@@ -2099,7 +2094,6 @@
/area/ship/cargo/starboard)
"AN" = (
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/table/reinforced,
/obj/machinery/computer/helm/viewscreen/directional/south,
/turf/open/floor/plasteel,
@@ -2223,6 +2217,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage_machine,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"Ce" = (
@@ -3047,7 +3042,7 @@
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"LZ" = (
@@ -3178,7 +3173,6 @@
/obj/effect/turf_decal/arrows{
dir = 1
},
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -3272,6 +3266,10 @@
},
/obj/structure/table/glass,
/obj/item/lighter/clockwork,
+/obj/item/stamp/nanotrasen/engineering{
+ pixel_x = 10;
+ pixel_y = -1
+ },
/turf/open/floor/plasteel/tech,
/area/ship/engineering/communications)
"PF" = (
@@ -3281,6 +3279,18 @@
"PG" = (
/obj/structure/table/glass,
/obj/item/storage/fancy/cigarettes/cigars/havana,
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/stamp/nt/captain{
+ pixel_x = 0;
+ pixel_y = 9
+ },
+/obj/item/stamp/nanotrasen{
+ pixel_x = 9;
+ pixel_y = 9
+ },
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/captain)
"PQ" = (
@@ -3472,7 +3482,6 @@
"Sa" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -3537,7 +3546,7 @@
/area/ship/bridge)
"Sy" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"SE" = (
@@ -3703,7 +3712,6 @@
/area/ship/crew)
"UD" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
@@ -4224,7 +4232,7 @@
"ZM" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"ZS" = (
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_heron.dmm
index 49116dce0063..a61165711154 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -1,6 +1,5 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
@@ -690,7 +689,7 @@
dir = 8
},
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
"cF" = (
@@ -1794,7 +1793,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"hn" = (
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
@@ -2556,7 +2555,7 @@
/obj/effect/turf_decal/siding/thinplating{
dir = 9
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/west,
/obj/machinery/light_switch{
pixel_y = 22;
@@ -4556,6 +4555,10 @@
/obj/machinery/jukebox/boombox{
pixel_y = 5
},
+/obj/item/stamp/nanotrasen/engineering{
+ pixel_x = -8;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/dark,
/area/ship/engineering)
"qJ" = (
@@ -6319,14 +6322,14 @@
/area/ship/bridge)
"wq" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
dir = 8
},
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -6652,6 +6655,10 @@
pixel_x = 0;
pixel_y = 23
},
+/obj/item/stamp/nanotrasen/science{
+ pixel_x = 9;
+ pixel_y = 9
+ },
/turf/open/floor/wood,
/area/ship/science/robotics)
"xC" = (
@@ -7114,9 +7121,8 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/clothing/gloves,
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -9037,6 +9043,14 @@
pixel_y = -8
},
/obj/structure/table/reinforced/titaniumglass,
+/obj/item/stamp/nanotrasen{
+ pixel_x = 10;
+ pixel_y = -4
+ },
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 10;
+ pixel_y = 7
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"Gf" = (
@@ -9187,9 +9201,16 @@
pixel_x = 6;
pixel_y = 4
},
-/obj/item/stamp/hos{
- pixel_y = 9;
- pixel_x = -6
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/item/detective_scanner{
+ pixel_y = -10
+ },
+/obj/item/stamp/nanotrasen/vigilitas/security{
+ name = "NT Security Director's rubber stamp";
+ pixel_x = -6;
+ pixel_y = 9
},
/obj/item/stamp/denied{
pixel_x = -6;
@@ -9199,12 +9220,6 @@
pixel_x = -6;
pixel_y = -1
},
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 8
- },
-/obj/item/detective_scanner{
- pixel_y = -10
- },
/turf/open/floor/plasteel/tech,
/area/ship/security)
"GA" = (
@@ -9285,7 +9300,6 @@
/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
dir = 10
},
-/obj/effect/spawner/lootdrop/salvage_50,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -9445,10 +9459,6 @@
pixel_x = -6;
pixel_y = 4
},
-/obj/item/stamp/head_of_personnel{
- pixel_x = -6;
- pixel_y = 10
- },
/obj/item/folder/blue{
pixel_x = 6;
pixel_y = 6
@@ -9473,7 +9483,11 @@
/obj/structure/table/reinforced/titaniumglass,
/obj/item/stamp/nt/captain{
pixel_x = -6;
- pixel_y = 1
+ pixel_y = -2
+ },
+/obj/item/stamp/nanotrasen/officer{
+ pixel_x = -6;
+ pixel_y = 9
},
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
@@ -11931,8 +11945,8 @@
dir = 9
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -12247,7 +12261,7 @@
dir = 5
},
/obj/item/toy/plush/beeplushie,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
icon_state = "0-8"
@@ -12838,7 +12852,9 @@
/obj/item/pen{
pixel_x = -6
},
-/obj/item/stamp/qm{
+/obj/effect/turf_decal/corner/opaque/yellow/full,
+/obj/item/stamp/nanotrasen/ns/supply{
+ name = "NT Supply Director's rubber stamp";
pixel_x = 6;
pixel_y = 9
},
@@ -12850,7 +12866,6 @@
pixel_x = 6;
pixel_y = -1
},
-/obj/effect/turf_decal/corner/opaque/yellow/full,
/turf/open/floor/plasteel,
/area/ship/cargo)
"UI" = (
@@ -13101,9 +13116,9 @@
/obj/item/clothing/suit/armor/vest/marine/heavy,
/obj/item/clothing/suit/armor/vest/marine/medium,
/obj/item/clothing/suit/armor/vest/marine/medium,
-/obj/item/clothing/head/helmet/marine/security,
-/obj/item/clothing/head/helmet/marine,
-/obj/item/clothing/head/helmet/marine,
+/obj/item/clothing/head/helmet/gezena,
+/obj/item/clothing/head/helmet/gezena,
+/obj/item/clothing/head/helmet/gezena,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/head/helmet/plate,
@@ -13477,10 +13492,9 @@
/obj/item/ammo_box/magazine/wt550m9/ap,
/obj/item/ammo_box/magazine/wt550m9,
/obj/item/ammo_box/magazine/wt550m9,
-/obj/item/ammo_box/magazine/wt550m9/inc,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c46x30mm_box,
+/obj/item/ammo_box/magazine/wt550m9/ap,
+/obj/item/storage/box/ammo/c46x30mm,
+/obj/item/storage/box/ammo/c46x30mm,
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"Xb" = (
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_meta.dmm
index aa19801074a7..75ad269506ac 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_meta.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_meta.dmm
@@ -21,12 +21,12 @@
"af" = (
/obj/structure/railing,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
+/obj/effect/spawner/random/medical/surgery_tool/common,
/obj/machinery/firealarm/directional/west{
pixel_y = 5
},
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"ag" = (
@@ -118,7 +118,7 @@
/obj/item/choice_beacon/music,
/obj/item/spacecash/bundle/c10,
/obj/structure/extinguisher_cabinet/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/north,
/turf/open/floor/plasteel/dark,
@@ -403,7 +403,9 @@
/obj/structure/filingcabinet/double{
dir = 1
},
-/obj/item/documents/nanotrasen,
+/obj/item/documents/nanotrasen{
+ icon_state = "docs_blue"
+ },
/turf/open/floor/wood/ebony,
/area/ship/crew/dorm/captain)
"bt" = (
@@ -1369,8 +1371,9 @@
},
/area/ship/engineering)
"dZ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 10;
+ id = "meta_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -1515,14 +1518,15 @@
pixel_x = 9;
pixel_y = 9
},
-/obj/item/stamp/qm{
- pixel_x = 9;
- pixel_y = 0
- },
/obj/item/pen/fountain/captain{
pixel_x = 0;
pixel_y = 5
},
+/obj/item/stamp/nanotrasen/ns/supply{
+ pixel_x = 9;
+ pixel_y = 1;
+ name = "NT Supply Director's rubber stamp"
+ },
/turf/open/floor/wood/ebony,
/area/ship/crew/dorm/captain)
"eV" = (
@@ -1785,8 +1789,9 @@
/turf/open/floor/plating,
/area/ship/cargo)
"hV" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt{
+ dir = 5;
+ id = "meta_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -2584,6 +2589,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"pX" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 6;
+ id = "meta_turrets"
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
"qd" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
@@ -2949,8 +2961,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew)
"tx" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 9;
+ id = "meta_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -2964,8 +2977,9 @@
/turf/open/floor/plasteel/stairs/mid,
/area/ship/cargo)
"tL" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 6;
+ id = "meta_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -3006,8 +3020,8 @@
/obj/item/stamp,
/obj/item/clothing/accessory/armband/cargo,
/obj/item/clothing/head/beret/cargo,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/clothing/under/nanotrasen/supply/qm,
/obj/item/clothing/neck/cloak/qm,
/obj/item/clothing/suit/nanotrasen/vest,
@@ -4452,6 +4466,13 @@
},
/turf/open/floor/wood/walnut,
/area/ship/crew/dorm/dormtwo)
+"JO" = (
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 5;
+ id = "meta_turrets"
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
"JR" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -5147,10 +5168,11 @@
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"RM" = (
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
pixel_y = -24;
req_access = null;
- locked = 0
+ locked = 0;
+ id = "meta_turrets"
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -5325,7 +5347,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/office)
"SR" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/patterned,
/area/ship/hallway/central)
"SZ" = (
@@ -5759,7 +5781,7 @@
/turf/open/floor/wood/ebony,
/area/ship/crew/dorm/captain)
"WZ" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/machinery/firealarm/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/disposalpipe/segment{
@@ -6573,7 +6595,7 @@ aa
(20,1,1) = {"
aa
aa
-hV
+JO
YW
CW
bC
@@ -7114,13 +7136,13 @@ aa
aa
aa
aa
-hV
+JO
bA
bA
bA
bA
bA
-tL
+pX
aa
aa
aa
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_mimir.dmm
index 6834f62501d0..e2d5ca25ddb8 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_mimir.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_mimir.dmm
@@ -50,7 +50,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
/turf/open/floor/plasteel/tech/grid,
@@ -877,7 +877,7 @@
/area/ship/engineering)
"fd" = (
/obj/structure/table/wood/reinforced,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 5;
pixel_y = 5
},
@@ -909,7 +909,7 @@
pixel_x = -5;
pixel_y = -7
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 6;
pixel_y = 11
},
@@ -1037,7 +1037,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -1414,7 +1414,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"hZ" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -1443,7 +1443,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -2094,7 +2094,7 @@
dir = 6
},
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
@@ -2119,7 +2119,7 @@
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"lW" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -2327,7 +2327,7 @@
/obj/item/flashlight/lamp{
pixel_y = 13
},
-/obj/item/book/codex_gigas,
+/obj/item/storage/book/bible,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"nh" = (
@@ -2346,7 +2346,7 @@
/area/ship/security/prison)
"nk" = (
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -2766,12 +2766,12 @@
/area/ship/engineering/electrical)
"pV" = (
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"pY" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -3003,7 +3003,7 @@
/obj/structure/railing{
dir = 9
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -3308,7 +3308,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
@@ -3371,7 +3371,7 @@
icon_state = "5-8"
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
@@ -4697,7 +4697,7 @@
/obj/structure/railing/corner{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange{
@@ -4938,7 +4938,7 @@
/area/ship/crew/canteen)
"Dh" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel,
/area/ship/security/prison)
"Dm" = (
@@ -5288,7 +5288,7 @@
/obj/item/canvas/twentythreeXtwentythree,
/obj/structure/closet/crate/trashcart,
/obj/item/paint/anycolor,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/sprayweb,
/turf/open/floor/plating,
@@ -5710,7 +5710,7 @@
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/hallway/central)
"GZ" = (
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"Ha" = (
@@ -5723,7 +5723,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/engineering)
@@ -5818,7 +5818,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -6920,7 +6920,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -7152,7 +7152,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
"PC" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -7515,7 +7515,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -7761,7 +7761,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew/dorm/dormthree)
"Ti" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/railing{
dir = 9
@@ -7785,7 +7785,7 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -8272,7 +8272,7 @@
/turf/open/floor/plasteel,
/area/ship/security/prison)
"Wi" = (
-/obj/structure/statue/sandstone/assistant,
+/obj/item/statuebust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"Wj" = (
@@ -8561,7 +8561,7 @@
/area/ship/engineering/atmospherics)
"XY" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/spline/plain/opaque/blue,
/turf/open/floor/plasteel,
/area/ship/security/prison)
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_osprey.dmm
index eca071f7158a..90eb4fa35da3 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_osprey.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_osprey.dmm
@@ -623,7 +623,7 @@
/turf/open/floor/plasteel/white,
/area/ship/science)
"eB" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/structure/disposalpipe/segment{
dir = 8
},
@@ -1586,7 +1586,7 @@
/turf/open/floor/plating,
/area/ship/hallway/central)
"kZ" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/disposalpipe/segment{
dir = 5
},
@@ -2906,12 +2906,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -3049,7 +3049,7 @@
},
/obj/structure/closet/crate,
/obj/item/vending_refill/coffee,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
@@ -3435,12 +3435,20 @@
pixel_y = 24
},
/obj/item/stamp/nt/captain{
- pixel_x = 6;
+ pixel_x = 1;
pixel_y = 6
},
-/obj/item/stamp/rd{
- pixel_x = 6;
- name = "Science Director's rubber stamp"
+/obj/item/stamp/nanotrasen/science{
+ pixel_x = 1;
+ pixel_y = 0
+ },
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 10;
+ pixel_y = 6
+ },
+/obj/item/stamp/nanotrasen{
+ pixel_x = 10;
+ pixel_y = 0
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -3507,7 +3515,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"wC" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/structure/disposalpipe/segment{
dir = 8
},
@@ -3888,7 +3896,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/science/ai_chamber)
"yE" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/structure/disposalpipe/segment{
dir = 8
},
@@ -4056,7 +4064,7 @@
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 4
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
@@ -4306,7 +4314,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Bu" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/opaque/white{
dir = 8
},
@@ -6095,14 +6103,14 @@
/area/ship/hallway/central)
"NH" = (
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
- },
/obj/effect/turf_decal/corner/opaque/pink{
dir = 4
},
/obj/effect/turf_decal/corner/opaque/pink,
+/obj/item/storage/case/surgery{
+ pixel_x = -5;
+ pixel_y = 8
+ },
/obj/item/clothing/gloves/color/latex/nitrile,
/turf/open/floor/plasteel/white,
/area/ship/medical)
@@ -7427,7 +7435,7 @@
/obj/structure/window/reinforced,
/obj/effect/turf_decal/box,
/obj/effect/turf_decal/box,
-/obj/machinery/portable_atmospherics/canister/nitryl,
+/obj/machinery/portable_atmospherics/canister/freon,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Wk" = (
@@ -7897,7 +7905,7 @@
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"ZR" = (
-/obj/machinery/porta_turret/ai,
+/obj/machinery/porta_turret,
/turf/open/floor/circuit,
/area/ship/science/ai_chamber)
"ZW" = (
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 05f88995765d..1d40b94814b7 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_ranger.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_ranger.dmm
@@ -666,8 +666,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"fD" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 9;
+ id = "ranger_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -803,22 +804,17 @@
pixel_x = -1;
pixel_y = -31
},
-/obj/item/gun/energy/e_gun/hades{
- pixel_x = -1;
- pixel_y = -9;
- cell_type = /obj/item/stock_parts/cell/gun
- },
-/obj/item/gun/ballistic/automatic/smg/wt550{
+/obj/item/gun/energy/e_gun/iot{
pixel_x = 0;
- pixel_y = -3
+ pixel_y = 12
},
-/obj/item/gun/ballistic/automatic/smg/wt550{
- pixel_x = 0;
- pixel_y = 5
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
+ pixel_x = -4;
+ pixel_y = -8
},
-/obj/item/gun/energy/e_gun/iot{
- pixel_x = 0;
- pixel_y = 13
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
+ pixel_x = -4;
+ pixel_y = 1
},
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
@@ -932,12 +928,12 @@
/turf/open/floor/wood,
/area/ship/crew/dorm/captain)
"hz" = (
+/obj/machinery/camera/autoname,
/obj/docking_port/mobile{
dir = 2;
preferred_direction = 4;
port_direction = 8
},
-/obj/machinery/camera/autoname,
/obj/machinery/light/floor,
/turf/open/floor/engine/hull,
/area/ship/external)
@@ -1109,11 +1105,11 @@
},
/obj/effect/turf_decal/steeldecal/steel_decals4,
/obj/effect/turf_decal/steeldecal/steel_decals9,
-/obj/effect/spawner/lootdrop/lpaid{
+/obj/effect/spawner/random/lpaid{
pixel_x = -5;
pixel_y = 10
},
-/obj/effect/spawner/lootdrop/lpretrieval{
+/obj/effect/spawner/random/lpretrieval{
pixel_x = 3;
pixel_y = 1
},
@@ -1569,7 +1565,6 @@
/obj/item/clothing/gloves/color/purple,
/obj/item/clothing/gloves/fingerless,
/obj/item/clothing/head/maidheadband,
-/obj/item/clothing/gloves/maid/white,
/obj/item/clothing/accessory/maidapron,
/obj/item/clothing/under/costume/maid,
/obj/item/clothing/under/rank/civilian/janitor/maid,
@@ -2289,6 +2284,10 @@
pixel_y = -19
},
/obj/machinery/photocopier,
+/obj/item/stamp/nanotrasen{
+ pixel_x = -4;
+ pixel_y = 9
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"tK" = (
@@ -2393,8 +2392,9 @@
/turf/open/floor/circuit,
/area/ship/engineering/communications)
"uD" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt{
+ dir = 5;
+ id = "ranger_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -2513,12 +2513,11 @@
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/c46x30mm_box,
-/obj/item/ammo_box/magazine/wt550m9,
-/obj/item/ammo_box/magazine/wt550m9,
-/obj/item/ammo_box/magazine/wt550m9,
-/obj/item/ammo_box/magazine/wt550m9,
+/obj/item/ammo_box/magazine/smgm9mm,
+/obj/item/ammo_box/magazine/smgm9mm,
+/obj/item/ammo_box/magazine/smgm9mm,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"vB" = (
@@ -2528,8 +2527,8 @@
/area/ship/crew/cryo)
"vF" = (
/obj/effect/turf_decal/siding/blue,
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/structure/table/optable,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"vO" = (
@@ -2819,8 +2818,9 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"xL" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt{
+ dir = 6;
+ id = "ranger_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -2893,8 +2893,9 @@
/turf/open/floor/plasteel,
/area/ship/crew/janitor)
"yQ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt{
+ dir = 10;
+ id = "ranger_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -2962,8 +2963,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"zt" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 4
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 4;
+ id = "ranger_turrets"
},
/turf/open/floor/engine/hull,
/area/ship/bridge)
@@ -3419,10 +3421,8 @@
/obj/effect/turf_decal/corner/opaque/ntblue/half{
dir = 1
},
-/obj/item/clothing/suit/space/hardsuit/ert{
- desc = "The middlemanagement of the ERT world, the Lieutenant of the LP team is given this slightly downgraded version of the ERT Commander hardsuit. But wait, this one isnt downgraded!"
- },
/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/suit/space/hardsuit/ert/lp,
/obj/item/clothing/mask/gas/sechailer/swat,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
@@ -3437,9 +3437,10 @@
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 1
},
-/obj/machinery/turretid/lethal{
- pixel_x = -1;
- pixel_y = 25
+/obj/machinery/turretid/ship{
+ pixel_x = 0;
+ pixel_y = 25;
+ id = "ranger_turrets"
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
@@ -3784,6 +3785,13 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/port)
+"HX" = (
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 10;
+ id = "ranger_turrets"
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
"HZ" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8
@@ -4004,14 +4012,24 @@
pixel_y = 8;
pixel_x = 5
},
-/obj/item/pen/fountain{
- pixel_x = -4;
- pixel_y = 7
- },
/obj/item/stamp/nt/captain{
pixel_x = -5;
+ pixel_y = 9
+ },
+/obj/item/stamp/nanotrasen/vigilitas/captain{
+ name = "Lieutenant's rubber stamp";
+ pixel_x = -5;
+ pixel_y = -1
+ },
+/obj/item/stamp/nanotrasen/vigilitas/loss_prevention{
+ name = "NT Loss Prevention rubber stamp";
+ pixel_x = 4;
pixel_y = -1
},
+/obj/item/pen/fountain{
+ pixel_x = 6;
+ pixel_y = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Kt" = (
@@ -4848,6 +4866,13 @@
/obj/structure/sign/nanotrasen,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/engineering)
+"TK" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 9;
+ id = "ranger_turrets"
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
"TL" = (
/obj/machinery/suit_storage_unit/inherit,
/obj/machinery/door/window/brigdoor,
@@ -5462,12 +5487,12 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 10;
pixel_y = -1
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -10;
pixel_y = 0
},
@@ -5495,7 +5520,6 @@ zW
zW
zW
zW
-zW
LV
tg
tg
@@ -5531,7 +5555,6 @@ zW
zW
zW
zW
-zW
LV
LV
oI
@@ -5568,7 +5591,6 @@ zW
zW
zW
zW
-zW
LV
ks
Jw
@@ -5604,8 +5626,7 @@ zW
zW
zW
zW
-zW
-fD
+TK
LV
qS
Tg
@@ -5641,7 +5662,6 @@ zW
zW
zW
zW
-zW
LV
eP
Vq
@@ -5678,7 +5698,6 @@ zW
zW
zW
zW
-zW
iq
iq
iq
@@ -5714,7 +5733,6 @@ zW
(7,1,1) = {"
zW
zW
-zW
iq
iq
vm
@@ -5733,7 +5751,7 @@ gh
Md
pL
Kg
-yQ
+HX
zW
zW
zW
@@ -5750,7 +5768,6 @@ zW
"}
(8,1,1) = {"
zW
-zW
hN
iq
xp
@@ -5787,7 +5804,6 @@ cT
"}
(9,1,1) = {"
zW
-zW
Tc
iq
YK
@@ -5824,7 +5840,6 @@ CT
"}
(10,1,1) = {"
zW
-zW
iq
sF
oi
@@ -5861,7 +5876,6 @@ vv
"}
(11,1,1) = {"
zW
-zW
iq
ix
Kt
@@ -5898,7 +5912,6 @@ vv
"}
(12,1,1) = {"
zW
-zW
iq
vV
GC
@@ -5935,7 +5948,6 @@ vv
"}
(13,1,1) = {"
zW
-zW
iq
GE
vh
@@ -5972,7 +5984,6 @@ vv
"}
(14,1,1) = {"
zW
-zW
iq
XS
Xb
@@ -6009,7 +6020,6 @@ vv
"}
(15,1,1) = {"
zW
-zW
Vt
Vt
Vt
@@ -6046,7 +6056,6 @@ gg
"}
(16,1,1) = {"
zW
-zW
Vt
js
kh
@@ -6083,7 +6092,6 @@ gg
"}
(17,1,1) = {"
zW
-zW
Vt
Iy
ym
@@ -6120,7 +6128,6 @@ NH
"}
(18,1,1) = {"
zW
-zW
Vt
vB
cW
@@ -6157,7 +6164,6 @@ NH
"}
(19,1,1) = {"
zW
-zW
Vt
tb
mQ
@@ -6194,7 +6200,6 @@ NH
"}
(20,1,1) = {"
zW
-zW
Vt
IQ
XH
@@ -6231,7 +6236,6 @@ NH
"}
(21,1,1) = {"
zW
-zW
ES
Vt
Vt
@@ -6268,8 +6272,7 @@ th
"}
(22,1,1) = {"
zW
-zW
-zW
+wq
QV
jA
KQ
@@ -6301,12 +6304,11 @@ uk
xA
Vp
iV
-zW
+wq
"}
(23,1,1) = {"
-zW
-zW
-zW
+ef
+wq
wq
HA
TZ
@@ -6338,12 +6340,11 @@ rM
Mg
wh
Gf
-zW
+wq
"}
(24,1,1) = {"
zW
zW
-zW
wq
Yy
Ur
@@ -6380,7 +6381,6 @@ zW
(25,1,1) = {"
zW
zW
-zW
hN
jA
Po
@@ -6415,7 +6415,6 @@ hz
zW
"}
(26,1,1) = {"
-ef
zW
zW
zW
@@ -6455,7 +6454,6 @@ zW
zW
zW
zW
-zW
XT
Rn
mJ
@@ -6492,7 +6490,6 @@ zW
zW
zW
zW
-zW
XT
ZS
rg
@@ -6529,7 +6526,6 @@ zW
zW
zW
zW
-zW
uD
XT
aK
@@ -6567,7 +6563,6 @@ zW
zW
zW
zW
-zW
XT
XT
DE
@@ -6605,7 +6600,6 @@ zW
zW
zW
zW
-zW
XT
XT
XT
@@ -6646,7 +6640,6 @@ zW
zW
zW
zW
-zW
fl
zW
zW
@@ -6683,7 +6676,6 @@ zW
zW
zW
zW
-zW
wq
zW
zW
@@ -6720,7 +6712,6 @@ zW
zW
zW
zW
-zW
Te
zW
zW
@@ -6761,7 +6752,6 @@ zW
zW
zW
zW
-zW
zt
zW
Lk
@@ -6798,7 +6788,6 @@ zW
zW
zW
zW
-zW
Te
zW
zW
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_savior.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_savior.dmm
index 1efb1ac73963..5f77c0d5be46 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_savior.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_savior.dmm
@@ -242,7 +242,7 @@
/obj/item/tank/internals/anesthetic,
/obj/machinery/light/directional/east,
/obj/machinery/firealarm/directional/north,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
"eE" = (
@@ -337,7 +337,7 @@
pixel_x = -9;
pixel_y = -2
},
-/obj/item/stamp/cmo{
+/obj/item/stamp/nanotrasen/medical{
pixel_x = 0;
pixel_y = -2
},
@@ -570,8 +570,8 @@
pixel_y = 10;
pixel_x = 9
},
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"hm" = (
@@ -669,7 +669,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/cryo)
"iw" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"ix" = (
@@ -895,9 +895,9 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/obj/item/trash/candy,
/turf/open/floor/engine/airless,
/area/ship/engineering/atmospherics)
@@ -1305,8 +1305,8 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/obj/item/trash/pistachios,
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{
piping_layer = 5;
@@ -1429,7 +1429,7 @@
pixel_x = -10;
pixel_y = 7
},
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/box/donkpockets{
pixel_x = 8;
pixel_y = -5
@@ -2479,7 +2479,7 @@
/area/ship/crew/canteen)
"Gu" = (
/obj/machinery/power/apc/auto_name/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable,
/obj/machinery/light_switch{
@@ -2769,7 +2769,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
@@ -2785,7 +2785,7 @@
},
/obj/item/folder,
/obj/item/pen,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"Lu" = (
@@ -2969,6 +2969,14 @@
dir = 5
},
/obj/machinery/computer/med_data/laptop,
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = -11;
+ pixel_y = 7
+ },
+/obj/item/stamp/nanotrasen{
+ pixel_x = -11;
+ pixel_y = 0
+ },
/turf/open/floor/wood,
/area/ship/crew)
"OG" = (
@@ -3591,7 +3599,7 @@
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/tool_surgery_adv,
+/obj/effect/spawner/random/medical/surgery_tool/adv,
/turf/open/floor/plasteel/white,
/area/ship/medical/surgery)
"Vf" = (
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skipper.dmm
index 884f395c29be..f14aedc11baf 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skipper.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skipper.dmm
@@ -381,14 +381,14 @@
pixel_x = -8;
pixel_y = 7
},
-/obj/item/stamp/head_of_personnel{
- pixel_x = -7;
- pixel_y = -3
- },
/obj/item/folder/red{
pixel_x = -8;
pixel_y = 11
},
+/obj/item/stamp/nanotrasen/officer{
+ pixel_x = -7;
+ pixel_y = -3
+ },
/turf/open/floor/wood,
/area/ship/general/command_crew/hop)
"dp" = (
@@ -558,8 +558,8 @@
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/box/ammo/c9mm,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm/rubber,
@@ -1455,8 +1455,8 @@
/obj/item/stamp,
/obj/item/clothing/accessory/armband/cargo,
/obj/item/clothing/head/beret/cargo,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/clothing/under/nanotrasen/supply/qm,
/obj/item/clothing/neck/cloak/qm,
/obj/item/clothing/suit/nanotrasen/vest,
@@ -1795,6 +1795,14 @@
/obj/effect/turf_decal/siding/wood{
dir = 1
},
+/obj/item/stamp/nanotrasen{
+ pixel_x = 1;
+ pixel_y = -3
+ },
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 10;
+ pixel_y = -3
+ },
/turf/open/floor/wood,
/area/ship/crew/dorm/captain)
"ls" = (
@@ -2032,9 +2040,10 @@
/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{
dir = 8
},
-/obj/machinery/turretid/lethal{
+/obj/machinery/turretid/ship{
pixel_x = -1;
- pixel_y = 27
+ pixel_y = 27;
+ id = "skipper_turrets"
},
/obj/machinery/computer/rdconsole{
dir = 8;
@@ -4074,13 +4083,14 @@
/area/ship/engineering/engine)
"Cc" = (
/obj/structure/catwalk/over,
-/obj/machinery/porta_turret/ship/faction/nanotrasen/ballistic{
- dir = 4
- },
/obj/structure/sign/poster/official/nanotrasen_logo{
pixel_x = 0;
pixel_y = -32
},
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 4;
+ id = "skipper_turrets"
+ },
/turf/open/floor/engine/hull/reinforced,
/area/ship/bridge)
"Cl" = (
@@ -4783,7 +4793,7 @@
/turf/open/floor/wood,
/area/ship/crew/dorm)
"Hb" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/carpet/nanoweave,
/area/ship/hallway/central)
"Hf" = (
@@ -5786,11 +5796,8 @@
/obj/effect/turf_decal/borderfloorwhite/full,
/obj/machinery/light/directional/north,
/obj/structure/table/optable,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 3;
- pixel_x = 0
- },
/obj/effect/decal/cleanable/blood/old,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Pl" = (
@@ -6184,13 +6191,14 @@
/area/ship/crew/canteen/kitchen)
"SK" = (
/obj/structure/catwalk/over,
-/obj/machinery/porta_turret/ship/faction/nanotrasen/ballistic{
- dir = 4
- },
/obj/structure/sign/poster/official/nanotrasen_logo{
pixel_x = 0;
pixel_y = 32
},
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 4;
+ id = "skipper_turrets"
+ },
/turf/open/floor/engine/hull/reinforced,
/area/ship/bridge)
"SO" = (
@@ -6285,7 +6293,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Tz" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/nanoweave,
/area/ship/hallway/central)
"TF" = (
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skybreaker.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skybreaker.dmm
index 0b52d0645884..57e6b38751a4 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skybreaker.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_skybreaker.dmm
@@ -48,9 +48,7 @@
icon_state = "sec_wall";
name = "weapon power cell closet"
},
-/obj/item/stock_parts/cell/gun/upgraded,
-/obj/item/stock_parts/cell/gun/upgraded,
-/obj/item/stock_parts/cell/gun/upgraded,
+/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
@@ -283,9 +281,9 @@
pixel_y = 0
},
/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/jetpack/oxygen,
/obj/item/clothing/suit/space/hardsuit/ert/classic/engi,
+/obj/item/clothing/mask/gas/atmos,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"en" = (
@@ -334,9 +332,9 @@
dir = 8
},
/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/jetpack/oxygen,
/obj/item/clothing/suit/space/hardsuit/ert/classic/med,
+/obj/item/clothing/mask/breath/medical,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"eJ" = (
@@ -499,10 +497,13 @@
/obj/effect/turf_decal/techfloor{
dir = 10
},
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/jetpack/oxygen/security,
/obj/item/clothing/suit/space/hardsuit/ert/classic/sec,
/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/mask/gas/vigilitas{
+ desc = "A protective gas mask designed for first response, specialist operations, and counter terrorism by Nanotrasen security officers. It features a wide scratch resistant visor, ports for connecting an oxygen supply, and secure, comfortable straps.";
+ name = "Nanotrasen security gas mask"
+ },
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"gF" = (
@@ -515,7 +516,6 @@
icon_state = "blueshield";
anchored = 1
},
-/obj/item/stock_parts/cell/gun/upgraded,
/obj/item/storage/belt/military/assault,
/obj/item/storage/backpack/ert,
/obj/item/radio/headset/nanotrasen/alt/captain,
@@ -537,15 +537,16 @@
/obj/item/storage/lockbox/medal,
/obj/item/gps,
/obj/item/megaphone/command,
-/obj/item/melee/transforming/energy/sword/saber/blue{
- name = "Nanotrasen special energy sword"
- },
/obj/item/crowbar/syndie{
name = "elite crowbar"
},
/obj/item/binoculars,
/obj/item/clothing/glasses/hud/health/night,
/obj/item/tank/jetpack/suit,
+/obj/item/melee/energy/sword/saber/blue{
+ name = "Nanotrasen Special Energy sword"
+ },
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/captain)
"gK" = (
@@ -768,9 +769,7 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer4{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/visible/layer4,
/turf/open/floor/plating,
/area/ship/general/engineering)
"kR" = (
@@ -800,9 +799,10 @@
dir = 9
},
/obj/machinery/photocopier,
-/obj/machinery/turretid/lethal{
+/obj/machinery/turretid/ship{
pixel_x = -29;
- pixel_y = -6
+ pixel_y = -6;
+ id = "skybreaker_turrets"
},
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
@@ -851,6 +851,7 @@
name = "fancy security operative beret";
desc = "A blood-red beret issued to NTAS security operatives for formal occasions. Nanotrasen logo is stitched into the side."
},
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"lo" = (
@@ -916,6 +917,7 @@
name = "fancy security operative beret";
desc = "A blood-red beret issued to NTAS security operatives for formal occasions. Nanotrasen logo is stitched into the side."
},
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"ma" = (
@@ -1123,13 +1125,14 @@
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"oI" = (
-/obj/machinery/power/smes{
- charge = 3e006
- },
/obj/structure/cable{
icon_state = "0-8"
},
/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/machinery/power/ship_gravity,
/turf/open/floor/plating,
/area/ship/general/engineering)
"oL" = (
@@ -1358,12 +1361,12 @@
anchored = 1;
name = "MRE supply crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"rM" = (
@@ -1385,11 +1388,11 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"rZ" = (
-/obj/structure/cable{
- icon_state = "0-5"
- },
/obj/machinery/power/port_gen/pacman,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/ship/general/engineering)
"sc" = (
@@ -1400,10 +1403,13 @@
/obj/effect/turf_decal/techfloor{
dir = 9
},
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/jetpack/oxygen/security,
/obj/item/clothing/suit/space/hardsuit/ert/classic/sec,
/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/mask/gas/vigilitas{
+ desc = "A protective gas mask designed for first response, specialist operations, and counter terrorism by Nanotrasen security officers. It features a wide scratch resistant visor, ports for connecting an oxygen supply, and secure, comfortable straps.";
+ name = "Nanotrasen security gas mask"
+ },
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"se" = (
@@ -1585,15 +1591,15 @@
},
/obj/item/gun/energy/e_gun/hades{
pixel_x = -1;
- pixel_y = -9
+ pixel_y = 11
},
-/obj/item/gun/energy/e_gun/hades{
- pixel_x = -1;
- pixel_y = 1
+/obj/item/gun/energy/e_gun/smg{
+ pixel_x = 0;
+ pixel_y = 4
},
-/obj/item/gun/energy/e_gun/hades{
- pixel_x = -1;
- pixel_y = 11
+/obj/item/gun/energy/e_gun/iot{
+ pixel_x = 0;
+ pixel_y = -5
},
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
@@ -1707,8 +1713,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm)
"wx" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 6;
+ id = "skybreaker_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -2056,10 +2063,6 @@
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 5
},
-/obj/item/stamp/nt{
- pixel_y = 1;
- pixel_x = -11
- },
/obj/item/stamp/denied{
pixel_y = 1;
pixel_x = 11
@@ -2067,6 +2070,10 @@
/obj/item/paper_bin,
/obj/item/pen/fountain,
/obj/structure/table/reinforced/titaniumglass,
+/obj/item/stamp{
+ pixel_x = -10;
+ pixel_y = 1
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"Ba" = (
@@ -2139,11 +2146,11 @@
/area/ship/general/engineering)
"Du" = (
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
+/obj/effect/spawner/random/trash,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"DC" = (
@@ -2240,15 +2247,10 @@
pixel_x = -12;
pixel_y = 23
},
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"EH" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-10"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
dir = 4
},
@@ -2258,6 +2260,12 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/ship/general/engineering)
"Fl" = (
@@ -2440,20 +2448,16 @@
dir = 6
},
/obj/structure/table/reinforced/titaniumglass,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Ht" = (
-/obj/machinery/power/terminal{
- dir = 1
+/obj/machinery/power/smes{
+ charge = 3e006
},
/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
+ icon_state = "0-8"
},
-/obj/machinery/power/ship_gravity,
/turf/open/floor/plating,
/area/ship/general/engineering)
"Hy" = (
@@ -2511,8 +2515,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"Ie" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 10;
+ id = "skybreaker_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -2579,8 +2584,7 @@
dir = 6
},
/obj/structure/displaycase{
- start_showpieces = list(/obj/item/gun/energy/e_gun/hos/brazil/true);
- start_showpiece_type = /obj/item/gun/energy/e_gun/hos/brazil/true
+ start_showpiece_type = /obj/item/gun/energy/e_gun/hades
},
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/captain)
@@ -2604,10 +2608,13 @@
pixel_x = -20;
pixel_y = -11
},
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/jetpack/oxygen/security,
/obj/item/clothing/suit/space/hardsuit/ert/classic/sec,
/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/mask/gas/vigilitas{
+ desc = "A protective gas mask designed for first response, specialist operations, and counter terrorism by Nanotrasen security officers. It features a wide scratch resistant visor, ports for connecting an oxygen supply, and secure, comfortable straps.";
+ name = "Nanotrasen security gas mask"
+ },
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"Jk" = (
@@ -2881,8 +2888,11 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
/obj/machinery/firealarm/directional/west,
-/obj/machinery/atmospherics/pipe/manifold/supply/visible/layer4{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
},
/turf/open/floor/plating,
/area/ship/general/engineering)
@@ -2893,15 +2903,23 @@
/obj/structure/table/reinforced/titaniumglass,
/obj/item/paper_bin,
/obj/item/pen/fountain,
-/obj/item/stamp/nt/captain{
- pixel_x = -10;
- pixel_y = -4
- },
/obj/item/toy/plush/celadon/hampter/captain/old{
pixel_x = 10;
pixel_y = 9;
name = "hampter the first Commander"
},
+/obj/item/stamp/nanotrasen{
+ pixel_x = 10;
+ pixel_y = -4
+ },
+/obj/item/stamp/nt/captain{
+ pixel_x = -10;
+ pixel_y = 5
+ },
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = -10;
+ pixel_y = -4
+ },
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/captain)
"Mc" = (
@@ -3071,9 +3089,9 @@
pixel_y = 23
},
/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/tank/internals/oxygen,
/obj/item/clothing/suit/space/hardsuit/ert/classic,
+/obj/item/clothing/mask/gas/sechailer/swat,
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/captain)
"OM" = (
@@ -3345,8 +3363,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/security)
"SZ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt/pulse{
+ dir = 5;
+ id = "skybreaker_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -3356,7 +3375,6 @@
name = "engineering operative's locker";
anchored = 1
},
-/obj/item/stock_parts/cell/gun/upgraded,
/obj/item/melee/knife/combat,
/obj/item/storage/backpack/ert/engineer,
/obj/item/clothing/glasses/hud/diagnostic/night,
@@ -3375,6 +3393,7 @@
/obj/item/clothing/head/beret/eng{
name = "engineering operative beret"
},
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"Tg" = (
@@ -3397,8 +3416,9 @@
/turf/open/floor/plasteel/strongdark,
/area/ship/security)
"Tp" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 9;
+ id = "skybreaker_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -3715,15 +3735,6 @@
"Xt" = (
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/crew/dorm)
-"Xu" = (
-/obj/machinery/button/shieldwallgen{
- dir = 1;
- id = "osprey_atmosfield";
- pixel_x = 5;
- pixel_y = -24
- },
-/turf/closed/wall/mineral/titanium/exterior,
-/area/ship/security/armory)
"XG" = (
/obj/effect/turf_decal/corner/opaque/orange/border{
dir = 6
@@ -3829,7 +3840,6 @@
/obj/item/gun/energy/e_gun{
cell_type = /obj/item/stock_parts/cell/gun/upgraded
},
-/obj/item/stock_parts/cell/gun/upgraded,
/obj/item/melee/knife/combat,
/obj/item/defibrillator/compact/combat/loaded/nanotrasen,
/obj/item/storage/backpack/ert/medical,
@@ -3849,11 +3859,15 @@
name = "medical operative beret"
},
/obj/item/storage/belt/medical/webbing,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"YV" = (
-/obj/structure/cable,
/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable,
/turf/open/floor/plating,
/area/ship/general/engineering)
"Zi" = (
@@ -3863,7 +3877,8 @@
/obj/machinery/button/door{
dir = 8;
pixel_x = 28;
- pixel_y = 0
+ pixel_y = 0;
+ id = "skybreaker_celldoor"
},
/obj/machinery/recharger{
pixel_x = -6;
@@ -4230,7 +4245,7 @@ nh
rJ
Cy
Wq
-Xu
+wF
MF
Ge
qG
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_teardrop.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_teardrop.dmm
index 41ca116458c2..d21eff4274f9 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_teardrop.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_teardrop.dmm
@@ -221,7 +221,7 @@
/area/ship/security)
"cK" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/machinery/light/directional/west{
light_color = "#e8eaff"
},
@@ -556,11 +556,11 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/corner/opaque/solgovblue/mono,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/closet/crate,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
@@ -1402,8 +1402,9 @@
/turf/open/floor/carpet/blue,
/area/ship/crew/dorm)
"oI" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 8
+/obj/machinery/porta_turret/ship/nt{
+ dir = 8;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -1579,10 +1580,9 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"qq" = (
-/obj/machinery/porta_turret/ship/ballistic{
+/obj/machinery/porta_turret/ship/nt/pulse{
dir = 4;
- faction = list("playerNanotrasen","turret");
- pixel_x = 3
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -1900,8 +1900,9 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"ve" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 6;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -2550,8 +2551,9 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/central)
"BD" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 10
+/obj/machinery/porta_turret/ship/nt{
+ dir = 10;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -3029,8 +3031,9 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"GP" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 1
+/obj/machinery/porta_turret/ship/nt{
+ dir = 1;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -3280,8 +3283,9 @@
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"JZ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 5
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 5;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -3300,8 +3304,9 @@
/turf/open/floor/plating,
/area/ship/bridge)
"Kn" = (
-/obj/machinery/turretid/lethal{
- pixel_y = -24
+/obj/machinery/turretid/ship{
+ pixel_y = -24;
+ id = "teardrop_turrets"
},
/obj/effect/turf_decal/corner/opaque/solgovblue{
dir = 5
@@ -3320,11 +3325,15 @@
pixel_x = -7;
pixel_y = 4
},
-/obj/item/stamp/captain{
- pixel_x = -8;
- pixel_y = 12
- },
/obj/item/binoculars,
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 11;
+ pixel_y = -3
+ },
+/obj/item/stamp/nt/captain{
+ pixel_x = 2;
+ pixel_y = -3
+ },
/turf/open/floor/plasteel/white,
/area/ship/bridge)
"KE" = (
@@ -3375,8 +3384,8 @@
},
/obj/item/stock_parts/cell/gun,
/obj/item/stock_parts/cell/gun,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
/obj/item/ammo_box/a300,
/turf/open/floor/plasteel/white,
/area/ship/security)
@@ -3404,12 +3413,10 @@
dir = 10
},
/obj/effect/turf_decal/corner/opaque/black/mono,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 2
- },
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 1
},
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Li" = (
@@ -3590,6 +3597,9 @@
dir = 9;
faction = list("playerNanotrasen","turret")
},
+/obj/machinery/porta_turret/ship/nt{
+ id = "teardrop_turrets"
+ },
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
"NB" = (
@@ -3690,7 +3700,7 @@
"Oq" = (
/obj/structure/table/wood/fancy/royalblue,
/obj/machinery/recharger,
-/obj/item/gun/ballistic/revolver/shadow/no_mag{
+/obj/item/gun/ballistic/revolver/shadow/empty{
name = "\improper Last Exit"
},
/obj/item/ammo_casing/a44roum,
@@ -4181,8 +4191,9 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"SZ" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 9
+/obj/machinery/porta_turret/ship/nt{
+ dir = 9;
+ id = "teardrop_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
diff --git a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_venture.dmm b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_venture.dmm
index f654cf062c09..920b9660525f 100644
--- a/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_venture.dmm
+++ b/_maps/_mod_celadon/shuttles/nanotrasen/nanotrasen_venture.dmm
@@ -109,8 +109,8 @@
pixel_y = 32;
dir = 1
},
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
/obj/item/gun/ballistic/automatic/pistol/commander,
/obj/item/ammo_box/magazine/co9mm{
pixel_x = 5
@@ -209,8 +209,8 @@
id = "venture_belt"
},
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance/five,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plating,
/area/ship/bridge)
"qp" = (
@@ -251,8 +251,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"rX" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 8
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 5;
+ id = "venture_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -288,15 +289,16 @@
/obj/item/stack/sheet/glass/five,
/obj/item/stack/sheet/glass/five,
/obj/item/stack/sheet/metal/ten,
-/obj/effect/spawner/lootdrop/materials,
+/obj/effect/spawner/random/materials,
/turf/open/floor/plating,
/area/ship/bridge)
"vm" = (
/turf/template_noop,
/area/template_noop)
"xx" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 6
+/obj/machinery/porta_turret/ship/nt/light{
+ dir = 6;
+ id = "venture_turrets"
},
/turf/closed/wall/mineral/titanium/exterior,
/area/ship/bridge)
@@ -366,6 +368,11 @@
/obj/machinery/airalarm/directional/south{
pixel_y = -32
},
+/obj/machinery/turretid/ship{
+ pixel_x = 0;
+ pixel_y = 25;
+ id = "venture_turrets"
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"BQ" = (
@@ -427,6 +434,13 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
+"EV" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 4;
+ id = "venture_turrets"
+ },
+/turf/closed/wall/mineral/titanium/exterior,
+/area/ship/bridge)
"Fi" = (
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -450,7 +464,7 @@
dir = 8;
layer = 4.1
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
@@ -463,10 +477,10 @@
/obj/structure/chair/wood{
dir = 4
},
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle,
/obj/item/reagent_containers/food/drinks/waterbottle,
/obj/item/reagent_containers/food/drinks/waterbottle,
@@ -615,10 +629,10 @@
id = "venture_belt"
},
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donut,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plating,
/area/ship/bridge)
"PO" = (
@@ -857,10 +871,10 @@ nl
rX
nl
nl
-Sc
+EV
vm
vm
-Sc
+EV
nl
nl
xx
diff --git a/_maps/_mod_celadon/shuttles/pirate/pirate_crying_sun.dmm b/_maps/_mod_celadon/shuttles/pirate/pirate_crying_sun.dmm
index 6a0783de8e12..c3bcaed171bf 100644
--- a/_maps/_mod_celadon/shuttles/pirate/pirate_crying_sun.dmm
+++ b/_maps/_mod_celadon/shuttles/pirate/pirate_crying_sun.dmm
@@ -2833,7 +2833,7 @@
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
dir = 1
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"zc" = (
@@ -5266,16 +5266,16 @@
"Qq" = (
/obj/structure/rack,
/obj/effect/turf_decal/corner/opaque/neutral/full,
-/obj/item/melee/transforming/energy/sword/saber/pirate{
+/obj/item/melee/energy/sword/saber/pirate{
pixel_x = -3
},
-/obj/item/melee/transforming/energy/sword/saber/pirate{
+/obj/item/melee/energy/sword/saber/pirate{
pixel_x = 1
},
-/obj/item/melee/transforming/energy/sword/saber/pirate{
+/obj/item/melee/energy/sword/saber/pirate{
pixel_x = 5
},
-/obj/item/melee/transforming/energy/sword/saber/pirate{
+/obj/item/melee/energy/sword/saber/pirate{
pixel_x = 9
},
/turf/open/floor/vault,
@@ -6036,8 +6036,8 @@
/obj/item/storage/ration/crayons,
/obj/item/storage/ration/vegan_chili,
/obj/item/storage/ration/beef_strips,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"WQ" = (
diff --git a/_maps/_mod_celadon/shuttles/pirate/pirate_ember.dmm b/_maps/_mod_celadon/shuttles/pirate/pirate_ember.dmm
index e6bcbd10405d..caeebdf0869a 100644
--- a/_maps/_mod_celadon/shuttles/pirate/pirate_ember.dmm
+++ b/_maps/_mod_celadon/shuttles/pirate/pirate_ember.dmm
@@ -396,7 +396,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/gambling{
+/obj/effect/spawner/random/entertainment/gambling{
pixel_x = -5;
pixel_y = 4
},
@@ -664,7 +664,7 @@
/area/ship/medical)
"dv" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/waste/grille_or_trash,
/obj/effect/decal/cleanable/robot_debris/old,
/obj/item/stock_parts/capacitor{
pixel_y = -9;
@@ -1274,7 +1274,7 @@
"ge" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/greenglow,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plating,
/area/ship/hallway/central)
"gg" = (
@@ -1836,7 +1836,7 @@
"jv" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/oil,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
},
@@ -2034,7 +2034,7 @@
/area/ship/security/armory)
"kf" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"kk" = (
@@ -2442,11 +2442,11 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier,
@@ -4264,7 +4264,7 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 5
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -4778,7 +4778,6 @@
pixel_x = 1;
pixel_y = -4
},
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/clothing/suit/armor/vest/marine/medium,
/obj/item/storage/belt/military,
/obj/item/clothing/shoes/cowboy/black,
@@ -4796,6 +4795,7 @@
name = "tactical gas mask";
desc = "Improved gas mask utilized by pirates. Still not very good at blocking gas flow, but it's flameproof!"
},
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/carpet/black,
/area/ship/security)
"wZ" = (
@@ -5136,7 +5136,7 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/medical)
"zn" = (
-/obj/effect/spawner/lootdrop/salvage_scanning,
+/obj/effect/spawner/random/salvage_scanning,
/turf/open/floor/plating/airless{
icon_state = "panelscorched"
},
@@ -5758,7 +5758,7 @@
/obj/effect/turf_decal/techfloor/hole{
dir = 4
},
-/obj/effect/spawner/lootdrop/random_machine_circuit_rare,
+/obj/effect/spawner/random/circuit/machine/rare,
/obj/item/stack/ore/salvage/scraptitanium/five,
/turf/open/floor/plating/airless{
icon_state = "panelscorched"
@@ -6094,7 +6094,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/red,
/obj/item/clothing/under/frontiersmen/officer,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/fore)
@@ -7352,7 +7352,7 @@
"IX" = (
/obj/effect/turf_decal/techfloor/corner,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/item/stack/cable_coil/cut/yellow,
/obj/item/stack/rods{
pixel_x = 7;
@@ -7490,7 +7490,7 @@
/turf/open/floor/concrete/tiles,
/area/ship/crew/canteen/kitchen)
"Jx" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/structure/sign/directions/command{
dir = 4;
pixel_y = 42
@@ -8158,7 +8158,7 @@
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/red,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
@@ -8315,9 +8315,6 @@
pixel_x = 1;
pixel_y = -4
},
-/obj/item/clothing/mask/gas/sechailer/balaclava,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/storage/belt/military,
/obj/item/storage/belt/military,
/obj/item/storage/belt/military/army,
@@ -8333,6 +8330,9 @@
/obj/machinery/light_switch{
pixel_y = 24
},
+/obj/item/clothing/mask/balaclava/combat,
+/obj/item/clothing/mask/balaclava/combat,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/dark,
/area/ship/security/armory)
"Mo" = (
@@ -8529,7 +8529,7 @@
},
/area/ship/hallway/central)
"Nr" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
@@ -9376,7 +9376,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/office)
"RY" = (
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_capacitor,
/obj/item/stack/cable_coil/cut/yellow,
/obj/item/stack/rods{
pixel_x = 7
@@ -10093,7 +10093,7 @@
/area/ship/crew/canteen/kitchen)
"VA" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/mafia_outfit,
+/obj/effect/spawner/random/clothing/mafia_outfit,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -10630,7 +10630,7 @@
},
/area/ship/maintenance/port)
"Yj" = (
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "1-8"
diff --git a/_maps/_mod_celadon/shuttles/pirate/pirate_jupiter.dmm b/_maps/_mod_celadon/shuttles/pirate/pirate_jupiter.dmm
index 8fc4a00e6222..866b1195e736 100644
--- a/_maps/_mod_celadon/shuttles/pirate/pirate_jupiter.dmm
+++ b/_maps/_mod_celadon/shuttles/pirate/pirate_jupiter.dmm
@@ -1493,11 +1493,14 @@
/obj/item/storage/box/handcuffs,
/obj/item/clothing/glasses/meson,
/obj/item/megaphone,
-/obj/item/melee/transforming/energy/sword/saber/red,
/obj/item/pinpointer/crew,
/obj/item/clothing/mask/gas/atmos,
/obj/item/clothing/mask/whistle,
/obj/item/radio/intercom/directional/south,
+/obj/item/holo/esword/red{
+ pixel_x = -2;
+ pixel_y = 16
+ },
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"xy" = (
diff --git a/_maps/_mod_celadon/shuttles/pirate/pirate_libertatia.dmm b/_maps/_mod_celadon/shuttles/pirate/pirate_libertatia.dmm
index a132d02c2fcb..c774e5a2f3d7 100644
--- a/_maps/_mod_celadon/shuttles/pirate/pirate_libertatia.dmm
+++ b/_maps/_mod_celadon/shuttles/pirate/pirate_libertatia.dmm
@@ -847,8 +847,8 @@
/area/ship/crew)
"AL" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/item/radio/intercom/directional/north,
/obj/item/lighter{
@@ -881,8 +881,8 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Bw" = (
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/shoes/jackboots,
/obj/item/clothing/shoes/jackboots,
@@ -1575,12 +1575,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
diff --git a/_maps/_mod_celadon/shuttles/pirate/pirate_santiana.dmm b/_maps/_mod_celadon/shuttles/pirate/pirate_santiana.dmm
index 1d88b69e12f8..292eec9ec212 100644
--- a/_maps/_mod_celadon/shuttles/pirate/pirate_santiana.dmm
+++ b/_maps/_mod_celadon/shuttles/pirate/pirate_santiana.dmm
@@ -414,13 +414,13 @@
/area/ship/crew/canteen)
"aY" = (
/obj/structure/rack,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier,
-/obj/item/clothing/head/helmet/operator,
+/obj/item/clothing/suit/armor/vest/frontier,
/obj/item/clothing/suit/pirate,
/obj/effect/decal/cleanable/cobweb,
/obj/machinery/light/small/directional/north,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/gloves/combat,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/plasteel/mono,
/area/ship/security/armory)
"aZ" = (
@@ -661,7 +661,7 @@
/obj/item/clothing/suit/pirate/captain,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/south,
-/obj/item/melee/transforming/energy/sword/saber/pirate/purple,
+/obj/item/melee/energy/sword/saber/pirate/purple,
/obj/item/clothing/gloves/maid,
/turf/open/floor/plasteel/mono,
/area/ship/security/armory)
@@ -794,7 +794,7 @@
/obj/item/clothing/head/pirate/captain,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/grown/tobacco,
-/obj/item/melee/transforming/energy/sword/saber/pirate/red,
+/obj/item/melee/energy/sword/saber/pirate/red,
/obj/item/clothing/head/frontier/admiral,
/turf/open/floor/wood/ebony,
/area/ship/bridge)
@@ -1133,7 +1133,7 @@
/area/ship/medical)
"cD" = (
/obj/structure/table,
-/obj/item/reagent_containers/food/drinks/bottle/molotov,
+/obj/item/reagent_containers/food/drinks/molotov,
/obj/item/ammo_box/magazine/m45{
pixel_x = 8;
pixel_y = -2
@@ -1735,7 +1735,7 @@
"dT" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wood,
-/obj/item/gun/ballistic/revolver/shadow/no_mag{
+/obj/item/gun/ballistic/revolver/shadow/empty{
pixel_x = 2;
pixel_y = 6
},
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_anomaly.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_anomaly.dmm
index a181192910e3..8bc0e5ef65a7 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_anomaly.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_anomaly.dmm
@@ -821,11 +821,11 @@
/area/ship/science)
"nT" = (
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/box,
/turf/open/floor/plasteel/dark_2,
/area/ship/general/cargo/cargo_bay)
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_cepheus.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_cepheus.dmm
index 5aef976a9b3a..5b3e52af1a77 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_cepheus.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_cepheus.dmm
@@ -138,12 +138,6 @@
},
/turf/open/floor/plasteel/white,
/area/ship/science/robotics)
-"cl" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 5
- },
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/science/robotics)
"db" = (
/obj/machinery/door/airlock/external{
dir = 4
@@ -623,12 +617,6 @@
/obj/effect/turf_decal/corner/opaque/solgovblue,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/electrical)
-"jl" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 6
- },
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/security)
"jp" = (
/obj/effect/turf_decal/solgov/all/bottom_left,
/obj/effect/turf_decal/spline/fancy/transparent/solgovblue,
@@ -776,12 +764,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
-"kU" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
- },
-/turf/closed/wall/mineral/titanium,
-/area/ship/cargo)
"kZ" = (
/obj/effect/turf_decal/techfloor/orange{
dir = 4
@@ -1306,9 +1288,6 @@
/turf/open/floor/plasteel/white,
/area/ship/science/robotics)
"qK" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
- },
/turf/closed/wall/mineral/titanium,
/area/ship/cargo)
"qT" = (
@@ -1358,7 +1337,7 @@
/area/ship/hallway/central)
"rr" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/turf_decal/industrial/stand_clear,
/obj/machinery/light/directional/north,
/turf/open/floor/plasteel/patterned/cargo_one,
@@ -1920,7 +1899,7 @@
pixel_x = -1;
pixel_y = 4
},
-/obj/effect/spawner/lootdrop/random_machine_circuit_mech,
+/obj/effect/spawner/random/circuit/machine/mech,
/turf/open/floor/plasteel/white,
/area/ship/science/robotics)
"wK" = (
@@ -2305,6 +2284,9 @@
/turf/open/floor/plating,
/area/ship/security)
"BU" = (
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 4
+ },
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
"BZ" = (
@@ -3509,7 +3491,7 @@
/obj/item/trash/waffles,
/obj/item/trash/chips,
/obj/item/trash/energybar,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/trash/can,
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
@@ -3691,9 +3673,8 @@
},
/obj/item/ammo_box/magazine/modelh,
/obj/item/ammo_box/magazine/modelh,
-/obj/item/ammo_box/ferroslugbox,
-/obj/item/ammo_box/ferroslugbox,
-/obj/item/ammo_box/ferropelletbox,
+/obj/item/storage/box/ammo/ferroslug,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/plasteel/white,
/area/ship/security/armory)
"RN" = (
@@ -3771,7 +3752,7 @@
/obj/structure/closet/firecloset/wall{
pixel_y = -28
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"TJ" = (
@@ -4347,7 +4328,7 @@ Sd
JO
vj
El
-kU
+qK
zQ
zQ
zQ
@@ -4935,7 +4916,7 @@ zQ
(27,1,1) = {"
zQ
zQ
-cl
+Qr
Qr
Qr
qT
@@ -4953,7 +4934,7 @@ Yy
lX
Yy
Yy
-jl
+TU
zQ
zQ
"}
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_chronicle.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_chronicle.dmm
index 482c64e10dd2..2fb45f3a3f70 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_chronicle.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_chronicle.dmm
@@ -4612,11 +4612,11 @@
/obj/structure/closet/cabinet{
name = "ammunition"
},
-/obj/item/ammo_box/amagpellet_claris,
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
+/obj/item/ammo_box/amagpellet_claris,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"TA" = (
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_inkwell.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_inkwell.dmm
index 6f88c1ada615..2432782d7969 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_inkwell.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_inkwell.dmm
@@ -1009,6 +1009,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
+"gQ" = (
+/obj/machinery/porta_turret/ship/solfed/light{
+ dir = 6;
+ id = "inkwell_turrets"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"gS" = (
/obj/machinery/suit_storage_unit/solgov,
/turf/open/floor/wood/walnut,
@@ -1096,8 +1103,9 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"hE" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 6
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 6;
+ id = "inkwell_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -1481,7 +1489,7 @@
/area/ship/cargo)
"jM" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/turf_decal/industrial/stand_clear,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
@@ -1747,9 +1755,10 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid/lethal{
+/obj/machinery/turretid/ship{
pixel_y = 0;
- pixel_x = -26
+ pixel_x = -26;
+ id = "inkwell_turrets"
},
/obj/machinery/newscaster/directional/west{
pixel_y = -16
@@ -2535,7 +2544,7 @@
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"qw" = (
@@ -2634,7 +2643,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"rm" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"rz" = (
@@ -3633,8 +3642,9 @@
/turf/open/floor/plasteel/white,
/area/ship/engineering)
"wT" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 5
+/obj/machinery/porta_turret/ship/solfed/light{
+ dir = 5;
+ id = "inkwell_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -4067,8 +4077,9 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"zN" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
+/obj/machinery/porta_turret/ship/solfed/light{
+ dir = 10;
+ id = "inkwell_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -5110,7 +5121,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/techfloor,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage)
"GO" = (
@@ -5333,7 +5344,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"IC" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
@@ -6012,7 +6023,7 @@
/area/ship/crew/canteen/kitchen)
"Nj" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"Np" = (
@@ -7004,6 +7015,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/ship/crew/canteen/kitchen)
+"US" = (
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 5;
+ id = "inkwell_turrets"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"Ve" = (
/obj/structure/fluff/hedge,
/turf/open/floor/wood/maple,
@@ -7228,8 +7246,9 @@
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"WH" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
+/obj/machinery/porta_turret/ship/solfed/light{
+ dir = 9;
+ id = "inkwell_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -8423,7 +8442,7 @@ MT
sJ
IC
PV
-hE
+gQ
iG
"}
(21,1,1) = {"
@@ -8932,7 +8951,7 @@ FE
nA
yE
AA
-hE
+gQ
iG
iG
"}
@@ -8962,7 +8981,7 @@ iG
iG
iG
iG
-wT
+US
qc
qc
FE
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_lightning_bolt.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_lightning_bolt.dmm
index 4ceb7f534aaf..8e7d169af4b8 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_lightning_bolt.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_lightning_bolt.dmm
@@ -93,8 +93,9 @@
/turf/open/floor/wood,
/area/ship/hallway/central)
"aZ" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 6
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 6;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -219,8 +220,9 @@
/turf/open/floor/engine/hull,
/area/ship/external)
"cQ" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
+/obj/machinery/porta_turret/ship/solfed/heavy{
+ dir = 5;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -291,24 +293,12 @@
req_access = null;
req_one_access = list(1,10)
},
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300_box,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/ferropelletbox,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/effect/turf_decal/siding/thinplating/dark/end{
@@ -416,8 +406,9 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"eU" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 1
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 9;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -429,8 +420,9 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"fj" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 9;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -778,12 +770,6 @@
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/head/helmet/solfedm11,
/obj/item/gun/ballistic/automatic/powered/gauss/claris,
-/obj/item/ammo_box/ferropelletbox,
-/obj/item/ammo_box/amagpellet_claris,
-/obj/item/ammo_box/amagpellet_claris,
-/obj/item/ammo_box/amagpellet_claris,
-/obj/item/ammo_box/amagpellet_claris,
-/obj/item/ammo_box/amagpellet_claris,
/obj/item/grenade/c4/x4,
/obj/item/grenade/c4/x4,
/obj/item/grenade/syndieminibomb{
@@ -810,6 +796,11 @@
pixel_x = -7;
pixel_y = 3
},
+/obj/item/storage/box/ammo/ferropellet,
+/obj/item/ammo_box/amagpellet_claris,
+/obj/item/ammo_box/amagpellet_claris,
+/obj/item/ammo_box/amagpellet_claris,
+/obj/item/ammo_box/amagpellet_claris,
/turf/open/floor/plasteel/white,
/area/ship/security/prison)
"ky" = (
@@ -908,6 +899,13 @@
/obj/item/tank/internals/oxygen,
/turf/open/floor/plasteel/white,
/area/ship/storage)
+"ls" = (
+/obj/machinery/porta_turret/ship/solfed/heavy{
+ dir = 6;
+ id = "bolt_turrets"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"ly" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -1420,7 +1418,7 @@
req_access_txt = "5";
name = "Stormtrooper door"
},
-/obj/item/gun/ballistic/automatic/assault/p16,
+/obj/item/gun/ballistic/automatic/assault/cm82,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
@@ -1452,7 +1450,7 @@
req_access_txt = "5";
name = "Stormtrooper door"
},
-/obj/item/gun/ballistic/automatic/assault/p16,
+/obj/item/gun/ballistic/automatic/assault/cm82,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
@@ -1770,7 +1768,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 4
},
@@ -1935,10 +1933,11 @@
/obj/item/ammo_box/magazine/gar,
/obj/item/ammo_box/magazine/gar,
/obj/item/ammo_box/magazine/gar,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
+/obj/item/storage/box/ammo/ferrolance,
+/obj/item/storage/box/ammo/ferrolance,
+/obj/item/storage/box/ammo/ferrolance,
+/obj/item/storage/box/ammo/ferrolance,
+/obj/item/storage/box/ammo/ferrolance,
/turf/open/floor/plasteel/white,
/area/ship/security/prison)
"wM" = (
@@ -2381,7 +2380,6 @@
/obj/item/clothing/neck/cloak/solgovcap,
/obj/item/binoculars,
/obj/item/ammo_box/magazine/gar,
-/obj/item/ammo_box/ferrolancebox,
/obj/item/hatchet/wooden{
name = "Tomahawk";
force = 20;
@@ -2394,8 +2392,7 @@
icon_state = "captainpack";
item_state = "captainpack"
},
-/obj/item/gun/ballistic/automatic/powered/gauss/gar{
- },
+/obj/item/gun/ballistic/automatic/powered/gauss/gar,
/turf/open/floor/carpet/royalblue,
/area/ship/crew/office)
"BJ" = (
@@ -2511,7 +2508,7 @@
/obj/effect/turf_decal/corner/opaque/solgovblue{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/ash,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
@@ -2892,8 +2889,9 @@
/turf/open/floor/wood/ebony,
/area/ship/hallway/central)
"HD" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 10;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -3582,8 +3580,9 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/janitor)
"Re" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 5
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 5;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -4155,8 +4154,9 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/janitor)
"VD" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 10;
+ id = "bolt_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -4475,8 +4475,9 @@
name = "Operations"
},
/obj/effect/turf_decal/siding/wood,
-/obj/machinery/turretid/lethal{
- pixel_y = -27
+/obj/machinery/turretid/ship{
+ pixel_y = -27;
+ id = "bolt_turrets"
},
/turf/open/floor/wood,
/area/ship/bridge)
@@ -4596,12 +4597,12 @@
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/head/helmet/solfedm11,
/obj/item/gun/ballistic/rifle/scout,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/a300,
-/obj/item/ammo_box/a300,
-/obj/item/ammo_box/a300,
-/obj/item/ammo_box/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/a300,
/obj/item/ammo_box/a300,
/obj/item/ammo_box/a300,
/turf/open/floor/plasteel/white,
@@ -4824,7 +4825,7 @@ Gw
(9,1,1) = {"
PX
PX
-cQ
+eU
az
ly
hT
@@ -5299,7 +5300,7 @@ mt
(34,1,1) = {"
PX
PX
-Re
+cQ
GC
GC
Os
@@ -5313,7 +5314,7 @@ bD
iD
MJ
bD
-aZ
+ls
"}
(35,1,1) = {"
PX
@@ -5435,7 +5436,7 @@ PX
PX
PX
PX
-Re
+cQ
GC
GC
PX
@@ -5443,7 +5444,7 @@ PX
PX
bD
bD
-aZ
+ls
PX
PX
PX
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_paracelsus.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_paracelsus.dmm
index e0e457ce6a16..44be4b155146 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_paracelsus.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_paracelsus.dmm
@@ -895,14 +895,18 @@
/area/ship/hallway/port)
"jh" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
- },
-/obj/item/reagent_containers/medigel/sterilizine,
/obj/machinery/light/directional/west,
/obj/structure/sign/poster/solgov/random{
pixel_y = 30
},
+/obj/item/storage/case/surgery{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = 6;
+ pixel_y = 3
+ },
/turf/open/floor/mineral/titanium/tiled/white,
/area/ship/medical/surgery)
"jj" = (
@@ -1682,11 +1686,15 @@
/area/ship/cargo)
"qH" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
- },
-/obj/item/reagent_containers/medigel/sterilizine,
/obj/machinery/light/directional/east,
+/obj/item/storage/case/surgery{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = 8;
+ pixel_y = 3
+ },
/turf/open/floor/mineral/titanium/tiled/white,
/area/ship/medical/surgery)
"qL" = (
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_saber.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_saber.dmm
index 6040f930ae38..1a1efb0f8fd3 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_saber.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_saber.dmm
@@ -123,7 +123,6 @@
},
/obj/item/toy/plush/lizardplushie,
/obj/effect/gibspawner/generic,
-/obj/item/paper/fluff/awaymissions/moonoutpost19/goodbye_note,
/obj/item/clothing/head/solgov_surgery,
/turf/open/floor/plasteel/mono/white,
/area/ship/medical/surgery)
@@ -468,13 +467,13 @@
/obj/item/clothing/head/solfed/elysium/turban,
/obj/item/clothing/gloves/combat,
/obj/item/storage/belt/military/solfed/elysium,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/item/clothing/suit/armor/solfed/elysium/jacket,
/obj/item/storage/backpack/messenger/sec,
/obj/item/clothing/accessory/armband/deputy,
/obj/item/clothing/shoes/combat,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/carpet/green,
/area/ship/security/range)
"dI" = (
@@ -638,7 +637,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -655,6 +653,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"ex" = (
@@ -750,8 +749,8 @@
/obj/machinery/microwave{
pixel_y = 2
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
@@ -1855,19 +1854,19 @@
dir = 2;
req_one_access_txt = "2"
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -11;
pixel_y = 9
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = 4;
pixel_y = -6
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -2;
pixel_y = -1
},
-/obj/item/gun/ballistic/automatic/assault/p16{
+/obj/item/gun/ballistic/automatic/assault/cm82{
pixel_x = -7;
pixel_y = 5
},
@@ -1907,7 +1906,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -1921,6 +1919,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"oQ" = (
@@ -2012,7 +2011,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood/walnut,
/area/ship/engineering)
"ps" = (
@@ -2092,7 +2091,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart,
/obj/item/paper/pamphlet,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/wood/yew,
/area/ship/crew/office)
"qi" = (
@@ -2326,7 +2325,7 @@
pixel_y = -28;
pixel_x = -5
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/trimline/opaque/blue/warning{
dir = 10
},
@@ -3009,9 +3008,9 @@
dir = 2;
req_one_access_txt = "2"
},
-/obj/item/ammo_box/a556_42,
-/obj/item/ammo_box/a556_42,
-/obj/item/ammo_box/a556_42,
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_42,
/turf/open/floor/wood/ebony,
/area/ship/security/armory)
"xH" = (
@@ -3164,7 +3163,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -3179,6 +3177,7 @@
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
/obj/machinery/light/directional/north,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"yH" = (
@@ -3423,7 +3422,6 @@
/obj/item/clothing/head/solfed/elysium/beret,
/obj/item/clothing/head/shemag/green,
/obj/item/melee/classic_baton/telescopic,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/secure_closet{
icon_state = "cap";
@@ -3441,6 +3439,7 @@
},
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/carpet/green,
/area/ship/crew/solgov)
"Bb" = (
@@ -3460,7 +3459,7 @@
/obj/structure/closet/firecloset/wall{
pixel_y = -28
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/corner/opaque/solgovgold{
dir = 10
},
@@ -3566,7 +3565,6 @@
},
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
-/obj/item/clothing/mask/gas/sechailer/balaclava,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/box/red,
/obj/item/clothing/gloves/combat,
@@ -3575,6 +3573,7 @@
},
/obj/item/clothing/head/helmet/solfedm11/elysium_wraps,
/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/mask/balaclava/combat,
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
"BX" = (
@@ -3899,15 +3898,15 @@
/obj/item/ammo_box/magazine/p16,
/obj/item/ammo_box/magazine/p16,
/obj/effect/turf_decal/box/red,
-/obj/item/ammo_box/a858{
+/obj/item/storage/box/ammo/a858{
pixel_x = 6;
pixel_y = -8
},
-/obj/item/ammo_box/a858{
+/obj/item/storage/box/ammo/a858{
pixel_x = 3;
pixel_y = -4
},
-/obj/item/ammo_box/a858,
+/obj/item/storage/box/ammo/a858,
/turf/open/floor/wood/ebony,
/area/ship/security/armory)
"DW" = (
@@ -4685,22 +4684,22 @@
/obj/machinery/airalarm/directional/north,
/obj/structure/rack,
/obj/structure/rack,
-/obj/item/ammo_box/c556mmHITP/rubbershot{
- pixel_x = -7;
- pixel_y = 10
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/storage/box/ammo/c556mm_rubber{
+ pixel_x = 4;
+ pixel_y = 7
},
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = -1;
- pixel_y = 6
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = -2
},
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = 6;
- pixel_y = 1
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = 2
},
-/obj/effect/decal/cleanable/cobweb,
-/obj/item/ammo_box/c556mmHITP{
- pixel_x = 6;
- pixel_y = 1
+/obj/item/storage/box/ammo/c556mm{
+ pixel_x = -6;
+ pixel_y = 7
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/security)
@@ -5204,14 +5203,14 @@
/obj/structure/table/reinforced{
color = "#c1b6a5"
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -4;
pixel_y = 7
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_y = 11
},
-/obj/item/reagent_containers/food/snacks/rationpack{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -1;
pixel_y = 1
},
@@ -5313,7 +5312,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/glowstick{
+/obj/effect/spawner/random/decoration/glowstick{
pixel_x = 5;
pixel_y = 9
},
diff --git a/_maps/_mod_celadon/shuttles/solfed/solfed_tomahawk.dmm b/_maps/_mod_celadon/shuttles/solfed/solfed_tomahawk.dmm
index 6adf6ea2bbb1..eb1fa8e84ec0 100644
--- a/_maps/_mod_celadon/shuttles/solfed/solfed_tomahawk.dmm
+++ b/_maps/_mod_celadon/shuttles/solfed/solfed_tomahawk.dmm
@@ -89,8 +89,9 @@
/turf/open/floor/wood,
/area/ship/hallway/central)
"aZ" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 6
+/obj/machinery/porta_turret/ship/solfed/heavy{
+ dir = 6;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -221,8 +222,9 @@
/turf/open/floor/engine/hull,
/area/ship/external)
"cQ" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 9;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -418,8 +420,9 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"eU" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 1
+/obj/machinery/porta_turret/ship/solfed/heavy{
+ dir = 5;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -431,8 +434,9 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"fj" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 9
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 9;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -459,9 +463,9 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"fO" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/structure/closet/crate/trashcart,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
@@ -474,8 +478,8 @@
/obj/structure/sink{
pixel_y = 13
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/white,
/area/ship/security/prison)
"fY" = (
@@ -800,14 +804,15 @@
pixel_y = 32
},
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 13
- },
-/obj/item/clothing/suit/apron/surgical,
-/obj/item/clothing/mask/surgical,
/obj/effect/turf_decal/trimline/opaque/solgovblue/filled/line{
dir = 1
},
+/obj/item/storage/case/surgery{
+ pixel_x = 5;
+ pixel_y = 10
+ },
+/obj/item/clothing/mask/surgical,
+/obj/item/clothing/suit/apron/surgical,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"kM" = (
@@ -1702,7 +1707,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 4
},
@@ -2364,7 +2369,6 @@
/obj/item/clothing/neck/cloak/solgovcap,
/obj/item/binoculars,
/obj/item/ammo_box/magazine/gar,
-/obj/item/ammo_box/ferrolancebox,
/obj/item/hatchet/wooden{
name = "Tomahawk";
force = 20;
@@ -2378,6 +2382,7 @@
item_state = "captainpack"
},
/obj/item/gun/ballistic/automatic/powered/gauss/gar,
+/obj/item/storage/box/ammo/ferrolance,
/turf/open/floor/carpet/royalblue,
/area/ship/crew/office)
"BJ" = (
@@ -2478,7 +2483,7 @@
/obj/effect/turf_decal/corner/opaque/solgovblue{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/ash,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
@@ -2895,8 +2900,8 @@
},
/obj/item/ammo_box/magazine/gar,
/obj/item/ammo_box/magazine/gar,
-/obj/item/ammo_box/ferrolancebox,
-/obj/item/ammo_box/ferrolancebox,
+/obj/item/storage/box/ammo/ferrolance,
+/obj/item/storage/box/ammo/ferrolance,
/turf/open/floor/plasteel/white,
/area/ship/security/prison)
"Gw" = (
@@ -2950,8 +2955,9 @@
/turf/open/floor/wood/ebony,
/area/ship/hallway/central)
"HD" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 10;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -3036,6 +3042,13 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/plasteel/white,
/area/ship/security/prison)
+"Jf" = (
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 6;
+ id = "tomahawk_turrets"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"Jk" = (
/obj/structure/table/reinforced,
/obj/item/gps{
@@ -3678,8 +3691,9 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/janitor)
"Re" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 5
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 5;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -4340,8 +4354,9 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/janitor)
"VD" = (
-/obj/machinery/porta_turret/ship/faction/solgov{
- dir = 10
+/obj/machinery/porta_turret/ship/solfed{
+ dir = 10;
+ id = "tomahawk_turrets"
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
@@ -4684,8 +4699,9 @@
name = "Operations"
},
/obj/effect/turf_decal/siding/wood,
-/obj/machinery/turretid/lethal{
- pixel_y = -27
+/obj/machinery/turretid/ship{
+ pixel_y = -27;
+ id = "tomahawk_turrets"
},
/turf/open/floor/wood,
/area/ship/bridge)
@@ -5221,7 +5237,7 @@ rf
FB
rf
rf
-aZ
+Jf
"}
(18,1,1) = {"
PX
@@ -5378,7 +5394,7 @@ PX
(26,1,1) = {"
PX
PX
-eU
+cQ
bC
aP
hR
@@ -5530,7 +5546,7 @@ mt
(34,1,1) = {"
PX
PX
-Re
+eU
GC
GC
Os
@@ -5666,7 +5682,7 @@ PX
PX
PX
PX
-Re
+eU
Qz
GC
PX
diff --git a/_maps/_mod_celadon/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/_mod_celadon/shuttles/subshuttles/independent_sugarcube.dmm
index ea051d59dbd0..83237bcac88f 100644
--- a/_maps/_mod_celadon/shuttles/subshuttles/independent_sugarcube.dmm
+++ b/_maps/_mod_celadon/shuttles/subshuttles/independent_sugarcube.dmm
@@ -56,8 +56,8 @@
/turf/open/floor/plating,
/area/ship/engineering)
"h" = (
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/trash/cheesie,
/obj/item/trash/cheesie,
/obj/item/trash/candy,
@@ -259,8 +259,8 @@
/obj/item/circuitboard/machine/autolathe,
/obj/item/pickaxe/improvised,
/obj/item/pickaxe/improvised,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/power/terminal{
dir = 8
},
diff --git a/_maps/_mod_celadon/shuttles/subshuttles/nanotrasen_rider.dmm b/_maps/_mod_celadon/shuttles/subshuttles/nanotrasen_rider.dmm
index ba3e47c872c6..dcc1196081f7 100644
--- a/_maps/_mod_celadon/shuttles/subshuttles/nanotrasen_rider.dmm
+++ b/_maps/_mod_celadon/shuttles/subshuttles/nanotrasen_rider.dmm
@@ -1,10 +1,5 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"b" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 1;
- pixel_x = 0;
- pixel_y = 5
- },
/obj/effect/turf_decal/siding/red{
dir = 2;
color = "#212d60"
@@ -14,18 +9,22 @@
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"c" = (
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
-"f" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4;
- name = "Kovrik";
- pixel_x = 0;
- pixel_y = 6
+"e" = (
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 9;
+ id = "ntrider"
},
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
+"f" = (
/obj/structure/closet/secure_closet/wall/directional/north{
icon_state = "sec_wall";
pixel_x = 0;
@@ -40,11 +39,18 @@
/obj/item/storage/box/bodybags,
/obj/machinery/button/door{
id = "Torpeda_windows";
- name = "Window shutters";
+ name = "window shutters";
pixel_x = 24;
pixel_y = 24
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "subshuttle kovrik"
+ },
+/obj/item/storage/firstaid,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"h" = (
@@ -77,7 +83,7 @@
dir = 4;
color = "#212d60"
},
-/obj/structure/cable/yellow{
+/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel/lightdark,
@@ -91,19 +97,17 @@
dir = 4;
color = "#212d60"
},
-/obj/structure/cable/yellow{
+/obj/machinery/light/floor,
+/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/light/floor,
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"o" = (
-/obj/machinery/power/shuttle/engine/electric/bad{
- dir = 4
- },
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/power/shuttle/engine/electric,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"r" = (
@@ -131,8 +135,9 @@
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"u" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen{
- dir = 1
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 5;
+ id = "ntrider"
},
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -175,9 +180,6 @@
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"y" = (
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
/obj/effect/turf_decal/siding/red{
dir = 4;
color = "#212d60";
@@ -192,6 +194,9 @@
pixel_x = 1;
pixel_y = -12
},
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"z" = (
@@ -202,29 +207,24 @@
dir = 8;
color = "#212d60"
},
-/obj/structure/closet/emcloset/wall/directional/west,
-/obj/item/tank/internals/emergency_oxygen,
/obj/effect/turf_decal/trimline/opaque/ntblue,
-/turf/open/floor/plasteel/lightdark,
-/area/ship/bridge)
-"A" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/siding/red{
- dir = 1;
- color = "#212d60"
- },
-/obj/effect/turf_decal/trimline/opaque/ntblue,
-/obj/structure/chair/comfy/shuttle{
- dir = 2;
- pixel_x = 0;
- pixel_y = 7
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/tank/internals/emergency_oxygen/double,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/structure/closet/wall/chem/directional/west{
+ icon_state = "emergency_wall";
+ name = "internals closet"
},
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"B" = (
-/obj/machinery/porta_turret/ship/faction/nanotrasen,
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 10;
+ id = "ntrider"
+ },
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
"C" = (
@@ -254,23 +254,13 @@
dir = 2;
color = "#212d60"
},
+/obj/effect/turf_decal/trimline/opaque/ntblue,
/obj/structure/chair/comfy/shuttle{
- dir = 1;
- pixel_x = 0;
- pixel_y = 5
+ dir = 1
},
-/obj/effect/turf_decal/trimline/opaque/ntblue,
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"H" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 2;
- pixel_x = 0;
- pixel_y = 7
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/siding/red{
dir = 1;
color = "#212d60"
@@ -280,6 +270,14 @@
pixel_y = 38
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 2;
+ pixel_x = 1;
+ pixel_y = 6
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"I" = (
@@ -363,6 +361,13 @@
},
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
+"P" = (
+/obj/machinery/porta_turret/ship/nt/heavy{
+ dir = 6;
+ id = "ntrider"
+ },
+/turf/closed/wall/mineral/titanium,
+/area/ship/bridge)
"Q" = (
/obj/effect/turf_decal/siding/red{
dir = 2;
@@ -370,13 +375,12 @@
},
/obj/machinery/turretid{
pixel_x = -7;
- pixel_y = -30
+ pixel_y = -30;
+ id = "ntrider"
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
/obj/structure/chair/comfy/shuttle{
- dir = 1;
- pixel_x = 0;
- pixel_y = 5
+ dir = 1
},
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
@@ -384,19 +388,19 @@
/turf/template_noop,
/area/template_noop)
"S" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 2;
- pixel_x = 1;
- pixel_y = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
/obj/effect/turf_decal/siding/red{
dir = 1;
color = "#212d60"
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 2;
+ pixel_x = 1;
+ pixel_y = 6
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"T" = (
@@ -406,15 +410,15 @@
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
/obj/effect/turf_decal/siding/red{
dir = 4;
color = "#212d60";
icon_state = "siding_thinplating_corner"
},
/obj/machinery/light/floor,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"U" = (
@@ -440,15 +444,12 @@
dir = 8;
color = "#212d60"
},
-/obj/machinery/power/smes/engineering,
+/obj/machinery/power/smes/engineering{
+ charge = 4e+006
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
"W" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4;
- pixel_x = 0;
- pixel_y = 7
- },
/obj/effect/turf_decal/siding/red{
dir = 2;
color = "#212d60";
@@ -460,7 +461,7 @@
},
/obj/machinery/button/door{
id = "Doorss";
- name = "First doors";
+ name = "airlock shutters";
pixel_x = -2;
pixel_y = -24;
dir = 1
@@ -471,6 +472,9 @@
dir = 1
},
/obj/effect/turf_decal/trimline/opaque/ntblue,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
/turf/open/floor/plasteel/lightdark,
/area/ship/bridge)
@@ -483,7 +487,7 @@ o
c
"}
(2,1,1) = {"
-u
+e
N
V
z
@@ -501,7 +505,7 @@ c
(4,1,1) = {"
c
h
-A
+S
F
h
c
@@ -536,7 +540,7 @@ h
f
W
h
-B
+P
"}
(9,1,1) = {"
R
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_aegis.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_aegis.dmm
index 75f5651008bf..79eabbdfe1ce 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_aegis.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_aegis.dmm
@@ -40,7 +40,6 @@
req_access_txt = "20"
},
/obj/item/storage/belt/sabre,
-/obj/item/reagent_containers/glass/beaker/unholywater,
/obj/item/clothing/mask/breath/suns,
/obj/item/clothing/gloves/suns/captain,
/obj/item/clothing/neck/cloak/suns/cap,
@@ -742,7 +741,7 @@
/obj/item/stack/sheet/mineral/uranium/five{
pixel_x = 2
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/catwalk/over,
/obj/effect/decal/cleanable/oil,
/obj/item/stack/sheet/mineral/plasma/five,
@@ -869,9 +868,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/trimline/opaque/brown/filled/line,
/obj/structure/table/wood/reinforced,
/obj/item/food/cake/bscc{
@@ -1971,8 +1970,8 @@
/area/ship/engineering)
"qA" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/plasma,
/obj/effect/decal/cleanable/glass,
/obj/item/circuitboard/machine/techfab/department/service,
@@ -2107,7 +2106,6 @@
/obj/item/clothing/shoes/laceup/suns,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/head/suns/surgery,
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/hypospray/mkii,
/obj/item/storage/firstaid/regular,
/obj/item/clothing/shoes/sneakers/suns,
@@ -2122,6 +2120,7 @@
/obj/item/clothing/suit/toggle/labcoat/suns/doctorlabcoat,
/obj/item/defibrillator/loaded,
/obj/item/flashlight/pen,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"rO" = (
@@ -3186,7 +3185,7 @@
pixel_x = 6
},
/obj/item/stack/sheet/metal/fifty,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/catwalk/over,
/obj/item/circuitboard/machine/pacman,
/obj/item/circuitboard/machine/pacman/super,
@@ -3612,7 +3611,6 @@
},
/obj/item/hypospray/mkii,
/obj/item/clothing/mask/surgical,
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/storage/firstaid/regular,
/obj/item/clothing/glasses/hud/health/suns,
/obj/item/clothing/head/suns/surgery,
@@ -3629,6 +3627,7 @@
/obj/item/defibrillator/loaded,
/obj/item/flashlight/pen,
/obj/item/flashlight/pen,
+/obj/item/storage/case/surgery,
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"JY" = (
@@ -3747,8 +3746,8 @@
/area/ship/crew/janitor)
"KR" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/plasma,
/obj/effect/decal/cleanable/glass,
/obj/item/poster/random_contraband,
@@ -4402,7 +4401,7 @@
/area/ship/engineering)
"QN" = (
/obj/machinery/airalarm/directional/north,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/box,
/obj/machinery/light/directional/west,
/turf/open/floor/mineral/plastitanium/red,
@@ -4545,9 +4544,9 @@
},
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/costume,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/clothing/costume,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/turf_decal/corner_techfloor_grid/diagonal{
dir = 4
},
@@ -4647,7 +4646,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"Tw" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/box,
/obj/structure/cable/yellow{
icon_state = "1-2"
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
index 6617073ca6a7..a2d121e56071 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
@@ -52,8 +52,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"bX" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 10;
+ id = "kansatsu_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -474,8 +475,9 @@
dir = 4;
name = "Captain's Chair"
},
-/obj/machinery/turretid{
- pixel_y = 24
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "kansatsu_turrets"
},
/obj/effect/turf_decal/trimline/opaque/bar,
/turf/open/floor/plasteel/dark,
@@ -501,8 +503,9 @@
/turf/open/floor/plating,
/area/ship/cargo)
"lg" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 9
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 9;
+ id = "kansatsu_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1001,10 +1004,9 @@
/turf/template_noop,
/area/template_noop)
"xc" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- pixel_x = 7;
- dir = 4;
- pixel_y = 4
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 6;
+ id = "kansatsu_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1040,12 +1042,12 @@
pixel_y = 1
},
/obj/structure/closet/crate/wooden,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"xF" = (
@@ -1289,12 +1291,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/crew)
-"Do" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"DG" = (
/obj/machinery/advanced_airlock_controller{
pixel_x = -27
@@ -1333,6 +1329,7 @@
/obj/item/clothing/glasses/thermal/syndi,
/obj/item/clothing/glasses/thermal/syndi,
/obj/item/card/emag/limited,
+/obj/item/gun/energy/plasmacutter/adv,
/obj/item/toy/plush/goatplushie/angry{
name = "goat plushie"
},
@@ -1571,14 +1568,6 @@
/obj/machinery/power/ship_gravity,
/turf/open/floor/plating,
/area/ship/engineering)
-"KS" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- pixel_x = 7;
- dir = 4;
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
"Lm" = (
/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/closed/wall/mineral/plastitanium,
@@ -1985,8 +1974,9 @@
/turf/open/floor/carpet/red_gold,
/area/ship/crew)
"WB" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 5;
+ id = "kansatsu_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2031,7 +2021,6 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/binoculars,
-/obj/item/camera_bug,
/obj/item/melee/classic_baton/telescopic,
/obj/item/melee/classic_baton/telescopic,
/obj/item/melee/classic_baton,
@@ -2039,11 +2028,12 @@
/obj/item/gun/energy/disabler,
/obj/item/gun/energy/disabler,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
-/obj/item/ammo_box/c10mm/rubbershot,
+/obj/item/storage/box/ammo/c10mm_rubber,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/c10mm/ap,
+/obj/item/storage/box/ammo/c10mm_ap,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/book/granter/martial/cqc,
+/obj/item/camera_bug,
/turf/open/floor/plasteel/stairs{
dir = 4
},
@@ -2096,7 +2086,7 @@
"Yp" = (
/obj/structure/window/reinforced/spawner,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/stack/marker_beacon/thirty,
/obj/effect/turf_decal/box,
/obj/item/stack/sheet/metal/twenty{
@@ -2117,6 +2107,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/item/storage/backpack/satchel/flat/cthonian,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
"YX" = (
@@ -2278,7 +2269,7 @@ Ur
DN
DN
DN
-Do
+xc
wQ
"}
(8,1,1) = {"
@@ -2485,7 +2476,7 @@ wQ
wQ
wQ
wQ
-KS
+WB
YX
YX
YX
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_remora.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_remora.dmm
index 2911552027a4..279c66b73f74 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_remora.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_cybersun_remora.dmm
@@ -44,7 +44,7 @@
},
/obj/structure/closet/crate/bin,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -82,12 +82,6 @@
/obj/item/clothing/suit/space/hardsuit/syndi/cybersun,
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
-"aq" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 9
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"ar" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/hallway/aft)
@@ -135,7 +129,6 @@
/area/ship/crew/dorm)
"ay" = (
/obj/structure/table,
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm)
@@ -239,7 +232,7 @@
"aG" = (
/obj/structure/catwalk/over,
/obj/machinery/firealarm/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"aH" = (
@@ -269,12 +262,6 @@
/obj/effect/turf_decal/corner/transparent/purple/mono,
/turf/open/floor/plasteel/mono/white,
/area/ship/science)
-"aK" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"aL" = (
/obj/effect/turf_decal/corner/transparent/purple/border{
icon_state = "bordercolor";
@@ -311,12 +298,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/aft)
-"aO" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 10
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"aP" = (
/obj/machinery/camera/xray,
/obj/machinery/vending/boozeomat,
@@ -346,7 +327,6 @@
/obj/item/clothing/under/rank/rnd/scientist/skirt,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/glasses/science/prescription,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/shoes/combat,
/turf/open/floor/plasteel/mono/white,
/area/ship/science)
@@ -476,10 +456,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/bridge)
-"be" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic,
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"bf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/airalarm/directional/east,
@@ -523,7 +499,7 @@
icon_state = "manifold-3";
dir = 8
},
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"bl" = (
@@ -557,7 +533,6 @@
/obj/structure/window/reinforced,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/glasses/science/prescription,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/shoes/combat,
/turf/open/floor/plasteel/mono/white,
/area/ship/science)
@@ -672,7 +647,7 @@
/obj/item/cigbutt/cigarbutt,
/obj/item/cigbutt,
/obj/item/cigbutt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/cigbutt,
/obj/item/cigbutt,
/obj/item/cigbutt,
@@ -821,7 +796,7 @@
/obj/structure/closet/crate/bin,
/obj/machinery/airalarm/directional/north,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/wood/ebony,
/area/ship/crew/dorm)
"bR" = (
@@ -1091,7 +1066,7 @@
},
/obj/item/cigbutt/cigarbutt,
/obj/item/cigbutt/cigarbutt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/broken_bottle,
/turf/open/floor/plasteel/white,
/area/ship/science)
@@ -1470,7 +1445,7 @@
/obj/effect/turf_decal/corner/transparent/syndiered/mono,
/obj/structure/closet/crate/bin,
/obj/item/cigbutt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/cigbutt,
/obj/item/cigbutt,
/turf/open/floor/plasteel/mono/dark,
@@ -1752,7 +1727,7 @@
},
/obj/structure/closet/crate/bin,
/obj/machinery/firealarm/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/newscaster/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -1767,12 +1742,11 @@
pixel_x = -19;
pixel_y = 13
},
-/obj/effect/spawner/lootdrop/organ_spawner,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"dF" = (
/obj/structure/table/chem,
-/obj/effect/spawner/lootdrop/memeorgans,
+/obj/effect/spawner/random/medical/memeorgans,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"dG" = (
@@ -2485,11 +2459,10 @@
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/c10mm,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/magazine/m556_42_hydra,
/obj/item/ammo_box/magazine/m556_42_hydra,
-/obj/item/ammo_box/c556mmHITP,
/obj/item/storage/box/lethalshot{
pixel_x = 4;
pixel_y = -7
@@ -2623,11 +2596,10 @@
/obj/item/clothing/head/helmet/space/plasmaman/paramedic,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/glasses/hud/health/sunglasses,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/gloves/fingerless,
/obj/item/clothing/shoes/combat,
/obj/item/defibrillator/compact/combat/loaded,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -2842,10 +2814,7 @@
},
/obj/structure/closet/crate/bin,
/obj/item/clothing/head/kitty,
-/obj/item/clothing/head/maidheadband/syndicate,
-/obj/item/clothing/gloves/combat/maid,
/obj/item/clothing/neck/maid,
-/obj/item/clothing/under/syndicate/skirt/maid,
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -3033,12 +3002,11 @@
/obj/item/clothing/head/helmet/space/plasmaman/paramedic,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/glasses/hud/health/sunglasses,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/gloves/fingerless,
/obj/item/clothing/shoes/combat,
/obj/machinery/firealarm/directional/south,
/obj/item/defibrillator/compact/combat/loaded,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -3128,7 +3096,7 @@
/obj/machinery/firealarm/directional/south{
pixel_x = 10
},
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/radio/intercom/wideband/directional/south{
pixel_x = -6
},
@@ -3258,7 +3226,7 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"gb" = (
@@ -3548,7 +3516,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/electrical)
"gB" = (
@@ -3589,12 +3557,6 @@
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
-"gF" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 6
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
"gG" = (
/obj/structure/catwalk/over,
/obj/structure/cable{
@@ -3866,7 +3828,7 @@
icon_state = "0-4"
},
/obj/machinery/light/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"hc" = (
@@ -4082,7 +4044,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"jX" = (
@@ -4204,7 +4166,7 @@
icon_state = "bordercolor";
dir = 4
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"qK" = (
@@ -4307,7 +4269,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"BE" = (
@@ -4346,7 +4308,7 @@
icon_state = "bordercolor";
dir = 4
},
-/obj/effect/spawner/lootdrop/destructive_anal_loot,
+/obj/effect/spawner/random/destructive_anal_loot,
/obj/item/kirbyplants/random,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -4402,7 +4364,7 @@
icon_state = "bordercolor";
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/structure/closet/crate/bin,
/obj/item/cigbutt,
/obj/item/cigbutt,
@@ -4487,7 +4449,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"QF" = (
@@ -4586,7 +4548,7 @@
"YN" = (
/obj/effect/turf_decal/corner/transparent/syndiered/mono,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/cigbutt,
/obj/item/cigbutt,
/turf/open/floor/plasteel/mono/dark,
@@ -4610,11 +4572,10 @@
/obj/item/clothing/head/helmet/space/plasmaman/paramedic,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/glasses/hud/health/sunglasses,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/gloves/fingerless,
/obj/item/clothing/shoes/combat,
/obj/item/defibrillator/compact/combat/loaded,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -4638,12 +4599,12 @@ aa
aa
aa
aa
-aq
+aW
aC
aC
aC
aC
-aO
+aW
aa
aa
aa
@@ -4652,12 +4613,12 @@ aa
aa
aa
aa
-aq
+aW
fU
fU
fU
fU
-aO
+aW
"}
(2,1,1) = {"
aa
@@ -4969,7 +4930,7 @@ aW
fE
fE
fD
-gF
+aW
"}
(14,1,1) = {"
aa
@@ -5001,7 +4962,7 @@ aa
aa
aa
aa
-aq
+aW
aj
aj
aj
@@ -5012,7 +4973,7 @@ aj
dx
dN
ek
-be
+aW
fa
fa
fa
@@ -5125,7 +5086,7 @@ ac
eK
eK
gV
-aO
+aW
"}
(20,1,1) = {"
aa
@@ -5547,7 +5508,7 @@ eo
aa
aa
aa
-aK
+aW
af
af
af
@@ -5578,7 +5539,7 @@ aa
aa
aa
aa
-aK
+aW
cD
cD
cD
@@ -5593,5 +5554,5 @@ eo
eo
eo
eo
-gF
+aW
"}
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_elegia.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_elegia.dmm
index 2ead1e0e90e6..e480bcb3d5af 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_elegia.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_elegia.dmm
@@ -493,8 +493,9 @@
/turf/open/floor/carpet/blue,
/area/ship/crew/dorm)
"iT" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 1
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 9;
+ id = "elegia_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -1065,6 +1066,13 @@
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/maintenance/port)
+"sp" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 8;
+ id = "elegia_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"sH" = (
/obj/structure/table/wood,
/obj/item/spacecash/bundle/c1000{
@@ -1108,11 +1116,11 @@
pixel_x = -28
},
/obj/structure/table/reinforced,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/clothing/head/helmet/operator,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/suit/armor/vest/syndie,
/obj/effect/turf_decal/industrial/traffic/full,
+/obj/item/clothing/head/helmet/swat,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
"tz" = (
@@ -1617,6 +1625,13 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/ship/medical)
+"Ai" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 10;
+ id = "elegia_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"AC" = (
/obj/structure/bed,
/obj/item/bedsheet/syndie,
@@ -1978,7 +1993,7 @@
/obj/item/storage/box/lethalshot,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/effect/turf_decal/industrial/traffic/full,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/turf/open/floor/mineral/plastitanium/red,
@@ -2089,11 +2104,19 @@
/area/ship/science/robotics)
"Hr" = (
/obj/effect/turf_decal/corner/opaque/syndiered/border,
-/obj/machinery/turretid/lethal{
- pixel_y = -24
+/obj/machinery/turretid/ship{
+ pixel_y = -24;
+ id = "elegia_turrets"
},
/turf/open/floor/carpet/black,
/area/ship/bridge)
+"Ht" = (
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 5;
+ id = "elegia_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"HC" = (
/obj/effect/turf_decal/industrial/outline,
/obj/machinery/atmospherics/components/unary/portables_connector,
@@ -2218,8 +2241,8 @@
/area/ship/bridge)
"JA" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/bar{
dir = 1
},
@@ -2346,8 +2369,9 @@
/turf/open/floor/carpet/black,
/area/ship/medical)
"Mm" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 4
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 6;
+ id = "elegia_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -2378,6 +2402,13 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
+"Mx" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 1;
+ id = "elegia_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"MV" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -2540,7 +2571,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"QN" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic,
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ id = "elegia_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"QU" = (
@@ -3205,13 +3238,13 @@ pI
ys
ys
ys
-QN
+sp
ys
ys
ys
pI
YJ
-QN
+Ai
lm
lm
"}
@@ -3297,7 +3330,7 @@ Pj
"}
(6,1,1) = {"
lm
-iT
+Mx
rq
FB
aE
@@ -3497,7 +3530,7 @@ QU
"}
(16,1,1) = {"
lm
-iT
+Mx
bV
bV
wg
@@ -3638,7 +3671,7 @@ lm
(23,1,1) = {"
lm
lm
-Mm
+Ht
ak
Vz
AP
@@ -3667,7 +3700,7 @@ ak
lm
lm
lm
-Mm
+ru
ru
Je
Kw
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_hyena.dmm
index a300d7a5e0ba..55214534bf30 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_hyena.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_hyena.dmm
@@ -62,11 +62,11 @@
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch,
/obj/item/clothing/head/HoS/syndicate,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/pen/edagger,
+/obj/item/gun/ballistic/revolver/viper,
/obj/item/ammo_box/a357/match,
/obj/item/ammo_box/a357/match,
/obj/item/ammo_box/a357/match,
-/obj/item/pen/edagger,
-/obj/item/gun/ballistic/revolver/viper,
/turf/open/floor/carpet/black,
/area/ship/bridge)
"bJ" = (
@@ -77,8 +77,6 @@
},
/obj/item/clothing/suit/armor/vest/syndie,
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
-/obj/item/clothing/head/helmet/operator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/radio/intercom/directional/west{
pixel_y = -5
@@ -91,6 +89,8 @@
/obj/machinery/light/small/directional/west{
pixel_y = 7
},
+/obj/item/clothing/head/helmet/swat,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"bN" = (
@@ -131,8 +131,9 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/machinery/turretid/lethal{
- pixel_y = -24
+/obj/machinery/turretid/ship{
+ pixel_y = -24;
+ id = "hyena_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -220,12 +221,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/industrial/outline,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
@@ -299,8 +300,8 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/airalarm/directional/north,
/obj/effect/turf_decal/industrial/outline,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/storage/box/ammo/c10mm,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"fC" = (
@@ -1326,8 +1327,8 @@
/area/ship/security/armory)
"wO" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/turf_decal/corner/transparent/bar{
dir = 1
},
@@ -1525,6 +1526,12 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/crew/dorm)
+"zt" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ id = "hyena_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
"zA" = (
/obj/machinery/power/smes/engineering,
/obj/structure/cable{
@@ -1675,8 +1682,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"BR" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 1
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 1;
+ id = "hyena_turrets"
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
@@ -1976,6 +1984,13 @@
"HJ" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/security/armory)
+"HK" = (
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 5;
+ id = "hyena_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"HT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -2321,7 +2336,10 @@
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"NA" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic,
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 8;
+ id = "hyena_turrets"
+ },
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"NF" = (
@@ -2488,8 +2506,9 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"Qz" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 4;
+ id = "hyena_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2864,13 +2883,15 @@
/obj/machinery/turretid{
pixel_x = 32;
pixel_y = 22;
- req_access = list(19)
+ req_access = list(19);
+ id = "hyena_turrets"
},
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"Up" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 4
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 6;
+ id = "hyena_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2885,8 +2906,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew)
"UN" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 1
+/obj/machinery/porta_turret/ship/syndicate/weak{
+ dir = 1;
+ id = "hyena_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -3324,7 +3346,7 @@ sE
nX
dU
pi
-NA
+zt
"}
(3,1,1) = {"
nn
@@ -3574,7 +3596,7 @@ UX
GV
GV
GV
-NA
+zt
nn
Zb
"}
@@ -3832,7 +3854,7 @@ mL
"}
(27,1,1) = {"
nn
-Up
+HK
Ap
Jv
oQ
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_komodo.dmm
index 7458feb18662..dfe448419241 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_komodo.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_gorlex_komodo.dmm
@@ -184,7 +184,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/rust,
/area/ship/maintenance/starboard)
"dD" = (
@@ -313,8 +313,9 @@
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/central)
"ea" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 6;
+ id = "komodo_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -394,8 +395,9 @@
pixel_x = -2
},
/obj/item/clothing/glasses/sunglasses,
-/obj/machinery/turretid{
- pixel_y = 35
+/obj/machinery/turretid/ship{
+ pixel_y = 35;
+ id = "komodo_turrets"
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -472,7 +474,7 @@
dir = 1
},
/obj/item/tank/internals/oxygen,
-/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
+/obj/item/clothing/suit/space/hardsuit/syndi,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"fd" = (
@@ -969,7 +971,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"jD" = (
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_capacitor,
/obj/effect/decal/cleanable/shreds,
/obj/structure/cable{
icon_state = "4-8"
@@ -1025,20 +1027,20 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/south,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -6
},
/obj/structure/closet/crate{
@@ -1055,7 +1057,7 @@
/obj/item/clothing/mask/gas/syndicate,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/item/tank/internals/oxygen,
-/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
+/obj/item/clothing/suit/space/hardsuit/syndi,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"ko" = (
@@ -1092,8 +1094,9 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/crew/canteen)
"kG" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 1
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 1;
+ id = "komodo_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1666,8 +1669,9 @@
/turf/open/floor/plating,
/area/ship/engineering)
"pN" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 9
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 9;
+ id = "komodo_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1789,6 +1793,10 @@
dir = 4
},
/obj/item/defibrillator/compact/combat/loaded,
+/obj/item/clothing/glasses/hud/health/night{
+ pixel_x = -8;
+ pixel_y = 9
+ },
/turf/open/floor/pod/dark,
/area/ship/medical)
"rm" = (
@@ -1866,8 +1874,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"rS" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 5;
+ id = "komodo_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2012,14 +2021,14 @@
/obj/item/ammo_box/magazine/m45_cobra,
/obj/item/ammo_box/magazine/m12g_bulldog/drum,
/obj/item/ammo_box/magazine/m12g_bulldog/drum,
-/obj/item/ammo_box/a12g/slug,
-/obj/item/ammo_box/a12g,
+/obj/item/storage/box/ammo/a12g_slug,
+/obj/item/storage/box/ammo/a12g_buckshot,
/obj/item/ammo_box/magazine/m556_42_hydra,
/obj/item/ammo_box/magazine/m556_42_hydra,
/obj/item/ammo_box/magazine/m556_42_hydra,
/obj/item/ammo_box/magazine/m556_42_hydra,
-/obj/item/ammo_box/a556_42,
-/obj/item/ammo_box/a556_42,
+/obj/item/storage/box/ammo/a556_42,
+/obj/item/storage/box/ammo/a556_42,
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
"sY" = (
@@ -2047,9 +2056,9 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/clothing/costume,
/obj/item/storage/box/emptysandbags,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/button/door{
dir = 4;
id = "syndie_mechbay";
@@ -2123,11 +2132,6 @@
/obj/structure/railing{
dir = 4
},
-/obj/item/clothing/under/syndicate/skirt/maid,
-/obj/item/clothing/gloves/combat/maid,
-/obj/item/clothing/head/maidheadband/syndicate,
-/obj/item/clothing/accessory/maidapron/syndicate,
-/obj/structure/closet/crate/secure/loot,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
},
@@ -2261,6 +2265,13 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
+"uX" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 8;
+ id = "komodo_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"vd" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -2568,6 +2579,13 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
+"xT" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 10;
+ id = "komodo_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"xV" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -2913,7 +2931,9 @@
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"Bx" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic,
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ id = "komodo_turrets"
+ },
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
"BK" = (
@@ -3096,8 +3116,8 @@
/obj/item/clothing/head/HoS/beret/syndicate,
/obj/item/clothing/head/HoS/syndicate,
/obj/item/clothing/under/syndicate/sniper,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/radio/headset/syndicate/alt/leader,
/obj/item/gun/ballistic/derringer/traitor,
/obj/item/clothing/shoes/combat,
@@ -3227,7 +3247,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"FV" = (
-/obj/effect/spawner/lootdrop/salvage_scanning,
+/obj/effect/spawner/random/salvage_scanning,
/obj/effect/decal/cleanable/shreds{
pixel_y = 14
},
@@ -3505,7 +3525,7 @@
/obj/item/clothing/mask/gas/syndicate,
/obj/machinery/light/directional/south,
/obj/item/tank/internals/oxygen,
-/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
+/obj/item/clothing/suit/space/hardsuit/syndi,
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"If" = (
@@ -3795,10 +3815,10 @@
"Lj" = (
/obj/structure/table/reinforced,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/random_prosthetic{
+/obj/effect/spawner/random/medical/prosthetic{
pixel_x = 6
},
-/obj/effect/spawner/lootdrop/random_prosthetic{
+/obj/effect/spawner/random/medical/prosthetic{
pixel_x = -6
},
/turf/open/floor/pod/dark,
@@ -3913,7 +3933,7 @@
all_items_free = 1
},
/obj/item/gun/ballistic/shotgun/doublebarrel,
-/obj/item/ammo_box/a12g/rubbershot,
+/obj/item/storage/box/ammo/a12g_rubbershot,
/turf/open/floor/mineral/plastitanium,
/area/ship/crew/canteen)
"MG" = (
@@ -4127,9 +4147,23 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/hallway/central)
+"Or" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ id = "komodo_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"OG" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 1;
+ id = "komodo_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"OP" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 10;
+ id = "komodo_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -4373,7 +4407,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -4849,6 +4883,13 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
+"VY" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 9;
+ id = "komodo_turrets"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
"VZ" = (
/obj/structure/railing,
/obj/effect/decal/cleanable/oil{
@@ -5238,7 +5279,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"YT" = (
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "4-8"
@@ -5295,7 +5336,7 @@
},
/area/ship/cargo)
"Zf" = (
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
@@ -5311,7 +5352,7 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/button/door{
dir = 1;
id = "Artillery2shutter";
@@ -5353,7 +5394,7 @@
pixel_x = -3;
pixel_y = 3
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/backpack/duffelbag/syndie/surgery,
/turf/open/floor/mineral/plastitanium,
/area/ship/medical)
"Zy" = (
@@ -5446,11 +5487,11 @@ CM
CM
CM
CM
-pN
+uX
Yb
Yb
Yb
-OP
+uX
CM
CM
CM
@@ -5480,7 +5521,7 @@ CM
"}
(3,1,1) = {"
CM
-pN
+VY
Yn
yB
sq
@@ -5496,7 +5537,7 @@ qF
sq
sq
Yn
-OP
+xT
"}
(4,1,1) = {"
CM
@@ -5656,11 +5697,11 @@ CL
CL
CL
CL
-Bx
+Or
"}
(12,1,1) = {"
CM
-kG
+OG
Ep
jA
jA
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_kaas.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_kaas.dmm
index b909b34fbac3..1cdc12c300ee 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_kaas.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_kaas.dmm
@@ -1122,9 +1122,6 @@
/area/ship/medical)
"zL" = (
/obj/structure/rack,
-/obj/item/melee/transforming/energy/sword/saber/red,
-/obj/item/melee/transforming/energy/sword/saber/red,
-/obj/item/melee/transforming/energy/sword/saber/red,
/obj/effect/turf_decal/trimline/opaque/neutral/warning{
dir = 10
},
@@ -1164,7 +1161,6 @@
},
/obj/effect/turf_decal/industrial/warning,
/obj/item/reagent_containers/hypospray/combat/nanites,
-/obj/item/reagent_containers/hypospray/combat/heresypurge,
/obj/item/reagent_containers/hypospray/combat,
/turf/open/floor/wood/walnut,
/area/ship/medical)
@@ -1253,9 +1249,9 @@
/obj/item/sbeacondrop/bomb,
/obj/item/sbeacondrop/bomb,
/obj/item/sbeacondrop/bomb,
-/obj/item/ammo_box/c9mm/fire,
-/obj/item/ammo_box/c9mm/fire,
-/obj/item/ammo_box/c9mm/fire,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_ap,
+/obj/item/storage/box/ammo/c9mm_ap,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
/obj/item/ammo_box/magazine/m9mm_rattlesnake,
@@ -1978,7 +1974,6 @@
},
/obj/machinery/firealarm/directional/north,
/obj/item/reagent_containers/hypospray/combat/nanites,
-/obj/item/reagent_containers/hypospray/combat/heresypurge,
/obj/item/reagent_containers/hypospray/combat,
/turf/open/floor/wood/walnut,
/area/ship/medical)
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_kau_delta.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_kau_delta.dmm
index 4aa442bac01c..465316303249 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_kau_delta.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_kau_delta.dmm
@@ -200,7 +200,10 @@
/turf/open/floor/plating,
/area/ship/engineering)
"ee" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic,
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 10;
+ id = "kau_turrets"
+ },
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
"en" = (
@@ -644,7 +647,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/large,
/obj/item/trash/can,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/structure/cable{
icon_state = "1-4"
},
@@ -860,9 +863,10 @@
/obj/effect/turf_decal/spline/plain/opaque/syndiered{
dir = 8
},
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
pixel_y = 63;
- pixel_x = -7
+ pixel_x = -7;
+ id = "kau_turrets"
},
/turf/open/floor/carpet/black,
/area/ship/bridge)
@@ -937,8 +941,9 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/hallway/central)
"ud" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 8
+/obj/machinery/porta_turret/ship/syndicate/ballistic/light{
+ dir = 9;
+ id = "kau_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1345,7 +1350,7 @@
/obj/item/radio/headset/syndicate/alt/captain,
/obj/item/ammo_box/magazine/m45_cobra,
/obj/item/ammo_box/magazine/m45_cobra,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/c45,
/turf/open/floor/carpet/red_gold,
/area/ship/bridge)
"BW" = (
@@ -1419,14 +1424,14 @@
pixel_y = -29;
name = "ammo locker"
},
-/obj/item/ammo_box/a300,
-/obj/item/ammo_box/a300_box,
-/obj/item/ammo_box/c45,
-/obj/item/ammo_box/c45,
+/obj/item/storage/box/ammo/a300,
+/obj/item/storage/box/ammo/c45,
+/obj/item/storage/box/ammo/c45,
/obj/item/ammo_box/magazine/m45_cobra,
/obj/item/ammo_box/magazine/m45_cobra,
/obj/item/ammo_box/magazine/m45_cobra,
/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/a300,
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
"Dz" = (
@@ -1458,8 +1463,9 @@
/turf/closed/wall/mineral/plastitanium,
/area/ship/hallway/central)
"Ei" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 4
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 6;
+ id = "kau_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -1980,7 +1986,7 @@
/obj/item/clothing/shoes/sneakers/orange,
/obj/item/clothing/shoes/sneakers/orange,
/obj/structure/closet/secure_closet/brig/wall/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"ML" = (
@@ -2496,8 +2502,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"Xk" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 1
+/obj/machinery/porta_turret/ship/syndicate/ballistic{
+ dir = 5;
+ id = "kau_turrets"
},
/turf/closed/wall/mineral/plastitanium,
/area/ship/bridge)
@@ -2685,7 +2692,7 @@ jv
ri
jv
jv
-ud
+ee
jv
jv
jv
@@ -2825,7 +2832,7 @@ jv
jv
"}
(10,1,1) = {"
-Xk
+ud
kF
op
op
@@ -3011,7 +3018,7 @@ uv
WZ
lA
Qb
-ee
+Ei
jv
"}
(20,1,1) = {"
@@ -3274,7 +3281,7 @@ jv
jv
jv
jv
-Ei
+Xk
jv
jv
jv
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_krait.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_krait.dmm
index 42ef91a5d23e..75fd1c873b92 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_krait.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_krait.dmm
@@ -50,7 +50,7 @@
icon_state = "bordercolor";
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"aG" = (
@@ -536,8 +536,8 @@
pixel_y = 1
},
/obj/item/gun/ballistic/derringer/traitor,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/melee/classic_baton/telescopic/contractor_baton{
name = "SnD baton";
pixel_y = 8
@@ -589,7 +589,7 @@
/area/ship/engineering)
"fi" = (
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/item/trash/can/food/beans,
/obj/item/trash/energybar,
/obj/item/trash/can,
@@ -810,7 +810,7 @@
/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/obj/effect/spawner/lootdrop/donkpockets{
+/obj/effect/spawner/random/food_or_drink/donkpockets{
pixel_y = 7
},
/obj/structure/table/wood,
@@ -966,7 +966,7 @@
name = "recreation package"
},
/obj/effect/turf_decal/spline/plain/opaque/syndiered,
-/obj/item/reagent_containers/food/snacks/rationpack,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/tech,
/area/ship/cargo/port)
"hp" = (
@@ -3185,17 +3185,17 @@
"AH" = (
/obj/structure/rack,
/obj/effect/turf_decal/industrial/traffic/full,
-/obj/item/melee/transforming/energy/sword/saber/red{
- pixel_y = 10;
- pixel_x = 14
+/obj/item/holo/esword/red{
+ pixel_x = 3;
+ pixel_y = 6
},
-/obj/item/melee/transforming/energy/sword/saber/red{
- pixel_y = 10;
- pixel_x = 8
+/obj/item/holo/esword{
+ pixel_x = 2;
+ pixel_y = 13
},
-/obj/item/melee/transforming/energy/sword/saber/red{
- pixel_y = 10;
- pixel_x = 2
+/obj/item/holo/esword{
+ pixel_x = 12;
+ pixel_y = 12
},
/turf/open/floor/mineral/plastitanium/red,
/area/ship/security/armory)
@@ -3600,7 +3600,6 @@
},
/obj/structure/closet/crate/bin,
/obj/machinery/airalarm/directional/north,
-/obj/item/storage/box/syndimaid,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Fg" = (
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_litieguai.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_litieguai.dmm
index 58856acd7f9e..0d17cf7e79f9 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_litieguai.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_litieguai.dmm
@@ -112,15 +112,11 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"bT" = (
-/obj/machinery/smartfridge/bloodbank/preloaded{
- density = 0;
- pixel_y = 0;
- pixel_x = 32
- },
/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/stasis{
dir = 8
},
+/obj/machinery/firealarm/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"cd" = (
@@ -266,7 +262,7 @@
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"fX" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/trimline/opaque/red/filled/line{
dir = 8
},
@@ -280,7 +276,6 @@
/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/machinery/airalarm/directional/south,
/obj/machinery/firealarm/directional/east,
-/obj/machinery/iv_drip,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"gL" = (
@@ -397,8 +392,8 @@
/area/ship/crew)
"jh" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/radio/intercom/directional/west,
/turf/open/floor/wood/ebony,
/area/ship/crew)
@@ -531,6 +526,11 @@
/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/autolathe,
/obj/machinery/firealarm/directional/south,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/metal/fifty{
+ pixel_x = 5;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/tech,
/area/ship/science)
"mP" = (
@@ -538,7 +538,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/port)
"na" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/trimline/opaque/red/filled/line{
dir = 8
},
@@ -686,8 +686,6 @@
pixel_y = -22
},
/obj/item/storage/box/bodybags,
-/obj/item/storage/box/bodybags,
-/obj/item/storage/box/masks,
/obj/item/storage/box/masks,
/obj/item/storage/box/pillbottles,
/obj/structure/closet/wall/white/chem{
@@ -695,6 +693,10 @@
name = "Medical Supplies Locker";
pixel_x = -28
},
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/storage/box/syringes,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"qA" = (
@@ -810,7 +812,7 @@
},
/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/light/directional/north,
-/obj/machinery/firealarm/directional/east,
+/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"sx" = (
@@ -891,6 +893,11 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/machinery/iv_drip{
+ pixel_x = 31;
+ pixel_y = 20;
+ layer = 5
+ },
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"tI" = (
@@ -1032,24 +1039,30 @@
name = "firearms locker";
req_access_txt = "5"
},
+/obj/machinery/light/small/directional/east,
+/obj/item/storage/box/ammo/c10mm{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/item/storage/box/ammo/c10mm_hp{
+ pixel_x = -7;
+ pixel_y = 2
+ },
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/machinery/light/small/directional/east,
/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/item/gun/ballistic/automatic/pistol/ringneck,
/turf/open/floor/plasteel/tech,
/area/ship/crew)
"vn" = (
-/obj/machinery/smartfridge/organ{
+/obj/structure/table/glass,
+/obj/machinery/smartfridge/bloodbank/preloaded{
density = 0;
- pixel_x = 32
+ pixel_y = 0;
+ pixel_x = 29
},
-/obj/structure/table/glass,
/obj/machinery/cell_charger,
/turf/open/floor/plasteel/tech,
/area/ship/medical)
@@ -1089,6 +1102,7 @@
"wp" = (
/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/rnd/server,
+/obj/item/multitool,
/turf/open/floor/plasteel/tech,
/area/ship/science)
"wr" = (
@@ -1244,7 +1258,11 @@
pixel_y = 8
},
/obj/item/reagent_containers/syringe,
-/obj/machinery/airalarm/directional/east,
+/obj/machinery/smartfridge/organ{
+ density = 0;
+ pixel_x = 29;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"zl" = (
@@ -1380,6 +1398,11 @@
/obj/structure/cable{
icon_state = "2-8"
},
+/obj/machinery/iv_drip{
+ pixel_x = 31;
+ pixel_y = 20;
+ layer = 5
+ },
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"zT" = (
@@ -1507,7 +1530,6 @@
/obj/item/clothing/shoes/combat,
/obj/item/clothing/head/beret/cmo/cybersun,
/obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun,
-/obj/item/gun/ballistic/automatic/pistol/ringneck,
/turf/open/floor/carpet/cyan,
/area/ship/bridge)
"BU" = (
@@ -1654,15 +1676,23 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"DX" = (
-/obj/structure/closet/crate/medical,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/clothing/mask/breath/medical,
/obj/effect/turf_decal/industrial/outline/red,
-/obj/machinery/iv_drip,
+/obj/item/tank/internals/anesthetic,
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 4;
+ pixel_y = -2
+ },
+/obj/structure/closet/crate/medical{
+ name = "anesthetics crate"
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_x = -2;
+ pixel_y = 0
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_x = -5;
+ pixel_y = -3
+ },
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"Eb" = (
@@ -1856,20 +1886,31 @@
/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/crate_shelf,
/obj/machinery/light/small/directional/west,
+/obj/structure/closet/crate/medical,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
/turf/open/floor/plasteel/tech,
/area/ship/storage/eva)
-"Hl" = (
-/obj/structure/sign/poster/contraband/random,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew)
"HE" = (
-/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/red,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/metal/fifty,
/obj/item/radio/intercom/directional/west,
-/obj/item/multitool,
-/obj/machinery/iv_drip,
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/syndicate{
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/obj/item/storage/box/stockparts/t2{
+ pixel_x = 5;
+ pixel_y = 4
+ },
/turf/open/floor/plasteel/tech,
/area/ship/storage/eva)
"HI" = (
@@ -2009,9 +2050,13 @@
},
/obj/item/stack/marker_beacon/thirty,
/obj/item/stack/marker_beacon/thirty,
-/obj/item/stack/marker_beacon/thirty,
-/obj/item/stack/marker_beacon/thirty,
/obj/structure/rack,
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/machinery/firealarm/directional/east,
+/obj/item/mining_scanner,
+/obj/item/mining_scanner,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
/obj/item/pickaxe/emergency{
desc = "For extracting yourself from rough landings, and getting to the even rougher ones";
name = "Medical Retrieval Tool"
@@ -2020,12 +2065,6 @@
desc = "For extracting yourself from rough landings, and getting to the even rougher ones";
name = "Medical Retrieval Tool"
},
-/obj/item/pickaxe/emergency{
- desc = "For extracting yourself from rough landings, and getting to the even rougher ones";
- name = "Medical Retrieval Tool"
- },
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/machinery/firealarm/directional/east,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"Kc" = (
@@ -2126,6 +2165,10 @@
/obj/item/bedsheet/blue{
dir = 8
},
+/obj/structure/sign/poster/contraband/random{
+ pixel_x = 32;
+ pixel_y = 1
+ },
/turf/open/floor/carpet/cyan,
/area/ship/crew)
"KW" = (
@@ -2263,9 +2306,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/structure/closet/secure_closet/medical2,
-/obj/item/reagent_containers/glass/bottle/morphine,
-/obj/item/reagent_containers/glass/bottle/morphine,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -2352,21 +2392,27 @@
/area/ship/storage/eva)
"Pg" = (
/obj/structure/table/glass,
-/obj/item/clothing/mask/surgical{
- pixel_y = 6
+/obj/machinery/light/directional/south,
+/obj/item/storage/case/surgery{
+ pixel_x = 1;
+ pixel_y = 9
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 10
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -9;
+ pixel_y = -1
},
-/obj/item/clothing/suit/apron/surgical{
- pixel_y = 6
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = 3;
+ pixel_y = 2
},
/obj/item/reagent_containers/spray/cleaner{
- pixel_x = 5;
- pixel_y = -1
+ pixel_x = 11;
+ pixel_y = 1
},
-/obj/item/reagent_containers/medigel/sterilizine,
-/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/tech,
/area/ship/medical/surgery)
"Pm" = (
@@ -2554,13 +2600,12 @@
/obj/item/storage/firstaid/o2,
/obj/item/storage/firstaid/toxin,
/obj/item/storage/box/medipens,
-/obj/item/storage/box/syringes,
-/obj/item/storage/firstaid/regular,
-/obj/item/storage/firstaid/regular,
/obj/structure/closet/secure_closet{
icon_state = "med";
name = "medicine locker"
},
+/obj/item/storage/firstaid/radiation,
+/obj/item/storage/firstaid/regular,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"SR" = (
@@ -2797,6 +2842,7 @@
/area/ship/science)
"VN" = (
/obj/machinery/light/small/directional/north,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"WB" = (
@@ -2822,13 +2868,7 @@
dir = 8
},
/obj/machinery/airalarm/directional/east,
-/obj/structure/rack,
-/obj/item/tank/internals/plasmaman/full,
-/obj/item/tank/internals/plasmaman/full,
-/obj/item/tank/internals/plasmaman/full,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/structure/ore_box,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"WX" = (
@@ -2898,7 +2938,6 @@
/obj/structure/cable/yellow{
icon_state = "0-4"
},
-/obj/item/wrench/crescent,
/obj/item/radio/intercom/directional/north,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -2927,7 +2966,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/item/storage/toolbox/electrical,
/obj/structure/cable{
icon_state = "2-8"
},
@@ -3544,7 +3582,7 @@ Ev
Pp
CF
Ev
-Hl
+Ev
CZ
iA
UG
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_luxembourg.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_luxembourg.dmm
index 752dd9cdd995..bdb4982c828f 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_luxembourg.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_luxembourg.dmm
@@ -1602,7 +1602,7 @@
pixel_y = 21;
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"Dy" = (
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_panacea.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_panacea.dmm
index 27357498f2ed..630dc9f703f4 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_panacea.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_panacea.dmm
@@ -34,7 +34,7 @@
/turf/open/floor/plasteel/sepia,
/area/ship/crew/ccommons)
"az" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -889,34 +889,26 @@
/obj/effect/turf_decal/suns/line/marble/fill{
dir = 8
},
-/obj/item/storage/box/beakers/variety{
- pixel_y = 6;
- pixel_x = 4
- },
/obj/item/storage/box/pillbottles{
pixel_y = 7;
pixel_x = -6
},
+/obj/item/storage/box/pillbottles{
+ pixel_y = 7;
+ pixel_x = 0
+ },
/obj/item/storage/bag/medical{
pixel_y = -4;
pixel_x = 5
},
/obj/item/clothing/glasses/science/suns{
- pixel_x = -3;
+ pixel_x = -10;
pixel_y = -6
},
/obj/item/clothing/glasses/science/suns{
- pixel_x = -10;
+ pixel_x = -3;
pixel_y = -6
},
-/obj/item/reagent_containers/glass/filter{
- pixel_y = 4;
- pixel_x = 3
- },
-/obj/item/reagent_containers/glass/filter{
- pixel_y = 4;
- pixel_x = 12
- },
/turf/open/floor/suns/dark/plain,
/area/ship/medical)
"fM" = (
@@ -1864,6 +1856,10 @@
/obj/structure/window/reinforced{
dir = 8
},
+/obj/machinery/door/poddoor{
+ id = "Panacea_engine_blasts";
+ dir = 4
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"lB" = (
@@ -2485,11 +2481,11 @@
pixel_y = 8;
pixel_x = -7
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/storage/firstaid/regular{
pixel_y = -3;
pixel_x = -7
},
+/obj/item/storage/case/surgery,
/turf/open/floor/suns/dark/plain,
/area/ship/medical)
"oh" = (
@@ -2917,13 +2913,6 @@
pixel_y = 4;
pixel_x = -11
},
-/obj/item/stack/cable_coil/cyan{
- pixel_x = -6
- },
-/obj/item/stack/cable_coil/cyan{
- pixel_x = -6;
- pixel_y = -4
- },
/obj/item/storage/belt/utility/full{
pixel_y = -10;
pixel_x = 7
@@ -2936,6 +2925,10 @@
pixel_y = 14;
pixel_x = -9
},
+/obj/item/holosign_creator/atmos{
+ pixel_y = 10;
+ pixel_x = -9
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"qM" = (
@@ -3963,11 +3956,11 @@
pixel_y = 8;
pixel_x = -3
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/storage/firstaid/regular{
pixel_y = 2;
pixel_x = -7
},
+/obj/item/storage/case/surgery,
/turf/open/floor/suns/dark/plain,
/area/ship/medical)
"xp" = (
@@ -4602,10 +4595,6 @@
/obj/machinery/power/shuttle/engine/fueled/plasma{
dir = 4
},
-/obj/machinery/door/poddoor{
- id = "Panacea_engine_blasts";
- dir = 4
- },
/turf/open/floor/plating,
/area/ship/engineering)
"Bx" = (
@@ -6174,10 +6163,6 @@
pixel_y = -5;
pixel_x = 5
},
-/obj/item/reagent_containers/glass/beaker/unholywater{
- pixel_x = 6;
- pixel_y = 7
- },
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -6581,14 +6566,6 @@
pixel_x = 8;
pixel_y = 7
},
-/obj/item/ammo_box/amagpellet_claris{
- pixel_x = 4;
- pixel_y = -4
- },
-/obj/item/ammo_box/amagpellet_claris{
- pixel_x = -2;
- pixel_y = -4
- },
/obj/item/gun/energy/disabler{
pixel_x = 2;
pixel_y = -7
@@ -6604,8 +6581,9 @@
req_one_access = list(1, 20);
name = "Peacekeeper's locker"
},
-/obj/item/ammo_box/ferropelletbox,
/obj/item/storage/belt/security/military,
+/obj/item/storage/box/ammo/ferropellet,
+/obj/item/ammo_box/amagpellet_claris,
/turf/open/floor/suns/dark/plain,
/area/ship/security)
"Ma" = (
@@ -6788,7 +6766,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/smartfridge/chemistry/preloaded{
pixel_x = 0;
- pixel_y = 33;
+ pixel_y = 29;
density = 0
},
/turf/open/floor/suns,
@@ -7171,7 +7149,7 @@
/turf/open/floor/carpet/red,
/area/ship/crew/dorm/dormtwo)
"Qi" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -8164,6 +8142,10 @@
/obj/structure/cable/orange{
icon_state = "0-8"
},
+/obj/machinery/door/poddoor{
+ id = "Panacea_engine_blasts";
+ dir = 4
+ },
/turf/open/floor/plating,
/area/ship/engineering)
"Wj" = (
@@ -8185,10 +8167,6 @@
/obj/structure/cable/orange{
icon_state = "0-4"
},
-/obj/machinery/door/poddoor{
- id = "Panacea_engine_blasts";
- dir = 4
- },
/turf/open/floor/plating,
/area/ship/engineering)
"Wn" = (
@@ -8199,7 +8177,7 @@
/area/ship/engineering)
"Wr" = (
/obj/machinery/light/directional/north,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/suns/dark/plain,
/area/ship/crew/ccommons)
"Wu" = (
diff --git a/_maps/_mod_celadon/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/_mod_celadon/shuttles/syndicate/syndicate_twinkleshine.dmm
index 082d5a1541d7..6329f5a2f0a5 100644
--- a/_maps/_mod_celadon/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/_mod_celadon/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -119,6 +119,7 @@
req_access = list(3,150)
},
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"aE" = (
@@ -143,6 +144,15 @@
/obj/item/reagent_containers/food/drinks/shaker,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
+"aQ" = (
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 6;
+ id = "twinkle_turrets"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/bridge)
"aX" = (
/obj/effect/turf_decal/syndicateemblem/middle/right{
dir = 8
@@ -278,10 +288,11 @@
"bQ" = (
/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner,
/obj/machinery/light/directional/north,
-/obj/machinery/turretid{
+/obj/machinery/turretid/ship{
pixel_y = 32;
req_access = null;
- req_access_txt = "150"
+ req_access_txt = "150";
+ id = "twinkle_turrets"
},
/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{
@@ -292,7 +303,7 @@
"bR" = (
/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters,
/obj/machinery/light/directional/south,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/borderfloorblack{
dir = 1
},
@@ -378,7 +389,7 @@
/area/ship/medical)
"cp" = (
/obj/structure/closet/emcloset,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/trash/syndi_cakes,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
@@ -838,7 +849,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"eQ" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/pod/dark,
/area/ship/engineering/atmospherics)
"eR" = (
@@ -911,7 +922,6 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/storage/belt/security/webbing{
@@ -927,6 +937,7 @@
/obj/item/flashlight/seclite,
/obj/item/melee/knife/combat,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"fK" = (
@@ -1807,9 +1818,9 @@
/obj/item/clothing/suit/armor/vest/capcarapace/syndicate,
/obj/item/clothing/under/syndicate/ngr/officer,
/obj/item/clothing/head/HoS/syndicate,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/gun/ballistic/revolver/viper,
/turf/open/floor/carpet/nanoweave/red,
/area/ship/crew/dorm/dormtwo)
@@ -1831,7 +1842,6 @@
/area/ship/crew/office)
"kH" = (
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/storage/belt/security/webbing{
@@ -1854,6 +1864,7 @@
/obj/item/flashlight/seclite,
/obj/item/melee/knife/combat,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"kJ" = (
@@ -2146,8 +2157,9 @@
/turf/open/floor/engine,
/area/ship/engineering/engine)
"ms" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 9
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 9;
+ id = "twinkle_turrets"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
@@ -2772,7 +2784,6 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/storage/belt/security/webbing{
@@ -2788,6 +2799,7 @@
/obj/item/flashlight/seclite,
/obj/item/melee/knife/combat,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"pO" = (
@@ -2995,8 +3007,8 @@
/obj/item/storage/box/ingredients/vegetarian,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"qQ" = (
@@ -3554,8 +3566,9 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/atmospherics)
"vd" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 5
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 5;
+ id = "twinkle_turrets"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
@@ -4652,7 +4665,6 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/storage/belt/security/webbing{
@@ -4669,6 +4681,7 @@
/obj/item/flashlight/seclite,
/obj/item/melee/knife/combat,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
+/obj/item/clothing/head/helmet/swat,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"Bq" = (
@@ -4888,6 +4901,15 @@
},
/turf/open/floor/plating,
/area/ship/hallway/starboard)
+"Cs" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 10;
+ id = "twinkle_turrets"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/bridge)
"Cw" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -5229,6 +5251,15 @@
rad_insulation = 0
},
/area/ship/crew/office)
+"Es" = (
+/obj/machinery/porta_turret/ship/syndicate/heavy{
+ dir = 5;
+ id = "twinkle_turrets"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/bridge)
"Et" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -5634,13 +5665,10 @@
/obj/item/ammo_box/magazine/m556_42_hydra{
pixel_y = -2
},
-/obj/item/gun/ballistic/automatic/assault/hydra/dmr/no_mag{
- pixel_x = -16;
- pixel_y = 7
- },
-/obj/item/gun/ballistic/automatic/assault/hydra/dmr/no_mag{
- pixel_x = -9;
- pixel_y = 2
+/obj/item/gun/ballistic/automatic/assault/hydra/dmr/empty,
+/obj/item/gun/ballistic/automatic/assault/hydra/dmr/empty{
+ pixel_x = 0;
+ pixel_y = -4
},
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
@@ -5817,7 +5845,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/item/circuitboard/machine/autolathe,
/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/matter_bin,
@@ -6351,7 +6379,7 @@
dir = 8
},
/obj/machinery/light/directional/north,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/borderfloorblack/corner{
dir = 8
},
@@ -6623,7 +6651,6 @@
name = "mot containment box";
desc = "WARNING: Contains mot."
},
-/obj/item/storage/box/syndimaid,
/obj/item/trash/cheesie,
/mob/living/carbon/human/species/moth{
name = "Secret Box Moth";
@@ -6720,8 +6747,9 @@
/turf/open/floor/engine,
/area/ship/engineering/engine)
"Mr" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 6
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 6;
+ id = "twinkle_turrets"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
@@ -7140,6 +7168,15 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/hallway/starboard)
+"Pg" = (
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ dir = 1;
+ id = "twinkle_turrets"
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal{
+ rad_insulation = 0
+ },
+/area/ship/bridge)
"Pn" = (
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/trimline/opaque/syndiered/warning,
@@ -7487,7 +7524,7 @@
icon_state = "2-8"
},
/obj/structure/closet/emcloset,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/reagent_containers/food/snacks/burger/red{
name = "suspicious red burger";
desc = "A suspicious looking burger.";
@@ -8433,8 +8470,8 @@
},
/area/ship/crew/cryo)
"We" = (
-/obj/machinery/porta_turret/ship/faction/syndicate/ballistic{
- dir = 10
+/obj/machinery/porta_turret/ship/syndicate/ballistic/heavy{
+ id = "twinkle_turrets"
},
/turf/closed/wall/r_wall/syndicate/nodiagonal{
rad_insulation = 0
@@ -8617,9 +8654,9 @@
"Xf" = (
/obj/structure/table/wood,
/obj/machinery/door/firedoor/border_only,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"Xg" = (
@@ -9168,7 +9205,7 @@ FR
FR
LX
ae
-We
+Cs
mp
mp
mp
@@ -9667,7 +9704,7 @@ mp
mp
"}
(17,1,1) = {"
-ms
+Pg
xj
xj
xj
@@ -10797,7 +10834,7 @@ nb
nb
nn
nb
-nb
+aQ
mp
mp
mp
@@ -10809,7 +10846,7 @@ mp
mp
mp
mp
-nb
+Es
nb
Ib
nb
diff --git a/_maps/configs/independent_raleigh.json b/_maps/configs/independent_raleigh.json
new file mode 100644
index 000000000000..2f818addbd67
--- /dev/null
+++ b/_maps/configs/independent_raleigh.json
@@ -0,0 +1,45 @@
+{
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "map_name": "Raleigh-class Corvette",
+ "faction": "/datum/faction/independent",
+ "prefix": "ISV",
+ "namelists": [
+ "SPACE",
+ "BEASTS",
+ "NATURAL_AGGRESSIVE"
+ ],
+ "map_short_name": "Raleigh-class",
+ "description": "The Raleigh-class is a Kasagi-Fischer Partnership design created in the late 390s for a then growing 'exploratory' market. While it's original designation was 'Safari Ship' or in some cases, 'Yacht'. Recently manufactured ones are proudly labelled as corvettes, and sold off to PDFs looking to stay fiscally sound, mercenaries, and the odd Rich, Bored, Solarian buyer. In the frontier, you're most likely to see a Raleigh serving as the command vessel for a small group of mercenaries.",
+ "tags": [
+ "Combat",
+ "RP Focus"
+ ],
+ "map_path": "_maps/shuttles/independent/independent_raleigh.dmm",
+ "limit": 1,
+ "starting_funds": 1500,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/independent/captain/merc",
+ "officer": true,
+ "slots": 1
+ },
+ "Lieutenant": {
+ "outfit": "/datum/outfit/job/independent/hos/merc",
+ "officer": true,
+ "slots": 1
+ },
+ "Engineer": {
+ "outfit": "/datum/outfit/job/independent/engineer",
+ "slots": 1
+ },
+ "Mercenary": {
+ "outfit": "/datum/outfit/job/independent/security/merc",
+ "slots": 3
+ },
+ "Recruit": {
+ "outfit": "/datum/outfit/job/independent/assistant",
+ "slots": 1
+ }
+ },
+ "enabled": true
+}
diff --git a/_maps/configs/independent_scarab.json b/_maps/configs/independent_scarab.json
new file mode 100644
index 000000000000..8916043ea6a4
--- /dev/null
+++ b/_maps/configs/independent_scarab.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "map_name": "Scarab-class Heavy Mining Ship",
+ "faction": "/datum/faction/independent",
+ "prefix": "SV",
+ "namelists": [
+ "GENERAL",
+ "SPACE",
+ "NATURAL",
+ "NATURAL_AGGRESSIVE"
+ ],
+ "map_short_name": "Scarab-class",
+ "map_path": "_maps/shuttles/independent/independent_scarab.dmm",
+ "description": "The Scarab-class is a recently-introduced heavy drilling ship built by Hardline Salvage and Mining. Inspired by Hardline's earlier work on the Talos-class refits, the Scarab comes with heavy drilling equipment and facilities for a number of technicians and hired guards instead of the hand-mining equipment typically found on smaller ships. Extra space for storage or potential remodeling lends the Scarab a degree of flexibility few of its peers can afford.",
+ "tags": [
+ "Mining",
+ "Engineering",
+ "Combat"
+ ],
+ "starting_funds": 2500,
+ "limit": 1,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/independent/captain",
+ "officer": true,
+ "slots": 1
+ },
+ "Foreman": {
+ "outfit": "/datum/outfit/job/independent/quartermaster",
+ "officer": true,
+ "slots": 1
+ },
+ "Technician": {
+ "outfit": "/datum/outfit/job/independent/engineer",
+ "slots": 2
+ },
+ "Security Detail": {
+ "outfit": "/datum/outfit/job/independent/security/disarmed",
+ "slots": 2
+ },
+ "Deckhand": {
+ "outfit": "/datum/outfit/job/independent/assistant",
+ "slots": 2
+ }
+ },
+ "enabled": true
+}
diff --git a/_maps/configs/inteq_valor.json b/_maps/configs/inteq_valor.json
index c91d7838408f..9c23544026ce 100644
--- a/_maps/configs/inteq_valor.json
+++ b/_maps/configs/inteq_valor.json
@@ -41,6 +41,10 @@
"outfit": "/datum/outfit/job/inteq/security/empty",
"slots": 2
},
+ "Artificer": {
+ "outfit": "/datum/outfit/job/inteq/engineer",
+ "slots": 1
+ },
"Recruit": {
"outfit": "/datum/outfit/job/inteq/assistant",
"slots": 2
diff --git a/_maps/configs/minutemen_atlas.json b/_maps/configs/minutemen_atlas.json
new file mode 100644
index 000000000000..32f30caa5b75
--- /dev/null
+++ b/_maps/configs/minutemen_atlas.json
@@ -0,0 +1,50 @@
+ {
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "map_name": "Atlas-class Light Armored Crusier",
+ "prefix": "CMSV",
+ "namelists": ["GENERAL", "CLIP MINUTEMEN", "NATURAL_AGGRESSIVE"],
+ "description": "The Atlas-Class is the designation for some of the oldest serving vessels in the Confederated League's military fleet. Originally the Atlantas-class, the design of the Atlantas was taken by the Colonial Militia just before the beginning of the war with the Old Frontiersmen, playing a pivotal role in multiple skirmishes. It is small in size and crew, well-rounded, and well-suited as an unexpensive hit-and-run vessel. Despite its age, the Atlas continues to serve the Confederated League for peacekeeping missions and driving off small crews of pirates from colonies.",
+ "tags": [
+ "Combat",
+ "Generalist"
+ ],
+ "map_short_name": "Atlas-class",
+ "faction": "/datum/faction/clip",
+ "starting_funds": 1000,
+ "map_path": "_maps/shuttles/minutemen/minutemen_atlas.dmm",
+ "limit": 1,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/clip/minutemen/captain",
+ "officer": true,
+ "slots": 1
+ },
+ "First Officer": {
+ "outfit": "/datum/outfit/job/clip/first_officer",
+ "officer": true,
+ "slots": 1
+ },
+ "Sergeant": {
+ "outfit": "/datum/outfit/job/clip/minutemen/grunt/lead",
+ "officer": true,
+ "slots": 1
+ },
+ "Corpsman": {
+ "outfit": "/datum/outfit/job/clip/minutemen/doctor",
+ "slots": 1
+ },
+ "Engineer": {
+ "outfit": "/datum/outfit/job/clip/minutemen/engineer",
+ "slots": 1
+ },
+ "Minuteman": {
+ "outfit": "/datum/outfit/job/clip/minutemen/grunt",
+ "slots": 4
+ },
+ "Reservist": {
+ "outfit": "/datum/outfit/job/clip/minutemen/grunt/reserve",
+ "slots": 1
+ }
+ },
+ "enabled": true
+}
diff --git a/_maps/configs/nanotrasen_tegu.json b/_maps/configs/nanotrasen_tegu.json
new file mode 100644
index 000000000000..92b8ddfa5fc1
--- /dev/null
+++ b/_maps/configs/nanotrasen_tegu.json
@@ -0,0 +1,47 @@
+{
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "map_name": "Tegu-class Communications Freighter",
+ "faction": "/datum/faction/nt",
+ "prefix": "NTSV",
+ "namelists": [
+ "NANOTRASEN",
+ "SPACE",
+ "MYTHOLOGICAL",
+ "WEAPONS"
+ ],
+ "map_short_name": "Tegu-class",
+ "map_path": "_maps/shuttles/nanotrasen/nanotrasen_tegu.dmm",
+ "description": "The Tegu-class network vessel has long been the backbone of Nanotrasen's interstellar telecommunications network. These ships are outfitted with a large communications array, allowing them to function as a mobile network hub both for corporate and civilian radio traffic. While the Tegu has been in service for decades, they have become quite abundant on the Frontier after the ICW, as the Frontier's already-sparse infrastructure was devastated by the fighting, leaving many systems with minimal to no organized telecommunications. In order to facilitate infrastructure reconstruction in an environment with poor shipping networks, the Tegu is also outfitted with mining equipment that allows it to procure materials in the field.",
+ "tags": ["Mining", "Construction", "Telecomms", "Subshuttle"],
+ "limit": 1,
+ "starting_funds": 6000,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/nanotrasen/captain",
+ "officer": true,
+ "slots": 1
+ },
+ "Supply Director": {
+ "outfit": "/datum/outfit/job/nanotrasen/quartermaster",
+ "officer": true,
+ "slots": 1
+ },
+ "Security Officer": {
+ "outfit": "/datum/outfit/job/nanotrasen/security",
+ "slots": 1
+ },
+ "Field Technician": {
+ "outfit": "/datum/outfit/job/nanotrasen/miner/no_equipment",
+ "slots": 2
+ },
+ "Engineer": {
+ "outfit": "/datum/outfit/job/nanotrasen/engineer",
+ "slots": 1
+ },
+ "Deckhand": {
+ "outfit": "/datum/outfit/job/nanotrasen/assistant",
+ "slots": 2
+ }
+ },
+ "enabled": true
+}
diff --git a/_maps/configs/pgf_crying_sun.json b/_maps/configs/pgf_crying_sun.json
index 7115072cb9fa..fd8bfa3347b4 100644
--- a/_maps/configs/pgf_crying_sun.json
+++ b/_maps/configs/pgf_crying_sun.json
@@ -40,6 +40,7 @@
},
"Marine Lieutenant": {
"outfit": "/datum/outfit/job/gezena/hos",
+ "officer": true,
"slots": 1
},
"Marine": {
diff --git a/_maps/configs/pgf_elated_bolide.json b/_maps/configs/pgf_elated_bolide.json
new file mode 100644
index 000000000000..6c3fe8e153c0
--- /dev/null
+++ b/_maps/configs/pgf_elated_bolide.json
@@ -0,0 +1,56 @@
+{
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/pgf",
+ "prefix": "PGFN",
+ "map_name": "Elated Bolide-Class Assault Lander",
+ "namelists": [
+ "PGF"
+ ],
+ "map_short_name": "Elated Bolide-Class",
+ "description": "A somewhat stout design manufactured by the Etherbor PGFN Lihmona Navy Shipyard for service as an orbital assault ship, the Elated Bolide class has served with distinction in many minor conflicts and been sent on deployment to even more locales. Despite not carrying ship-to-ship weaponry (with the traditional mounting spot being taken up by a high-gain antenna), the Elated Bolide's Pioneers are well armed and well trained for orbital insertion, construction, and demolition.",
+ "tags": [
+ "Combat",
+ "Engineering",
+ "RP Focus"
+ ],
+ "starting_funds": 1000,
+ "map_path": "_maps/shuttles/pgf/pgf_elated_bolide.dmm",
+ "limit": 1,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/gezena/captain",
+ "officer": true,
+ "slots": 1
+ },
+ "Marine Lieutenant": {
+ "outfit": "/datum/outfit/job/gezena/hos",
+ "officer":true,
+ "slots": 1
+ },
+ "Helmsman": {
+ "outfit": "/datum/outfit/job/gezena/assistant/bridge",
+ "slots": 1
+ },
+ "Navy Engineer": {
+ "outfit": "/datum/outfit/job/gezena/engineer",
+ "slots": 2
+ },
+ "Hospital Corpsman": {
+ "outfit": "/datum/outfit/job/gezena/doctor",
+ "slots": 1
+ },
+ "Marine": {
+ "outfit": "/datum/outfit/job/gezena/security",
+ "slots": 2
+ },
+ "Assault Pioneer":{
+ "outfit": "/datum/outfit/job/gezena/security/sapper",
+ "slots":4
+ },
+ "Crewman": {
+ "outfit": "/datum/outfit/job/gezena/assistant",
+ "slots": 1
+ }
+ },
+ "enabled":true
+}
diff --git a/_maps/configs/pgf_woeful_cthonian.json b/_maps/configs/pgf_woeful_cthonian.json
new file mode 100644
index 000000000000..442ebd2cc066
--- /dev/null
+++ b/_maps/configs/pgf_woeful_cthonian.json
@@ -0,0 +1,38 @@
+{
+ "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
+ "faction": "/datum/faction/pgf",
+ "prefix": "PGFN",
+ "map_name": "Woeful Cthonian-class Patrol Cutter",
+ "namelists": [
+ "PGF"
+ ],
+ "map_short_name": "Cthonian-class",
+ "description": "A new design of patrol ship designed by Etherbor's Lihmona Navy Shipyards and manufactured by Axilai Orbital Works, the Woeful Cthonian is a small ship with average maneuverability and firepower designed for sustained operations in contested space. While it is not able to hold its own in a firefight with proper warships, lacks specialization into any particular field, and carries no proper marine complement. Despite what some would consider shortcomings, it still finds solid usage as a generalist vessel for the Gezenan navy.",
+ "tags": [
+ "RP Focus",
+ "Medical"
+ ],
+ "starting_funds": 1000,
+ "map_path": "_maps/shuttles/pgf/pgf_woeful_cthonian.dmm",
+ "limit": 1,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/gezena/captain",
+ "officer": true,
+ "slots": 1
+ },
+ "Navy Engineer": {
+ "outfit": "/datum/outfit/job/gezena/engineer",
+ "slots": 1
+ },
+ "Navy Doctor": {
+ "outfit": "/datum/outfit/job/gezena/doctor",
+ "slots": 1
+ },
+ "Crewman": {
+ "outfit": "/datum/outfit/job/gezena/assistant",
+ "slots": 3
+ }
+ },
+ "enabled":true
+}
diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json
index 013be2455640..dbafa1605120 100644
--- a/_maps/configs/syndicate_cybersun_kansatsu.json
+++ b/_maps/configs/syndicate_cybersun_kansatsu.json
@@ -39,5 +39,5 @@
"slots": 2
}
},
- "enabled": true
+ "enabled": false
}
diff --git a/_maps/configs/syndicate_litieguai.json b/_maps/configs/syndicate_cybersun_litieguai.json
similarity index 93%
rename from _maps/configs/syndicate_litieguai.json
rename to _maps/configs/syndicate_cybersun_litieguai.json
index 4680ebe932d6..41fb97deb3ac 100644
--- a/_maps/configs/syndicate_litieguai.json
+++ b/_maps/configs/syndicate_cybersun_litieguai.json
@@ -8,7 +8,7 @@
"tags": [
"Medical"
],
- "map_path": "_maps/shuttles/syndicate/syndicate_litieguai.dmm",
+ "map_path": "_maps/shuttles/syndicate/syndicate_cybersun_litieguai.dmm",
"namelists": [
"SPACE",
"BEASTS",
@@ -17,6 +17,7 @@
"job_slots": {
"Captain": {
"outfit": "/datum/outfit/job/syndicate/captain/cybersun",
+ "officer": true,
"slots": 1
},
"Medical Director": {
diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json
index b51dee46ffd9..5044590efb15 100644
--- a/_maps/configs/syndicate_gorlex_komodo.json
+++ b/_maps/configs/syndicate_gorlex_komodo.json
@@ -1,5 +1,5 @@
{
- "faction": "/datum/faction/syndicate",
+ "faction": "/datum/faction/syndicate/hardliners",
"prefix": "ISV",
"namelists": [
"GORLEX",
@@ -51,5 +51,5 @@
"slots": 2
}
},
- "enabled": true
+ "enabled": false
}
diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_ngr_derecho.json
similarity index 50%
rename from _maps/configs/syndicate_gorlex_hyena.json
rename to _maps/configs/syndicate_ngr_derecho.json
index df4c6485bb0f..e65ab90e3c7c 100644
--- a/_maps/configs/syndicate_gorlex_hyena.json
+++ b/_maps/configs/syndicate_ngr_derecho.json
@@ -6,17 +6,17 @@
"GORLEX",
"NATURAL_AGGRESSIVE",
"BEASTS",
- "WEAPONS",
- "ACLF"
+ "WEAPONS"
],
- "map_name": "Hyena-class Wrecking Tug",
- "description": "The Hyena is a common salvage tug, frequently operated by the Gorlex Marauders for “salvage” missions on ICW-era Nanotrasen derelicts (and occasionally occupied outposts and ships). The Hyena features a fairly compact floor plan with a dedicated secure armory space and a fairly large cargo bay for its size, as well as a complement of high-grade hardsuits and mining equipment. The Hyena’s low cost and high demand in its niche has made it a very common sight on the Frontier in the years following the ICW, and despite their tight finances nearly all Gorlex Marauder splinter factions continue to acquire more.",
+ "map_name": "Derecho-class Wrecking Tug",
+ "description": "The Derecho-class is a series of salvage ships commissioned by the New Gorlex Republic almost as soon as the Republic was founded for the prodigious task of cleaning the space around New Gorlex of countless ICW-era shipwrecks. In recent years, Derechos are operated as auxiliary ships typically tasked with surveying, assessment, and their original mission of salvaging in space controlled or contested by the NGR.",
"tags": [
"Mining",
+ "Salvage",
"Combat"
],
- "map_short_name": "Hyena-class",
- "map_path": "_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm",
+ "map_short_name": "Derecho-class",
+ "map_path": "_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm",
"job_slots": {
"Captain": {
"outfit": "/datum/outfit/job/syndicate/captain/ngr",
diff --git a/_maps/configs/syndicate_ngr_kaliandhi.json b/_maps/configs/syndicate_ngr_kaliandhi.json
new file mode 100644
index 000000000000..81b32af32741
--- /dev/null
+++ b/_maps/configs/syndicate_ngr_kaliandhi.json
@@ -0,0 +1,58 @@
+{
+ "faction": "/datum/faction/syndicate/ngr",
+ "prefix": "NGRV",
+ "namelists": [
+ "GORLEX",
+ "NATURAL_AGGRESSIVE",
+ "BEASTS",
+ "WEAPONS"
+ ],
+ "map_name": "Kali Andhi-class Destroyer",
+ "map_short_name": "Kali Andhi-class",
+ "description": "A post-ICW destroyer design commissioned by the New Gorlex Republic and outfitted for general patrol and reclamation duties. The Kali Andhi-class, despite its young age, has been instrumental in securing New Gorlex's modest territorial claims, making them a somewhat unwelcome sight for the PGF's frontier mission.",
+ "tags": [
+ "RP Focus",
+ "Combat"
+ ],
+ "map_path": "_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm",
+ "map_id": "syndicate_gorlex_kaliandhi",
+ "limit": 1,
+ "job_slots": {
+ "Captain": {
+ "outfit": "/datum/outfit/job/syndicate/captain/ngr",
+ "officer": true,
+ "slots": 1
+ },
+ "Lieutenant": {
+ "outfit": "/datum/outfit/job/syndicate/hos/ngr",
+ "officer": true,
+ "slots": 1
+ },
+ "Ensign": {
+ "outfit": "/datum/outfit/job/syndicate/head_of_personnel/ngr",
+ "officer": true,
+ "slots": 1
+ },
+ "Medical Doctor": {
+ "outfit": "/datum/outfit/job/syndicate/doctor/ngr",
+ "slots": 1
+ },
+ "Mechanic": {
+ "outfit": "/datum/outfit/job/syndicate/engineer/ngr",
+ "slots": 1
+ },
+ "Wrecker": {
+ "outfit": "/datum/outfit/job/syndicate/miner/ngr",
+ "slots":1
+ },
+ "Operative": {
+ "outfit": "/datum/outfit/job/syndicate/security/ngr",
+ "slots": 3
+ },
+ "Initiate": {
+ "outfit": "/datum/outfit/job/syndicate/assistant/ngr",
+ "slots": 2
+ }
+ },
+ "enabled": true
+}
diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt
index 35eb2db0bb16..fbc8db2de21e 100644
--- a/_maps/map_catalogue.txt
+++ b/_maps/map_catalogue.txt
@@ -22,10 +22,6 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
Size = (x = 28)(y = 28)(z = 1)
Tags = "Medium Combat Challenge", "Minor Loot", "Antag Gear", "Inhospitable"
- File Name = _maps\RandomRuins\IceRuins\icemoon_underground_brazillianlab.dmm
- Size = (x = 40)(y = 30)(z = 1)
- Tags = "Boss Combat Challenge", "Major Loot", "Inhospitable"
-
File Name = _maps\RandomRuins\IceRuins\icemoon_underground_burnies_lair.dmm
Size = (x = 20)(y = 20)(z = 1)
Tags = "Boss Combat Challenge", "Minor Loot", "Shelter", "Antag Gear"
@@ -140,22 +136,25 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
SandRuins:
- File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_saloon.dmm"
+ File Name = "_maps\RandomRuins\SandRuins\whitesands_surface_camp_saloon.dmm"
Size = (x = 30)(y = 30)(z = 1)
Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable"
- File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_combination.dmm"
+ File Name = "_maps\RandomRuins\SandRuins\whitesands_surface_camp_combination.dmm"
Size = (x = 59)(y = 59)(z = 1)
Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable", "Hazardous"
- File Name = "_maps\RandomRuins\Ruins\whitesands_surface_medipen_plant.dmm"
+ File Name = "_maps\RandomRuins\SandRuins\whitesands_surface_medipen_plant.dmm"
Size = (x = 23)(y = 29)(z = 1)
Tags = "No Combat", "Major Loot", "Shelter"
- File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm"
+ File Name = "_maps\RandomRuins\SandRuins\whitesands_surface_pubbyslopcrash.dmm"
Size = (x = 40)(y = 25)(z = 1)
Tags = "Minor Combat Challenge", "Medium Loot", "Shelter"
+ File Name = _maps\RandomRuins\SandRuins\whitesands_brazillianlab.dmm
+ Size = (x = 40)(y = 30)(z = 1)
+ Tags = "Boss Combat Challenge", "Major Loot", "Inhospitable"
SpaceRuins:
@@ -236,7 +235,8 @@ Find the key for using this catalogue in "map_catalogue_key.txt"
File name = "_maps\RandomRuins\wasteruins\wasteplanet_abandoned_mechbay.dmm"
Size = (x = 45)(y = 47)(z = 1)
Tags = "Boss Combat Challenge", "Medium Loot", "Shelter", "Hazardous"
-
+
File name = "_maps\RandomRuins\wasteruins\wasteplanet_yard.dmm"
Size = (x = 43)(y = 51)(z = 1)
Tags = "Medium Combat Challenge", "Medium Loot", "Shelter", "Hazardous"
+
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index d7715e22b561..fe531295354c 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -2640,19 +2640,6 @@
"aAN" = (
/turf/open/floor/circuit/green,
/area/centcom/ferry)
-"aAP" = (
-/obj/structure/rack,
-/obj/item/clothing/under/color/red,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/suit/armor/tdome/red,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/red,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/tdome/arena)
"aAT" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/indestructible/riveted,
@@ -3941,19 +3928,6 @@
/obj/item/paper_bin,
/turf/open/floor/mineral/titanium/blue,
/area/centcom/evac)
-"aLT" = (
-/obj/structure/rack,
-/obj/item/clothing/under/color/green,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/suit/armor/tdome/green,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/green,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/tdome/arena)
"aLU" = (
/obj/structure/chair{
dir = 1
@@ -3962,47 +3936,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel,
/area/centcom/evac)
-"aLV" = (
-/turf/closed/indestructible/riveted,
-/area/awaymission/errorroom)
-"aLW" = (
-/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
-"aLX" = (
-/obj/structure/speaking_tile,
-/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
-"aLY" = (
-/obj/item/rupee,
-/turf/open/floor/plating/ashplanet/wateryrock{
- initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
- planetary_atmos = 0
- },
-/area/awaymission/errorroom)
-"aLZ" = (
-/turf/open/floor/plating/ashplanet/wateryrock{
- initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
- planetary_atmos = 0
- },
-/area/awaymission/errorroom)
-"aMa" = (
-/obj/effect/landmark/error,
-/turf/open/floor/plating/ashplanet/wateryrock{
- initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
- planetary_atmos = 0
- },
-/area/awaymission/errorroom)
-"aMb" = (
-/obj/structure/signpost/salvation{
- icon = 'icons/obj/structures.dmi';
- icon_state = "ladder10";
- invisibility = 100
- },
-/turf/open/floor/plating/ashplanet/wateryrock{
- initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
- planetary_atmos = 0
- },
-/area/awaymission/errorroom)
"aMc" = (
/obj/structure/lattice,
/turf/open/space,
@@ -4653,7 +4586,7 @@
/area/syndicate_mothership/control)
"aQg" = (
/obj/structure/closet,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/machinery/iv_drip,
/obj/item/roller,
/obj/item/storage/firstaid/regular,
@@ -4837,27 +4770,6 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/supplypod)
-"aRr" = (
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/item/clothing/under/rank/civilian/curator/treasure_hunter,
-/obj/item/clothing/under/dress/skirt,
-/obj/item/clothing/under/shorts/black,
-/obj/item/clothing/under/pants/track,
-/obj/item/clothing/accessory/armband/deputy,
-/obj/item/clothing/accessory/waistcoat,
-/obj/item/clothing/shoes/jackboots,
-/obj/item/clothing/shoes/laceup,
-/obj/item/clothing/neck/stripedredscarf,
-/obj/item/clothing/neck/tie/red,
-/obj/item/clothing/head/helmet/space/beret,
-/obj/item/clothing/suit/armor/curator,
-/obj/item/clothing/suit/space/officer,
-/obj/item/clothing/gloves/fingerless,
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/glasses/eyepatch,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/grimy,
-/area/centcom/ferry)
"aRs" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/emps,
@@ -5254,8 +5166,8 @@
/area/centcom/holding)
"aUf" = (
/obj/item/storage/box/handcuffs,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/gun/ballistic/revolver/mateba,
/obj/structure/table/reinforced,
/obj/effect/turf_decal/industrial/warning{
@@ -6429,6 +6341,13 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/supply)
+"bEQ" = (
+/obj/item/rupee,
+/turf/open/floor/plating/ashplanet/wateryrock{
+ initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
+ planetary_atmos = 0
+ },
+/area/errorroom)
"bFc" = (
/obj/structure/table/reinforced,
/obj/item/radio/intercom/wideband/table{
@@ -6897,20 +6816,6 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
-"cDD" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/blue,
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/item/melee/transforming/energy/ctf,
-/turf/open/floor/plasteel/dark,
-/area/ctf)
"cEn" = (
/obj/structure/chair/comfy/orange/directional/north,
/obj/effect/turf_decal/corner/transparent/neutral{
@@ -7197,6 +7102,14 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/control)
+"dsD" = (
+/obj/structure/railing,
+/obj/structure/sign/flag/gezena{
+ dir = 4;
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/centcom)
"dtx" = (
/obj/structure/table/wood,
/obj/item/phone{
@@ -7244,10 +7157,25 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/centcom)
+"dva" = (
+/obj/structure/table/reinforced,
+/obj/item/desk_flag/gezena{
+ pixel_x = 11;
+ pixel_y = 13
+ },
+/obj/item/clothing/head/gezena/captain{
+ pixel_x = -9;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"dvo" = (
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel/dark,
/area/ctf)
+"dvE" = (
+/turf/closed/mineral/ash_rock,
+/area/errorroom)
"dAW" = (
/obj/item/storage/box/handcuffs,
/obj/item/crowbar/red,
@@ -7560,6 +7488,13 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/supply)
+"edR" = (
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"efL" = (
/obj/structure/table/reinforced,
/obj/item/paper_bin,
@@ -7706,6 +7641,12 @@
},
/turf/open/floor/wood/walnut,
/area/centcom)
+"ers" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/admin/pgf,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"etl" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -7825,20 +7766,6 @@
"eAJ" = (
/turf/closed/indestructible/wood,
/area/centcom)
-"eCK" = (
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/obj/item/melee/transforming/energy/ctf,
-/turf/open/floor/plasteel/dark,
-/area/ctf)
"eDS" = (
/obj/machinery/airalarm/directional/east,
/obj/structure/filingcabinet/filingcabinet,
@@ -8185,6 +8112,20 @@
},
/turf/open/floor/plasteel/dark,
/area/ctf)
+"fjG" = (
+/obj/effect/turf_decal/corner/opaque/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red,
+/obj/effect/turf_decal/corner/opaque/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/red{
+ dir = 8
+ },
+/obj/item/melee/energy/ctf,
+/turf/open/floor/plasteel/dark,
+/area/ctf)
"fkO" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/corner/opaque/green{
@@ -8380,19 +8321,6 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
/area/centcom/supply)
-"fMV" = (
-/obj/structure/rack,
-/obj/item/clothing/under/color/green,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/suit/armor/tdome/green,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/green,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/tdome/arena_source)
"fNh" = (
/obj/item/storage/firstaid/regular,
/obj/structure/table,
@@ -8748,6 +8676,13 @@
/obj/structure/closet/crate/bin,
/turf/open/floor/wood/walnut,
/area/centcom)
+"guF" = (
+/obj/effect/landmark/error,
+/turf/open/floor/plating/ashplanet/wateryrock{
+ initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
+ planetary_atmos = 0
+ },
+/area/errorroom)
"gwE" = (
/obj/effect/turf_decal/corner/opaque/blue{
dir = 1
@@ -8948,6 +8883,9 @@
},
/turf/open/floor/plasteel,
/area/centcom/supply)
+"gRm" = (
+/turf/closed/indestructible/titanium/nodiagnonal,
+/area/centcom)
"gTh" = (
/obj/structure/table/wood,
/obj/item/storage/photo_album,
@@ -9075,6 +9013,13 @@
},
/turf/open/floor/plasteel,
/area/centcom/ferry)
+"hmi" = (
+/obj/machinery/door/airlock/grunge{
+ req_access = "109";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"hob" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/corner/opaque/green{
@@ -9274,6 +9219,11 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/control)
+"hKv" = (
+/obj/effect/turf_decal/corner/opaque/lime/half,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"hLw" = (
/obj/effect/turf_decal/corner/opaque/green{
dir = 1
@@ -10282,6 +10232,19 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/supply)
+"jLZ" = (
+/obj/structure/rack,
+/obj/item/clothing/under/color/green,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/suit/armor/tdome/green,
+/obj/item/clothing/head/helmet/thunderdome,
+/obj/item/melee/baton/loaded,
+/obj/item/melee/energy/sword/saber/green,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tdome/arena_source)
"jPn" = (
/obj/effect/turf_decal/syndicateemblem/middle/middle,
/turf/open/floor/mineral/plastitanium/red,
@@ -10537,6 +10500,19 @@
},
/turf/open/floor/mineral/plastitanium,
/area/centcom)
+"kjd" = (
+/obj/structure/rack,
+/obj/item/clothing/under/color/red,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/suit/armor/tdome/red,
+/obj/item/clothing/head/helmet/thunderdome,
+/obj/item/melee/baton/loaded,
+/obj/item/melee/energy/sword/saber/red,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tdome/arena_source)
"kjt" = (
/obj/machinery/computer/communications{
dir = 8
@@ -10689,6 +10665,13 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
+"kDv" = (
+/obj/machinery/telecomms/relay/preset/pgf,
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"kEm" = (
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/light/directional/south,
@@ -11126,6 +11109,19 @@
},
/turf/open/floor/plasteel,
/area/centcom/supply)
+"lAh" = (
+/obj/structure/rack,
+/obj/item/clothing/under/color/red,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/suit/armor/tdome/red,
+/obj/item/clothing/head/helmet/thunderdome,
+/obj/item/melee/baton/loaded,
+/obj/item/melee/energy/sword/saber/red,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tdome/arena)
"lAs" = (
/obj/machinery/door/airlock/centcom{
name = "Shuttle Control Office";
@@ -11194,6 +11190,10 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/plasteel/dark,
/area/tdome/tdomeadmin)
+"lEw" = (
+/obj/structure/speaking_tile,
+/turf/closed/mineral/ash_rock,
+/area/errorroom)
"lEZ" = (
/obj/effect/turf_decal/corner/opaque/brown,
/obj/effect/turf_decal/corner/opaque/brown{
@@ -11380,6 +11380,10 @@
},
/turf/open/floor/plasteel,
/area/tdome/arena_source)
+"lWX" = (
+/obj/machinery/computer/secure_data,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"lXt" = (
/obj/item/kirbyplants{
icon_state = "plant-21"
@@ -11577,6 +11581,16 @@
},
/turf/open/floor/plasteel/dark,
/area/ctf)
+"mmz" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/floordetail/tiled,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"moE" = (
/obj/structure/table/reinforced,
/obj/machinery/computer/secure_data/laptop{
@@ -11624,6 +11638,13 @@
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel,
/area/centcom/control)
+"msb" = (
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"msQ" = (
/obj/structure/table/reinforced,
/obj/structure/sign/poster/contraband/cybersun{
@@ -12032,6 +12053,9 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
+"ngI" = (
+/turf/closed/indestructible/riveted,
+/area/errorroom)
"ngV" = (
/obj/structure/table/reinforced,
/obj/item/flashlight/seclite,
@@ -12924,6 +12948,28 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
+"oXW" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/mono/dark,
+/area/centcom)
+"oYg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/lime{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow{
+ pixel_y = 5;
+ pixel_x = 7
+ },
+/obj/item/folder/blue{
+ pixel_x = 3
+ },
+/obj/item/folder/red{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"oYE" = (
/obj/effect/turf_decal/corner/opaque/green{
dir = 8
@@ -13052,6 +13098,18 @@
},
/turf/open/floor/plasteel,
/area/centcom/ferry)
+"pqm" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/centcom)
"psm" = (
/obj/effect/turf_decal/siding/wood{
dir = 10;
@@ -13166,16 +13224,6 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/control)
-"pwQ" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/reagent_dispensers/fueltank,
-/obj/item/weldingtool/experimental,
-/obj/machinery/power/terminal{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/centcom/ferry)
"pxL" = (
/obj/effect/turf_decal/corner/opaque/blue,
/obj/effect/turf_decal/corner/opaque/blue{
@@ -13335,6 +13383,27 @@
},
/turf/open/floor/plasteel,
/area/centcom/control)
+"pIe" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/obj/item/clothing/under/rank/civilian/curator/treasure_hunter,
+/obj/item/clothing/under/dress/skirt/color,
+/obj/item/clothing/under/shorts/black,
+/obj/item/clothing/under/pants/track,
+/obj/item/clothing/accessory/armband/deputy,
+/obj/item/clothing/accessory/waistcoat,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/laceup,
+/obj/item/clothing/neck/stripedredscarf,
+/obj/item/clothing/neck/tie/red,
+/obj/item/clothing/head/helmet/space/beret,
+/obj/item/clothing/suit/armor/curator,
+/obj/item/clothing/suit/space/officer,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/glasses/eyepatch,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/grimy,
+/area/centcom/ferry)
"pIW" = (
/obj/machinery/computer/cargo{
dir = 4
@@ -13541,6 +13610,12 @@
},
/turf/open/floor/plasteel,
/area/tdome/arena_source)
+"qfB" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"qfV" = (
/obj/effect/turf_decal/industrial/warning{
dir = 9
@@ -13676,6 +13751,17 @@
},
/turf/open/floor/plasteel/white,
/area/tdome/tdomeobserve)
+"qCO" = (
+/obj/structure/signpost/salvation{
+ icon = 'icons/obj/structures.dmi';
+ icon_state = "ladder10";
+ invisibility = 100
+ },
+/turf/open/floor/plating/ashplanet/wateryrock{
+ initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
+ planetary_atmos = 0
+ },
+/area/errorroom)
"qFm" = (
/obj/machinery/computer/crew{
dir = 1
@@ -13887,6 +13973,15 @@
/obj/structure/cable,
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
+"rby" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/centcom/ferry)
"rcL" = (
/obj/machinery/icecream_vat,
/obj/effect/turf_decal/corner/transparent/neutral{
@@ -14257,6 +14352,10 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
+"rDI" = (
+/obj/effect/turf_decal/corner/opaque/lime/half,
+/turf/open/floor/plasteel/dark,
+/area/centcom)
"rFv" = (
/obj/structure/table/wood,
/obj/item/storage/box/drinkingglasses,
@@ -14395,19 +14494,6 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/control)
-"rPK" = (
-/obj/structure/rack,
-/obj/item/clothing/under/color/red,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/suit/armor/tdome/red,
-/obj/item/clothing/head/helmet/thunderdome,
-/obj/item/melee/baton/loaded,
-/obj/item/melee/transforming/energy/sword/saber/red,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/tdome/arena_source)
"rQy" = (
/obj/machinery/button/door/indestructible{
id = "thunderdomehea";
@@ -14498,6 +14584,12 @@
},
/turf/open/floor/plasteel/dark,
/area/centcom/ferry)
+"scZ" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"sdr" = (
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
@@ -15365,6 +15457,19 @@
/obj/structure/catwalk/over,
/turf/open/floor/plating,
/area/centcom)
+"tVU" = (
+/obj/structure/rack,
+/obj/item/clothing/under/color/green,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/suit/armor/tdome/green,
+/obj/item/clothing/head/helmet/thunderdome,
+/obj/item/melee/baton/loaded,
+/obj/item/melee/energy/sword/saber/green,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tdome/arena)
"tWM" = (
/obj/structure/table/reinforced,
/obj/item/radio{
@@ -15644,6 +15749,13 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/control)
+"uMM" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/oil,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel,
+/area/centcom/ferry)
"uNn" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -15863,6 +15975,20 @@
},
/turf/open/floor/plasteel/dark,
/area/ctf)
+"vln" = (
+/obj/effect/turf_decal/corner/opaque/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/blue,
+/obj/effect/turf_decal/corner/opaque/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/blue{
+ dir = 8
+ },
+/obj/item/melee/energy/ctf,
+/turf/open/floor/plasteel/dark,
+/area/ctf)
"vlC" = (
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
@@ -16093,6 +16219,14 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/holding)
+"vMz" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/centcom)
"vNl" = (
/obj/machinery/vending/boozeomat,
/obj/machinery/light/directional/east,
@@ -16170,14 +16304,6 @@
},
/turf/open/floor/plasteel,
/area/centcom)
-"wbx" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/item/weldingtool/experimental,
-/obj/effect/decal/cleanable/oil,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel,
-/area/centcom/ferry)
"wbz" = (
/obj/machinery/computer/security,
/obj/effect/turf_decal/industrial/warning,
@@ -16252,6 +16378,12 @@
},
/turf/open/floor/plasteel,
/area/centcom/supply)
+"wiK" = (
+/turf/open/floor/plating/ashplanet/wateryrock{
+ initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
+ planetary_atmos = 0
+ },
+/area/errorroom)
"wjj" = (
/obj/effect/turf_decal/corner/transparent/neutral{
dir = 1
@@ -16706,6 +16838,22 @@
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel,
/area/centcom/ferry)
+"xHM" = (
+/obj/structure/railing,
+/obj/structure/sign/flag/gezena{
+ dir = 8;
+ pixel_y = 0;
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/centcom)
+"xJB" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/plasteel/mono/dark,
+/area/centcom)
"xKt" = (
/obj/structure/closet/crate/hydroponics,
/obj/item/shovel/spade,
@@ -17357,17 +17505,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
aaa
"}
(3,1,1) = {"
@@ -17614,17 +17762,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLV
+ngI
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+ngI
aaa
"}
(4,1,1) = {"
@@ -17871,17 +18019,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(5,1,1) = {"
@@ -18128,17 +18276,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(6,1,1) = {"
@@ -18385,17 +18533,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(7,1,1) = {"
@@ -18642,17 +18790,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLW
-aLV
+ngI
+dvE
+wiK
+wiK
+wiK
+wiK
+wiK
+wiK
+wiK
+dvE
+ngI
aaa
"}
(8,1,1) = {"
@@ -18899,17 +19047,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLZ
-aLZ
-aLZ
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+wiK
+wiK
+wiK
+dvE
+ngI
aaa
"}
(9,1,1) = {"
@@ -19156,17 +19304,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLX
-aLY
-aLY
-aLY
-aLZ
-aLZ
-aMa
-aMb
-aLW
-aLV
+ngI
+lEw
+bEQ
+bEQ
+bEQ
+wiK
+wiK
+guF
+qCO
+dvE
+ngI
aaa
"}
(10,1,1) = {"
@@ -19413,17 +19561,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLZ
-aLZ
-aLZ
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+wiK
+wiK
+wiK
+dvE
+ngI
aaa
"}
(11,1,1) = {"
@@ -19670,17 +19818,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLZ
-aLW
-aLV
+ngI
+dvE
+wiK
+wiK
+wiK
+wiK
+wiK
+wiK
+wiK
+dvE
+ngI
aaa
"}
(12,1,1) = {"
@@ -19927,17 +20075,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(13,1,1) = {"
@@ -20184,17 +20332,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(14,1,1) = {"
@@ -20441,17 +20589,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLY
-aLY
-aLY
-aLZ
-aLY
-aLY
-aLY
-aLW
-aLV
+ngI
+dvE
+bEQ
+bEQ
+bEQ
+wiK
+bEQ
+bEQ
+bEQ
+dvE
+ngI
aaa
"}
(15,1,1) = {"
@@ -20698,17 +20846,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLW
-aLV
+ngI
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+dvE
+ngI
aaa
"}
(16,1,1) = {"
@@ -20955,17 +21103,17 @@ aaa
aaa
aaa
aaa
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
-aLV
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
+ngI
aaa
"}
(17,1,1) = {"
@@ -30429,13 +30577,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+gRm
+gRm
+gRm
+gRm
+hmi
+gRm
aaa
aPu
aPu
@@ -30686,13 +30834,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+ers
+qfB
+dsD
+kDv
+hKv
+gRm
aaa
aPu
nYZ
@@ -30943,13 +31091,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+dva
+mmz
+oXW
+edR
+rDI
+gRm
aaa
aPu
qLN
@@ -31200,13 +31348,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+scZ
+qfB
+xJB
+pqm
+rDI
+gRm
aaa
aPu
wAh
@@ -31457,13 +31605,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+lWX
+mmz
+oXW
+oYg
+rDI
+gRm
aaa
aPu
sZJ
@@ -31714,13 +31862,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+vMz
+qfB
+xHM
+msb
+hKv
+gRm
aaa
aPu
lKP
@@ -31971,13 +32119,13 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gRm
+gRm
+gRm
+gRm
+gRm
+hmi
+gRm
aaa
aPu
aPu
@@ -53260,7 +53408,7 @@ amD
aoe
aoe
amD
-wbx
+uMM
vkq
vkq
vkq
@@ -56084,7 +56232,7 @@ amD
uRu
aoI
aXW
-aRr
+pIe
oJB
anU
inF
@@ -56381,12 +56529,12 @@ aEp
qVj
sdr
aEp
-aAP
-aAP
-aAP
-aAP
-aAP
-aAP
+lAh
+lAh
+lAh
+lAh
+lAh
+lAh
aIv
tzt
sJU
@@ -56601,7 +56749,7 @@ ipU
hYc
lmp
anT
-pwQ
+rby
sSM
avc
amD
@@ -64091,12 +64239,12 @@ aEp
ric
sdr
aEp
-aLT
-aLT
-aLT
-aLT
-aLT
-aLT
+tVU
+tVU
+tVU
+tVU
+tVU
+tVU
aIv
tzt
ldM
@@ -64763,7 +64911,7 @@ agh
pJt
iku
pJt
-cDD
+vln
pJt
iku
pJt
@@ -71959,7 +72107,7 @@ agh
eSF
fhP
eSF
-eCK
+fjG
eSF
fhP
eSF
@@ -74170,12 +74318,12 @@ aaa
(224,1,1) = {"
aab
aab
-rPK
-rPK
-rPK
-rPK
-rPK
-rPK
+kjd
+kjd
+kjd
+kjd
+kjd
+kjd
aab
aaa
aaa
@@ -81880,12 +82028,12 @@ aaa
(254,1,1) = {"
aab
aab
-fMV
-fMV
-fMV
-fMV
-fMV
-fMV
+jLZ
+jLZ
+jLZ
+jLZ
+jLZ
+jLZ
aab
aaa
aaa
diff --git a/_maps/map_files/generic/blank.dmm b/_maps/map_files/generic/blank.dmm
index b918e3fcaead..522ed46ce706 100644
--- a/_maps/map_files/generic/blank.dmm
+++ b/_maps/map_files/generic/blank.dmm
@@ -4,17 +4,17 @@
/area/space)
"b" = (
/turf/closed/indestructible/riveted,
-/area/awaymission/errorroom)
+/area/errorroom)
"p" = (
/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
+/area/errorroom)
"t" = (
/obj/effect/landmark/error,
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
},
-/area/awaymission/errorroom)
+/area/errorroom)
"D" = (
/turf/closed/indestructible/riveted,
/area/start)
@@ -24,7 +24,7 @@
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
},
-/area/awaymission/errorroom)
+/area/errorroom)
"I" = (
/turf/open/floor/holofloor/hyperspace,
/area/space)
@@ -49,17 +49,17 @@
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
},
-/area/awaymission/errorroom)
+/area/errorroom)
"R" = (
/obj/structure/speaking_tile,
/turf/closed/mineral/ash_rock,
-/area/awaymission/errorroom)
+/area/errorroom)
"T" = (
/turf/open/floor/plating/ashplanet/wateryrock{
initial_gas_mix = "o2=22;n2=82;TEMP=293.15";
planetary_atmos = 0
},
-/area/awaymission/errorroom)
+/area/errorroom)
"U" = (
/obj/effect/landmark/start/new_player,
/turf/open/floor/plating,
diff --git a/_maps/outpost/hangar/indie_space_20x20.dmm b/_maps/outpost/hangar/indie_space_20x20.dmm
index d0a327297d30..24c00395b2f6 100644
--- a/_maps/outpost/hangar/indie_space_20x20.dmm
+++ b/_maps/outpost/hangar/indie_space_20x20.dmm
@@ -66,11 +66,10 @@
/turf/closed/indestructible/reinforced,
/area/hangar)
"az" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+/obj/effect/turf_decal/arrows{
dir = 4
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -79,11 +78,7 @@
pixel_y = 25
},
/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -138,10 +133,12 @@
},
/area/hangar)
"aO" = (
-/obj/structure/railing{
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
+ },
/area/hangar)
"aP" = (
/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
@@ -152,58 +149,20 @@
},
/area/hangar)
"aT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
"aY" = (
/obj/effect/landmark/outpost/hangar_numbers,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"aZ" = (
/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
-"dR" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"fT" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"fU" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"gu" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"iT" = (
-/obj/structure/railing/corner{
- dir = 4
- },
+"aZ" = (
/turf/open/floor/plasteel{
planetary_atmos = 1
},
@@ -219,138 +178,9 @@
planetary_atmos = 1
},
/area/hangar)
-"qO" = (
-/obj/structure/table/reinforced,
-/obj/structure/sign/warning/nosmoking/burnt{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
"rQ" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"un" = (
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"zH" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Af" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "101"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Aj" = (
-/obj/machinery/computer/hydrogen_exchange,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"An" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"DI" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ie" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"IW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ks" = (
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Li" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Oa" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sr" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"VO" = (
-/obj/structure/railing/corner{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Wk" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xu" = (
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Xy" = (
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
+/obj/machinery/atmospherics/pipe/simple/general,
+/turf/closed/indestructible/reinforced,
/area/hangar)
(1,1,1) = {"
@@ -425,7 +255,7 @@ aH
aH
am
aZ
-fU
+aZ
aM
ac
ac
@@ -448,7 +278,7 @@ aC
ac
ac
ao
-fU
+aZ
aZ
am
"}
@@ -458,7 +288,7 @@ aH
aH
am
aZ
-fU
+aZ
aM
ad
ad
@@ -481,7 +311,7 @@ ad
ad
ad
ao
-fU
+aZ
aZ
am
"}
@@ -491,7 +321,7 @@ aH
aH
am
aZ
-fU
+aZ
aM
aJ
aJ
@@ -514,7 +344,7 @@ aJ
aJ
aB
ao
-fU
+aZ
aZ
am
"}
@@ -524,7 +354,7 @@ aH
aH
am
aZ
-fU
+aZ
aM
aJ
aJ
@@ -547,7 +377,7 @@ aJ
aJ
aJ
ao
-fU
+aZ
aZ
am
"}
@@ -557,7 +387,7 @@ aH
aH
am
aZ
-fU
+az
aM
ap
aJ
@@ -580,7 +410,7 @@ aJ
aJ
ap
ao
-fU
+az
aZ
am
"}
@@ -590,8 +420,8 @@ aH
aH
am
aZ
-Ie
-Oa
+aZ
+aM
aJ
aJ
aJ
@@ -612,8 +442,8 @@ aJ
aJ
aJ
aJ
-Sr
-gu
+ao
+aZ
aZ
am
"}
@@ -623,7 +453,7 @@ aH
aH
am
aZ
-az
+aZ
av
aJ
aJ
@@ -646,7 +476,7 @@ aJ
aJ
aJ
aq
-Wk
+aZ
aZ
am
"}
@@ -656,7 +486,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -679,7 +509,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -689,7 +519,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -712,7 +542,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -745,7 +575,7 @@ aJ
aJ
ap
ao
-Wk
+az
aZ
am
"}
@@ -755,7 +585,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -778,7 +608,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -788,7 +618,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -811,7 +641,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -821,7 +651,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -844,7 +674,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -854,7 +684,7 @@ aH
aH
am
aZ
-az
+aZ
aM
aJ
aJ
@@ -877,7 +707,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -910,17 +740,17 @@ aJ
aJ
ap
ao
-Wk
+az
aZ
am
"}
(18,1,1) = {"
aH
aH
+aH
am
-am
-iT
-az
+aZ
+aZ
aM
aJ
aJ
@@ -943,17 +773,17 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
(19,1,1) = {"
+aH
+aH
+aH
am
-am
-am
-Xu
-aO
-az
+aZ
+aZ
av
aJ
aJ
@@ -976,17 +806,17 @@ aJ
aJ
aJ
aq
-Wk
+aZ
aZ
am
"}
(20,1,1) = {"
+aH
+aH
+aH
am
-Af
-un
-Xy
-VO
-az
+aZ
+aZ
aM
aJ
aJ
@@ -1009,18 +839,18 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
(21,1,1) = {"
+aH
+aH
+aH
am
-am
-Aj
-DI
-aT
-zH
-Oa
+aZ
+aZ
+aM
aJ
aJ
aJ
@@ -1041,17 +871,17 @@ aJ
aJ
aJ
aJ
-Sr
-IW
+ao
+aZ
aZ
am
"}
(22,1,1) = {"
aH
+aH
+aH
am
-qO
-Ks
-Li
+aZ
az
aM
ap
@@ -1075,17 +905,17 @@ aJ
aJ
ap
ao
-Wk
+az
aZ
am
"}
(23,1,1) = {"
aH
-am
-am
+aH
+aH
rQ
aO
-dR
+aZ
aM
aJ
aJ
@@ -1108,7 +938,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -1141,7 +971,7 @@ aJ
aJ
aJ
ao
-Wk
+aZ
aZ
am
"}
@@ -1151,7 +981,7 @@ qz
qz
jk
ax
-fT
+aZ
al
aN
aN
@@ -1174,7 +1004,7 @@ aN
aN
aN
aP
-Wk
+aZ
aZ
am
"}
@@ -1185,29 +1015,29 @@ qz
qz
ax
aY
+aZ
+aZ
+aZ
aT
+aZ
+aZ
+aZ
+aZ
aT
+aZ
+aZ
+aZ
+aZ
aT
+aZ
+aZ
+aZ
+aZ
aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-aT
-An
+aZ
+aZ
+aZ
+aZ
aZ
am
"}
@@ -1217,7 +1047,7 @@ qz
qz
qz
ax
-un
+aZ
aZ
aZ
aE
diff --git a/_maps/outpost/hangar/indie_space_40x20.dmm b/_maps/outpost/hangar/indie_space_40x20.dmm
index 35c8c8f6e11c..b3d80e6103bc 100644
--- a/_maps/outpost/hangar/indie_space_40x20.dmm
+++ b/_maps/outpost/hangar/indie_space_40x20.dmm
@@ -12,10 +12,9 @@
/area/hangar)
"af" = (
/obj/effect/landmark/outpost/hangar_numbers,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
/area/hangar)
"ai" = (
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
@@ -52,25 +51,20 @@
},
/area/hangar)
"as" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"at" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "101"
+/obj/effect/turf_decal/arrows{
+ dir = 1
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
"av" = (
-/obj/structure/railing{
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
+ },
/area/hangar)
"aw" = (
/obj/effect/turf_decal/arrows{
@@ -140,11 +134,7 @@
pixel_y = 25
},
/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -160,21 +150,11 @@
planetary_atmos = 1
},
/area/hangar)
-"aV" = (
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
"aX" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+/obj/effect/turf_decal/arrows{
dir = 4
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -187,108 +167,6 @@
planetary_atmos = 1
},
/area/hangar)
-"cr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"fT" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"id" = (
-/obj/machinery/computer/hydrogen_exchange,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"kN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"oo" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"pb" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"pf" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"qK" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"yq" = (
-/obj/structure/table/reinforced,
-/obj/structure/sign/warning/nosmoking/burnt{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"AH" = (
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ek" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ey" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"IY" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
"JT" = (
/turf/open/floor/plasteel/elevatorshaft{
planetary_atmos = 1
@@ -300,56 +178,9 @@
planetary_atmos = 1
},
/area/hangar)
-"Pk" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"SR" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"TQ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
"TX" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"UV" = (
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Wp" = (
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"XP" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Yu" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/techmaint,
+/obj/machinery/atmospherics/pipe/simple/general,
+/turf/closed/indestructible/reinforced,
/area/hangar)
(1,1,1) = {"
@@ -424,7 +255,7 @@ aP
aP
ab
aj
-IY
+aj
aL
aH
aH
@@ -447,7 +278,7 @@ aw
aH
aH
al
-IY
+aj
aj
ab
"}
@@ -457,7 +288,7 @@ aP
aP
ab
aj
-IY
+aj
aL
am
am
@@ -480,7 +311,7 @@ am
am
am
al
-IY
+aj
aj
ab
"}
@@ -490,7 +321,7 @@ aP
aP
ab
aj
-IY
+aj
aL
aD
aD
@@ -513,7 +344,7 @@ aD
aD
ap
al
-IY
+aj
aj
ab
"}
@@ -523,7 +354,7 @@ aP
aP
ab
aj
-IY
+aj
aL
aD
aD
@@ -546,7 +377,7 @@ aD
aD
aD
al
-IY
+aj
aj
ab
"}
@@ -556,7 +387,7 @@ aP
aP
ab
aj
-IY
+aX
aL
aG
aD
@@ -579,7 +410,7 @@ aD
aD
aG
al
-IY
+aX
aj
ab
"}
@@ -589,8 +420,8 @@ aP
aP
ab
aj
-oo
-fT
+aj
+aL
aD
aD
aD
@@ -611,8 +442,8 @@ aD
aD
aD
aD
-Ek
-cr
+al
+aj
aj
ab
"}
@@ -622,7 +453,7 @@ aP
aP
ab
aj
-aX
+aj
ai
aD
aD
@@ -645,7 +476,7 @@ aD
aD
aD
aY
-kN
+aj
aj
ab
"}
@@ -655,7 +486,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -678,7 +509,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -688,7 +519,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -711,7 +542,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -744,7 +575,7 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
@@ -754,7 +585,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -777,7 +608,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -787,7 +618,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -810,7 +641,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -820,7 +651,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -843,7 +674,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -853,7 +684,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -876,7 +707,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -909,7 +740,7 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
@@ -919,7 +750,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -942,7 +773,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -952,7 +783,7 @@ aP
aP
ab
aj
-aX
+aj
ai
aD
aD
@@ -975,7 +806,7 @@ aD
aD
aD
aY
-kN
+aj
aj
ab
"}
@@ -985,7 +816,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1008,7 +839,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1018,7 +849,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1041,7 +872,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1074,7 +905,7 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
@@ -1084,7 +915,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1107,7 +938,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1117,8 +948,8 @@ aP
aP
ab
aj
-pb
-fT
+aj
+aL
aD
aD
aD
@@ -1139,8 +970,8 @@ aD
aD
aD
aD
-Ek
-SR
+al
+aj
aj
ab
"}
@@ -1150,7 +981,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1173,7 +1004,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1183,7 +1014,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1206,7 +1037,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1239,7 +1070,7 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
@@ -1249,7 +1080,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1272,7 +1103,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1282,7 +1113,7 @@ aP
aP
ab
aj
-aX
+aj
ai
aD
aD
@@ -1305,7 +1136,7 @@ aD
aD
aD
aY
-kN
+aj
aj
ab
"}
@@ -1315,7 +1146,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1338,7 +1169,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1348,7 +1179,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1371,7 +1202,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1404,7 +1235,7 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
@@ -1414,7 +1245,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1437,7 +1268,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1447,7 +1278,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1470,7 +1301,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1480,7 +1311,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1503,7 +1334,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1513,7 +1344,7 @@ aP
aP
ab
aj
-aX
+aj
aL
aD
aD
@@ -1536,7 +1367,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1569,17 +1400,17 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
(38,1,1) = {"
aP
aP
+aP
ab
-ab
-Pk
-aX
+aj
+aj
aL
aD
aD
@@ -1602,17 +1433,17 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
(39,1,1) = {"
+aP
+aP
+aP
ab
-ab
-ab
-UV
-av
-aX
+aj
+aj
ai
aD
aD
@@ -1635,17 +1466,17 @@ aD
aD
aD
aY
-kN
+aj
aj
ab
"}
(40,1,1) = {"
+aP
+aP
+aP
ab
-at
-Wp
-AH
-pf
-aX
+aj
+aj
aL
aD
aD
@@ -1668,18 +1499,18 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
(41,1,1) = {"
+aP
+aP
+aP
ab
-ab
-id
-pb
-as
-TQ
-fT
+aj
+aj
+aL
aD
aD
aD
@@ -1700,17 +1531,17 @@ aD
aD
aD
aD
-Ek
-SR
+al
+aj
aj
ab
"}
(42,1,1) = {"
aP
+aP
+aP
ab
-yq
-aV
-XP
+aj
aX
aL
aG
@@ -1734,17 +1565,17 @@ aD
aD
aG
al
-kN
+aX
aj
ab
"}
(43,1,1) = {"
aP
-ab
-ab
+aP
+aP
TX
av
-qK
+aj
aL
aD
aD
@@ -1767,7 +1598,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1800,7 +1631,7 @@ aD
aD
aD
al
-kN
+aj
aj
ab
"}
@@ -1810,7 +1641,7 @@ JT
JT
OP
aF
-Yu
+aj
aM
aU
aU
@@ -1833,7 +1664,7 @@ aU
aU
aU
ae
-kN
+aj
aj
ab
"}
@@ -1844,29 +1675,29 @@ JT
JT
aF
af
+aj
+aj
+aj
as
+aj
+aj
+aj
+aj
as
+aj
+aj
+aj
+aj
as
+aj
+aj
+aj
+aj
as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-as
-Ey
+aj
+aj
+aj
+aj
aj
ab
"}
@@ -1876,7 +1707,7 @@ JT
JT
JT
aF
-Wp
+aj
aj
aj
aA
diff --git a/_maps/outpost/hangar/indie_space_40x40.dmm b/_maps/outpost/hangar/indie_space_40x40.dmm
index 01e75c51ee8a..9818aa943330 100644
--- a/_maps/outpost/hangar/indie_space_40x40.dmm
+++ b/_maps/outpost/hangar/indie_space_40x40.dmm
@@ -46,11 +46,7 @@
pixel_y = 25
},
/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -83,9 +79,10 @@
/turf/template_noop,
/area/template_noop)
"aw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -97,11 +94,10 @@
},
/area/hangar)
"ay" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+/obj/effect/turf_decal/arrows{
dir = 4
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -126,10 +122,9 @@
/area/hangar)
"aP" = (
/obj/effect/landmark/outpost/hangar_numbers,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
/area/hangar)
"aQ" = (
/obj/effect/turf_decal/trimline/opaque/yellow/warning{
@@ -159,10 +154,12 @@
},
/area/hangar)
"aY" = (
-/obj/structure/railing{
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
+ },
/area/hangar)
"aZ" = (
/obj/machinery/door/airlock,
@@ -170,135 +167,14 @@
/obj/structure/lattice/catwalk,
/turf/open/floor/engine,
/area/hangar)
-"fM" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"hX" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"iR" = (
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
"jY" = (
/turf/open/floor/plasteel/elevatorshaft{
planetary_atmos = 1
},
/area/hangar)
-"kN" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"mS" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"qA" = (
-/obj/structure/table/reinforced,
-/obj/structure/sign/warning/nosmoking/burnt{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"wm" = (
-/obj/machinery/computer/hydrogen_exchange,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"xH" = (
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"yn" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/valve/digital{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
"BE" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Ev" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fb" = (
-/obj/structure/railing/corner{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Fj" = (
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fm" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Hs" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"HB" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
+/obj/machinery/atmospherics/pipe/simple/general,
+/turf/closed/indestructible/reinforced,
/area/hangar)
"JI" = (
/obj/effect/landmark/outpost/elevator,
@@ -306,72 +182,6 @@
planetary_atmos = 1
},
/area/hangar)
-"KC" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ol" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "101"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pk" = (
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"PN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"RL" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Se" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Wc" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"XA" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"XZ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
(1,1,1) = {"
au
@@ -485,7 +295,7 @@ au
au
aa
aT
-Se
+aT
ah
at
at
@@ -528,7 +338,7 @@ as
at
at
ab
-Se
+aT
aT
aa
"}
@@ -538,7 +348,7 @@ au
au
aa
aT
-Se
+aT
ah
aQ
aQ
@@ -581,7 +391,7 @@ aQ
aQ
aQ
ab
-Se
+aT
aT
aa
"}
@@ -591,7 +401,7 @@ au
au
aa
aT
-Se
+aT
ah
aF
aF
@@ -634,7 +444,7 @@ aF
aF
aH
ab
-Se
+aT
aT
aa
"}
@@ -644,7 +454,7 @@ au
au
aa
aT
-Se
+aT
ah
aF
aF
@@ -687,7 +497,7 @@ aF
aF
aF
ab
-Se
+aT
aT
aa
"}
@@ -697,7 +507,7 @@ au
au
aa
aT
-Se
+ay
ah
ac
aF
@@ -740,7 +550,7 @@ aF
aF
ac
ab
-Se
+ay
aT
aa
"}
@@ -750,8 +560,8 @@ au
au
aa
aT
-hX
-Ev
+aT
+ah
aF
aF
aF
@@ -792,8 +602,8 @@ aF
aF
aF
aF
-XZ
-KC
+ab
+aT
aT
aa
"}
@@ -803,7 +613,7 @@ au
au
aa
aT
-ay
+aT
ax
aF
aF
@@ -846,7 +656,7 @@ aF
aF
aF
ak
-fM
+aT
aT
aa
"}
@@ -856,7 +666,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -899,7 +709,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -909,7 +719,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -952,7 +762,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1005,7 +815,7 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
@@ -1015,7 +825,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1058,7 +868,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1068,7 +878,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1111,7 +921,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1121,7 +931,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1164,7 +974,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1174,7 +984,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1217,7 +1027,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1270,7 +1080,7 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
@@ -1280,7 +1090,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1323,7 +1133,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1333,7 +1143,7 @@ au
au
aa
aT
-ay
+aT
ax
aF
aF
@@ -1376,7 +1186,7 @@ aF
aF
aF
ak
-fM
+aT
aT
aa
"}
@@ -1386,7 +1196,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1429,7 +1239,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1439,7 +1249,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1482,7 +1292,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1535,7 +1345,7 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
@@ -1545,7 +1355,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1588,7 +1398,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1598,8 +1408,8 @@ au
au
aa
aT
-HB
-Ev
+aT
+ah
aF
aF
aF
@@ -1640,8 +1450,8 @@ aF
aF
aF
aF
-XZ
-RL
+ab
+aT
aT
aa
"}
@@ -1651,7 +1461,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1694,7 +1504,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1704,7 +1514,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1747,7 +1557,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1800,7 +1610,7 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
@@ -1810,7 +1620,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1853,7 +1663,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1863,7 +1673,7 @@ au
au
aa
aT
-ay
+aT
ax
aF
aF
@@ -1906,7 +1716,7 @@ aF
aF
aF
ak
-fM
+aT
aT
aa
"}
@@ -1916,7 +1726,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -1959,7 +1769,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -1969,7 +1779,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -2012,7 +1822,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2065,7 +1875,7 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
@@ -2075,7 +1885,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -2118,7 +1928,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2128,7 +1938,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -2171,7 +1981,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2181,7 +1991,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -2224,7 +2034,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2234,7 +2044,7 @@ au
au
aa
aT
-ay
+aT
ah
aF
aF
@@ -2277,7 +2087,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2330,17 +2140,17 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
(38,1,1) = {"
au
au
+au
aa
-aa
-kN
-ay
+aT
+aT
ah
aF
aF
@@ -2383,17 +2193,17 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
(39,1,1) = {"
+au
+au
+au
aa
-aa
-aa
-xH
-aY
-ay
+aT
+aT
ax
aF
aF
@@ -2436,17 +2246,17 @@ aF
aF
aF
ak
-fM
+aT
aT
aa
"}
(40,1,1) = {"
+au
+au
+au
aa
-Ol
-Pk
-Fj
-Fb
-ay
+aT
+aT
ah
aF
aF
@@ -2489,18 +2299,18 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
(41,1,1) = {"
+au
+au
+au
aa
-aa
-wm
-HB
-aw
-mS
-Ev
+aT
+aT
+ah
aF
aF
aF
@@ -2541,17 +2351,17 @@ aF
aF
aF
aF
-XZ
-RL
+ab
+aT
aT
aa
"}
(42,1,1) = {"
au
+au
+au
aa
-qA
-iR
-Fm
+aT
ay
ah
ac
@@ -2595,17 +2405,17 @@ aF
aF
ac
ab
-fM
+ay
aT
aa
"}
(43,1,1) = {"
au
-aa
-aa
+au
+au
BE
aY
-XA
+aT
ah
aF
aF
@@ -2648,7 +2458,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2701,7 +2511,7 @@ aF
aF
aF
ab
-fM
+aT
aT
aa
"}
@@ -2711,7 +2521,7 @@ jY
jY
JI
aZ
-Wc
+aT
aC
ag
ag
@@ -2725,7 +2535,6 @@ ag
ag
ag
ag
-yn
ag
ag
ag
@@ -2740,7 +2549,8 @@ ag
ag
ag
ag
-yn
+ag
+ag
ag
ag
ag
@@ -2754,7 +2564,7 @@ ag
ag
ag
aX
-fM
+aT
aT
aa
"}
@@ -2765,49 +2575,49 @@ jY
jY
aZ
aP
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
+aT
+aT
+aT
+aT
aw
-aw
-aw
-aw
-aw
-aw
-Hs
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-Hs
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-aw
-PN
+aT
+aT
+aT
+aT
aT
aa
"}
@@ -2817,7 +2627,7 @@ jY
jY
jY
aZ
-Pk
+aT
aT
aS
aT
diff --git a/_maps/outpost/hangar/indie_space_56x20.dmm b/_maps/outpost/hangar/indie_space_56x20.dmm
index ad3aeb33fe8a..93842d2587a5 100644
--- a/_maps/outpost/hangar/indie_space_56x20.dmm
+++ b/_maps/outpost/hangar/indie_space_56x20.dmm
@@ -17,12 +17,6 @@
"ag" = (
/turf/closed/indestructible/reinforced,
/area/hangar)
-"ah" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
"ai" = (
/obj/effect/turf_decal/arrows{
dir = 1
@@ -71,11 +65,7 @@
pixel_y = 25
},
/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -88,17 +78,18 @@
},
/area/hangar)
"ay" = (
-/obj/structure/railing{
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
+ },
/area/hangar)
"aB" = (
/obj/effect/landmark/outpost/hangar_numbers,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
/area/hangar)
"aC" = (
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
@@ -109,9 +100,10 @@
},
/area/hangar)
"aD" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -124,11 +116,10 @@
},
/area/hangar)
"aG" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
+/obj/effect/turf_decal/arrows{
+ dir = 4
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -182,167 +173,14 @@
planetary_atmos = 1
},
/area/hangar)
-"lA" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"mV" = (
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
"mX" = (
/turf/open/floor/plasteel/elevatorshaft{
planetary_atmos = 1
},
/area/hangar)
-"pt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"qG" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"rb" = (
-/obj/structure/railing/corner{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"st" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
"vM" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"wb" = (
-/obj/structure/table/reinforced,
-/obj/structure/sign/warning/nosmoking/burnt{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"xG" = (
-/obj/machinery/computer/hydrogen_exchange,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"DF" = (
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"EZ" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"GM" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "101"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ld" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"MY" = (
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Td" = (
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"TZ" = (
-/obj/structure/railing/corner{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Ua" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ud" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"UF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"WZ" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
+/obj/machinery/atmospherics/pipe/simple/general,
+/turf/closed/indestructible/reinforced,
/area/hangar)
(1,1,1) = {"
@@ -417,7 +255,7 @@ aZ
aZ
ag
an
-pt
+an
aJ
ae
ae
@@ -440,7 +278,7 @@ ai
ae
ae
aC
-pt
+an
an
ag
"}
@@ -450,7 +288,7 @@ aZ
aZ
ag
an
-pt
+an
aJ
ax
ax
@@ -473,7 +311,7 @@ ax
ax
ax
aC
-pt
+an
an
ag
"}
@@ -483,7 +321,7 @@ aZ
aZ
ag
an
-pt
+an
aJ
aN
aN
@@ -506,7 +344,7 @@ aN
aN
af
aC
-pt
+an
an
ag
"}
@@ -516,7 +354,7 @@ aZ
aZ
ag
an
-pt
+an
aJ
aN
aN
@@ -539,7 +377,7 @@ aN
aN
aN
aC
-pt
+an
an
ag
"}
@@ -549,7 +387,7 @@ aZ
aZ
ag
an
-pt
+aG
aJ
al
aN
@@ -572,7 +410,7 @@ aN
aN
al
aC
-pt
+aG
an
ag
"}
@@ -582,8 +420,8 @@ aZ
aZ
ag
an
-st
-qG
+an
+aJ
aN
aN
aN
@@ -604,8 +442,8 @@ aN
aN
aN
aN
-Ud
-Ua
+aC
+an
an
ag
"}
@@ -615,7 +453,7 @@ aZ
aZ
ag
an
-Jt
+an
aI
aN
aN
@@ -638,7 +476,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -648,7 +486,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -671,7 +509,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -681,7 +519,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -704,7 +542,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -714,7 +552,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -737,7 +575,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -747,7 +585,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -770,7 +608,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -780,7 +618,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -803,7 +641,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -813,7 +651,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -836,7 +674,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -846,7 +684,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -869,7 +707,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -879,7 +717,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -902,7 +740,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -912,7 +750,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -935,7 +773,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -945,7 +783,7 @@ aZ
aZ
ag
an
-Jt
+an
aI
aN
aN
@@ -968,7 +806,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -978,7 +816,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1001,7 +839,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1011,7 +849,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1034,7 +872,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1044,7 +882,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -1067,7 +905,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -1077,7 +915,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1100,7 +938,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1110,7 +948,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1133,7 +971,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1143,7 +981,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1166,7 +1004,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1176,7 +1014,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1199,7 +1037,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1210,7 +1048,7 @@ aZ
ag
an
aG
-qG
+aJ
al
aN
aN
@@ -1231,8 +1069,8 @@ aN
aN
aN
al
-Ud
-UF
+aC
+aG
an
ag
"}
@@ -1242,7 +1080,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1265,7 +1103,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1275,7 +1113,7 @@ aZ
aZ
ag
an
-Jt
+an
aI
aN
aN
@@ -1298,7 +1136,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -1308,7 +1146,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1331,7 +1169,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1341,7 +1179,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1364,7 +1202,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1374,7 +1212,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -1397,7 +1235,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -1407,7 +1245,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1430,7 +1268,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1440,7 +1278,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1463,7 +1301,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1473,7 +1311,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1496,7 +1334,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1506,7 +1344,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1529,7 +1367,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1539,7 +1377,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -1562,7 +1400,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -1572,7 +1410,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1595,7 +1433,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1605,7 +1443,7 @@ aZ
aZ
ag
an
-Jt
+an
aI
aN
aN
@@ -1628,7 +1466,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -1638,7 +1476,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1661,7 +1499,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1671,8 +1509,8 @@ aZ
aZ
ag
an
-aG
-qG
+an
+aJ
aN
aN
aN
@@ -1693,8 +1531,8 @@ aN
aN
aN
aN
-Ud
-UF
+aC
+an
an
ag
"}
@@ -1704,7 +1542,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -1727,7 +1565,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -1737,7 +1575,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1760,7 +1598,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1770,7 +1608,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1793,7 +1631,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1803,7 +1641,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1826,7 +1664,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1836,7 +1674,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1859,7 +1697,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1869,7 +1707,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -1892,7 +1730,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -1902,7 +1740,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1925,7 +1763,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -1935,7 +1773,7 @@ aZ
aZ
ag
an
-Jt
+an
aI
aN
aN
@@ -1958,7 +1796,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -1968,7 +1806,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -1991,7 +1829,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -2001,7 +1839,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -2024,7 +1862,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -2034,7 +1872,7 @@ aZ
aZ
ag
an
-Jt
+aG
aJ
al
aN
@@ -2057,7 +1895,7 @@ aN
aN
al
aC
-Jt
+aG
an
ag
"}
@@ -2067,7 +1905,7 @@ aZ
aZ
ag
an
-Jt
+an
aJ
aN
aN
@@ -2090,17 +1928,17 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
(54,1,1) = {"
aZ
aZ
+aZ
ag
-ag
-rb
-Jt
+an
+an
aJ
aN
aN
@@ -2123,17 +1961,17 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
(55,1,1) = {"
+aZ
+aZ
+aZ
ag
-ag
-ag
-MY
-ay
-Jt
+an
+an
aJ
aN
aN
@@ -2156,17 +1994,17 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
(56,1,1) = {"
+aZ
+aZ
+aZ
ag
-GM
-mV
-Td
-EZ
-Jt
+an
+an
aJ
aN
aN
@@ -2189,18 +2027,18 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
(57,1,1) = {"
+aZ
+aZ
+aZ
ag
-ag
-xG
+an
aG
-aD
-Ld
-qG
+aJ
al
aN
aN
@@ -2221,18 +2059,18 @@ aN
aN
aN
al
-Ud
-UF
+aC
+aG
an
ag
"}
(58,1,1) = {"
aZ
+aZ
+aZ
ag
-wb
-DF
-TZ
-Jt
+an
+an
aJ
aN
aN
@@ -2255,17 +2093,17 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
(59,1,1) = {"
aZ
-ag
-ag
+aZ
+aZ
vM
ay
-WZ
+an
aI
aN
aN
@@ -2288,7 +2126,7 @@ aN
aN
aN
aK
-Jt
+an
an
ag
"}
@@ -2321,7 +2159,7 @@ aN
aN
aN
aC
-Jt
+an
an
ag
"}
@@ -2331,7 +2169,7 @@ mX
mX
jJ
aj
-ah
+an
ap
aE
aE
@@ -2354,7 +2192,7 @@ aE
aE
aE
am
-Jt
+an
an
ag
"}
@@ -2365,29 +2203,29 @@ mX
mX
aj
aB
+an
+an
+an
aD
+an
+an
+an
+an
aD
+an
+an
+an
+an
aD
+an
+an
+an
+an
aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-aD
-lA
+an
+an
+an
+an
an
ag
"}
@@ -2397,7 +2235,7 @@ mX
mX
mX
aj
-mV
+an
an
an
aP
diff --git a/_maps/outpost/hangar/indie_space_56x40.dmm b/_maps/outpost/hangar/indie_space_56x40.dmm
index f2c909c23aaf..4adf317b8435 100644
--- a/_maps/outpost/hangar/indie_space_56x40.dmm
+++ b/_maps/outpost/hangar/indie_space_56x40.dmm
@@ -4,11 +4,7 @@
pixel_y = 25
},
/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -52,16 +48,17 @@
/area/hangar)
"ar" = (
/obj/effect/landmark/outpost/hangar_numbers,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
/area/hangar)
"at" = (
-/obj/structure/railing{
+/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel{
+ planetary_atmos = 1
+ },
/area/hangar)
"au" = (
/obj/machinery/light/floor/hangar,
@@ -85,8 +82,10 @@
},
/area/hangar)
"aD" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
+/obj/effect/turf_decal/arrows{
+ dir = 4
+ },
+/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
@@ -162,172 +161,21 @@
/turf/template_noop,
/area/template_noop)
"aZ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ck" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"cR" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
+/obj/effect/turf_decal/arrows{
dir = 1
},
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"ec" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/valve/digital{
- dir = 4
- },
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"el" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ho" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold4w/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ik" = (
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"il" = (
-/obj/machinery/computer/hydrogen_exchange,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"mh" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"mP" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"qn" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"uh" = (
-/obj/structure/table/reinforced,
-/obj/structure/sign/warning/nosmoking/burnt{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"vi" = (
-/obj/structure/railing/corner{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"vl" = (
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
/turf/open/floor/plasteel{
planetary_atmos = 1
},
/area/hangar)
-"vq" = (
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"zp" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"AN" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"GH" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hd" = (
-/obj/structure/railing/corner{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Lx" = (
-/obj/structure/railing/corner{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel{
+"ck" = (
+/turf/open/floor/plasteel/elevatorshaft{
planetary_atmos = 1
},
/area/hangar)
"MN" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"NB" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
+/obj/machinery/atmospherics/pipe/simple/general,
+/turf/closed/indestructible/reinforced,
/area/hangar)
"Qi" = (
/obj/effect/landmark/outpost/elevator,
@@ -335,37 +183,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Sw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"SV" = (
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Tt" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel{
- planetary_atmos = 1
- },
-/area/hangar)
-"WQ" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "101"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
(1,1,1) = {"
aV
@@ -479,7 +296,7 @@ aV
aV
aH
aN
-aD
+aN
aP
aG
aG
@@ -522,7 +339,7 @@ aw
aG
aG
aT
-aD
+aN
aN
aH
"}
@@ -532,7 +349,7 @@ aV
aV
aH
aN
-aD
+aN
aP
ai
ai
@@ -575,7 +392,7 @@ ai
ai
ai
aT
-aD
+aN
aN
aH
"}
@@ -585,7 +402,7 @@ aV
aV
aH
aN
-aD
+aN
aP
aM
aM
@@ -628,7 +445,7 @@ aM
aM
aj
aT
-aD
+aN
aN
aH
"}
@@ -638,7 +455,7 @@ aV
aV
aH
aN
-aD
+aN
aP
aM
aM
@@ -681,7 +498,7 @@ aM
aM
aM
aT
-aD
+aN
aN
aH
"}
@@ -744,8 +561,8 @@ aV
aV
aH
aN
-el
-Tt
+aN
+aP
aM
aM
aM
@@ -786,8 +603,8 @@ aM
aM
aM
aM
-cR
-zp
+aT
+aN
aN
aH
"}
@@ -797,7 +614,7 @@ aV
aV
aH
aN
-qn
+aN
am
aM
aM
@@ -840,7 +657,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -850,7 +667,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -893,7 +710,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -903,7 +720,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -946,7 +763,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -956,7 +773,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -999,7 +816,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -1009,7 +826,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1052,7 +869,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1062,7 +879,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1105,7 +922,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1115,7 +932,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1158,7 +975,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1168,7 +985,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1211,7 +1028,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1221,7 +1038,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -1264,7 +1081,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -1274,7 +1091,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1317,7 +1134,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1327,7 +1144,7 @@ aV
aV
aH
aN
-qn
+aN
am
aM
aM
@@ -1370,7 +1187,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -1380,7 +1197,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1423,7 +1240,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1433,7 +1250,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1476,7 +1293,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1486,7 +1303,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -1529,7 +1346,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -1539,7 +1356,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1582,7 +1399,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1592,7 +1409,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1635,7 +1452,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1645,7 +1462,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1688,7 +1505,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1698,7 +1515,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1741,7 +1558,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1751,8 +1568,8 @@ aV
aV
aH
aN
-Sw
-Tt
+aD
+aP
aE
aM
aM
@@ -1793,8 +1610,8 @@ aM
aM
aM
aE
-cR
-mh
+aT
+aD
aN
aH
"}
@@ -1804,7 +1621,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1847,7 +1664,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1857,7 +1674,7 @@ aV
aV
aH
aN
-qn
+aN
am
aM
aM
@@ -1900,7 +1717,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -1910,7 +1727,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -1953,7 +1770,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -1963,7 +1780,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2006,7 +1823,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2016,7 +1833,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -2059,7 +1876,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -2069,7 +1886,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2112,7 +1929,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2122,7 +1939,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2165,7 +1982,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2175,7 +1992,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2218,7 +2035,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2228,7 +2045,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2271,7 +2088,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2281,7 +2098,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -2324,7 +2141,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -2334,7 +2151,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2377,7 +2194,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2387,7 +2204,7 @@ aV
aV
aH
aN
-qn
+aN
am
aM
aM
@@ -2430,7 +2247,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -2440,7 +2257,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2483,7 +2300,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2493,8 +2310,8 @@ aV
aV
aH
aN
-Sw
-Tt
+aN
+aP
aM
aM
aM
@@ -2535,8 +2352,8 @@ aM
aM
aM
aM
-cR
-mh
+aT
+aN
aN
aH
"}
@@ -2546,7 +2363,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -2589,7 +2406,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -2599,7 +2416,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2642,7 +2459,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2652,7 +2469,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2695,7 +2512,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2705,7 +2522,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2748,7 +2565,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2758,7 +2575,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2801,7 +2618,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2811,7 +2628,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -2854,7 +2671,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -2864,7 +2681,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -2907,7 +2724,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -2917,7 +2734,7 @@ aV
aV
aH
aN
-qn
+aN
am
aM
aM
@@ -2960,7 +2777,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -2970,7 +2787,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -3013,7 +2830,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -3023,7 +2840,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -3066,7 +2883,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -3076,7 +2893,7 @@ aV
aV
aH
aN
-qn
+aD
aP
aE
aM
@@ -3119,7 +2936,7 @@ aM
aM
aE
aT
-qn
+aD
aN
aH
"}
@@ -3129,7 +2946,7 @@ aV
aV
aH
aN
-qn
+aN
aP
aM
aM
@@ -3172,17 +2989,17 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
(54,1,1) = {"
aV
aV
+aV
aH
-aH
-Lx
-qn
+aN
+aN
aP
aM
aM
@@ -3225,17 +3042,17 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
(55,1,1) = {"
+aV
+aV
+aV
aH
-aH
-aH
-SV
-at
-qn
+aN
+aN
aP
aM
aM
@@ -3278,17 +3095,17 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
(56,1,1) = {"
+aV
+aV
+aV
aH
-WQ
-vq
-ik
-Hd
-qn
+aN
+aN
aP
aM
aM
@@ -3331,18 +3148,18 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
(57,1,1) = {"
+aV
+aV
+aV
aH
-aH
-il
-Sw
-aZ
-ho
-Tt
+aN
+aD
+aP
aE
aM
aM
@@ -3383,18 +3200,18 @@ aM
aM
aM
aE
-cR
-mh
+aT
+aD
aN
aH
"}
(58,1,1) = {"
aV
+aV
+aV
aH
-uh
-vl
-vi
-qn
+aN
+aN
aP
aM
aM
@@ -3437,17 +3254,17 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
(59,1,1) = {"
aV
-aH
-aH
+aV
+aV
MN
at
-GH
+aN
am
aM
aM
@@ -3490,7 +3307,7 @@ aM
aM
aM
ao
-qn
+aN
aN
aH
"}
@@ -3543,7 +3360,7 @@ aM
aM
aM
aT
-qn
+aN
aN
aH
"}
@@ -3553,7 +3370,7 @@ ck
ck
Qi
aA
-AN
+aN
aK
aO
aO
@@ -3567,7 +3384,6 @@ aO
aO
aO
aO
-ec
aO
aO
aO
@@ -3582,7 +3398,8 @@ aO
aO
aO
aO
-ec
+aO
+aO
aO
aO
aO
@@ -3596,7 +3413,7 @@ aO
aO
aO
aI
-qn
+aN
aN
aH
"}
@@ -3607,49 +3424,49 @@ ck
ck
aA
ar
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
+aN
+aN
+aN
+aN
aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-mP
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-mP
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-aZ
-NB
+aN
+aN
+aN
+aN
aN
aH
"}
@@ -3659,7 +3476,7 @@ ck
ck
ck
aA
-vq
+aN
aN
au
aN
diff --git a/_maps/outpost/hangar/nt_asteroid_20x20.dmm b/_maps/outpost/hangar/nt_asteroid_20x20.dmm
deleted file mode 100644
index 858d984f4603..000000000000
--- a/_maps/outpost/hangar/nt_asteroid_20x20.dmm
+++ /dev/null
@@ -1,3251 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ah" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"an" = (
-/obj/structure/chair/comfy/grey/directional/north,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"aD" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"aN" = (
-/obj/effect/turf_decal/steeldecal/steel_decals_central2{
- pixel_y = 2
- },
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"bi" = (
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"bv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/garbage{
- pixel_y = -5;
- pixel_x = -7
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"cn" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"cB" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/table,
-/obj/item/paper/pamphlet/gateway{
- pixel_x = 3;
- pixel_y = 4
- },
-/obj/item/paper/pamphlet/centcom{
- pixel_x = 8;
- pixel_y = 1
- },
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -9;
- pixel_y = 3
- },
-/obj/structure/sign/poster/official/do_not_question{
- pixel_x = 32
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"cE" = (
-/obj/effect/landmark/outpost/hangar_dock,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"cY" = (
-/obj/structure/floodlight_frame{
- pixel_x = -9;
- pixel_y = -1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"dg" = (
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"dz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil/streak,
-/obj/machinery/light/directional/west,
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"dC" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"dQ" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"ea" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ei" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ek" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"eQ" = (
-/obj/item/organ/tail/lizard{
- pixel_x = 4;
- pixel_y = 11
- },
-/obj/effect/decal/cleanable/blood{
- icon_state = "floor4";
- pixel_y = 13;
- pixel_x = 8
- },
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/hangar)
-"eV" = (
-/obj/effect/turf_decal/steeldecal/steel_decals9,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fm" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/item/trash/cheesie{
- color = "#808080";
- pixel_x = 21;
- pixel_y = 1;
- layer = 2.9
- },
-/obj/effect/decal/cleanable/glass{
- dir = 8;
- pixel_y = 1;
- color = "#808080"
- },
-/obj/effect/decal/cleanable/oil{
- icon_state = "streak4";
- pixel_x = -13;
- pixel_y = -11
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"fp" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating/asteroid/icerock/smooth,
-/area/hangar)
-"fO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"gQ" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/sparsegrass{
- pixel_y = -1;
- pixel_x = -1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/grass{
- planetary_atmos = 1
- },
-/area/hangar)
-"hb" = (
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"hf" = (
-/obj/structure/marker_beacon{
- picked_color = "Teal"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"hq" = (
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"hz" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"hE" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
- },
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"hJ" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/glass{
- dir = 8;
- pixel_y = -3;
- color = "#808080";
- pixel_x = 3
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/confetti{
- color = "#808080";
- pixel_x = 18;
- pixel_y = 9
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"hL" = (
-/obj/machinery/door/airlock/highsecurity,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"hP" = (
-/obj/structure/flora/rock{
- pixel_x = 9
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ia" = (
-/obj/structure/chair/greyscale{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"iK" = (
-/obj/structure/fence{
- dir = 4
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"iZ" = (
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"js" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"jw" = (
-/obj/machinery/computer/cargo,
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/structure/sign/poster/official/moth/smokey{
- pixel_y = 32
- },
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"jQ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ka" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"kX" = (
-/obj/machinery/computer/crew/syndie{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lt" = (
-/obj/effect/turf_decal/industrial/loading,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lZ" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/landmark/outpost/hangar_numbers,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"mn" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"mw" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"mz" = (
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"mV" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 5
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"mW" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/sprayweb{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/sprayweb{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"mY" = (
-/turf/template_noop,
-/area/template_noop)
-"nt" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/confetti{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"nw" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "asclepius_reception_lockdown";
- name = "Lockdown Shutters"
- },
-/obj/item/kirbyplants{
- icon_state = "plant-03"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"nP" = (
-/obj/structure/girder/displaced,
-/obj/structure/grille/broken,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"nY" = (
-/obj/structure/fence/door,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"oj" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"ok" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/structure/frame/machine,
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"oq" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/turf/open/floor/grass{
- planetary_atmos = 1
- },
-/area/hangar)
-"oC" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"oL" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/table_bell{
- pixel_x = 9;
- pixel_y = -1
- },
-/obj/item/cigbutt/cigarbutt{
- pixel_x = -5;
- pixel_y = 10
- },
-/obj/item/dice/d2,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"oP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/wrapping{
- color = "#808080"
- },
-/obj/structure/closet/crate,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"pg" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"pV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/elevator_call_button{
- pixel_y = 31;
- pixel_x = 10
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21";
- pixel_x = -7;
- pixel_y = 18
- },
-/obj/effect/landmark/outpost/elevator_machine,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"pW" = (
-/turf/open/floor/plasteel/stairs/mid{
- planetary_atmos = 1
- },
-/area/hangar)
-"qa" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"qk" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/item/newspaper{
- pixel_x = 6;
- pixel_y = 10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"ql" = (
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"qt" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"qJ" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/decal/cleanable/glass{
- dir = 8;
- pixel_y = -4;
- color = "#808080";
- pixel_x = 8
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"qM" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"qY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"re" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"rg" = (
-/obj/item/binoculars{
- pixel_y = 6;
- pixel_x = -3
- },
-/obj/structure/rack,
-/obj/item/radio{
- pixel_y = 6;
- pixel_x = 9
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"rw" = (
-/obj/structure/frame/machine,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"rP" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg2";
- planetary_atmos = 1
- },
-/area/hangar)
-"ss" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"tk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"tm" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/leaper_sludge{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/sprayweb{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"ty" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "asclepius_reception_lockdown";
- name = "Lockdown Shutters"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"tz" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals1,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"tF" = (
-/obj/effect/turf_decal/arrows,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"tT" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/wrapping{
- color = "#808080";
- pixel_y = 8
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"uL" = (
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel/stairs/right{
- planetary_atmos = 1
- },
-/area/hangar)
-"uY" = (
-/obj/machinery/computer/communications{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vs" = (
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vE" = (
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver,
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"vW" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/vomit/old{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/sprayweb{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"wd" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"wu" = (
-/obj/structure/flora/ausbushes/sparsegrass{
- pixel_y = -12;
- pixel_x = 9
- },
-/turf/open/floor/grass{
- planetary_atmos = 1
- },
-/area/hangar)
-"wI" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 6
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3";
- planetary_atmos = 1
- },
-/area/hangar)
-"wN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"yM" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Al" = (
-/obj/structure/rack,
-/obj/item/poster/random_official{
- pixel_x = 2;
- pixel_y = 9
- },
-/obj/item/poster/random_official{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/poster/random_contraband{
- pixel_y = 8;
- pixel_x = -1
- },
-/obj/item/destTagger{
- pixel_x = -5
- },
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Av" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"AK" = (
-/turf/open/floor/plating/asteroid/icerock/smooth,
-/area/hangar)
-"Bh" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"BM" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/obj/machinery/computer/camera_advanced{
- dir = 8
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cb" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ci" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/structure/fermenting_barrel{
- pixel_y = 9
- },
-/obj/structure/fermenting_barrel{
- pixel_y = 1;
- pixel_x = 8
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cw" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cx" = (
-/obj/effect/turf_decal/industrial/caution{
- pixel_y = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"CA" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/fax/ruin,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"CR" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/blood{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"CU" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Dj" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"Do" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"DD" = (
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"DG" = (
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/stairs/left{
- planetary_atmos = 1
- },
-/area/hangar)
-"DK" = (
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Es" = (
-/obj/structure/grille,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ew" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"ER" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 9
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Fd" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fg" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/newscaster/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fy" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"GE" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/east,
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hi" = (
-/obj/effect/turf_decal/steeldecal/steel_decals3,
-/obj/effect/turf_decal/steeldecal/steel_decals3{
- dir = 6
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hv" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Hw" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/sparsegrass{
- pixel_y = -1;
- pixel_x = -1
- },
-/obj/structure/flora/ausbushes/stalkybush,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/grass{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ij" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"It" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/greenglow{
- color = "#808080";
- pixel_x = -11;
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"IR" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/fullgrass,
-/obj/structure/flora/ausbushes/fernybush,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/grass{
- planetary_atmos = 1
- },
-/area/hangar)
-"Je" = (
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jf" = (
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jt" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ju" = (
-/obj/effect/decal/cleanable/garbage{
- pixel_x = -12;
- pixel_y = -6
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"JN" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kd" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kf" = (
-/obj/effect/turf_decal/industrial/caution{
- pixel_y = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ki" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kl" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"KA" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/hangar)
-"KU" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"LB" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- volume = 10000000
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"LN" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mb" = (
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mm" = (
-/obj/item/flashlight/lantern{
- pixel_x = 7
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Mv" = (
-/obj/effect/turf_decal/steeldecal/steel_decals2,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"MZ" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nc" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nd" = (
-/obj/effect/turf_decal/steeldecal/steel_decals_central2{
- pixel_y = 2
- },
-/obj/effect/turf_decal/steeldecal/steel_decals_central2{
- pixel_y = 2
- },
-/obj/machinery/atmospherics/components/unary/passive_vent{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ni" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/north,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nv" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"NB" = (
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"OH" = (
-/obj/structure/frame/machine,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"OW" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/structure/frame/computer{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ph" = (
-/obj/effect/landmark/outpost/elevator,
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pn" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/steeldecal/steel_decals_central2{
- pixel_y = 2
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Py" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/flashlight/lamp/green{
- pixel_y = 13;
- pixel_x = 8
- },
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = -4
- },
-/obj/item/clipboard{
- pixel_x = -2;
- pixel_y = 8
- },
-/obj/item/phone{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/storage/fancy/cigarettes/cigars/havana{
- pixel_y = -8;
- pixel_x = 4
- },
-/obj/item/lighter{
- pixel_y = -16;
- pixel_x = 13
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"PG" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/girder/displaced,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"PN" = (
-/obj/structure/chair/sofa/brown/left/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"QM" = (
-/obj/structure/flora/rock/icy{
- pixel_x = 5;
- pixel_y = 5
- },
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Ra" = (
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/structure/sign/warning/securearea{
- pixel_y = 32
- },
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"RX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/crate/freezer,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"SH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tj" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/item/trash/energybar{
- color = "#808080";
- layer = 2;
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/effect/decal/cleanable/xenoblood{
- color = "#808080"
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"To" = (
-/obj/structure/table/reinforced,
-/obj/item/stack/packageWrap{
- pixel_y = 7
- },
-/obj/item/clipboard{
- pixel_x = -5;
- pixel_y = 1
- },
-/obj/item/export_scanner{
- pixel_x = 4
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Tp" = (
-/obj/structure/mopbucket,
-/obj/item/mop{
- pixel_y = 4;
- pixel_x = -9
- },
-/obj/item/toy/plush/knight{
- pixel_y = 17;
- pixel_x = 4
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tr" = (
-/obj/effect/decal/fakelattice{
- color = "#808080"
- },
-/obj/item/trash/sosjerky{
- anchored = 1;
- color = "#808080";
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/effect/decal/cleanable/dirt{
- color = "#808080"
- },
-/obj/effect/decal/cleanable/vomit/old{
- color = "#808080"
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plasteel/elevatorshaft{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Tw" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/structure/filingcabinet/chestdrawer,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"TV" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/item/desk_flag{
- pixel_x = -6;
- pixel_y = 17
- },
-/obj/item/megaphone/sec{
- name = "syndicate megaphone";
- pixel_x = 1;
- pixel_y = 4
- },
-/obj/item/camera_bug{
- pixel_x = -5;
- pixel_y = -3
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"UG" = (
-/obj/effect/turf_decal/steeldecal/steel_decals_central2{
- pixel_y = 2
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"UH" = (
-/obj/structure/table/reinforced,
-/obj/item/stamp{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/item/stamp/denied{
- pixel_x = -8;
- pixel_y = 3
- },
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = 5
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"UJ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"UO" = (
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"UX" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"VA" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"VO" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/structure/grille,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"VS" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/computer/card/minor/cmo{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"WE" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"WJ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/warning/docking{
- pixel_x = -32
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"WL" = (
-/obj/structure/table,
-/obj/item/toy/cards/deck{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Xs" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xv" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"XB" = (
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"XL" = (
-/obj/item/toy/plush/lizardplushie{
- pixel_x = -6;
- name = "tail-less lizard plushie"
- },
-/obj/effect/decal/cleanable/blood{
- icon_state = "splatter6";
- pixel_x = -13;
- pixel_y = 6
- },
-/obj/item/toy/plush/goatplushie{
- pixel_x = 12
- },
-/obj/item/toy/katana{
- pixel_x = 20;
- pixel_y = 1
- },
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"XN" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/official/ian{
- pixel_y = -32
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"XQ" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/structure/closet/crate/trashcart,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"XT" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"XW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 10
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"YH" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"Zb" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Zq" = (
-/obj/structure/chair/sofa/brown/right/directional/south,
-/obj/item/reagent_containers/food/drinks/mug{
- pixel_x = -5;
- pixel_y = -3
- },
-/obj/item/toy/plush/hornet{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Zu" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZL" = (
-/obj/item/chair{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-
-(1,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-vE
-iZ
-iZ
-iZ
-vE
-iZ
-iZ
-iZ
-vE
-iZ
-iZ
-iZ
-vE
-iZ
-iZ
-iZ
-vE
-iZ
-iZ
-iZ
-iZ
-mY
-mY
-mY
-mY
-"}
-(2,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-mY
-iZ
-iZ
-DD
-DD
-DD
-YH
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-Zb
-YH
-iZ
-iZ
-iZ
-iZ
-iZ
-mY
-mY
-mY
-"}
-(3,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-mY
-iZ
-iZ
-DD
-DD
-Av
-Kd
-Mb
-dg
-ql
-Mb
-Mb
-Mb
-dg
-ql
-Mb
-Mb
-ql
-tF
-Mb
-Mb
-Mb
-ql
-tF
-Mb
-Kd
-WJ
-bv
-DD
-iZ
-iZ
-iZ
-mY
-mY
-"}
-(4,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-mY
-iZ
-DD
-DD
-DD
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-cE
-Nv
-MZ
-DD
-DD
-DD
-iZ
-iZ
-mY
-"}
-(5,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-iZ
-iZ
-iZ
-DD
-OH
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-Nv
-Tp
-iZ
-DD
-DD
-DD
-iZ
-mY
-"}
-(6,1,1) = {"
-mY
-mY
-mY
-mY
-mY
-iZ
-Al
-dz
-Xv
-aN
-Ij
-hf
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hf
-Nv
-XN
-iZ
-iZ
-DD
-DD
-iZ
-mY
-"}
-(7,1,1) = {"
-mY
-iZ
-iZ
-iZ
-iZ
-iZ
-To
-UO
-wI
-Nd
-Ij
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-MZ
-iK
-KA
-AK
-DD
-iZ
-iZ
-"}
-(8,1,1) = {"
-mY
-iZ
-LB
-mV
-iZ
-jw
-XB
-DG
-ei
-Pn
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-vs
-iK
-AK
-AK
-DD
-DD
-iZ
-"}
-(9,1,1) = {"
-iZ
-iZ
-iZ
-ek
-iZ
-UH
-Jf
-pW
-rP
-Pn
-Av
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-js
-mz
-iK
-NB
-fp
-iZ
-DD
-iZ
-"}
-(10,1,1) = {"
-iZ
-Dj
-Dj
-re
-iZ
-iZ
-Ra
-uL
-qM
-Pn
-Ij
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-mz
-nY
-NB
-NB
-DD
-DD
-iZ
-"}
-(11,1,1) = {"
-iZ
-Dj
-Dj
-XW
-cn
-KU
-UX
-Hv
-ER
-UG
-Ij
-hf
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hf
-Nv
-MZ
-iK
-NB
-NB
-KA
-DD
-iZ
-"}
-(12,1,1) = {"
-iZ
-Dj
-Dj
-hE
-DD
-DD
-VO
-OW
-ok
-tz
-Ij
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-MZ
-iK
-NB
-NB
-NB
-iZ
-iZ
-"}
-(13,1,1) = {"
-iZ
-iZ
-iZ
-iZ
-DD
-DD
-PG
-Je
-XQ
-Cx
-Ij
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-mz
-iK
-NB
-NB
-NB
-DD
-iZ
-"}
-(14,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-iZ
-RX
-mw
-Ju
-lt
-Av
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-Nv
-mz
-DD
-QM
-Mm
-DD
-DD
-iZ
-"}
-(15,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-DD
-Je
-mw
-mw
-lt
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-js
-Es
-DD
-DD
-iZ
-DD
-DD
-iZ
-"}
-(16,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-DD
-Cw
-qa
-Nc
-lt
-wd
-hf
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hf
-Nv
-Es
-DD
-DD
-DD
-DD
-DD
-iZ
-"}
-(17,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-DD
-dQ
-oP
-bi
-Kf
-Ij
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-Nv
-Jz
-hb
-ZL
-DD
-DD
-DD
-iZ
-"}
-(18,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-DD
-DD
-Ki
-pg
-MZ
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-qY
-tk
-WL
-DD
-DD
-DD
-iZ
-"}
-(19,1,1) = {"
-mY
-mY
-mY
-iZ
-DD
-DD
-DD
-DD
-Ci
-MZ
-wd
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-Nv
-nP
-Do
-ia
-DD
-DD
-DD
-iZ
-"}
-(20,1,1) = {"
-mY
-mY
-iZ
-iZ
-DD
-DD
-DD
-DD
-DD
-MZ
-UJ
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-Es
-rw
-iZ
-DD
-DD
-iZ
-iZ
-"}
-(21,1,1) = {"
-mY
-mY
-iZ
-DD
-DD
-DD
-wu
-oq
-DD
-mz
-Fy
-hf
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hf
-Bh
-Es
-DD
-DD
-DD
-DD
-iZ
-mY
-"}
-(22,1,1) = {"
-mY
-iZ
-iZ
-DD
-DD
-IR
-Hw
-gQ
-DD
-Mv
-UJ
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-cY
-iZ
-DD
-DD
-DD
-iZ
-mY
-"}
-(23,1,1) = {"
-mY
-iZ
-DD
-DD
-oj
-Cb
-Xs
-Ew
-ty
-mz
-UJ
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-hq
-ka
-hP
-DD
-DD
-DD
-iZ
-iZ
-mY
-"}
-(24,1,1) = {"
-mY
-iZ
-DD
-iZ
-Ni
-wN
-Xs
-Jt
-ty
-Mb
-VA
-yM
-yM
-yM
-hz
-ea
-ea
-ea
-jQ
-ea
-WE
-WE
-ea
-jQ
-WE
-WE
-WE
-oC
-WE
-WE
-ea
-Fd
-DD
-DD
-DD
-DD
-iZ
-mY
-mY
-"}
-(25,1,1) = {"
-mY
-iZ
-DD
-iZ
-Zq
-wN
-LN
-Jt
-ty
-Mb
-Mb
-mz
-eV
-mz
-mz
-mz
-mz
-mz
-mz
-mz
-qY
-MZ
-Hi
-mz
-vs
-mz
-MZ
-mz
-MZ
-MZ
-mz
-iZ
-DD
-DD
-DD
-iZ
-iZ
-mY
-mY
-"}
-(26,1,1) = {"
-mY
-iZ
-DD
-iZ
-PN
-wN
-Xs
-Ew
-ty
-CU
-DD
-iZ
-DD
-DD
-iZ
-vW
-tm
-qJ
-mn
-Kl
-fm
-hJ
-Tr
-CR
-DD
-DD
-DD
-DD
-DD
-DD
-ah
-DD
-DD
-DD
-iZ
-iZ
-mY
-mY
-mY
-"}
-(27,1,1) = {"
-iZ
-iZ
-iZ
-iZ
-iZ
-pV
-Xs
-Ew
-nw
-DD
-DD
-DD
-DD
-DD
-iZ
-iZ
-mW
-Tj
-tT
-dC
-nt
-aD
-It
-DD
-DD
-DD
-DD
-DD
-DD
-DD
-ss
-DD
-DD
-DD
-iZ
-mY
-mY
-mY
-mY
-"}
-(28,1,1) = {"
-iZ
-Dj
-Dj
-Ph
-qt
-Cb
-LN
-Ew
-DD
-DD
-DD
-DD
-DD
-DD
-DD
-iZ
-iZ
-XT
-XT
-XT
-XT
-iZ
-iZ
-DD
-DD
-NB
-eQ
-DD
-DD
-Dj
-Dj
-Dj
-DD
-DD
-iZ
-mY
-mY
-mY
-mY
-"}
-(29,1,1) = {"
-iZ
-Dj
-Dj
-Dj
-qt
-Cb
-lZ
-Zu
-iZ
-DD
-DD
-DD
-DD
-DD
-DD
-iZ
-Tw
-rg
-VS
-kX
-uY
-iZ
-Dj
-Dj
-DD
-NB
-XL
-DD
-iZ
-Dj
-Dj
-Dj
-iZ
-DD
-iZ
-mY
-mY
-mY
-mY
-"}
-(30,1,1) = {"
-iZ
-Dj
-Dj
-Dj
-qt
-wN
-LN
-Fg
-iZ
-DD
-DD
-DD
-DD
-DD
-DD
-iZ
-qk
-an
-fO
-JN
-DK
-hL
-Dj
-Dj
-DD
-NB
-NB
-DD
-iZ
-iZ
-iZ
-iZ
-iZ
-DD
-iZ
-mY
-mY
-mY
-mY
-"}
-(31,1,1) = {"
-iZ
-iZ
-iZ
-iZ
-iZ
-SH
-GE
-cB
-iZ
-DD
-DD
-DD
-DD
-DD
-DD
-iZ
-Py
-oL
-BM
-TV
-CA
-iZ
-Dj
-Dj
-iZ
-iZ
-iZ
-iZ
-iZ
-mY
-mY
-mY
-iZ
-iZ
-iZ
-mY
-mY
-mY
-mY
-"}
-(32,1,1) = {"
-mY
-mY
-mY
-mY
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-iZ
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-mY
-"}
diff --git a/_maps/outpost/hangar/nt_asteroid_40x20.dmm b/_maps/outpost/hangar/nt_asteroid_40x20.dmm
deleted file mode 100644
index 312e0443aeea..000000000000
--- a/_maps/outpost/hangar/nt_asteroid_40x20.dmm
+++ /dev/null
@@ -1,4301 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ai" = (
-/obj/item/wallframe/airalarm{
- pixel_y = -7
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"au" = (
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"ba" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"bX" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"ck" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"cn" = (
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"cq" = (
-/obj/structure/closet/crate,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plating{
- icon_state = "platingdmg1";
- planetary_atmos = 1
- },
-/area/hangar)
-"cO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"cY" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"dn" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"dw" = (
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plasteel/stairs{
- dir = 4
- },
-/area/hangar)
-"dK" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"dN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ed" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/structure/girder/reinforced,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"eg" = (
-/obj/structure/chair,
-/obj/structure/sign/poster/official/enlist{
- pixel_x = 32
- },
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken4";
- planetary_atmos = 1
- },
-/area/hangar)
-"ep" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 9
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"eH" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/sign/poster/contraband/energy_swords{
- pixel_y = -32
- },
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"eP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"fy" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fB" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fI" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"gr" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"gu" = (
-/turf/template_noop,
-/area/template_noop)
-"gE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"gL" = (
-/obj/machinery/door/airlock/highsecurity,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"gO" = (
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"gV" = (
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"he" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/obj/structure/grille/indestructable,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"hh" = (
-/obj/effect/landmark/outpost/elevator,
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"hp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"hs" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 6
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"hJ" = (
-/obj/structure/railing/wood{
- dir = 8
- },
-/turf/open/floor/plasteel/stairs/wood,
-/area/hangar)
-"ie" = (
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"iw" = (
-/obj/item/banner,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"iM" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/stairs{
- dir = 8;
- planetary_atmos = 1
- },
-/area/hangar)
-"iV" = (
-/obj/structure/grille,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"jy" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"jF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"jR" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- volume = 10000000
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"jS" = (
-/obj/structure/flora/rock/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"jX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"ka" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"kk" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"kD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"kG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"kU" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = -6
- },
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = 10;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = -6
- },
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = 10;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"ll" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"lN" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"mb" = (
-/mob/living/simple_animal/hostile/cockroach,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"mo" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/table_bell{
- pixel_x = 9;
- pixel_y = -1
- },
-/obj/item/cigbutt/cigarbutt{
- pixel_x = -5;
- pixel_y = 10
- },
-/obj/item/dice/d2,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"mq" = (
-/turf/open/floor/plasteel/stairs{
- dir = 8;
- planetary_atmos = 1
- },
-/area/hangar)
-"mN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/mopbucket,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ns" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"nW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"os" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"oJ" = (
-/obj/item/kirbyplants{
- icon_state = "plant-09"
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"oK" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/structure/closet/crate,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/vomit,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"oU" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"pt" = (
-/obj/structure/table/reinforced,
-/obj/item/stamp{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/item/stamp/denied{
- pixel_x = -8;
- pixel_y = 3
- },
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = 5
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"pu" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/flashlight/lamp/green{
- pixel_y = 13;
- pixel_x = 8
- },
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = -4
- },
-/obj/item/clipboard{
- pixel_x = -2;
- pixel_y = 8
- },
-/obj/item/phone{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/storage/fancy/cigarettes/cigars/havana{
- pixel_y = -8;
- pixel_x = 4
- },
-/obj/item/lighter{
- pixel_y = -16;
- pixel_x = 13
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"px" = (
-/obj/effect/turf_decal/industrial/loading,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"py" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 5
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"pF" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"pG" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/item/desk_flag{
- pixel_x = -6;
- pixel_y = 17
- },
-/obj/item/megaphone/sec{
- name = "syndicate megaphone";
- pixel_x = 1;
- pixel_y = 4
- },
-/obj/item/camera_bug{
- pixel_x = -5;
- pixel_y = -3
- },
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"pJ" = (
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"pQ" = (
-/obj/machinery/computer/communications{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"pT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"qc" = (
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"qg" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
- },
-/obj/structure/closet/toolcloset/empty,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"qh" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"qH" = (
-/obj/structure/flora/grass/both{
- pixel_x = 23;
- pixel_y = 6
- },
-/turf/open/floor/grass/snow/safe{
- planetary_atmos = 1
- },
-/area/hangar)
-"rt" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/item/newspaper{
- pixel_x = 6;
- pixel_y = 10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"rJ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"rX" = (
-/obj/machinery/vending/coffee,
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"sA" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/computer/card/minor/cmo{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"sG" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"sP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/sign/poster/official/moth/meth{
- pixel_x = 32
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"sY" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"sZ" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/barricade/wooden/crude,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"te" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"to" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"tq" = (
-/obj/machinery/elevator_call_button{
- pixel_y = 31;
- pixel_x = 10
- },
-/obj/effect/landmark/outpost/elevator_machine,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"tx" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"tF" = (
-/obj/effect/spawner/structure/window/hollow/reinforced/middle{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"tH" = (
-/obj/machinery/computer/cargo,
-/obj/item/toy/plush/knight{
- pixel_y = 25;
- pixel_x = 9
- },
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"ug" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3";
- planetary_atmos = 1
- },
-/area/hangar)
-"vh" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"vk" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vn" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"vq" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"vt" = (
-/obj/structure/railing/corner/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"vz" = (
-/obj/effect/turf_decal/industrial/caution{
- pixel_y = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vG" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/mop{
- pixel_y = -8;
- pixel_x = -13
- },
-/obj/item/clothing/head/soft/purple,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"vO" = (
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver,
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"wi" = (
-/obj/structure/barricade/wooden,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"wk" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"wm" = (
-/obj/structure/grille/indestructable,
-/obj/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"wo" = (
-/obj/structure/rack,
-/obj/item/poster/random_official{
- pixel_x = 2;
- pixel_y = 9
- },
-/obj/item/poster/random_official{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/poster/random_contraband{
- pixel_y = 8;
- pixel_x = -1
- },
-/obj/item/destTagger{
- pixel_x = -2
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"xi" = (
-/obj/structure/closet/crate/trashcart/laundry,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"xu" = (
-/turf/open/floor/plasteel/stairs{
- dir = 4
- },
-/area/hangar)
-"xF" = (
-/obj/structure/girder/displaced,
-/obj/structure/grille,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"xN" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/grass/snow/safe{
- planetary_atmos = 1
- },
-/area/hangar)
-"yd" = (
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/fluff/hedge{
- icon_state = "hedge-8"
- },
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"yO" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"yQ" = (
-/obj/structure/barricade/wooden,
-/turf/open/floor/plating/catwalk_floor{
- planetary_atmos = 1
- },
-/area/hangar)
-"zc" = (
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"zr" = (
-/obj/item/trash/waffles{
- pixel_y = -3
- },
-/obj/item/trash/sosjerky{
- pixel_x = -4
- },
-/obj/item/trash/raisins,
-/obj/item/trash/pistachios{
- pixel_x = 6
- },
-/obj/structure/closet/crate/trashcart,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"zs" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"zy" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zA" = (
-/turf/open/floor/plating/ice/smooth,
-/area/hangar)
-"zK" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/stand_clear,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zM" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"zN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/trash/can{
- pixel_x = -8;
- pixel_y = -6
- },
-/obj/item/trash/candy,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ao" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/wallframe/light_fixture{
- pixel_y = -5;
- pixel_x = 5
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ap" = (
-/obj/item/storage/cans/sixbeer{
- pixel_x = 3;
- pixel_y = 2
- },
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Av" = (
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"AD" = (
-/obj/structure/statue/snow/snowman{
- pixel_y = 5
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/grass/snow/safe{
- planetary_atmos = 1
- },
-/area/hangar)
-"AG" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Bx" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"BB" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/item/storage/fancy/donut_box{
- pixel_y = 6
- },
-/obj/item/storage/fancy/cigarettes{
- pixel_x = 10
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"BL" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar{
- pixel_y = 17
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"BU" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cd" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/structure/reagent_dispensers/watertank,
-/obj/item/radio/intercom/directional/north{
- pixel_y = 20
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cf" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/fluff/hedge{
- icon_state = "hedge-4"
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cn" = (
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"CI" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/fax/ruin,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"CS" = (
-/turf/open/floor/grass/snow/safe{
- planetary_atmos = 1
- },
-/area/hangar)
-"De" = (
-/obj/effect/turf_decal/industrial/traffic/corner,
-/obj/effect/decal/cleanable/plastic,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Dx" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ET" = (
-/turf/open/floor/plasteel/stairs/wood,
-/area/hangar)
-"Fm" = (
-/obj/structure/girder/reinforced,
-/obj/structure/grille/broken,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Fv" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fw" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"FC" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"GA" = (
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"He" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/beer{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/toy/cards/deck{
- pixel_y = 2;
- pixel_x = -5
- },
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hg" = (
-/obj/effect/turf_decal/box,
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/machinery/power/floodlight,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Hk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ho" = (
-/obj/structure/chair/plastic{
- dir = 4
- },
-/obj/structure/sign/poster/official/random{
- pixel_y = -32
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"HH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"HP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"HR" = (
-/obj/structure/railing/wood{
- dir = 4
- },
-/turf/open/floor/plasteel/stairs/wood,
-/area/hangar)
-"HX" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ia" = (
-/obj/structure/chair{
- dir = 4
- },
-/turf/open/floor/wood/walnut{
- icon_state = "wood-broken7";
- planetary_atmos = 1
- },
-/area/hangar)
-"Iv" = (
-/obj/structure/girder,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Iy" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"IE" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Jp" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"JF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 6
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3";
- planetary_atmos = 1
- },
-/area/hangar)
-"JI" = (
-/obj/machinery/vending/cigarette,
-/obj/item/radio/intercom/directional/north{
- pixel_y = 20
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/item/toy/plush/hornet/gay{
- pixel_y = 23;
- pixel_x = 7
- },
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = 1;
- pixel_y = 19;
- layer = 3.1
- },
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"KG" = (
-/obj/structure/table/reinforced,
-/obj/item/stack/packageWrap{
- pixel_y = 7
- },
-/obj/item/clipboard{
- pixel_x = -5;
- pixel_y = 1
- },
-/obj/item/export_scanner{
- pixel_x = 4
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/sign/poster/contraband/eoehoma{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"KY" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"Lc" = (
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/fluff/hedge{
- icon_state = "hedge-4"
- },
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"Lm" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ly" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"LI" = (
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/chair{
- dir = 1
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"LR" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mt" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"MV" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nw" = (
-/obj/machinery/computer/camera_advanced{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"NC" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/drinks/mug{
- pixel_x = 9;
- pixel_y = -2
- },
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = -1
- },
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = 2
- },
-/obj/machinery/jukebox/boombox{
- pixel_y = 5
- },
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"NK" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"NW" = (
-/obj/item/binoculars{
- pixel_y = 6;
- pixel_x = -3
- },
-/obj/structure/rack,
-/obj/item/radio{
- pixel_y = 6;
- pixel_x = 9
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"NX" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Oh" = (
-/obj/effect/landmark/outpost/hangar_dock,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ON" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"OS" = (
-/obj/item/kirbyplants{
- icon_state = "plant-25";
- pixel_x = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/robot_debris{
- pixel_x = 8
- },
-/obj/item/kirbyplants{
- icon_state = "plant-25";
- pixel_x = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/robot_debris{
- pixel_x = 8
- },
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 9
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/hangar)
-"Pv" = (
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"PF" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/item/chair{
- pixel_x = -1;
- pixel_y = -4
- },
-/obj/item/chair{
- pixel_x = -1
- },
-/obj/item/chair{
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/effect/turf_decal/box,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"QA" = (
-/obj/machinery/light/directional/east,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"QB" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/fluff/hedge{
- icon_state = "hedge-8"
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/tech/grid{
- planetary_atmos = 1
- },
-/area/hangar)
-"QC" = (
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"QL" = (
-/obj/structure/table_frame/wood,
-/obj/item/trash/boritos,
-/turf/open/floor/plating{
- icon_state = "platingdmg1";
- planetary_atmos = 1
- },
-/area/hangar)
-"QP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/outpost/hangar_numbers,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"QR" = (
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"QX" = (
-/obj/effect/turf_decal/arrows,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"RB" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/easel,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"RH" = (
-/obj/structure/girder/displaced,
-/obj/structure/grille/broken,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"RI" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/machinery/power/floodlight,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"RN" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/grass/snow/safe{
- planetary_atmos = 1
- },
-/area/hangar)
-"Se" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sj" = (
-/obj/structure/girder/displaced,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sl" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tu" = (
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tw" = (
-/obj/machinery/computer/crew/syndie{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"TT" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"TV" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/box/corners,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Uc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ue" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Uj" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"UA" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"UL" = (
-/obj/effect/decal/cleanable/garbage{
- pixel_y = -7;
- pixel_x = 6
- },
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"UN" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/cleanable/glass,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"UV" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"We" = (
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Wi" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/general{
- dir = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Wo" = (
-/obj/effect/turf_decal/techfloor,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xg" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xq" = (
-/turf/open/water/beach/deep,
-/area/hangar)
-"Xs" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"XH" = (
-/obj/structure/frame/computer{
- dir = 8
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"XN" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/walnut{
- planetary_atmos = 1
- },
-/area/hangar)
-"XP" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"XX" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Yi" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Yw" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/machinery/atmospherics/pipe/simple/general,
-/turf/open/floor/plating{
- icon_state = "platingdmg3";
- planetary_atmos = 1
- },
-/area/hangar)
-"YK" = (
-/obj/structure/window/reinforced/spawner,
-/obj/effect/spawner/structure/window/hollow/reinforced/middle{
- dir = 4
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Zm" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Zz" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZQ" = (
-/obj/structure/chair/comfy/grey/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZR" = (
-/obj/structure/marker_beacon{
- picked_color = "Teal"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZU" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 5
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-
-(1,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-vO
-ie
-ie
-ie
-vO
-ie
-ie
-ie
-vO
-ie
-ie
-ie
-vO
-ie
-ie
-ie
-vO
-ie
-gu
-gu
-gu
-gu
-gu
-gu
-"}
-(2,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-ie
-ie
-KY
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-Se
-KY
-ie
-ie
-gu
-gu
-gu
-gu
-gu
-"}
-(3,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-ie
-fI
-HX
-gV
-Av
-Pv
-gV
-gV
-gV
-Av
-Pv
-gV
-gV
-Pv
-QX
-gV
-gV
-gV
-Pv
-QX
-gV
-HX
-vG
-ie
-ie
-ie
-gu
-gu
-gu
-"}
-(4,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-au
-au
-Zm
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Oh
-Iy
-au
-au
-ie
-ie
-gu
-gu
-"}
-(5,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-au
-QC
-ck
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-au
-au
-au
-ie
-gu
-gu
-"}
-(6,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-au
-au
-QC
-yO
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-Iy
-ON
-au
-au
-ie
-gu
-gu
-"}
-(7,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-au
-au
-au
-QC
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-pT
-au
-au
-ie
-gu
-gu
-"}
-(8,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-au
-wk
-Sj
-au
-ed
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-QC
-au
-au
-ie
-gu
-gu
-"}
-(9,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-au
-jS
-Xq
-to
-RI
-fB
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-gr
-ON
-ie
-au
-ie
-gu
-gu
-"}
-(10,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-Xq
-Xq
-Xq
-to
-NX
-fB
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-au
-au
-ie
-gu
-gu
-"}
-(11,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-au
-au
-wo
-gO
-gO
-gO
-XP
-NX
-fB
-Hk
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-Iy
-ON
-au
-au
-ie
-gu
-gu
-"}
-(12,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-au
-au
-Cf
-LR
-JF
-QA
-Ly
-Yw
-py
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-QC
-au
-au
-ie
-gu
-gu
-"}
-(13,1,1) = {"
-gu
-gu
-ie
-ie
-ie
-ie
-ie
-QB
-Ap
-ug
-ie
-mq
-iM
-fy
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-QC
-au
-au
-ie
-gu
-gu
-"}
-(14,1,1) = {"
-gu
-gu
-ie
-Mt
-Mt
-Mt
-ie
-KG
-mb
-eH
-ie
-pF
-tx
-qh
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-gr
-QC
-au
-au
-ie
-gu
-gu
-"}
-(15,1,1) = {"
-gu
-gu
-ie
-Mt
-Mt
-Mt
-ie
-ie
-xu
-dw
-he
-zK
-QC
-ON
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-QC
-ie
-au
-ie
-ie
-gu
-"}
-(16,1,1) = {"
-gu
-gu
-ie
-hs
-NK
-dN
-dN
-sZ
-kU
-OS
-he
-zK
-QC
-HH
-yO
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-Iy
-ON
-au
-au
-au
-ie
-ie
-"}
-(17,1,1) = {"
-gu
-gu
-ie
-ll
-qg
-PF
-ie
-ie
-Fm
-XH
-au
-au
-au
-ON
-Hk
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-au
-au
-au
-au
-ie
-"}
-(18,1,1) = {"
-gu
-gu
-ie
-AG
-ie
-ie
-ie
-au
-au
-au
-au
-au
-au
-pT
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-Iv
-au
-au
-au
-ie
-"}
-(19,1,1) = {"
-gu
-ie
-ie
-ka
-ie
-au
-au
-au
-au
-au
-au
-au
-ie
-ON
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-QC
-iV
-au
-au
-au
-ie
-"}
-(20,1,1) = {"
-ie
-ie
-au
-nW
-ie
-au
-zA
-zA
-au
-au
-au
-au
-ie
-QC
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-gr
-ON
-vq
-zr
-au
-au
-ie
-"}
-(21,1,1) = {"
-ie
-jR
-Lm
-Wi
-Uj
-zc
-CS
-zA
-au
-au
-au
-au
-ie
-QC
-yO
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-Iy
-ON
-mN
-ai
-au
-au
-ie
-"}
-(22,1,1) = {"
-ie
-au
-au
-au
-ie
-cn
-CS
-RN
-qH
-au
-au
-au
-au
-QC
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-vJ
-UL
-au
-au
-ie
-"}
-(23,1,1) = {"
-ie
-ie
-ie
-ie
-ie
-au
-AD
-xN
-xN
-xN
-au
-au
-au
-QC
-Hk
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-pT
-zN
-Ho
-ie
-au
-ie
-"}
-(24,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-ie
-tF
-tF
-tF
-tF
-YK
-au
-au
-QC
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-ON
-Ao
-QL
-au
-au
-ie
-"}
-(25,1,1) = {"
-gu
-gu
-gu
-gu
-ie
-rX
-UN
-jy
-Ia
-NC
-Lc
-au
-au
-iw
-yO
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-ON
-vq
-wi
-au
-au
-ie
-"}
-(26,1,1) = {"
-ie
-ie
-ie
-ie
-ie
-tq
-XN
-XN
-XN
-Xg
-yd
-oJ
-dK
-ep
-Uc
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-gr
-ON
-vq
-RB
-au
-au
-ie
-"}
-(27,1,1) = {"
-ie
-Mt
-Mt
-hh
-FC
-kG
-kG
-jX
-kG
-kD
-GA
-hJ
-vn
-jF
-te
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-RH
-xF
-au
-au
-ie
-"}
-(28,1,1) = {"
-ie
-Mt
-Mt
-Mt
-FC
-Tu
-QP
-Jk
-Tu
-Tu
-bX
-ET
-vn
-zM
-te
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-QC
-vq
-Hg
-ie
-au
-ie
-"}
-(29,1,1) = {"
-ie
-Mt
-Mt
-Mt
-FC
-sP
-eP
-eP
-eP
-gE
-vt
-HR
-vn
-ZU
-hp
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-QC
-vh
-au
-au
-au
-ie
-"}
-(30,1,1) = {"
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-JI
-eg
-He
-LI
-au
-au
-iw
-Ue
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-ON
-au
-au
-au
-au
-ie
-"}
-(31,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-ie
-au
-au
-QC
-Ue
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-rJ
-pT
-au
-au
-au
-au
-ie
-"}
-(32,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-QC
-HP
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-kk
-pT
-au
-au
-au
-ie
-ie
-"}
-(33,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-au
-au
-au
-QC
-Ue
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-QC
-au
-au
-au
-ie
-gu
-"}
-(34,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-au
-yQ
-ON
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-TT
-au
-au
-au
-ie
-gu
-"}
-(35,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-ie
-tH
-ON
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-Wo
-Xq
-au
-au
-ie
-gu
-"}
-(36,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-ie
-ie
-pt
-QC
-Dx
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-rJ
-Wo
-Xq
-au
-au
-ie
-gu
-"}
-(37,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-ie
-Cd
-zs
-vz
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-ns
-au
-au
-au
-ie
-gu
-"}
-(38,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-UA
-Jp
-cq
-px
-ba
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-gr
-qc
-ie
-au
-au
-ie
-gu
-"}
-(39,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-ie
-QR
-Jp
-We
-px
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-sY
-au
-au
-au
-ie
-gu
-"}
-(40,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-oK
-We
-We
-px
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-rJ
-vk
-au
-au
-au
-ie
-gu
-"}
-(41,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-Xs
-TV
-vz
-Dx
-ZR
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-ZR
-Iy
-sY
-au
-au
-au
-ie
-gu
-"}
-(42,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-xi
-QC
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-zy
-au
-au
-au
-ie
-gu
-"}
-(43,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-au
-QC
-Dx
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-pJ
-Iy
-ON
-au
-au
-au
-ie
-gu
-"}
-(44,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-QC
-BU
-cY
-cY
-oU
-oU
-oU
-lN
-oU
-oU
-oU
-oU
-BL
-cY
-oU
-oU
-lN
-cY
-cY
-oU
-oU
-oU
-Fw
-QC
-au
-au
-ie
-ie
-gu
-"}
-(45,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-au
-au
-au
-ie
-au
-Yi
-ON
-ON
-ON
-QC
-QC
-De
-Bx
-Bx
-Bx
-Bx
-dn
-Sl
-ON
-ON
-QC
-ON
-ON
-ON
-ON
-QC
-au
-au
-au
-ie
-gu
-gu
-"}
-(46,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-au
-au
-au
-au
-au
-au
-au
-ie
-au
-au
-ie
-ie
-wm
-wm
-wm
-ie
-ie
-UV
-au
-au
-au
-au
-ie
-au
-au
-au
-au
-au
-ie
-gu
-gu
-"}
-(47,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-au
-au
-au
-au
-au
-au
-ie
-ie
-Nw
-sA
-Tw
-pQ
-NW
-ie
-ie
-ie
-ie
-ie
-au
-au
-au
-au
-au
-ie
-ie
-ie
-gu
-gu
-"}
-(48,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-au
-au
-au
-ie
-rt
-ZQ
-cO
-XX
-XX
-Cn
-ie
-Mt
-Mt
-Mt
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-gu
-gu
-gu
-gu
-"}
-(49,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-ie
-pu
-mo
-sG
-ON
-ON
-Fv
-ie
-Mt
-Mt
-Mt
-ie
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-"}
-(50,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-IE
-pG
-CI
-BB
-MV
-gL
-os
-Zz
-os
-ie
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-"}
-(51,1,1) = {"
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-ie
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-gu
-"}
diff --git a/_maps/outpost/hangar/nt_asteroid_40x40.dmm b/_maps/outpost/hangar/nt_asteroid_40x40.dmm
deleted file mode 100644
index 005b657e38ee..000000000000
--- a/_maps/outpost/hangar/nt_asteroid_40x40.dmm
+++ /dev/null
@@ -1,4832 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aF" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"bg" = (
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"ce" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/caution{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"cm" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"cT" = (
-/obj/structure/chair/sofa/brown/left/directional/north,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"dd" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"dZ" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"ec" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/computer/cargo{
- dir = 8
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"fn" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"fR" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"gN" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"hb" = (
-/obj/structure/catwalk/over,
-/obj/structure/table/wood,
-/obj/item/reagent_containers/syringe/contraband/space_drugs{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/glass/mortar/metal,
-/obj/item/reagent_containers/syringe/contraband/morphine{
- pixel_x = -3;
- pixel_y = 1
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"hj" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"ht" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"hw" = (
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/water/beach/deep,
-/area/hangar)
-"hz" = (
-/obj/structure/railing/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"hA" = (
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"hB" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/landmark/outpost/hangar_numbers,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"hG" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"hO" = (
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"hP" = (
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver,
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"iA" = (
-/obj/structure/fluff/hedge,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"iG" = (
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"iL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"iS" = (
-/obj/machinery/vending/coffee{
- pixel_x = 5
- },
-/obj/item/kirbyplants{
- icon_state = "plant-22";
- pixel_x = -11
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/toy/plush/moth{
- pixel_y = 21;
- pixel_x = 6
- },
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"jk" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"jp" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"jw" = (
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"kf" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"kF" = (
-/obj/effect/decal/cleanable/garbage{
- pixel_x = 11;
- pixel_y = 5
- },
-/obj/effect/decal/cleanable/wrapping{
- color = "#808080";
- pixel_y = 12
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"la" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/structure/fans/tiny/invisible,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"lf" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/chair{
- dir = 8
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"lr" = (
-/obj/effect/turf_decal/box/corners,
-/obj/structure/closet/crate,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating{
- icon_state = "platingdmg1";
- planetary_atmos = 1
- },
-/area/hangar)
-"ls" = (
-/obj/structure/chair/sofa/brown/right/directional/north,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"lJ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"lP" = (
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"mg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/chair{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"ml" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"mH" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"nK" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"oj" = (
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"oq" = (
-/obj/structure/fence{
- dir = 4
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"oC" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/stack/rods{
- pixel_x = -7;
- pixel_y = -2
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"oU" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"oX" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"pa" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"ph" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"pt" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"pz" = (
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"pF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/components/binary/pump/on,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"qq" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"qx" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/structure/sign/warning/nosmoking{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"qy" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"qG" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/caution,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"qT" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/effect/decal/cleanable/glass{
- pixel_x = -8;
- pixel_y = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"ri" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"rp" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"rB" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"rH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"se" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/closet/crate/bin,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"sW" = (
-/obj/structure/sign/departments/cargo{
- pixel_x = 32
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"tN" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"uf" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"vu" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"vy" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"vF" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/structure/closet/crate,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"vG" = (
-/obj/item/stack/ore/salvage/scrapsilver{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint{
- planetary_atmos = 1
- },
-/area/hangar)
-"wc" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"wm" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/rack,
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"ws" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/rack,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"wu" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"wH" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"wJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/stack/ore/salvage/scraptitanium/five,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"xk" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"xX" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/frame/computer,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"ya" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/stand_clear,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"yb" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"yU" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"zd" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"zL" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"zY" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Aa" = (
-/obj/structure/grille,
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"AI" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/frame/machine,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"AO" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/hangar)
-"AT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/item/stack/rods{
- pixel_x = -7;
- pixel_y = -2
- },
-/obj/structure/grille/broken,
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Bb" = (
-/obj/effect/decal/cleanable/robot_debris{
- pixel_x = 12
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Br" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"BE" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"BI" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/components/unary/tank/air{
- volume = 10000000
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cw" = (
-/obj/structure/closet/crate,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"DK" = (
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"DS" = (
-/obj/structure/fence/door,
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Er" = (
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Et" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Ew" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"EC" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/passive_vent{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"EJ" = (
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"Fl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/machinery/elevator_call_button{
- pixel_y = 31;
- pixel_x = 10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"Fy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/poddoor/shutters/indestructible/preopen{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"FC" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/girder,
-/obj/structure/grille/broken,
-/turf/open/floor/plating{
- icon_state = "platingdmg1";
- planetary_atmos = 1
- },
-/area/hangar)
-"FI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"FT" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"FY" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Gm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"GI" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hg" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"HP" = (
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"HY" = (
-/turf/open/floor/plating/asteroid/icerock/smooth,
-/area/hangar)
-"It" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Iw" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"IB" = (
-/obj/structure/bed{
- icon_state = "dirty_mattress"
- },
-/obj/structure/catwalk/over,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"IE" = (
-/obj/structure/closet/crate,
-/obj/item/storage/box/donkpockets{
- pixel_x = 6;
- pixel_y = -3
- },
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"IF" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"IK" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/caution,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Jq" = (
-/obj/item/stack/cable_coil/cut/yellow,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/turf/open/floor/plasteel/tech/techmaint{
- planetary_atmos = 1
- },
-/area/hangar)
-"Js" = (
-/obj/structure/easel,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"JN" = (
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"JZ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Km" = (
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/hangar)
-"Kv" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"KJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/girder,
-/obj/structure/grille/broken,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"KL" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"KN" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"KQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/paper/pamphlet/gateway{
- pixel_x = 6;
- pixel_y = 4
- },
-/obj/item/paper/pamphlet/centcom{
- pixel_x = 8;
- pixel_y = 1
- },
-/obj/item/paper_bin{
- pixel_x = -6;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = -7
- },
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"KS" = (
-/obj/item/stack/rods{
- pixel_x = 7;
- pixel_y = -9
- },
-/turf/open/floor/plasteel/tech/techmaint{
- planetary_atmos = 1
- },
-/area/hangar)
-"LE" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"LH" = (
-/turf/template_noop,
-/area/template_noop)
-"LK" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mg" = (
-/obj/structure/girder/displaced,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Mt" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Mu" = (
-/turf/open/floor/plating/asteroid/iceberg,
-/area/hangar)
-"Nt" = (
-/turf/open/floor/plasteel/tech/techmaint{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ny" = (
-/obj/effect/landmark/outpost/elevator,
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"NE" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = 5;
- pixel_y = 9
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"NX" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Og" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair,
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/slab_2,
-/area/hangar)
-"OI" = (
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"OZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pf" = (
-/obj/structure/closet/crate,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"Po" = (
-/obj/item/flashlight/lantern{
- pixel_x = 7
- },
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Pu" = (
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"Qb" = (
-/obj/structure/flora/rock/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"Qr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/kirbyplants{
- icon_state = "plant-25";
- pixel_x = 11
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Qy" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/caution{
- dir = 1
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Rw" = (
-/obj/effect/landmark/outpost/hangar_dock,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"RA" = (
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/structure/flora/rock/pile/icy{
- pixel_y = -5;
- pixel_x = 4
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"RS" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/turf/open/floor/plating/rust{
- planetary_atmos = 1
- },
-/area/hangar)
-"So" = (
-/obj/structure/flora/rock/icy{
- pixel_x = 5;
- pixel_y = 5
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"Td" = (
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Th" = (
-/obj/structure/fence/corner{
- dir = 9
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Tw" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Tz" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
-/turf/open/water/beach/deep,
-/area/hangar)
-"Us" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/trash/boritos,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"UB" = (
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"UO" = (
-/obj/structure/railing{
- dir = 6;
- layer = 4.1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 6
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"UT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/structure/grille,
-/turf/open/floor/plating{
- icon_state = "platingdmg2";
- planetary_atmos = 1
- },
-/area/hangar)
-"Vc" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/structure/closet/crate/trashcart,
-/obj/item/trash/can/food/beans{
- pixel_x = 4;
- pixel_y = -5
- },
-/obj/item/trash/can/food/peaches,
-/obj/item/trash/can/food,
-/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Vj" = (
-/obj/structure/fence{
- dir = 1
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plating/asteroid/icerock,
-/area/hangar)
-"Vk" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"Vy" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"VA" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/cargo_one{
- planetary_atmos = 1
- },
-/area/hangar)
-"Wo" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/firelock_frame,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Xp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xx" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"Xz" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"XF" = (
-/turf/open/water/beach/deep,
-/area/hangar)
-"Yt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/stack/cable_coil/cut/yellow,
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"YA" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"YN" = (
-/obj/structure/marker_beacon{
- picked_color = "Teal"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"YO" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/structure/fans/tiny/invisible,
-/turf/open/floor/plasteel/dark,
-/area/hangar)
-"YX" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-"Zi" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -9;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/drinks/mug/tea{
- pixel_y = 9;
- pixel_x = 5
- },
-/obj/machinery/light/floor/hangar,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/concrete/slab_3{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZX" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel{
- color = "#808080";
- planetary_atmos = 1
- },
-/area/hangar)
-
-(1,1,1) = {"
-LH
-LH
-LH
-LH
-LH
-LH
-JN
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-JN
-JN
-hP
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(2,1,1) = {"
-LH
-LH
-LH
-JN
-JN
-JN
-JN
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-BE
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-"}
-(3,1,1) = {"
-LH
-LH
-JN
-JN
-DK
-JN
-lJ
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-oj
-oj
-OI
-oj
-oj
-zd
-JN
-DK
-DK
-JN
-LH
-LH
-LH
-LH
-"}
-(4,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-DK
-mH
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-rp
-Kv
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-LH
-"}
-(5,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-DK
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Rw
-pt
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-LH
-"}
-(6,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-DK
-DK
-JN
-JN
-LH
-LH
-LH
-"}
-(7,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-pt
-pz
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-"}
-(8,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-JN
-DK
-DK
-JN
-JN
-LH
-LH
-"}
-(9,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-tN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Et
-zY
-DK
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(10,1,1) = {"
-LH
-JN
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-DK
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(11,1,1) = {"
-LH
-JN
-DK
-DK
-DK
-pz
-oX
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-pz
-DK
-DK
-DK
-DK
-JN
-JN
-LH
-"}
-(12,1,1) = {"
-JN
-JN
-DK
-DK
-DK
-fn
-oX
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-pt
-pz
-FC
-DK
-DK
-DK
-DK
-JN
-LH
-"}
-(13,1,1) = {"
-JN
-DK
-DK
-DK
-Aa
-Iw
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-Us
-DK
-DK
-DK
-DK
-JN
-LH
-"}
-(14,1,1) = {"
-JN
-DK
-DK
-DK
-Aa
-Mg
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-JZ
-Qr
-DK
-DK
-DK
-JN
-LH
-"}
-(15,1,1) = {"
-JN
-DK
-DK
-DK
-Aa
-xX
-tN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Et
-zY
-IB
-hb
-DK
-DK
-DK
-JN
-JN
-"}
-(16,1,1) = {"
-JN
-DK
-DK
-AI
-AT
-dd
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-Th
-Vj
-JN
-DK
-DK
-DK
-JN
-"}
-(17,1,1) = {"
-JN
-DK
-DK
-oC
-Jq
-Iw
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-pt
-zY
-oq
-HY
-jk
-DK
-DK
-DK
-JN
-"}
-(18,1,1) = {"
-JN
-JN
-JN
-wJ
-Nt
-ya
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-oq
-HY
-XF
-DK
-DK
-DK
-JN
-"}
-(19,1,1) = {"
-JN
-DK
-DK
-NE
-KS
-Iw
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-oq
-Km
-XF
-XF
-DK
-DK
-JN
-"}
-(20,1,1) = {"
-JN
-DK
-DK
-Wo
-vG
-Iw
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-oq
-HY
-XF
-XF
-DK
-DK
-JN
-"}
-(21,1,1) = {"
-JN
-DK
-DK
-Yt
-UT
-dd
-tN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Et
-zY
-oq
-HY
-HY
-XF
-DK
-DK
-JN
-"}
-(22,1,1) = {"
-JN
-DK
-DK
-DK
-KJ
-Iw
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-pt
-pz
-oq
-hG
-Km
-XF
-DK
-DK
-JN
-"}
-(23,1,1) = {"
-JN
-DK
-DK
-DK
-DK
-Xz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-DS
-UB
-AO
-JN
-DK
-DK
-JN
-"}
-(24,1,1) = {"
-JN
-JN
-DK
-DK
-DK
-zY
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-oq
-UB
-UB
-DK
-DK
-DK
-JN
-"}
-(25,1,1) = {"
-LH
-JN
-JN
-DK
-DK
-zY
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-oq
-UB
-DK
-DK
-DK
-JN
-JN
-"}
-(26,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-oq
-Po
-DK
-DK
-DK
-JN
-LH
-"}
-(27,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-tN
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-Et
-zY
-oq
-DK
-DK
-DK
-DK
-JN
-LH
-"}
-(28,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-zY
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-oq
-DK
-DK
-DK
-JN
-JN
-LH
-"}
-(29,1,1) = {"
-LH
-LH
-JN
-DK
-JN
-zY
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-JN
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(30,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-ml
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-DK
-DK
-DK
-JN
-JN
-LH
-LH
-"}
-(31,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-iG
-oX
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-pz
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-"}
-(32,1,1) = {"
-LH
-LH
-JN
-DK
-JN
-iG
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-Xx
-pz
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-"}
-(33,1,1) = {"
-LH
-LH
-JN
-DK
-JN
-iG
-cm
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Tw
-pz
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-"}
-(34,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-iG
-oX
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-pz
-JN
-DK
-JN
-JN
-LH
-LH
-LH
-"}
-(35,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-ht
-oX
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-pz
-DK
-DK
-JN
-LH
-LH
-LH
-LH
-"}
-(36,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-zY
-DK
-DK
-JN
-JN
-LH
-LH
-LH
-"}
-(37,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-Xx
-zY
-DK
-DK
-DK
-JN
-JN
-LH
-LH
-"}
-(38,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-oX
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-hz
-DK
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(39,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-cm
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-nK
-YO
-Mu
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(40,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-YO
-Mu
-Mu
-DK
-DK
-JN
-LH
-LH
-"}
-(41,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-pz
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-YO
-Mu
-Mu
-DK
-DK
-JN
-LH
-LH
-"}
-(42,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-zY
-FY
-YN
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-YN
-pt
-YO
-Mu
-Mu
-DK
-DK
-JN
-LH
-LH
-"}
-(43,1,1) = {"
-LH
-LH
-JN
-DK
-DK
-zY
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-pt
-la
-Mu
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(44,1,1) = {"
-LH
-JN
-JN
-DK
-DK
-kF
-FY
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Er
-Xx
-la
-Mu
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(45,1,1) = {"
-LH
-JN
-DK
-DK
-DK
-DK
-It
-wH
-wH
-YA
-YA
-fR
-YA
-gN
-gN
-gN
-gN
-Hg
-gN
-gN
-gN
-gN
-gN
-fR
-YA
-YA
-gN
-gN
-gN
-Hg
-gN
-gN
-gN
-aF
-aF
-IF
-aF
-gN
-gN
-gN
-gN
-Hg
-gN
-gN
-gN
-aF
-xk
-qq
-jp
-JN
-DK
-DK
-DK
-JN
-LH
-LH
-"}
-(46,1,1) = {"
-LH
-JN
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-pz
-zY
-pz
-pz
-yb
-pz
-pz
-pz
-pz
-pz
-sW
-jw
-LE
-pz
-pz
-pz
-pz
-pz
-pz
-pz
-pz
-pz
-pz
-zY
-zY
-pz
-pz
-pz
-zY
-zY
-zY
-pz
-pz
-pz
-pz
-zY
-zY
-pz
-pz
-DK
-DK
-DK
-DK
-JN
-JN
-LH
-LH
-"}
-(47,1,1) = {"
-LH
-JN
-DK
-DK
-XF
-XF
-DK
-DK
-DK
-DK
-dZ
-Fy
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-JN
-JN
-pz
-pz
-pz
-pz
-pz
-pz
-pz
-jw
-pz
-pz
-zY
-pz
-pz
-pz
-DK
-DK
-JN
-DK
-DK
-JN
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-JN
-JN
-LH
-LH
-LH
-"}
-(48,1,1) = {"
-LH
-JN
-DK
-DK
-XF
-XF
-XF
-XF
-XF
-hw
-ri
-pa
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-JN
-Vc
-Ew
-Mt
-ph
-bg
-Ew
-qT
-JN
-JN
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-JN
-LH
-LH
-LH
-LH
-"}
-(49,1,1) = {"
-LH
-JN
-DK
-DK
-XF
-XF
-XF
-XF
-XF
-hw
-FI
-Zi
-RA
-XF
-XF
-Qb
-XF
-DK
-DK
-DK
-JN
-uf
-vu
-YX
-hA
-wu
-Pf
-RS
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-DK
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-"}
-(50,1,1) = {"
-LH
-JN
-DK
-DK
-DK
-XF
-XF
-XF
-Tz
-UO
-oU
-Zi
-EJ
-XF
-XF
-XF
-XF
-XF
-DK
-DK
-JN
-HP
-hO
-IK
-hj
-ce
-hO
-Td
-DK
-DK
-DK
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(51,1,1) = {"
-LH
-JN
-DK
-DK
-DK
-DK
-lP
-lP
-UO
-kf
-zL
-rB
-EJ
-XF
-XF
-XF
-XF
-jk
-DK
-DK
-JN
-qx
-VA
-ZX
-hA
-NX
-hO
-Js
-DK
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(52,1,1) = {"
-LH
-JN
-JN
-BI
-pF
-KL
-rH
-rH
-mg
-EC
-Vy
-iL
-EJ
-XF
-XF
-XF
-XF
-DK
-DK
-DK
-JN
-Cw
-OZ
-yU
-hj
-vy
-VA
-IE
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(53,1,1) = {"
-LH
-LH
-JN
-qy
-JZ
-JN
-iS
-Og
-ZE
-Br
-Zi
-DK
-DK
-DK
-So
-XF
-XF
-DK
-DK
-DK
-JN
-Pu
-FT
-qG
-Bb
-Qy
-hO
-wc
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(54,1,1) = {"
-LH
-LH
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-Fl
-Zi
-se
-DK
-DK
-DK
-XF
-DK
-DK
-DK
-JN
-JN
-JN
-lr
-ws
-ec
-wm
-vF
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(55,1,1) = {"
-LH
-LH
-LH
-LH
-JN
-GI
-GI
-Ny
-Vk
-ri
-pa
-Xp
-iA
-JN
-DK
-DK
-DK
-DK
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(56,1,1) = {"
-LH
-LH
-LH
-LH
-JN
-GI
-GI
-GI
-Vk
-Gm
-hB
-Xp
-cT
-JN
-DK
-DK
-DK
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(57,1,1) = {"
-LH
-LH
-LH
-LH
-JN
-GI
-GI
-GI
-Vk
-oU
-KN
-Xp
-ls
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(58,1,1) = {"
-LH
-LH
-LH
-LH
-JN
-JN
-JN
-JN
-JN
-lf
-KQ
-LK
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
-(59,1,1) = {"
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-JN
-JN
-JN
-JN
-JN
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-LH
-"}
diff --git a/_maps/outpost/hangar/nt_asteroid_56x20.dmm b/_maps/outpost/hangar/nt_asteroid_56x20.dmm
deleted file mode 100644
index 11ba5baac070..000000000000
--- a/_maps/outpost/hangar/nt_asteroid_56x20.dmm
+++ /dev/null
@@ -1,3768 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ai" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"an" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"at" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/industrial/warning/corner,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"aA" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"aF" = (
-/obj/structure/bookcase/random/fiction,
-/obj/structure/sign/plaques/deempisi{
- pixel_y = 22;
- pixel_x = -8
- },
-/obj/item/toy/plush/hornet{
- pixel_x = 9;
- pixel_y = 26
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"aR" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"aU" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"bp" = (
-/obj/item/stack/rods{
- pixel_x = 7;
- pixel_y = -9
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg2";
- planetary_atmos = 1
- },
-/area/hangar)
-"bt" = (
-/obj/structure/chair/sofa/brown/left/directional/west,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"bu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"bP" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ce" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"cz" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"cP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"df" = (
-/obj/structure/marker_beacon{
- picked_color = "Teal"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"dj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/chair/office{
- dir = 8
- },
-/turf/open/floor/carpet/red,
-/area/hangar)
-"do" = (
-/obj/structure/chair/sofa/brown/right/directional/west,
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"dr" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"eq" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"eE" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"eP" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"eW" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"fb" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fn" = (
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ft" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/moth/meth{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"fM" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fQ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"hl" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"hz" = (
-/obj/effect/turf_decal/siding/wood/end{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21";
- pixel_x = 6;
- pixel_y = 17
- },
-/obj/structure/sign/poster/retro/random{
- pixel_x = 32
- },
-/turf/open/floor/carpet/red,
-/area/hangar)
-"ik" = (
-/obj/structure/fireplace,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"il" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"jd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"je" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"ju" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"jD" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"kx" = (
-/obj/machinery/computer/cargo{
- dir = 8;
- pixel_x = 7
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/garbage{
- pixel_x = -3;
- pixel_y = -10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"kL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"lD" = (
-/obj/structure/chair/comfy{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/carpet/green{
- planetary_atmos = 1
- },
-/area/hangar)
-"lE" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lS" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lT" = (
-/obj/structure/table,
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/siding/wood,
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = -1
- },
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = 2
- },
-/obj/machinery/jukebox/boombox{
- pixel_y = 3;
- pixel_x = 4
- },
-/turf/open/floor/carpet/green{
- planetary_atmos = 1
- },
-/area/hangar)
-"mh" = (
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"mu" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- pixel_x = 5;
- pixel_y = 14
- },
-/obj/item/storage/photo_album/library{
- pixel_y = -2;
- pixel_x = -4
- },
-/turf/open/floor/carpet/red,
-/area/hangar)
-"mX" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"nl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"oi" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"oO" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"oU" = (
-/obj/structure/firelock_frame,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"oY" = (
-/obj/machinery/vending/coffee{
- pixel_x = 5
- },
-/obj/item/kirbyplants{
- icon_state = "plant-22";
- pixel_x = -11
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/elevator_call_button{
- pixel_y = 24;
- pixel_x = -10
- },
-/obj/effect/landmark/outpost/elevator_machine,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"po" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"pr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_x = -32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"qa" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"qb" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"qi" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"rn" = (
-/obj/structure/grille/broken,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/toy/plush/beeplushie{
- pixel_y = -1;
- pixel_x = 2
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"rq" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"rB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair/comfy/grey/directional/north,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"sd" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"se" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"sg" = (
-/obj/structure/bookcase/random/fiction,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"si" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- icon_state = "wood-broken7"
- },
-/area/hangar)
-"sC" = (
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"sF" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"sT" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"tc" = (
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver,
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"tC" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"tW" = (
-/obj/effect/landmark/outpost/elevator,
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"ut" = (
-/obj/structure/rack,
-/obj/item/poster/random_official{
- pixel_x = 2;
- pixel_y = 9
- },
-/obj/item/poster/random_official{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/destTagger{
- pixel_x = -5
- },
-/obj/item/export_scanner{
- pixel_x = 6;
- pixel_y = 2
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"uB" = (
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"uX" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vt" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vA" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"wx" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/comfy/grey/directional/east,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"xe" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"xE" = (
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"xK" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"yh" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/techfloor/hole,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"yK" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/light/broken/directional/south,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"yT" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/toy/cards/deck{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/toy/cards/deck/kotahi{
- pixel_x = 5;
- pixel_y = 2
- },
-/obj/item/toy/plush/moth{
- pixel_y = -7;
- pixel_x = -8
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"yV" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"yY" = (
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zj" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zr" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zT" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"zX" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ab" = (
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"BA" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"Cg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/table/wood,
-/obj/item/storage/pill_bottle/dice{
- pixel_x = -6
- },
-/obj/item/toy/figure/lawyer{
- pixel_x = 3;
- pixel_y = 7
- },
-/obj/item/toy/cards/deck/cas,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"CJ" = (
-/obj/structure/chair/comfy/grey/directional/east,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"CK" = (
-/obj/structure/grille,
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"CV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"CW" = (
-/obj/structure/statue/snow/snowlegion,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Df" = (
-/obj/effect/decal/cleanable/oil,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Dy" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"EQ" = (
-/obj/effect/landmark/outpost/hangar_dock,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fi" = (
-/turf/open/water/beach/deep,
-/area/hangar)
-"Fm" = (
-/obj/machinery/door/airlock/outpost{
- req_one_access_txt = "109"
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/outpost/hangar_numbers,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"FB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"FF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/red,
-/area/hangar)
-"FN" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"FQ" = (
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"Gc" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Gf" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Gl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hi" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Im" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"Io" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Iu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"ID" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"JD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"JM" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"JX" = (
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"KV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/vending/cigarette{
- pixel_x = 5
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Lg" = (
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ls" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"LT" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
-/area/hangar)
-"LY" = (
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/structure/girder,
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"MI" = (
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"MP" = (
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"MZ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/structure/girder/displaced,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Na" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nt" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"Nu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"NP" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ph" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair/office{
- dir = 4
- },
-/turf/open/floor/carpet/red,
-/area/hangar)
-"Qi" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Qk" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"Rr" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"RO" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"RV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/fluff/hedge,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sj" = (
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"Sw" = (
-/obj/structure/table,
-/obj/item/paper/pamphlet/gateway{
- pixel_x = 3;
- pixel_y = 4
- },
-/obj/item/paper/pamphlet/centcom{
- pixel_x = 8;
- pixel_y = 1
- },
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -6;
- pixel_y = 3
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sx" = (
-/turf/template_noop,
-/area/template_noop)
-"Sz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"SA" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"SU" = (
-/turf/open/floor/plasteel/tech{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tg" = (
-/obj/structure/girder,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"TD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"TY" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/hangar)
-"Ub" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Uu" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ux" = (
-/obj/structure/noticeboard{
- pixel_y = 31
- },
-/obj/item/storage/box/matches,
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"UA" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"VM" = (
-/obj/structure/flora/rock/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"Wp" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = 5;
- pixel_y = 9
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Xm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = 3;
- pixel_y = 2
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_y = 32
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xp" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"XQ" = (
-/obj/structure/grille,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"XT" = (
-/obj/structure/rack{
- color = "#A47449";
- pixel_y = 11
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/grown/log{
- pixel_x = -7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_y = 25
- },
-/obj/item/statuebust{
- pixel_x = 6
- },
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"Yn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/hangar)
-"YD" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"YI" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"YN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZX" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-
-(1,1,1) = {"
-Sx
-Sx
-Sx
-Sx
-MP
-MP
-MP
-MP
-tc
-MP
-MP
-MP
-tc
-MP
-MP
-MP
-tc
-MP
-MP
-MP
-tc
-MP
-MP
-MP
-tc
-MP
-Sx
-Sx
-Sx
-Sx
-"}
-(2,1,1) = {"
-Sx
-Sx
-Sx
-MP
-MP
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-ai
-MP
-MP
-Sx
-Sx
-Sx
-"}
-(3,1,1) = {"
-MP
-MP
-MP
-MP
-eP
-SU
-SU
-sC
-SU
-SU
-SU
-SU
-sC
-SU
-SU
-SU
-SU
-sC
-SU
-SU
-SU
-SU
-sC
-SU
-SU
-xe
-MP
-MP
-MP
-MP
-"}
-(4,1,1) = {"
-MP
-FQ
-FQ
-FQ
-eP
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-se
-xe
-FQ
-FQ
-FQ
-MP
-"}
-(5,1,1) = {"
-MP
-FQ
-FQ
-Ub
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-EQ
-uX
-yY
-FQ
-FQ
-MP
-"}
-(6,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-FQ
-FQ
-MP
-"}
-(7,1,1) = {"
-MP
-FQ
-FQ
-bP
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-lE
-yY
-FQ
-FQ
-MP
-"}
-(8,1,1) = {"
-MP
-FQ
-FQ
-eq
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-aR
-MP
-FQ
-MP
-"}
-(9,1,1) = {"
-MP
-FQ
-FQ
-Ub
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-qi
-yY
-FQ
-FQ
-MP
-"}
-(10,1,1) = {"
-MP
-FQ
-MP
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-FQ
-FQ
-MP
-"}
-(11,1,1) = {"
-MP
-FQ
-FQ
-bP
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-aR
-FQ
-FQ
-MP
-"}
-(12,1,1) = {"
-MP
-FQ
-FQ
-eq
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-lE
-yY
-FQ
-FQ
-MP
-"}
-(13,1,1) = {"
-MP
-FQ
-FQ
-SA
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(14,1,1) = {"
-MP
-FQ
-FQ
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-FB
-FQ
-FQ
-MP
-"}
-(15,1,1) = {"
-MP
-FQ
-FQ
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-aR
-FQ
-FQ
-MP
-"}
-(16,1,1) = {"
-MP
-FQ
-FQ
-eq
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-qi
-yY
-FQ
-FQ
-MP
-"}
-(17,1,1) = {"
-MP
-FQ
-FQ
-SA
-fQ
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-uX
-yY
-FQ
-FQ
-MP
-"}
-(18,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-MP
-FQ
-MP
-"}
-(19,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-FQ
-FQ
-MP
-"}
-(20,1,1) = {"
-MP
-FQ
-FQ
-yV
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(21,1,1) = {"
-MP
-FQ
-FQ
-Ub
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-qi
-aR
-FQ
-FQ
-MP
-"}
-(22,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-fb
-FB
-FQ
-FQ
-MP
-"}
-(23,1,1) = {"
-MP
-FQ
-FQ
-vt
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-FB
-FQ
-FQ
-MP
-"}
-(24,1,1) = {"
-MP
-FQ
-FQ
-eq
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(25,1,1) = {"
-MP
-FQ
-FQ
-SA
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(26,1,1) = {"
-MP
-FQ
-FQ
-bP
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(27,1,1) = {"
-MP
-FQ
-MP
-vt
-il
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-fb
-yY
-FQ
-FQ
-MP
-"}
-(28,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-FQ
-FQ
-MP
-"}
-(29,1,1) = {"
-MP
-FQ
-FQ
-Ub
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-aR
-FQ
-FQ
-MP
-"}
-(30,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-aR
-FQ
-FQ
-MP
-"}
-(31,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(32,1,1) = {"
-MP
-FQ
-FQ
-eq
-il
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-lE
-yY
-FQ
-FQ
-MP
-"}
-(33,1,1) = {"
-MP
-FQ
-FQ
-Ub
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-aR
-FQ
-FQ
-MP
-"}
-(34,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-aR
-MP
-FQ
-MP
-"}
-(35,1,1) = {"
-MP
-FQ
-FQ
-vt
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-aR
-FQ
-FQ
-MP
-"}
-(36,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(37,1,1) = {"
-MP
-FQ
-FQ
-Ub
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-lE
-yY
-FQ
-FQ
-MP
-"}
-(38,1,1) = {"
-MP
-FQ
-MP
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(39,1,1) = {"
-MP
-FQ
-FQ
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-FQ
-FQ
-MP
-"}
-(40,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-MP
-MP
-MP
-"}
-(41,1,1) = {"
-MP
-FQ
-FQ
-Ub
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-yY
-Fm
-yY
-MP
-"}
-(42,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-lE
-sT
-MP
-MP
-MP
-"}
-(43,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-JX
-FQ
-FQ
-MP
-"}
-(44,1,1) = {"
-MP
-FQ
-FQ
-yV
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-JX
-FQ
-FQ
-MP
-"}
-(45,1,1) = {"
-MP
-FQ
-FQ
-Ub
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-JX
-FQ
-FQ
-MP
-"}
-(46,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yh
-FQ
-FQ
-MP
-"}
-(47,1,1) = {"
-MP
-FQ
-FQ
-vt
-fQ
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-uX
-JX
-MP
-FQ
-MP
-"}
-(48,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-JX
-FQ
-FQ
-MP
-"}
-(49,1,1) = {"
-MP
-FQ
-FQ
-Ub
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-JX
-FQ
-FQ
-MP
-"}
-(50,1,1) = {"
-MP
-FQ
-FQ
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-MZ
-yh
-FQ
-FQ
-MP
-"}
-(51,1,1) = {"
-MP
-FQ
-FQ
-vt
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-JX
-FQ
-FQ
-MP
-"}
-(52,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-fb
-ZX
-FQ
-FQ
-MP
-"}
-(53,1,1) = {"
-MP
-FQ
-FQ
-Ub
-jD
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-yY
-FQ
-FQ
-MP
-"}
-(54,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(55,1,1) = {"
-MP
-FQ
-MP
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-FQ
-FQ
-MP
-"}
-(56,1,1) = {"
-MP
-FQ
-FQ
-yV
-il
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-oU
-cz
-MP
-"}
-(57,1,1) = {"
-MP
-FQ
-FQ
-Ub
-il
-df
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-df
-fb
-yY
-Tg
-yK
-MP
-"}
-(58,1,1) = {"
-MP
-FQ
-FQ
-vt
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-fb
-yY
-bp
-Wp
-MP
-"}
-(59,1,1) = {"
-MP
-FQ
-FQ
-vt
-fQ
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-uX
-yY
-Tg
-rn
-MP
-"}
-(60,1,1) = {"
-MP
-FQ
-FQ
-yV
-Uu
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-Ab
-lE
-yY
-Tg
-XQ
-MP
-"}
-(61,1,1) = {"
-MP
-FQ
-FQ
-yY
-lS
-fn
-NP
-zj
-sd
-oO
-at
-aU
-Na
-tC
-zr
-ID
-eE
-RO
-zj
-NP
-bu
-zj
-oO
-Dy
-RO
-vA
-yY
-LY
-FQ
-MP
-"}
-(62,1,1) = {"
-MP
-FQ
-MP
-MP
-yY
-yY
-yY
-yY
-yY
-aR
-Gc
-MI
-Df
-fM
-kx
-ut
-zX
-aR
-yY
-aR
-aR
-yY
-yY
-yY
-FB
-yY
-yY
-FQ
-FQ
-MP
-"}
-(63,1,1) = {"
-MP
-FQ
-MP
-MP
-MP
-MP
-ft
-Lg
-an
-FQ
-FQ
-MP
-MP
-CK
-CK
-CK
-MP
-FQ
-FQ
-ju
-Lg
-zT
-FQ
-FQ
-FQ
-FQ
-FQ
-FQ
-FQ
-MP
-"}
-(64,1,1) = {"
-MP
-FQ
-FQ
-MP
-CW
-MP
-nl
-Io
-Qi
-jd
-FQ
-FQ
-MP
-FQ
-FQ
-FQ
-MP
-FQ
-Gl
-Hi
-Io
-zT
-RV
-FQ
-FQ
-FQ
-FQ
-FQ
-FQ
-MP
-"}
-(65,1,1) = {"
-MP
-FQ
-FQ
-MP
-MP
-MP
-YN
-xK
-Kg
-ce
-jd
-FQ
-MP
-CK
-CK
-CK
-MP
-Gl
-qb
-Io
-sF
-Nu
-YI
-je
-FQ
-FQ
-MP
-MP
-MP
-MP
-"}
-(66,1,1) = {"
-MP
-FQ
-FQ
-Fi
-Fi
-po
-Sj
-YN
-oi
-Io
-ce
-TD
-pr
-TD
-TD
-TD
-Kp
-Hi
-Lg
-sF
-Nu
-mX
-xE
-aA
-FQ
-FQ
-MP
-Sx
-Sx
-Sx
-"}
-(67,1,1) = {"
-MP
-FQ
-FQ
-FQ
-Fi
-dr
-po
-Sj
-YN
-oi
-Io
-Io
-Lg
-Lg
-Lg
-Lg
-Lg
-Io
-FN
-qa
-xE
-LT
-mX
-aA
-FQ
-FQ
-MP
-Sx
-Sx
-Sx
-"}
-(68,1,1) = {"
-MP
-FQ
-FQ
-FQ
-Fi
-Fi
-Fi
-po
-Sj
-YN
-Gf
-Ls
-CV
-CV
-Gf
-Ls
-Gf
-CV
-qa
-KV
-CJ
-xE
-si
-yT
-Cg
-FQ
-MP
-Sx
-Sx
-Sx
-"}
-(69,1,1) = {"
-MP
-MP
-FQ
-FQ
-FQ
-Fi
-Fi
-Fi
-po
-uB
-uB
-MP
-FQ
-eW
-FQ
-MP
-Qk
-Io
-Sz
-MP
-Xm
-wx
-TY
-kL
-cP
-MP
-MP
-Sx
-Sx
-Sx
-"}
-(70,1,1) = {"
-Sx
-MP
-MP
-FQ
-MP
-VM
-Fi
-Fi
-dr
-Fi
-MP
-MP
-MP
-MP
-MP
-MP
-Xp
-Io
-Yn
-MP
-MP
-Ux
-FF
-JM
-Ph
-sg
-MP
-Sx
-Sx
-Sx
-"}
-(71,1,1) = {"
-Sx
-Sx
-MP
-MP
-MP
-MP
-Fi
-Fi
-Fi
-UA
-MP
-YD
-YD
-tW
-hl
-JD
-Im
-Io
-Sz
-lD
-MP
-ik
-rB
-JM
-mu
-mh
-MP
-Sx
-Sx
-Sx
-"}
-(72,1,1) = {"
-Sx
-Sx
-Sx
-Sx
-Sx
-MP
-MP
-MP
-MP
-MP
-MP
-YD
-YD
-YD
-Nt
-Io
-Io
-Fz
-Sz
-lT
-MP
-XT
-rq
-BA
-dj
-mh
-MP
-Sx
-Sx
-Sx
-"}
-(73,1,1) = {"
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-MP
-YD
-YD
-YD
-Nt
-Iu
-Iu
-Iu
-Rr
-lD
-MP
-MP
-aF
-hz
-mh
-MP
-MP
-Sx
-Sx
-Sx
-"}
-(74,1,1) = {"
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-MP
-MP
-MP
-MP
-MP
-oY
-do
-bt
-Sw
-MP
-MP
-MP
-MP
-MP
-MP
-MP
-Sx
-Sx
-Sx
-Sx
-"}
-(75,1,1) = {"
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-MP
-MP
-MP
-MP
-MP
-MP
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-Sx
-"}
diff --git a/_maps/outpost/hangar/nt_asteroid_56x40.dmm b/_maps/outpost/hangar/nt_asteroid_56x40.dmm
deleted file mode 100644
index 5d66d8966d0b..000000000000
--- a/_maps/outpost/hangar/nt_asteroid_56x40.dmm
+++ /dev/null
@@ -1,5468 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ae" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"ak" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair/comfy/grey/directional/north,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"au" = (
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"aE" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"ba" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"bx" = (
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"bS" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/comfy/grey/directional/east,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"ca" = (
-/obj/effect/landmark/outpost/hangar_dock,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"cj" = (
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"dQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"ee" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"ei" = (
-/obj/machinery/door/airlock/outpost{
- req_access_txt = "109"
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ew" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"eA" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"eH" = (
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"eS" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"fd" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"fh" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"fv" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"hB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/moth/meth{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"hG" = (
-/obj/effect/decal/cleanable/oil,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"hL" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"il" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"iT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"jj" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"jF" = (
-/obj/structure/marker_beacon{
- picked_color = "Teal"
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"jI" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/techfloor/hole,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"jK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_x = -32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"kK" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"lk" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lv" = (
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"lF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"lI" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"lN" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"lS" = (
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"lY" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"lZ" = (
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"mx" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"mK" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"nD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"nM" = (
-/obj/machinery/vending/coffee{
- pixel_x = 5
- },
-/obj/item/kirbyplants{
- icon_state = "plant-22";
- pixel_x = -11
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/elevator_call_button{
- pixel_y = 24;
- pixel_x = -10
- },
-/obj/effect/landmark/outpost/elevator_machine,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"oa" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"op" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"oJ" = (
-/turf/open/space/basic,
-/area/hangar)
-"oL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/outpost/hangar_numbers,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"pp" = (
-/obj/structure/bookcase/random/fiction,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"pK" = (
-/obj/structure/chair/sofa/brown/left/directional/west,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"qh" = (
-/obj/structure/bookcase/random/fiction,
-/obj/structure/sign/plaques/deempisi{
- pixel_y = 22;
- pixel_x = -8
- },
-/obj/item/toy/plush/hornet{
- pixel_x = 9;
- pixel_y = 26
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"qD" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"qK" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/light/broken/directional/south,
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"qR" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"qT" = (
-/obj/effect/landmark/outpost/elevator,
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"rf" = (
-/obj/structure/noticeboard{
- pixel_y = 31
- },
-/obj/item/storage/box/matches,
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"rn" = (
-/obj/structure/fireplace,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"rw" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"rT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/table/wood,
-/obj/item/storage/pill_bottle/dice{
- pixel_x = -6
- },
-/obj/item/toy/figure/lawyer{
- pixel_x = 3;
- pixel_y = 7
- },
-/obj/item/toy/cards/deck/cas,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"rX" = (
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"sn" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/structure/girder/displaced,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"sE" = (
-/obj/structure/chair/comfy{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/carpet/green{
- planetary_atmos = 1
- },
-/area/hangar)
-"tD" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- pixel_x = 5;
- pixel_y = 14
- },
-/obj/item/storage/photo_album/library{
- pixel_y = -2;
- pixel_x = -4
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"uz" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"uO" = (
-/obj/machinery/door/poddoor/multi_tile/four_tile_ver,
-/turf/closed/indestructible/reinforced,
-/area/hangar)
-"uV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"vc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"vg" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"vi" = (
-/obj/item/stack/rods{
- pixel_x = 7;
- pixel_y = -9
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg2";
- planetary_atmos = 1
- },
-/area/hangar)
-"wk" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"wm" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"wp" = (
-/turf/template_noop,
-/area/template_noop)
-"xo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"xp" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"xW" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"yi" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair/office{
- dir = 4
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"yL" = (
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"zl" = (
-/obj/structure/chair/sofa/brown/right/directional/west,
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ag" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ai" = (
-/obj/structure/grille/broken,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/item/toy/plush/beeplushie{
- pixel_y = -1;
- pixel_x = 2
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating";
- planetary_atmos = 1
- },
-/area/hangar)
-"AT" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"AW" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Bp" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"BX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/fluff/hedge,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cl" = (
-/obj/machinery/door/airlock,
-/obj/effect/landmark/outpost/elevator_machine,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/engine,
-/area/hangar)
-"Cw" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Cx" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Df" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Dk" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Dr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/vending/cigarette{
- pixel_x = 5
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"DT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ed" = (
-/obj/machinery/computer/cargo{
- dir = 8;
- pixel_x = 7
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/garbage{
- pixel_x = -3;
- pixel_y = -10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"EZ" = (
-/turf/open/floor/plasteel/elevatorshaft{
- planetary_atmos = 1
- },
-/area/hangar)
-"Fs" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"FK" = (
-/obj/structure/firelock_frame,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"FP" = (
-/obj/structure/table,
-/obj/item/paper/pamphlet/gateway{
- pixel_x = 3;
- pixel_y = 4
- },
-/obj/item/paper/pamphlet/centcom{
- pixel_x = 8;
- pixel_y = 1
- },
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -6;
- pixel_y = 3
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"FS" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Gj" = (
-/obj/structure/statue/snow/snowlegion,
-/turf/open/floor/concrete/reinforced{
- planetary_atmos = 1
- },
-/area/hangar)
-"GW" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Hs" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"HD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ib" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ig" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/toy/cards/deck{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/toy/cards/deck/kotahi{
- pixel_x = 5;
- pixel_y = 2
- },
-/obj/item/toy/plush/moth{
- pixel_y = -7;
- pixel_x = -8
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Il" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
-/area/hangar)
-"Io" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Is" = (
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/structure/girder,
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Iy" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"IH" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"IV" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ji" = (
-/obj/structure/grille,
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"JA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"JM" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Kf" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ky" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"KQ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"KT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = 5;
- pixel_y = 9
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched";
- planetary_atmos = 1
- },
-/area/hangar)
-"Lc" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"LD" = (
-/turf/open/water/beach/deep,
-/area/hangar)
-"LM" = (
-/obj/structure/chair/comfy/grey/directional/east,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mf" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Mh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"MN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = 3;
- pixel_y = 2
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_y = 32
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Nt" = (
-/obj/structure/flora/rock/icy,
-/turf/open/water/beach/deep,
-/area/hangar)
-"NC" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"NN" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"NV" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ob" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"On" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"OB" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"OC" = (
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"OL" = (
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pg" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pi" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Pj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"PQ" = (
-/obj/effect/turf_decal/siding/wood/end{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21";
- pixel_x = 6;
- pixel_y = 17
- },
-/obj/structure/sign/poster/retro/random{
- pixel_x = 32
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"Rd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"Rh" = (
-/obj/structure/table,
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/siding/wood,
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = -1
- },
-/obj/item/newspaper{
- pixel_x = -5;
- pixel_y = 2
- },
-/obj/machinery/jukebox/boombox{
- pixel_y = 3;
- pixel_x = 4
- },
-/turf/open/floor/carpet/green{
- planetary_atmos = 1
- },
-/area/hangar)
-"Rn" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Ry" = (
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood{
- planetary_atmos = 1
- },
-/area/hangar)
-"Rz" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"RX" = (
-/obj/structure/girder,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"Sq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood{
- icon_state = "wood-broken7"
- },
-/area/hangar)
-"Sw" = (
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/water/beach/deep,
-/area/hangar)
-"SU" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"SY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"Tt" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/chair/office{
- dir = 8
- },
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"TU" = (
-/obj/structure/rack{
- color = "#A47449";
- pixel_y = 11
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/grown/log{
- pixel_x = -7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_y = 25
- },
-/obj/item/statuebust{
- pixel_x = 6
- },
-/turf/open/floor/plasteel/sepia{
- planetary_atmos = 1
- },
-/area/hangar)
-"Un" = (
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"UY" = (
-/turf/closed/mineral/random/snow,
-/area/hangar)
-"VD" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"VE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"VV" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"WE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/tiles{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xo" = (
-/obj/structure/grille,
-/turf/open/floor/plating{
- planetary_atmos = 1
- },
-/area/hangar)
-"Xu" = (
-/obj/structure/rack,
-/obj/item/poster/random_official{
- pixel_x = 2;
- pixel_y = 9
- },
-/obj/item/poster/random_official{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/destTagger{
- pixel_x = -5
- },
-/obj/item/export_scanner{
- pixel_x = 6;
- pixel_y = 2
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"YV" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_1{
- planetary_atmos = 1
- },
-/area/hangar)
-"YW" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"YY" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_cw{
- dir = 8
- },
-/obj/machinery/light/floor/hangar,
-/obj/effect/turf_decal/industrial/warning/corner,
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/carpet/red{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-"ZX" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/dark{
- planetary_atmos = 1
- },
-/area/hangar)
-
-(1,1,1) = {"
-wp
-wp
-wp
-wp
-eH
-eH
-eH
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-oJ
-eH
-eH
-uO
-oJ
-eH
-eH
-uO
-oJ
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-eH
-eH
-eH
-uO
-eH
-eH
-wp
-wp
-wp
-wp
-"}
-(2,1,1) = {"
-wp
-wp
-wp
-eH
-eH
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-YW
-eH
-eH
-wp
-wp
-wp
-"}
-(3,1,1) = {"
-eH
-eH
-eH
-eH
-lk
-lv
-lv
-lv
-lv
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-lv
-lv
-Un
-lv
-lv
-Iy
-eH
-eH
-eH
-eH
-"}
-(4,1,1) = {"
-eH
-UY
-UY
-UY
-lk
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-AT
-Iy
-UY
-UY
-UY
-eH
-"}
-(5,1,1) = {"
-eH
-UY
-UY
-Rn
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-ca
-cj
-KQ
-yL
-UY
-UY
-eH
-"}
-(6,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-UY
-UY
-eH
-"}
-(7,1,1) = {"
-eH
-UY
-UY
-IV
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-NC
-yL
-UY
-UY
-eH
-"}
-(8,1,1) = {"
-eH
-UY
-UY
-Lc
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-VV
-eH
-UY
-eH
-"}
-(9,1,1) = {"
-eH
-UY
-UY
-Rn
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-op
-yL
-UY
-UY
-eH
-"}
-(10,1,1) = {"
-eH
-UY
-eH
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-UY
-UY
-eH
-"}
-(11,1,1) = {"
-eH
-UY
-UY
-IV
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-VV
-UY
-UY
-eH
-"}
-(12,1,1) = {"
-eH
-UY
-UY
-Lc
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-NC
-yL
-UY
-UY
-eH
-"}
-(13,1,1) = {"
-eH
-UY
-UY
-uz
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(14,1,1) = {"
-eH
-UY
-UY
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-DT
-UY
-UY
-eH
-"}
-(15,1,1) = {"
-eH
-UY
-UY
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-VV
-UY
-UY
-eH
-"}
-(16,1,1) = {"
-eH
-UY
-UY
-Lc
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-op
-yL
-UY
-UY
-eH
-"}
-(17,1,1) = {"
-eH
-UY
-UY
-uz
-fd
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-KQ
-yL
-UY
-UY
-eH
-"}
-(18,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-eH
-UY
-eH
-"}
-(19,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-UY
-UY
-eH
-"}
-(20,1,1) = {"
-eH
-UY
-UY
-ZX
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(21,1,1) = {"
-eH
-UY
-UY
-Rn
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-op
-VV
-UY
-UY
-eH
-"}
-(22,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-hL
-DT
-UY
-UY
-eH
-"}
-(23,1,1) = {"
-eH
-UY
-UY
-Df
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-DT
-UY
-UY
-eH
-"}
-(24,1,1) = {"
-eH
-UY
-UY
-Lc
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(25,1,1) = {"
-eH
-UY
-UY
-uz
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(26,1,1) = {"
-eH
-UY
-UY
-IV
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(27,1,1) = {"
-eH
-UY
-eH
-Df
-JM
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-hL
-yL
-UY
-UY
-eH
-"}
-(28,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-UY
-UY
-eH
-"}
-(29,1,1) = {"
-eH
-UY
-UY
-Rn
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-VV
-UY
-UY
-eH
-"}
-(30,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-VV
-UY
-UY
-eH
-"}
-(31,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(32,1,1) = {"
-eH
-UY
-UY
-Lc
-JM
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-NC
-yL
-UY
-UY
-eH
-"}
-(33,1,1) = {"
-eH
-UY
-UY
-Rn
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-VV
-UY
-UY
-eH
-"}
-(34,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-VV
-eH
-UY
-eH
-"}
-(35,1,1) = {"
-eH
-UY
-UY
-Df
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-VV
-UY
-UY
-eH
-"}
-(36,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(37,1,1) = {"
-eH
-UY
-UY
-Rn
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-NC
-yL
-UY
-UY
-eH
-"}
-(38,1,1) = {"
-eH
-UY
-eH
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(39,1,1) = {"
-eH
-UY
-UY
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-UY
-UY
-eH
-"}
-(40,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-eH
-eH
-eH
-"}
-(41,1,1) = {"
-eH
-UY
-UY
-Rn
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-yL
-ei
-yL
-eH
-"}
-(42,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-NC
-Pi
-eH
-eH
-eH
-"}
-(43,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-bx
-UY
-UY
-eH
-"}
-(44,1,1) = {"
-eH
-UY
-UY
-ZX
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-bx
-UY
-UY
-eH
-"}
-(45,1,1) = {"
-eH
-UY
-UY
-Rn
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-bx
-UY
-UY
-eH
-"}
-(46,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-jI
-UY
-UY
-eH
-"}
-(47,1,1) = {"
-eH
-UY
-UY
-Df
-fd
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-KQ
-bx
-eH
-UY
-eH
-"}
-(48,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-bx
-UY
-UY
-eH
-"}
-(49,1,1) = {"
-eH
-UY
-UY
-Rn
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-bx
-UY
-UY
-eH
-"}
-(50,1,1) = {"
-eH
-UY
-UY
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-sn
-jI
-UY
-UY
-eH
-"}
-(51,1,1) = {"
-eH
-UY
-UY
-Df
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-bx
-UY
-UY
-eH
-"}
-(52,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-hL
-lN
-UY
-UY
-eH
-"}
-(53,1,1) = {"
-eH
-UY
-UY
-Rn
-qD
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-yL
-UY
-UY
-eH
-"}
-(54,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(55,1,1) = {"
-eH
-UY
-eH
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-UY
-UY
-eH
-"}
-(56,1,1) = {"
-eH
-UY
-UY
-ZX
-JM
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-FK
-Hs
-eH
-"}
-(57,1,1) = {"
-eH
-UY
-UY
-Rn
-JM
-jF
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-jF
-hL
-yL
-RX
-qK
-eH
-"}
-(58,1,1) = {"
-eH
-UY
-UY
-Df
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-hL
-yL
-vi
-KT
-eH
-"}
-(59,1,1) = {"
-eH
-UY
-UY
-Df
-fd
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-KQ
-yL
-RX
-Ai
-eH
-"}
-(60,1,1) = {"
-eH
-UY
-UY
-ZX
-rw
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-cj
-NC
-yL
-RX
-Xo
-eH
-"}
-(61,1,1) = {"
-eH
-UY
-UY
-yL
-Bp
-OB
-OB
-OB
-OB
-Cw
-OB
-OB
-Cw
-OB
-OB
-OB
-Cw
-OB
-OB
-OB
-Cw
-OB
-OB
-OB
-Cw
-OB
-OB
-rX
-OC
-Cx
-SY
-ew
-YY
-xp
-HD
-FS
-Ob
-VD
-Mf
-vg
-Cx
-OC
-ZK
-Cx
-ew
-wk
-vg
-GW
-yL
-Is
-UY
-eH
-"}
-(62,1,1) = {"
-eH
-UY
-UY
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-yL
-VV
-NN
-lZ
-hG
-mx
-Ed
-Xu
-Kf
-VV
-yL
-VV
-VV
-yL
-yL
-yL
-DT
-yL
-yL
-UY
-UY
-eH
-"}
-(63,1,1) = {"
-eH
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-eH
-eH
-eH
-eH
-hB
-au
-Fs
-UY
-UY
-eH
-eH
-Ji
-Ji
-Ji
-eH
-UY
-UY
-iT
-au
-YV
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-eH
-"}
-(64,1,1) = {"
-eH
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-UY
-eH
-Gj
-eH
-Pj
-NV
-ae
-Ky
-UY
-UY
-eH
-UY
-UY
-UY
-eH
-UY
-Io
-wm
-NV
-YV
-BX
-UY
-UY
-UY
-UY
-UY
-UY
-eH
-"}
-(65,1,1) = {"
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-UY
-UY
-eH
-eH
-eH
-xW
-lI
-nD
-Pg
-Ky
-UY
-eH
-Ji
-Ji
-Ji
-eH
-Io
-IH
-NV
-jj
-Sh
-mK
-Ag
-UY
-UY
-eH
-eH
-eH
-eH
-"}
-(66,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-UY
-UY
-LD
-LD
-Rz
-lS
-xW
-ba
-NV
-Pg
-JA
-jK
-JA
-JA
-JA
-Ib
-wm
-au
-jj
-Sh
-Dk
-OL
-On
-UY
-UY
-eH
-wp
-wp
-wp
-"}
-(67,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-UY
-UY
-UY
-LD
-qR
-Rz
-lS
-xW
-ba
-NV
-NV
-au
-au
-au
-au
-au
-NV
-eS
-oa
-OL
-Il
-Dk
-On
-UY
-UY
-eH
-wp
-wp
-wp
-"}
-(68,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-UY
-UY
-UY
-LD
-LD
-LD
-Rz
-lS
-xW
-Sc
-Mh
-lY
-lY
-Sc
-Mh
-Sc
-lY
-oa
-Dr
-LM
-OL
-Sq
-Ig
-rT
-UY
-eH
-wp
-wp
-wp
-"}
-(69,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-UY
-UY
-UY
-LD
-LD
-LD
-Rz
-Sw
-Sw
-eH
-UY
-il
-UY
-eH
-fh
-NV
-uV
-eH
-MN
-bS
-lF
-dQ
-ZA
-eH
-eH
-wp
-wp
-wp
-"}
-(70,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-UY
-eH
-Nt
-LD
-LD
-qR
-LD
-eH
-eH
-eH
-eH
-eH
-eH
-SU
-NV
-xo
-eH
-eH
-rf
-Rd
-aE
-yi
-pp
-eH
-wp
-wp
-wp
-"}
-(71,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-eH
-eH
-LD
-LD
-LD
-AW
-eH
-EZ
-EZ
-qT
-eA
-ee
-WE
-NV
-uV
-sE
-eH
-rn
-ak
-aE
-tD
-Ry
-eH
-wp
-wp
-wp
-"}
-(72,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-eH
-eH
-eH
-eH
-EZ
-EZ
-EZ
-Cl
-NV
-NV
-oL
-uV
-Rh
-eH
-TU
-vc
-fv
-Tt
-Ry
-eH
-wp
-wp
-wp
-"}
-(73,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-EZ
-EZ
-EZ
-Cl
-VE
-VE
-VE
-kK
-sE
-eH
-eH
-qh
-PQ
-Ry
-eH
-eH
-wp
-wp
-wp
-"}
-(74,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-eH
-eH
-eH
-nM
-zl
-pK
-FP
-eH
-eH
-eH
-eH
-eH
-eH
-eH
-wp
-wp
-wp
-wp
-"}
-(75,1,1) = {"
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-eH
-eH
-eH
-eH
-eH
-eH
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-wp
-"}
diff --git a/_maps/outpost/hangar/nt_ice_20x20.dmm b/_maps/outpost/hangar/nt_ice_20x20.dmm
index 03321bfceaa3..ec7577ab620f 100644
--- a/_maps/outpost/hangar/nt_ice_20x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_20x20.dmm
@@ -191,31 +191,6 @@
planetary_atmos = 1
},
/area/hangar)
-"bv" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"bw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"bA" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -289,7 +264,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -306,17 +280,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ee" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"fb" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -326,15 +289,6 @@
planetary_atmos = 1
},
/area/hangar)
-"fT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"gy" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -396,49 +350,6 @@
light_range = 2
},
/area/hangar)
-"iT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"ka" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"kq" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"me" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -448,20 +359,6 @@
planetary_atmos = 1
},
/area/hangar)
-"mz" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"mR" = (
/obj/machinery/door/airlock/outpost,
/turf/open/floor/plasteel/tech,
@@ -477,18 +374,6 @@
planetary_atmos = 1
},
/area/hangar)
-"nI" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"nK" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -514,20 +399,6 @@
light_range = 2
},
/area/hangar)
-"om" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"oA" = (
-/obj/machinery/door/airlock/outpost,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"oE" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -573,26 +444,6 @@
planetary_atmos = 1
},
/area/hangar)
-"qk" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
- },
-/obj/machinery/computer/hydrogen_exchange{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"qV" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"rj" = (
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
@@ -618,15 +469,6 @@
planetary_atmos = 1
},
/area/hangar)
-"sd" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
- },
-/obj/item/toy/plush/moth/firewatch{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"sV" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -639,18 +481,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hangar)
-"tt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ui" = (
/obj/effect/turf_decal/borderfloor{
dir = 10
@@ -684,25 +514,6 @@
planetary_atmos = 1
},
/area/hangar)
-"xv" = (
-/obj/structure/railing{
- dir = 5;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"xB" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -738,32 +549,6 @@
planetary_atmos = 1
},
/area/hangar)
-"yE" = (
-/obj/structure/flora/grass/both,
-/obj/item/trash/candy{
- pixel_x = 4;
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"zs" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/floor{
- bulb_power = 0.75
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Aj" = (
/obj/effect/turf_decal/borderfloor/corner,
/obj/effect/turf_decal/siding/white{
@@ -778,44 +563,6 @@
planetary_atmos = 1
},
/area/hangar)
-"AE" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"AI" = (
-/obj/structure/flora/grass/green,
-/obj/item/trash/energybar{
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Bw" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"De" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Dh" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -828,29 +575,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Dq" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/volume_pump,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"DK" = (
-/obj/structure/flora/stump,
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"ES" = (
/obj/effect/turf_decal/borderfloor{
dir = 6
@@ -880,18 +604,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Fn" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"FM" = (
/obj/effect/turf_decal/siding/white{
dir = 10
@@ -913,7 +625,6 @@
/obj/effect/turf_decal/borderfloor/full,
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plasteel/patterned/cargo_one{
light_color = "#1B1D2E";
light_range = 2
@@ -952,20 +663,6 @@
light_range = 2
},
/area/hangar)
-"HG" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Iz" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -996,29 +693,12 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
planetary_atmos = 1
},
/area/hangar)
-"JD" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"JU" = (
/obj/effect/turf_decal/siding/white{
dir = 8
@@ -1038,17 +718,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Kw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"KC" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/oil,
@@ -1069,37 +738,6 @@
light_range = 2
},
/area/hangar)
-"Lu" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Lz" = (
-/obj/structure/railing{
- dir = 9;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"MI" = (
/obj/structure/flora/grass/both,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -1126,27 +764,15 @@
},
/area/hangar)
"MR" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
},
-/area/hangar)
-"NH" = (
-/obj/effect/turf_decal/borderfloor{
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing{
dir = 1
},
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/components/binary/valve/digital,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
@@ -1176,36 +802,6 @@
planetary_atmos = 1
},
/area/hangar)
-"PI" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"PL" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Qb" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -1318,44 +914,6 @@
},
/turf/open/floor/plasteel/tech,
/area/hangar)
-"TU" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/north{
- pixel_x = -6;
- bulb_power = 0.25
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"TX" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Ul" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1384,19 +942,6 @@
planetary_atmos = 1
},
/area/hangar)
-"UZ" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Vk" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1426,20 +971,6 @@
planetary_atmos = 1
},
/area/hangar)
-"WY" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Xd" = (
/obj/effect/turf_decal/siding/white{
dir = 8
@@ -1456,17 +987,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Xt" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"XC" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -1497,33 +1017,6 @@
light_range = 2
},
/area/hangar)
-"Yt" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Yu" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"YN" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -1558,18 +1051,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Zc" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Ze" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -1580,18 +1061,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Zf" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Zi" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 4
@@ -1834,7 +1303,7 @@ rj
rj
MI
rj
-DK
+rj
rj
MI
rj
@@ -1847,7 +1316,7 @@ rj
rj
MN
rj
-DK
+rj
rj
rj
rj
@@ -1872,7 +1341,7 @@ rj
rj
rj
rj
-DK
+rj
rj
rj
rj
@@ -1881,7 +1350,7 @@ rj
rj
MN
rj
-DK
+rj
rj
MI
rj
@@ -2004,7 +1473,7 @@ TA
rj
rj
rj
-DK
+rj
rj
rj
rj
@@ -2053,7 +1522,7 @@ rj
rj
rj
rj
-DK
+rj
MI
rj
rj
@@ -2245,7 +1714,7 @@ ac
ac
aM
MN
-GX
+rj
aC
rQ
av
@@ -2286,8 +1755,8 @@ am
am
am
rj
-yE
-qk
+rj
+MI
Fi
ap
av
@@ -2325,14 +1794,14 @@ am
(18,1,1) = {"
am
hg
-sd
+hg
am
-MI
rj
-Yu
-TX
-ee
-NH
+GX
+rj
+nr
+ap
+av
aJ
aJ
aJ
@@ -2353,8 +1822,8 @@ aJ
aJ
aJ
aJ
-De
-Fn
+nr
+rQ
aT
MI
rj
@@ -2367,13 +1836,13 @@ am
(19,1,1) = {"
am
hg
-qV
+hg
am
-bv
-bv
-zs
+rj
+rj
+rj
Fi
-tt
+rQ
av
aJ
aJ
@@ -2396,7 +1865,7 @@ aJ
aJ
aJ
aO
-Zc
+rQ
nK
rj
rj
@@ -2409,13 +1878,13 @@ ac
(20,1,1) = {"
am
hg
-Bw
-oA
-om
-om
-Lz
-PL
-PI
+hg
+mR
+rj
+rj
+GX
+aC
+NO
av
aJ
aJ
@@ -2438,7 +1907,7 @@ aJ
aJ
aJ
nr
-Zc
+rQ
nK
rj
GX
@@ -2453,10 +1922,10 @@ am
hg
hg
am
-TU
-WY
-HG
-Yt
+MI
+rj
+rj
+aC
IG
av
aJ
@@ -2480,7 +1949,7 @@ aJ
aJ
aJ
nr
-Lu
+NO
nK
rj
rj
@@ -2495,10 +1964,10 @@ am
am
am
am
-AI
rj
-ka
-Dq
+MN
+rj
+aC
cI
av
ad
@@ -2522,7 +1991,7 @@ aJ
aJ
ad
nr
-Lu
+NO
nK
MI
rj
@@ -2538,10 +2007,10 @@ ac
ac
ac
rj
-rj
-JD
-nr
-PI
+GX
+MN
+aC
+NO
aT
aJ
aJ
@@ -2564,7 +2033,7 @@ aJ
aJ
aJ
nr
-Lu
+NO
nK
rj
GX
@@ -2580,10 +2049,10 @@ ac
ac
ac
rj
-MI
-xv
-mz
-PI
+rj
+rj
+aC
+NO
aT
aJ
aJ
@@ -2606,7 +2075,7 @@ aJ
aJ
aJ
nr
-Lu
+NO
uC
rj
rj
@@ -2622,10 +2091,10 @@ ac
ac
TA
rj
-GX
+MI
rj
-aC
-tt
+Fi
+rQ
aT
aJ
aJ
@@ -2648,7 +2117,7 @@ aJ
aJ
aJ
nr
-Zc
+rQ
TF
rj
MI
@@ -2665,9 +2134,9 @@ ac
rj
rj
rj
-rj
+MI
aC
-tt
+rQ
av
aJ
aJ
@@ -2690,7 +2159,7 @@ aJ
aJ
aJ
nr
-Lu
+NO
TF
rj
ac
@@ -2705,11 +2174,11 @@ ac
ac
ac
rj
-MN
+rj
rj
rj
aC
-tt
+rQ
av
ad
aJ
@@ -2732,7 +2201,7 @@ aJ
aJ
ad
aO
-kq
+ap
nK
MN
ac
@@ -2751,7 +2220,7 @@ rj
rj
GX
aC
-Kw
+ap
av
aJ
aJ
@@ -2774,7 +2243,7 @@ aJ
aJ
aJ
aO
-Zc
+rQ
nK
rj
ac
@@ -2793,7 +2262,7 @@ MI
rj
rj
aC
-Kw
+ap
av
aJ
aJ
@@ -2816,7 +2285,7 @@ aJ
aJ
aJ
aO
-Zc
+rQ
nK
MI
rj
@@ -2835,7 +2304,7 @@ rj
rj
rj
aC
-Kw
+ap
av
aJ
aJ
@@ -2858,7 +2327,7 @@ aJ
aJ
aJ
nr
-Zc
+rQ
nK
GX
rj
@@ -2877,7 +2346,7 @@ rj
MI
rj
aC
-Kw
+ap
av
aJ
aJ
@@ -2900,7 +2369,7 @@ aJ
aJ
aJ
nr
-Lu
+NO
nK
rj
rj
@@ -2919,7 +2388,7 @@ rj
GX
rj
aC
-tt
+rQ
aT
ad
aJ
@@ -2941,8 +2410,8 @@ aJ
aJ
aJ
ad
-De
-iT
+nr
+NO
nK
rj
MI
@@ -2961,8 +2430,8 @@ rj
MN
rj
Fi
-Zf
-UZ
+rQ
+aT
aJ
aJ
aJ
@@ -2984,7 +2453,7 @@ aJ
aJ
aJ
nr
-Zc
+rQ
nK
rj
GX
@@ -3003,7 +2472,7 @@ rj
rj
GX
Fi
-Kw
+ap
aT
aJ
aJ
@@ -3026,7 +2495,7 @@ ad
aJ
aJ
nr
-kq
+ap
nK
rj
rj
@@ -3045,7 +2514,7 @@ rj
rj
rj
aC
-Kw
+ap
SW
Qb
Qb
@@ -3068,7 +2537,7 @@ Qb
Qb
Qb
ES
-kq
+ap
nK
MI
TA
@@ -3087,30 +2556,30 @@ rj
MI
rj
aC
-Xt
-fT
-bw
-AE
-AE
-AE
-fT
-bw
-bw
-AE
-AE
-AE
+hv
+ap
+NO
+rQ
+rQ
+rQ
+ap
+NO
+NO
+rQ
+rQ
+rQ
+FS
+ap
+rQ
+ap
+ap
+ap
+NO
+NO
+rQ
+ap
+ap
FS
-fT
-AE
-fT
-fT
-fT
-bw
-bw
-AE
-fT
-fT
-nI
uC
rj
ac
diff --git a/_maps/outpost/hangar/nt_ice_40x20.dmm b/_maps/outpost/hangar/nt_ice_40x20.dmm
index dc4366bfd54b..a9066a1dcef2 100644
--- a/_maps/outpost/hangar/nt_ice_40x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_40x20.dmm
@@ -242,21 +242,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ca" = (
-/obj/machinery/door/airlock/outpost,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"cx" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"dA" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -296,22 +281,6 @@
planetary_atmos = 1
},
/area/hangar)
-"eg" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/volume_pump,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"es" = (
/obj/effect/decal/fakelattice,
/obj/machinery/light/small/directional/east,
@@ -370,21 +339,6 @@
planetary_atmos = 1
},
/area/hangar)
-"gk" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"hh" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -396,15 +350,6 @@
light_range = 2
},
/area/hangar)
-"hr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"hX" = (
/obj/effect/landmark/outpost/hangar_dock,
/turf/open/floor/plating{
@@ -442,19 +387,6 @@
light_range = 2
},
/area/hangar)
-"jm" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"jv" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -497,10 +429,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ln" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/icerock/temperate,
-/area/hangar)
"lG" = (
/obj/effect/turf_decal/siding/white{
dir = 9
@@ -554,48 +482,6 @@
planetary_atmos = 1
},
/area/hangar)
-"mE" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"mM" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"nE" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"ok" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"oA" = (
/obj/effect/turf_decal/borderfloor/corner{
dir = 1
@@ -644,32 +530,6 @@
planetary_atmos = 1
},
/area/hangar)
-"pn" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/floor{
- bulb_power = 0.75
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"pu" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"pv" = (
/obj/structure/flora/grass/both,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -677,20 +537,6 @@
light_range = 2
},
/area/hangar)
-"pz" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"qa" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -835,82 +681,12 @@
planetary_atmos = 1
},
/area/hangar)
-"tW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"uk" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"us" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"uv" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"uK" = (
-/obj/structure/railing{
- dir = 9;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"wH" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -953,19 +729,6 @@
planetary_atmos = 1
},
/area/hangar)
-"yt" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"zT" = (
/obj/structure/flora/tree/dead,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -973,19 +736,6 @@
light_range = 2
},
/area/hangar)
-"Af" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"AN" = (
/obj/effect/turf_decal/borderfloor{
dir = 9
@@ -1000,34 +750,6 @@
planetary_atmos = 1
},
/area/hangar)
-"AY" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"Br" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Cg" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -1038,31 +760,6 @@
planetary_atmos = 1
},
/area/hangar)
-"CQ" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Db" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"DM" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -1081,27 +778,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/hangar)
-"EI" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"EJ" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -1125,26 +801,6 @@
planetary_atmos = 1
},
/area/hangar)
-"FO" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"FX" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1158,18 +814,6 @@
planetary_atmos = 1
},
/area/hangar)
-"GG" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"GS" = (
/obj/effect/turf_decal/borderfloor{
dir = 5
@@ -1184,45 +828,15 @@
planetary_atmos = 1
},
/area/hangar)
-"Hw" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"HZ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Iv" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
/turf/open/floor/plasteel/patterned/cargo_one{
light_color = "#1B1D2E";
light_range = 2
},
/area/hangar)
-"IF" = (
-/obj/structure/flora/grass/both,
-/obj/item/trash/raisins{
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Jb" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -1240,30 +854,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Je" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Jh" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Js" = (
/obj/effect/turf_decal/corner/opaque/neutral,
/obj/effect/turf_decal/siding/white{
@@ -1349,50 +939,6 @@
"MM" = (
/turf/open/floor/plasteel/tech,
/area/hangar)
-"MV" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"MY" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Nz" = (
-/obj/structure/flora/grass/green,
-/obj/item/trash/pistachios{
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"ON" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
- },
-/obj/item/toy/plush/moth/firewatch{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"OP" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -1433,25 +979,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Rh" = (
-/obj/structure/railing{
- dir = 5;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"RU" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1461,15 +988,8 @@
},
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Sb" = (
-/obj/structure/flora/stump,
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
+ light_range = 2;
+ planetary_atmos = 1
},
/area/hangar)
"Sh" = (
@@ -1504,12 +1024,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Td" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"TX" = (
/obj/effect/decal/fakelattice,
/turf/open/floor/plasteel/elevatorshaft{
@@ -1520,37 +1034,6 @@
/obj/machinery/door/airlock/outpost,
/turf/open/floor/plasteel/tech,
/area/hangar)
-"UH" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"UU" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
- },
-/obj/machinery/computer/hydrogen_exchange{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Vs" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1561,17 +1044,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Wa" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Ww" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -1591,9 +1063,7 @@
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -1621,49 +1091,6 @@
planetary_atmos = 1
},
/area/hangar)
-"XS" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"YG" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"YV" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/north{
- pixel_x = -6;
- bulb_power = 0.25
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Zc" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -1694,20 +1121,6 @@
light_range = 2
},
/area/hangar)
-"Zl" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ZK" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -1941,7 +1354,7 @@ aO
as
aO
aO
-Sb
+aO
pv
aO
aO
@@ -1957,7 +1370,7 @@ aO
aO
as
aO
-Sb
+aO
aO
aO
aO
@@ -1992,7 +1405,7 @@ aO
as
aO
aO
-Sb
+aO
pv
aO
aO
@@ -2029,7 +1442,7 @@ aO
aO
aO
aO
-Sb
+aO
aO
aO
aO
@@ -2086,7 +1499,7 @@ aO
aO
aO
aO
-Sb
+aO
aO
aO
aO
@@ -2106,7 +1519,7 @@ aO
aO
as
aO
-Sb
+aO
aO
aO
aO
@@ -2116,7 +1529,7 @@ aO
aO
aO
aO
-Sb
+aO
aO
pv
aO
@@ -2441,8 +1854,8 @@ pv
aO
aO
aL
-YG
-uk
+aR
+DM
ae
ae
ae
@@ -2463,8 +1876,8 @@ ae
ae
ae
ae
-yt
-MY
+fQ
+WM
OP
aO
al
@@ -2483,7 +1896,7 @@ aO
aO
aO
aL
-nE
+rI
DM
ae
ae
@@ -2506,7 +1919,7 @@ ae
ae
ae
fQ
-Af
+aR
lQ
aO
aO
@@ -2525,7 +1938,7 @@ aY
aO
as
aL
-nE
+rI
DM
ae
ae
@@ -2548,7 +1961,7 @@ ae
ae
ae
rq
-MV
+am
OP
aO
aO
@@ -2567,7 +1980,7 @@ aw
al
aO
aL
-nE
+rI
DM
ae
ae
@@ -2590,7 +2003,7 @@ ae
ae
ae
rq
-MV
+am
OP
aO
pv
@@ -2609,7 +2022,7 @@ aY
aO
pv
aL
-nE
+rI
DM
aD
ae
@@ -2632,7 +2045,7 @@ ae
ae
aD
rq
-MV
+am
OP
aO
aO
@@ -2651,7 +2064,7 @@ aY
aO
aO
aL
-nE
+rI
DM
ae
ae
@@ -2674,7 +2087,7 @@ ae
ae
ae
rq
-MV
+am
OP
aO
aO
@@ -2693,7 +2106,7 @@ aY
wR
aO
Ww
-nE
+rI
DM
ae
ae
@@ -2716,7 +2129,7 @@ ae
ae
ae
rq
-MV
+am
OP
aO
al
@@ -2735,7 +2148,7 @@ aY
aY
aO
Ww
-nE
+rI
DM
ae
ae
@@ -2758,7 +2171,7 @@ ae
ae
ae
rq
-MV
+am
OP
aO
as
@@ -2777,7 +2190,7 @@ aY
aY
aO
Ww
-mE
+am
DM
ae
ae
@@ -2800,7 +2213,7 @@ ae
ae
ae
fQ
-MV
+am
OP
pv
aO
@@ -2819,7 +2232,7 @@ aY
pv
aO
Ww
-mE
+am
DM
aD
ae
@@ -2842,7 +2255,7 @@ ae
ae
aD
rq
-Af
+aR
OP
aO
aO
@@ -2861,7 +2274,7 @@ aY
aO
as
Ww
-mE
+am
DM
ae
ae
@@ -2884,7 +2297,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
al
@@ -2903,7 +2316,7 @@ aY
aO
al
aL
-mE
+am
DM
ae
ae
@@ -2926,7 +2339,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
aO
@@ -2945,7 +2358,7 @@ aY
aO
aO
aL
-mE
+am
DM
ae
ae
@@ -2968,7 +2381,7 @@ ae
ae
ae
rq
-GG
+rI
OP
aO
pv
@@ -2987,7 +2400,7 @@ aY
pv
aO
aL
-mE
+am
aM
ae
ae
@@ -3010,7 +2423,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
aO
@@ -3029,7 +2442,7 @@ aY
aO
aO
aL
-nE
+rI
aM
aD
ae
@@ -3052,7 +2465,7 @@ ae
ae
aD
rq
-GG
+rI
lQ
aO
aO
@@ -3067,11 +2480,11 @@ aY
aY
aY
aY
-aY
-Nz
+aw
+as
aO
aL
-nE
+rI
DM
ae
ae
@@ -3094,7 +2507,7 @@ ae
ae
ae
qa
-Af
+aR
lQ
aO
aO
@@ -3109,11 +2522,11 @@ ab
ab
ab
ab
-ln
aO
-UU
-Ww
-mE
+aO
+pv
+rq
+rI
DM
ae
ae
@@ -3136,7 +2549,7 @@ ae
ae
ae
rq
-GG
+rI
DM
aO
aO
@@ -3149,14 +2562,14 @@ ab
(35,1,1) = {"
ab
MM
-ON
+MM
ab
-pv
aO
-gk
-FO
-HZ
-uk
+al
+aO
+aL
+rI
+DM
ae
ae
ae
@@ -3177,8 +2590,8 @@ ae
ae
ae
ae
-XS
-Je
+rq
+rI
lQ
pv
aO
@@ -3191,13 +2604,13 @@ ab
(36,1,1) = {"
ab
MM
-Td
+MM
ab
-Zl
-Zl
-pn
-Ww
-nE
+aO
+aO
+aO
+aL
+rI
DM
ae
ae
@@ -3220,7 +2633,7 @@ ae
ae
ae
rq
-MV
+am
lQ
al
aO
@@ -3233,13 +2646,13 @@ aY
(37,1,1) = {"
ab
MM
-Hw
-ca
-mM
-mM
-uK
-UH
-WM
+MM
+Uo
+aO
+aO
+al
+Ww
+am
DM
aD
ae
@@ -3262,7 +2675,7 @@ ae
ae
aD
rq
-GG
+rI
lQ
aO
aO
@@ -3277,11 +2690,11 @@ ab
MM
MM
ab
-YV
-uv
-Br
-CQ
-pz
+pv
+aO
+aO
+aL
+am
DM
ae
ae
@@ -3304,7 +2717,7 @@ ae
ae
ae
rq
-GG
+rI
OP
aO
aO
@@ -3319,11 +2732,11 @@ ab
ab
ab
ab
+aO
as
aO
-EI
-eg
-jm
+Ww
+rI
DM
ae
ae
@@ -3346,7 +2759,7 @@ ae
ae
ae
fQ
-GG
+rI
lQ
pv
aO
@@ -3360,12 +2773,12 @@ aY
aY
aY
aY
-ln
-aO
+aY
aO
-AY
-rq
-WM
+al
+as
+aL
+aR
DM
ae
ae
@@ -3388,7 +2801,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
al
@@ -3404,9 +2817,9 @@ aY
aY
aY
aO
-IF
-Rh
-Jh
+aO
+aO
+aL
WM
DM
ae
@@ -3430,7 +2843,7 @@ ae
ae
ae
rq
-Af
+aR
lQ
aO
aO
@@ -3444,9 +2857,9 @@ aY
aY
aY
aY
+wR
aO
-aO
-al
+pv
aO
aL
wH
@@ -3472,7 +2885,7 @@ ae
ae
aD
rq
-Af
+aR
lQ
aO
pv
@@ -3489,9 +2902,9 @@ aY
aO
aO
aO
-as
+pv
aL
-WM
+aR
aM
ae
ae
@@ -3514,7 +2927,7 @@ ae
ae
ae
rq
-Af
+aR
lQ
aO
aY
@@ -3529,11 +2942,11 @@ aY
aY
aY
aO
-pv
+aO
aO
aO
aL
-WM
+aR
aM
ae
ae
@@ -3556,7 +2969,7 @@ ae
ae
ae
rq
-Af
+aR
OP
as
aY
@@ -3575,7 +2988,7 @@ aO
aO
al
Ww
-nE
+rI
aM
ae
ae
@@ -3598,7 +3011,7 @@ ae
ae
ae
rq
-GG
+rI
Sn
aO
aY
@@ -3613,11 +3026,11 @@ aY
aY
aw
aO
-al
+pv
aO
aO
aL
-nE
+rI
DM
ae
ae
@@ -3640,7 +3053,7 @@ ae
ae
ae
rq
-Af
+aR
Sn
pv
aO
@@ -3659,7 +3072,7 @@ aO
aO
aO
aL
-nE
+rI
DM
aD
ae
@@ -3682,7 +3095,7 @@ ae
ae
aD
fQ
-MV
+am
lQ
al
aO
@@ -3701,7 +3114,7 @@ aO
pv
aO
aL
-mE
+am
DM
ae
ae
@@ -3724,7 +3137,7 @@ ae
ae
ae
fQ
-GG
+rI
lQ
aO
aO
@@ -3743,7 +3156,7 @@ aO
al
aO
aL
-mE
+am
DM
ae
ae
@@ -3766,7 +3179,7 @@ ae
ae
ae
fQ
-GG
+rI
lQ
aO
pv
@@ -3785,7 +3198,7 @@ aO
as
aO
aL
-mE
+am
DM
ae
ae
@@ -3808,7 +3221,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
al
@@ -3827,7 +3240,7 @@ aO
aO
al
aL
-mE
+am
DM
ae
ae
@@ -3850,7 +3263,7 @@ ae
ae
ae
rq
-Af
+aR
lQ
aO
aO
@@ -3869,8 +3282,8 @@ aO
aO
aO
aL
-tW
-Db
+rI
+aM
aD
ae
ae
@@ -3891,8 +3304,8 @@ ae
ae
ae
aD
-XS
-Wa
+rq
+aR
lQ
pv
wR
@@ -3911,7 +3324,7 @@ aO
pv
aO
Ww
-nE
+rI
aM
ae
ae
@@ -3934,7 +3347,7 @@ ae
ae
ae
rq
-GG
+rI
lQ
aO
aY
@@ -3953,7 +3366,7 @@ aO
aO
aO
Ww
-mE
+am
aM
ae
ae
@@ -3976,7 +3389,7 @@ aD
ae
ae
rq
-MV
+am
lQ
as
aY
@@ -3995,7 +3408,7 @@ al
aO
aO
aL
-mE
+am
GS
af
af
@@ -4018,7 +3431,7 @@ af
af
af
mj
-MV
+am
lQ
pv
aY
@@ -4037,29 +3450,29 @@ pv
aO
aO
aL
-pu
-hr
-us
-cx
-cx
-cx
-hr
-us
-us
-cx
-cx
-cx
-ok
-hr
-cx
-hr
-hr
-hr
-us
-us
-cx
-hr
-hr
+aU
+am
+aR
+rI
+rI
+rI
+am
+aR
+aR
+rI
+rI
+rI
+Iv
+am
+rI
+am
+am
+am
+aR
+aR
+rI
+am
+am
Iv
OP
aO
diff --git a/_maps/outpost/hangar/nt_ice_40x40.dmm b/_maps/outpost/hangar/nt_ice_40x40.dmm
index 69d81767fd7f..fb8d80f95cbe 100644
--- a/_maps/outpost/hangar/nt_ice_40x40.dmm
+++ b/_maps/outpost/hangar/nt_ice_40x40.dmm
@@ -168,37 +168,6 @@
planetary_atmos = 1
},
/area/hangar)
-"aJ" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/north{
- pixel_x = -6;
- bulb_power = 0.25
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"aP" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"aQ" = (
/obj/structure/flora/rock/pile/icy,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -232,9 +201,7 @@
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -245,7 +212,6 @@
/obj/effect/turf_decal/borderfloor/full,
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plasteel/patterned/cargo_one{
light_color = "#1B1D2E";
light_range = 2
@@ -292,10 +258,6 @@
planetary_atmos = 1
},
/area/hangar)
-"cG" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/icerock/temperate,
-/area/hangar)
"dQ" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/greenglow{
@@ -323,17 +285,6 @@
planetary_atmos = 1
},
/area/hangar)
-"eF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"eU" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -346,17 +297,6 @@
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plasteel/tech,
/area/hangar)
-"fd" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"fJ" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 1
@@ -396,30 +336,6 @@
planetary_atmos = 1
},
/area/hangar)
-"gN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"hh" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"hr" = (
/obj/effect/turf_decal/borderfloor/corner{
dir = 8
@@ -490,19 +406,6 @@
planetary_atmos = 1
},
/area/hangar)
-"iY" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"jF" = (
/obj/effect/turf_decal/corner/opaque/neutral,
/obj/effect/turf_decal/siding/white,
@@ -554,39 +457,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/telecomms_floor,
/area/hangar)
-"lb" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"lg" = (
-/obj/structure/railing{
- dir = 5;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"lC" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -656,7 +526,6 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/chair/comfy/orange/directional/west,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating{
planetary_atmos = 1
@@ -682,32 +551,13 @@
"pd" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning,
+/obj/structure/filingcabinet/double/grey,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/east,
-/obj/structure/filingcabinet/double/grey{
- dir = 8;
- pixel_x = 7
- },
/turf/open/floor/plating{
planetary_atmos = 1
},
/area/hangar)
-"qS" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/valve/digital{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"qW" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -732,24 +582,6 @@
planetary_atmos = 1
},
/area/hangar)
-"rY" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"so" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"sS" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -798,32 +630,6 @@
planetary_atmos = 1
},
/area/hangar)
-"tQ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"tR" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"um" = (
/obj/effect/turf_decal/borderfloor{
dir = 5
@@ -879,66 +685,6 @@
planetary_atmos = 1
},
/area/hangar)
-"xS" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"ym" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/floor{
- bulb_power = 0.75
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"yn" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"yw" = (
-/obj/structure/railing{
- dir = 9;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"yG" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -959,48 +705,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/telecomms_floor,
/area/hangar)
-"zS" = (
-/obj/structure/flora/stump,
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Au" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"AJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"AO" = (
-/obj/structure/flora/grass/green,
-/obj/item/trash/chips{
- layer = 2.8;
- pixel_y = 3;
- pixel_x = -2
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Bf" = (
/obj/structure/flora/tree/dead,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -1008,18 +712,6 @@
light_range = 2
},
/area/hangar)
-"Bj" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"BE" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1048,29 +740,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Ck" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"CC" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"CG" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -1128,17 +797,6 @@
light_range = 2
},
/area/hangar)
-"Fw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"FH" = (
/obj/effect/turf_decal/corner/opaque/neutral,
/obj/effect/turf_decal/siding/white{
@@ -1180,30 +838,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/telecomms_floor,
/area/hangar)
-"GW" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Hr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Hv" = (
/obj/structure/table/reinforced,
/obj/item/flashlight/lamp{
@@ -1256,36 +890,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Is" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"IH" = (
-/obj/machinery/door/airlock/outpost,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"Jt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"JI" = (
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating{
@@ -1327,18 +931,6 @@
light_range = 2
},
/area/hangar)
-"Ll" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Lt" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/vending/coffee,
@@ -1373,12 +965,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Md" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Mm" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -1389,22 +975,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/hangar)
-"Ms" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/volume_pump,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Mz" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1421,41 +991,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Nh" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"NG" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"NY" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -1580,15 +1115,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Qk" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Qs" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -1633,20 +1159,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Rr" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
- },
-/obj/machinery/computer/hydrogen_exchange{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Rx" = (
/obj/effect/turf_decal/borderfloor{
dir = 10
@@ -1660,27 +1172,12 @@
planetary_atmos = 1
},
/area/hangar)
-"RY" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Sf" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -1693,23 +1190,11 @@
/turf/open/floor/plasteel/elevatorshaft{
planetary_atmos = 1
},
-/area/hangar)
-"SC" = (
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Tj" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
+/area/hangar)
+"SC" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
planetary_atmos = 1
@@ -1780,37 +1265,6 @@
planetary_atmos = 1
},
/area/hangar)
-"UJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"UR" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"VR" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1900,56 +1354,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Zr" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Zx" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
- },
-/obj/item/toy/plush/moth/firewatch{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"ZN" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"ZP" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"ZW" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -2231,7 +1635,7 @@ ac
ac
ac
ac
-zS
+ac
ac
ac
ac
@@ -2245,7 +1649,7 @@ ac
ac
ac
ac
-zS
+ac
ac
ac
ac
@@ -2286,7 +1690,7 @@ aQ
ak
ac
ac
-zS
+ac
ac
ak
ac
@@ -2315,7 +1719,7 @@ ac
ac
ac
ac
-zS
+ac
ac
ak
ac
@@ -2548,7 +1952,7 @@ ac
ac
ak
ac
-zS
+ac
ac
ac
ac
@@ -2606,7 +2010,7 @@ ac
ac
ac
ac
-zS
+ac
ac
ac
ac
@@ -2623,7 +2027,7 @@ ac
ac
ac
ac
-zS
+ac
ac
ac
ab
@@ -3023,8 +2427,8 @@ ab
ac
ac
Rk
-iY
-RY
+hI
+au
ah
ah
ah
@@ -3065,8 +2469,8 @@ ah
ah
ah
ah
-xS
-hh
+ay
+aY
bQ
ac
aC
@@ -3085,7 +2489,7 @@ ac
ac
ac
Rk
-Ll
+an
au
ah
ah
@@ -3128,7 +2532,7 @@ ah
ah
ah
ay
-aP
+hI
ax
ac
ac
@@ -3147,7 +2551,7 @@ aT
ac
ak
Rk
-Ll
+an
au
ah
ah
@@ -3190,7 +2594,7 @@ ah
ah
ah
ag
-eF
+JI
bQ
ac
ac
@@ -3209,7 +2613,7 @@ as
aC
ac
Rk
-Ll
+an
au
ah
ah
@@ -3252,7 +2656,7 @@ ah
ah
ah
ag
-eF
+JI
bQ
ac
ab
@@ -3271,7 +2675,7 @@ aT
ac
ab
Rk
-Ll
+an
au
jY
ah
@@ -3314,7 +2718,7 @@ ah
ah
jY
ag
-eF
+JI
bQ
ac
ac
@@ -3333,7 +2737,7 @@ aT
ac
ac
Rk
-Ll
+an
au
ah
ah
@@ -3376,7 +2780,7 @@ ah
ah
ah
ag
-eF
+JI
bQ
ac
ac
@@ -3395,7 +2799,7 @@ aT
aQ
ac
Dd
-Ll
+an
au
ah
ah
@@ -3438,7 +2842,7 @@ ah
ah
ah
ag
-eF
+JI
bQ
ac
aC
@@ -3457,7 +2861,7 @@ aT
aT
ac
Dd
-Ll
+an
au
ah
ah
@@ -3500,7 +2904,7 @@ ah
ah
ah
ag
-eF
+JI
bQ
ac
ak
@@ -3519,7 +2923,7 @@ aT
aT
ac
Dd
-UJ
+JI
au
ah
ah
@@ -3562,7 +2966,7 @@ ah
ah
ah
ay
-eF
+JI
bQ
ab
ac
@@ -3581,7 +2985,7 @@ aT
ab
ac
Dd
-UJ
+JI
au
jY
ah
@@ -3624,7 +3028,7 @@ ah
ah
jY
ag
-aP
+hI
bQ
ac
ac
@@ -3643,7 +3047,7 @@ aT
ac
ak
Dd
-UJ
+JI
au
ah
ah
@@ -3686,7 +3090,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
aC
@@ -3705,7 +3109,7 @@ aT
ac
aC
Rk
-UJ
+JI
au
ah
ah
@@ -3748,7 +3152,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
ac
@@ -3767,7 +3171,7 @@ aT
ac
ac
Rk
-UJ
+JI
au
ah
ah
@@ -3810,7 +3214,7 @@ ah
ah
ah
ag
-Au
+an
bQ
ac
ab
@@ -3829,7 +3233,7 @@ aT
ab
ac
Rk
-UJ
+JI
at
ah
ah
@@ -3872,7 +3276,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
ac
@@ -3891,7 +3295,7 @@ aT
ac
ac
Rk
-Ll
+an
at
jY
ah
@@ -3934,7 +3338,7 @@ ah
ah
jY
ag
-Au
+an
ax
ac
ac
@@ -3949,11 +3353,11 @@ aT
aT
aT
aT
-aT
-ac
+as
ak
+ac
Rk
-Ll
+an
au
ah
ah
@@ -3996,7 +3400,7 @@ ah
ah
ah
lC
-aP
+hI
ax
ac
ac
@@ -4011,11 +3415,11 @@ aa
aa
aa
aa
-cG
ac
-Rr
-Dd
-UJ
+ac
+ab
+ag
+an
au
ah
ah
@@ -4058,7 +3462,7 @@ ah
ah
ah
ag
-Au
+an
au
ac
ac
@@ -4071,14 +3475,14 @@ aa
(35,1,1) = {"
aa
Yt
-Zx
+Yt
aa
-ab
ac
-ZP
-UR
-Fw
-RY
+aC
+ac
+Rk
+an
+au
ah
ah
ah
@@ -4119,8 +3523,8 @@ ah
ah
ah
ah
-Tj
-gN
+ag
+an
ax
ab
ac
@@ -4133,13 +3537,13 @@ aa
(36,1,1) = {"
aa
Yt
-so
+Yt
aa
-Tn
-Tn
-ym
-Dd
-Ll
+ac
+ac
+ac
+Rk
+an
au
ah
ah
@@ -4182,7 +3586,7 @@ ah
ah
ah
ag
-eF
+JI
ax
aC
ac
@@ -4195,13 +3599,13 @@ aT
(37,1,1) = {"
aa
Yt
-Md
-IH
-Qk
-Qk
-yw
-Zr
-aY
+Yt
+HH
+ac
+ac
+aC
+Dd
+JI
au
jY
ah
@@ -4244,7 +3648,7 @@ ah
ah
jY
ag
-Au
+an
ax
ac
ac
@@ -4259,11 +3663,11 @@ aa
Yt
Yt
aa
-aJ
-lb
-Is
-Bj
-NG
+ab
+ac
+ac
+Rk
+JI
au
ah
ah
@@ -4306,7 +3710,7 @@ ah
ah
ah
ag
-Au
+an
bQ
ac
ac
@@ -4322,10 +3726,10 @@ aa
aa
aa
ac
-AO
-Nh
-Ms
-CC
+ak
+ac
+Dd
+an
au
ah
ah
@@ -4368,7 +3772,7 @@ ah
ah
ah
ay
-Au
+an
ax
ab
ac
@@ -4384,10 +3788,10 @@ aT
aT
aT
ac
-ac
-yn
-ag
-aY
+aC
+ak
+Rk
+hI
au
ah
ah
@@ -4430,7 +3834,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
aC
@@ -4445,10 +3849,10 @@ aT
aT
aT
aT
-ab
ac
-lg
-tR
+ac
+ac
+Rk
aY
au
ah
@@ -4492,7 +3896,7 @@ ah
ah
ah
ag
-aP
+hI
ax
ac
ac
@@ -4508,7 +3912,7 @@ aT
aT
aQ
ac
-ac
+ab
ac
Rk
Sf
@@ -4554,7 +3958,7 @@ ah
ah
jY
ag
-aP
+hI
ax
ac
ab
@@ -4573,7 +3977,7 @@ ac
ac
ab
Rk
-aP
+hI
at
ah
ah
@@ -4616,7 +4020,7 @@ ah
ah
ah
ag
-aP
+hI
ax
ac
aT
@@ -4635,7 +4039,7 @@ aC
ac
ac
Rk
-aP
+hI
at
ah
ah
@@ -4678,7 +4082,7 @@ ah
ah
ah
ag
-aP
+hI
bQ
ak
aT
@@ -4697,7 +4101,7 @@ ac
ac
aC
Dd
-Au
+an
at
ah
ah
@@ -4740,7 +4144,7 @@ ah
ah
ah
ag
-Au
+an
lJ
ac
aT
@@ -4759,7 +4163,7 @@ ab
ac
ac
Rk
-Au
+an
au
ah
ah
@@ -4802,7 +4206,7 @@ ah
ah
ah
ag
-aP
+hI
lJ
ab
ac
@@ -4821,7 +4225,7 @@ ac
ac
ac
Rk
-Au
+an
au
jY
ah
@@ -4864,7 +4268,7 @@ ah
ah
jY
ay
-eF
+JI
ax
aC
ac
@@ -4883,7 +4287,7 @@ ac
ab
ac
Rk
-eF
+JI
au
ah
ah
@@ -4926,7 +4330,7 @@ ah
ah
ah
ay
-Au
+an
ax
ac
ac
@@ -4945,7 +4349,7 @@ ac
aC
ac
Rk
-eF
+JI
au
ah
ah
@@ -4988,7 +4392,7 @@ ah
ah
ah
ay
-Au
+an
ax
ac
ab
@@ -5007,7 +4411,7 @@ ac
ak
ac
Rk
-eF
+JI
au
ah
ah
@@ -5050,7 +4454,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
aC
@@ -5069,7 +4473,7 @@ ac
ac
aC
Rk
-eF
+JI
au
ah
ah
@@ -5112,7 +4516,7 @@ ah
ah
ah
ag
-aP
+hI
ax
ac
ac
@@ -5131,8 +4535,8 @@ ac
ac
ac
Rk
-tQ
-GW
+an
+at
jY
ah
ah
@@ -5173,8 +4577,8 @@ ah
ah
ah
jY
-Tj
-Hr
+ag
+hI
ax
ab
aQ
@@ -5193,7 +4597,7 @@ ac
ab
ac
Dd
-Au
+an
at
ah
ah
@@ -5236,7 +4640,7 @@ ah
ah
ah
ag
-Au
+an
ax
ac
aT
@@ -5255,7 +4659,7 @@ ac
ab
ac
Dd
-eF
+JI
at
ah
ah
@@ -5298,7 +4702,7 @@ jY
ah
ah
ag
-eF
+JI
ax
ak
aT
@@ -5317,7 +4721,7 @@ aC
ac
ac
Rk
-eF
+JI
um
Tn
aX
@@ -5330,7 +4734,7 @@ aX
aX
aX
aX
-qS
+aX
aX
aX
aX
@@ -5350,7 +4754,7 @@ aX
aX
aX
aX
-qS
+aX
aX
aX
aX
@@ -5360,7 +4764,7 @@ aX
aX
aX
OJ
-eF
+JI
ax
ab
aT
@@ -5379,50 +4783,50 @@ ab
ac
ac
Rk
-fd
-ZN
-ZN
-ZN
-ZN
-ZN
-Ck
-Ck
-Ck
-Ck
-Ck
-ZN
-ZN
-AJ
-ZN
-Ck
-Ck
-Jt
-Ck
-Ck
-Ck
-Ck
-Jt
+am
+JI
+JI
+JI
+JI
+JI
+an
+an
+an
+an
+an
+JI
+JI
+JI
+JI
+an
+an
+hI
+an
+an
+an
+an
+hI
+by
+an
+an
+JI
+hI
+hI
+an
+an
+JI
+JI
+JI
+an
+JI
+JI
+JI
+hI
+hI
+an
+JI
+JI
by
-Ck
-Ck
-ZN
-Jt
-Jt
-Ck
-Ck
-ZN
-ZN
-AJ
-Ck
-ZN
-ZN
-ZN
-Jt
-Jt
-Ck
-ZN
-ZN
-rY
bQ
ac
ac
diff --git a/_maps/outpost/hangar/nt_ice_56x20.dmm b/_maps/outpost/hangar/nt_ice_56x20.dmm
index 0966a1e60fa2..c7e73652ef0d 100644
--- a/_maps/outpost/hangar/nt_ice_56x20.dmm
+++ b/_maps/outpost/hangar/nt_ice_56x20.dmm
@@ -174,27 +174,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/hangar)
-"bK" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"cu" = (
-/obj/structure/flora/grass/green,
-/obj/item/trash/energybar{
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"cY" = (
/obj/effect/turf_decal/borderfloor/corner,
/obj/effect/turf_decal/siding/white{
@@ -222,27 +201,6 @@
},
/turf/open/floor/plasteel/tech,
/area/hangar)
-"dN" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"ez" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 1
@@ -253,40 +211,6 @@
planetary_atmos = 1
},
/area/hangar)
-"eS" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"fj" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"fC" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -297,19 +221,6 @@
planetary_atmos = 1
},
/area/hangar)
-"gk" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"gQ" = (
/obj/effect/turf_decal/borderfloor{
dir = 9
@@ -322,23 +233,6 @@
planetary_atmos = 1
},
/area/hangar)
-"if" = (
-/obj/machinery/door/airlock/outpost,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"is" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"iY" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -355,15 +249,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ji" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"jk" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -379,38 +264,6 @@
planetary_atmos = 1
},
/area/hangar)
-"kt" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
- },
-/obj/item/toy/plush/moth/firewatch{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"kH" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"la" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ll" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/sprayweb{
@@ -421,20 +274,6 @@
planetary_atmos = 1
},
/area/hangar)
-"lH" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
- },
-/obj/machinery/computer/hydrogen_exchange{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"mu" = (
/obj/effect/turf_decal/borderfloor{
dir = 9
@@ -449,28 +288,6 @@
planetary_atmos = 1
},
/area/hangar)
-"my" = (
-/obj/structure/flora/grass/green,
-/obj/item/trash/candy{
- pixel_x = 4;
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"mP" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"mX" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -483,20 +300,6 @@
light_range = 2
},
/area/hangar)
-"nD" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"oq" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -537,23 +340,7 @@
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"pm" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -596,9 +383,6 @@
/obj/effect/turf_decal/borderfloor/full,
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
/turf/open/floor/plasteel/patterned/cargo_one{
light_color = "#1B1D2E";
light_range = 2
@@ -617,17 +401,6 @@
planetary_atmos = 1
},
/area/hangar)
-"qR" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"sp" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -667,17 +440,6 @@
planetary_atmos = 1
},
/area/hangar)
-"sW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"uy" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -732,34 +494,6 @@
planetary_atmos = 1
},
/area/hangar)
-"wK" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/floor{
- bulb_power = 0.75
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"xp" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"xt" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -811,24 +545,6 @@
planetary_atmos = 1
},
/area/hangar)
-"yh" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/north{
- pixel_x = -6;
- bulb_power = 0.25
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"zG" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -855,18 +571,6 @@
light_range = 2
},
/area/hangar)
-"AZ" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Bh" = (
/obj/machinery/door/airlock/outpost,
/turf/open/floor/plasteel/tech,
@@ -888,57 +592,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Cg" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Cj" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Ck" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/volume_pump,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Cn" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Cs" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
@@ -1055,45 +708,6 @@
planetary_atmos = 1
},
/area/hangar)
-"HJ" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"HR" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"HT" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Jh" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1104,18 +718,6 @@
planetary_atmos = 1
},
/area/hangar)
-"JW" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"KH" = (
/obj/structure/flora/grass/both,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -1123,31 +725,6 @@
light_range = 2
},
/area/hangar)
-"Lh" = (
-/obj/structure/railing{
- dir = 5;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Li" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Ms" = (
/obj/effect/turf_decal/corner/opaque/neutral,
/obj/effect/turf_decal/siding/white,
@@ -1219,18 +796,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Pp" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Pu" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1244,18 +809,6 @@
planetary_atmos = 1
},
/area/hangar)
-"PL" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"PW" = (
/obj/effect/turf_decal/borderfloor/corner{
dir = 1
@@ -1322,18 +875,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Si" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Sk" = (
/obj/effect/turf_decal/siding/white{
dir = 9
@@ -1343,19 +884,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Sr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"SC" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -1367,16 +895,6 @@
planetary_atmos = 1
},
/area/hangar)
-"SJ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"SS" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1390,12 +908,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Tb" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Tj" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -1409,32 +921,6 @@
light_range = 2
},
/area/hangar)
-"TK" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"TR" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Uo" = (
/obj/structure/chair{
dir = 1
@@ -1469,24 +955,10 @@
/obj/effect/turf_decal/siding/white{
dir = 1
},
-/obj/structure/railing{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Vu" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
+/obj/structure/railing{
+ dir = 1
},
-/turf/open/floor/plating{
+/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
planetary_atmos = 1
@@ -1535,24 +1007,6 @@
planetary_atmos = 1
},
/area/hangar)
-"WL" = (
-/obj/structure/railing{
- dir = 9;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"WP" = (
/obj/effect/turf_decal/siding/white{
dir = 10
@@ -1574,31 +1028,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Xf" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Xs" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"XO" = (
/obj/effect/turf_decal/siding/white{
dir = 6
@@ -1677,20 +1106,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"ZF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2
@@ -1712,29 +1127,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ZR" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"ZX" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"ZZ" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -2472,8 +1864,8 @@ NE
aG
KH
UJ
-Si
-JW
+Cs
+OZ
aN
aN
aN
@@ -2494,8 +1886,8 @@ aN
aN
aN
aN
-ZR
-gk
+vM
+pb
zG
KH
aG
@@ -2514,7 +1906,7 @@ KH
aG
aG
UJ
-pb
+Dn
OZ
aN
aN
@@ -2537,7 +1929,7 @@ aN
aN
aN
vM
-TR
+Cs
ay
aG
aG
@@ -2556,7 +1948,7 @@ aG
aG
aG
UJ
-pb
+Dn
OZ
aN
aN
@@ -2579,7 +1971,7 @@ aN
aN
aN
SC
-Cg
+as
zG
KH
aG
@@ -2598,7 +1990,7 @@ aG
aG
aG
UJ
-YT
+Dn
OZ
aN
aN
@@ -2621,7 +2013,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
aG
@@ -2640,7 +2032,7 @@ aG
NE
KH
UJ
-is
+Dn
OZ
ax
aN
@@ -2663,7 +2055,7 @@ aN
aN
ax
SC
-Cg
+as
zG
aG
aG
@@ -2682,7 +2074,7 @@ KH
aG
aG
UJ
-is
+Dn
OZ
aN
aN
@@ -2705,7 +2097,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
NE
@@ -2724,7 +2116,7 @@ aG
KH
aG
Dk
-bK
+Dn
OZ
aN
aN
@@ -2747,7 +2139,7 @@ aN
aN
aN
SC
-Cg
+as
zG
KH
aG
@@ -2766,7 +2158,7 @@ NE
aG
aG
Dk
-bK
+Dn
OZ
aN
aN
@@ -2789,7 +2181,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
aG
@@ -2808,7 +2200,7 @@ aG
aG
NE
Dk
-bK
+as
OZ
aN
aN
@@ -2831,7 +2223,7 @@ aN
aN
aN
vM
-Cg
+as
zG
ap
aG
@@ -2850,7 +2242,7 @@ ap
KH
aG
Dk
-HR
+as
OZ
ax
aN
@@ -2873,7 +2265,7 @@ aN
aN
ax
SC
-TR
+Cs
zG
aG
KH
@@ -2892,7 +2284,7 @@ aG
aG
KH
Dk
-HR
+as
OZ
aN
aN
@@ -2915,7 +2307,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
aG
@@ -2934,7 +2326,7 @@ aG
ap
aG
UJ
-HR
+as
OZ
aN
aN
@@ -2957,7 +2349,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
KH
aG
@@ -2976,7 +2368,7 @@ KH
aG
NE
UJ
-HR
+as
OZ
aN
aN
@@ -2999,7 +2391,7 @@ aN
aN
aN
SC
-ZF
+Dn
zG
aG
aG
@@ -3018,7 +2410,7 @@ aG
aG
KH
UJ
-bK
+as
Rs
aN
aN
@@ -3041,7 +2433,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
aG
@@ -3060,7 +2452,7 @@ aG
NE
aG
UJ
-pb
+Cs
Rs
ax
aN
@@ -3083,7 +2475,7 @@ aN
aN
ax
SC
-ZF
+Dn
zG
aG
aG
@@ -3102,7 +2494,7 @@ aG
ap
aG
UJ
-pb
+Cs
aX
aN
aN
@@ -3125,7 +2517,7 @@ aN
aN
aN
SC
-TR
+Cs
zG
ap
aG
@@ -3144,7 +2536,7 @@ KH
aG
ap
UJ
-PL
+Cs
OZ
aN
aN
@@ -3167,7 +2559,7 @@ aN
aN
aN
vM
-Sr
+pb
zG
aG
NE
@@ -3186,8 +2578,8 @@ aG
aG
aG
UJ
-pm
-JW
+Dn
+OZ
aN
aN
aN
@@ -3208,8 +2600,8 @@ aN
aN
aN
aN
-ZR
-SJ
+vM
+Cs
ay
aG
aG
@@ -3228,7 +2620,7 @@ al
aG
ap
UJ
-is
+Dn
OZ
aN
aN
@@ -3251,7 +2643,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
aG
@@ -3270,7 +2662,7 @@ ae
NE
aG
UJ
-is
+Dn
OZ
ax
aN
@@ -3293,7 +2685,7 @@ aN
aN
ax
SC
-Cg
+as
zG
aG
KH
@@ -3312,7 +2704,7 @@ al
aG
KH
UJ
-HR
+Dn
OZ
aN
aN
@@ -3335,7 +2727,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
aG
@@ -3354,7 +2746,7 @@ al
ap
aG
UJ
-HR
+Dn
OZ
aN
aN
@@ -3377,7 +2769,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
aG
@@ -3396,7 +2788,7 @@ al
Fs
aG
Dk
-pb
+Dn
OZ
aN
aN
@@ -3419,7 +2811,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
NE
@@ -3438,7 +2830,7 @@ al
al
aG
Dk
-pb
+Dn
OZ
aN
aN
@@ -3461,7 +2853,7 @@ aN
aN
aN
SC
-Cg
+as
zG
aG
ap
@@ -3480,7 +2872,7 @@ al
al
aG
Dk
-YT
+as
OZ
ax
aN
@@ -3503,7 +2895,7 @@ aN
aN
ax
vM
-Cg
+as
zG
KH
aG
@@ -3522,7 +2914,7 @@ al
KH
aG
Dk
-is
+as
OZ
aN
aN
@@ -3545,7 +2937,7 @@ aN
aN
aN
SC
-TR
+Cs
zG
aG
aG
@@ -3564,7 +2956,7 @@ al
aG
ap
Dk
-is
+as
OZ
aN
aN
@@ -3587,7 +2979,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
NE
@@ -3606,7 +2998,7 @@ al
aG
NE
UJ
-bK
+as
OZ
aN
aN
@@ -3629,7 +3021,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
aG
@@ -3648,7 +3040,7 @@ al
aG
aG
UJ
-bK
+as
OZ
aN
aN
@@ -3671,7 +3063,7 @@ aN
aN
aN
SC
-ZF
+Dn
zG
aG
KH
@@ -3690,7 +3082,7 @@ al
KH
aG
UJ
-bK
+as
Rs
ax
aN
@@ -3713,7 +3105,7 @@ aN
aN
ax
SC
-ZF
+Dn
ay
aG
aG
@@ -3732,7 +3124,7 @@ al
aG
aG
UJ
-HR
+Dn
Rs
aN
aN
@@ -3755,7 +3147,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
aG
@@ -3771,10 +3163,10 @@ al
al
al
ae
-my
+ap
aG
UJ
-HR
+Dn
OZ
aN
aN
@@ -3797,7 +3189,7 @@ aN
aN
aN
ZZ
-TR
+Cs
ay
aG
aG
@@ -3814,9 +3206,9 @@ ag
ag
aG
aG
-lH
-Dk
-HR
+KH
+SC
+Dn
OZ
aN
aN
@@ -3839,7 +3231,7 @@ aN
aN
aN
SC
-ZF
+Dn
OZ
aG
aG
@@ -3852,14 +3244,14 @@ ag
(51,1,1) = {"
ag
Hr
-kt
+Hr
ag
-KH
aG
-Xs
-fj
-Xf
-JW
+NE
+aG
+UJ
+Dn
+OZ
aN
aN
aN
@@ -3880,8 +3272,8 @@ aN
aN
aN
aN
-HT
-ji
+SC
+Dn
ay
KH
aG
@@ -3894,13 +3286,13 @@ ag
(52,1,1) = {"
ag
Hr
-Li
+Hr
ag
-kH
-kH
-wK
-Dk
-PL
+aG
+aG
+aG
+UJ
+Dn
OZ
ax
aN
@@ -3923,7 +3315,7 @@ aN
aN
ax
SC
-Cg
+as
ay
NE
aG
@@ -3936,13 +3328,13 @@ al
(53,1,1) = {"
ag
Hr
-Tb
-if
-la
-la
-WL
-HJ
-pb
+Hr
+Bh
+aG
+aG
+NE
+Dk
+as
OZ
aN
aN
@@ -3965,7 +3357,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
aG
@@ -3980,11 +3372,11 @@ ag
Hr
Hr
ag
-yh
-nD
-TK
-AZ
-Vu
+KH
+aG
+aG
+UJ
+as
OZ
aN
aN
@@ -4007,7 +3399,7 @@ aN
aN
aN
SC
-ZF
+Dn
zG
aG
aG
@@ -4022,11 +3414,11 @@ ag
ag
ag
ag
-cu
aG
-dN
-Ck
-xp
+ap
+aG
+Dk
+Dn
OZ
aN
aN
@@ -4049,7 +3441,7 @@ aN
aN
aN
vM
-ZF
+Dn
ay
KH
aG
@@ -4065,10 +3457,10 @@ al
al
al
aG
-aG
-TK
-SC
-pb
+NE
+ap
+UJ
+Cs
OZ
aN
aN
@@ -4091,7 +3483,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
NE
@@ -4107,9 +3499,9 @@ al
al
al
aG
-KH
-Lh
-eS
+aG
+aG
+UJ
pb
OZ
ax
@@ -4133,7 +3525,7 @@ aN
aN
ax
SC
-TR
+Cs
ay
aG
aG
@@ -4149,7 +3541,7 @@ al
al
Fs
aG
-aG
+KH
aG
UJ
YT
@@ -4175,7 +3567,7 @@ aN
aN
aN
SC
-TR
+Cs
ay
aG
KH
@@ -4194,7 +3586,7 @@ aG
aG
KH
UJ
-is
+Cs
Rs
aN
aN
@@ -4217,7 +3609,7 @@ aN
aN
aN
SC
-TR
+Cs
ay
aG
al
@@ -4236,7 +3628,7 @@ NE
aG
aG
UJ
-is
+Cs
Rs
aN
aN
@@ -4259,7 +3651,7 @@ aN
aN
aN
SC
-TR
+Cs
zG
ap
al
@@ -4278,7 +3670,7 @@ aG
aG
NE
Dk
-bK
+Dn
Rs
aN
aN
@@ -4301,7 +3693,7 @@ aN
aN
aN
SC
-ZF
+Dn
OC
aG
al
@@ -4320,7 +3712,7 @@ KH
aG
aG
UJ
-bK
+Dn
OZ
ax
aN
@@ -4343,7 +3735,7 @@ aN
aN
ax
SC
-TR
+Cs
OC
KH
aG
@@ -4362,7 +3754,7 @@ aG
aG
aG
UJ
-bK
+Dn
OZ
aN
aN
@@ -4385,7 +3777,7 @@ aN
aN
aN
vM
-Cg
+as
ay
NE
aG
@@ -4404,7 +3796,7 @@ aG
KH
aG
UJ
-HR
+as
OZ
aN
aN
@@ -4427,7 +3819,7 @@ aN
aN
aN
vM
-ZF
+Dn
ay
aG
aG
@@ -4446,7 +3838,7 @@ aG
NE
aG
UJ
-HR
+as
OZ
aN
aN
@@ -4469,7 +3861,7 @@ aN
aN
aN
vM
-ZF
+Dn
ay
aG
KH
@@ -4488,7 +3880,7 @@ aG
ap
aG
UJ
-HR
+as
OZ
aN
aN
@@ -4511,7 +3903,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
NE
@@ -4530,7 +3922,7 @@ aG
aG
NE
UJ
-HR
+as
OZ
aN
aN
@@ -4553,7 +3945,7 @@ aN
aN
aN
SC
-TR
+Cs
ay
aG
aG
@@ -4572,8 +3964,8 @@ aG
aG
aG
UJ
-sW
-Cj
+Dn
+Rs
ax
aN
aN
@@ -4594,8 +3986,8 @@ aN
aN
aN
ax
-HT
-SJ
+SC
+Cs
ay
KH
Fs
@@ -4614,7 +4006,7 @@ aG
KH
aG
Dk
-bK
+Dn
Rs
aN
aN
@@ -4637,7 +4029,7 @@ aN
aN
aN
SC
-ZF
+Dn
ay
aG
al
@@ -4656,7 +4048,7 @@ aG
aG
aG
Dk
-HR
+as
Rs
aN
aN
@@ -4679,7 +4071,7 @@ ax
aN
aN
SC
-Cg
+as
ay
ap
al
@@ -4698,7 +4090,7 @@ NE
aG
aG
UJ
-HR
+as
HC
RC
RC
@@ -4721,7 +4113,7 @@ RC
RC
RC
vl
-Cg
+as
ay
KH
al
@@ -4740,29 +4132,29 @@ KH
aG
aG
UJ
-qR
-ZX
-Cn
-mP
-mP
-mP
-ZX
-Cn
-Cn
-mP
-mP
-ZX
-Pp
-ZX
-mP
-ZX
-ZX
-ZX
-Cn
-Cn
-mP
-ZX
-ZX
+aE
+as
+Cs
+Dn
+Dn
+Dn
+as
+Cs
+Cs
+Dn
+Dn
+as
+pM
+as
+Dn
+as
+as
+as
+Cs
+Cs
+Dn
+as
+as
pM
zG
aG
diff --git a/_maps/outpost/hangar/nt_ice_56x40.dmm b/_maps/outpost/hangar/nt_ice_56x40.dmm
index b89f435a4a8c..95ae1fc8aea6 100644
--- a/_maps/outpost/hangar/nt_ice_56x40.dmm
+++ b/_maps/outpost/hangar/nt_ice_56x40.dmm
@@ -234,17 +234,6 @@
light_range = 2
},
/area/hangar)
-"cb" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ck" = (
/turf/open/floor/plating{
light_color = "#1B1D2E";
@@ -290,17 +279,6 @@
planetary_atmos = 1
},
/area/hangar)
-"dn" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ds" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -314,17 +292,6 @@
light_range = 2
},
/area/hangar)
-"dQ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"dT" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 1
@@ -352,12 +319,9 @@
"eZ" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning,
+/obj/structure/filingcabinet/double/grey,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/directional/east,
-/obj/structure/filingcabinet/double/grey{
- dir = 8;
- pixel_x = 7
- },
/turf/open/floor/plating{
planetary_atmos = 1
},
@@ -389,18 +353,6 @@
planetary_atmos = 1
},
/area/hangar)
-"fT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"gc" = (
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
@@ -418,38 +370,6 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/hangar)
-"ia" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/components/binary/valve/digital{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"iG" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/volume_pump,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"iJ" = (
/obj/effect/turf_decal/borderfloor/full,
/obj/effect/turf_decal/industrial/warning{
@@ -474,15 +394,6 @@
light_range = 2
},
/area/hangar)
-"jF" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
- },
-/obj/item/toy/plush/moth/firewatch{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"jS" = (
/obj/effect/turf_decal/borderfloor/corner{
dir = 8
@@ -511,19 +422,6 @@
planetary_atmos = 1
},
/area/hangar)
-"kr" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"kH" = (
/obj/effect/turf_decal/borderfloor{
dir = 9
@@ -538,15 +436,6 @@
planetary_atmos = 1
},
/area/hangar)
-"ln" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/asteroid/icerock/temperate,
-/area/hangar)
-"lo" = (
-/obj/machinery/door/airlock/outpost,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"lu" = (
/obj/effect/decal/fakelattice,
/turf/open/floor/plasteel/elevatorshaft{
@@ -628,23 +517,6 @@
light_range = 2
},
/area/hangar)
-"ne" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"nC" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -663,18 +535,6 @@
planetary_atmos = 1
},
/area/hangar)
-"nZ" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 1
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"oc" = (
/obj/effect/turf_decal/siding/white{
dir = 8
@@ -691,53 +551,6 @@
planetary_atmos = 1
},
/area/hangar)
-"pa" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"pi" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"ps" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/structure/railing/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"pD" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/white{
@@ -762,20 +575,6 @@
},
/turf/open/floor/plasteel/tech,
/area/hangar)
-"qN" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"qX" = (
/obj/effect/turf_decal/borderfloor{
dir = 6
@@ -802,16 +601,6 @@
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plasteel/tech,
/area/hangar)
-"sd" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"sw" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -847,31 +636,6 @@
"tj" = (
/turf/open/floor/plasteel/tech,
/area/hangar)
-"ts" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"tF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"tR" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -945,29 +709,6 @@
planetary_atmos = 1
},
/area/hangar)
-"vT" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"wG" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"wT" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -979,18 +720,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/hangar)
-"wZ" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"yU" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1003,32 +732,6 @@
planetary_atmos = 1
},
/area/hangar)
-"AU" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"AW" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/shutoff,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/binary/volume_pump{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Be" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -1174,36 +877,6 @@
light_range = 2
},
/area/hangar)
-"El" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Eu" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Fi" = (
-/obj/structure/flora/grass/both,
-/obj/item/trash/raisins{
- layer = 2.8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Fn" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -1216,19 +889,6 @@
},
/turf/open/floor/plasteel/dark,
/area/hangar)
-"Fw" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"FS" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1242,32 +902,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Ht" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/light/floor{
- bulb_power = 0.75
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"HF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"HV" = (
/obj/effect/turf_decal/borderfloor{
dir = 10
@@ -1286,20 +920,11 @@
planetary_atmos = 1
},
/area/hangar)
-"HY" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
"Iz" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 8
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -1358,9 +983,6 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
/turf/open/floor/plating{
light_color = "#1B1D2E";
light_range = 2;
@@ -1404,7 +1026,6 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/chair/comfy/orange/directional/west,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating{
planetary_atmos = 1
@@ -1447,20 +1068,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Mk" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
- },
-/obj/machinery/computer/hydrogen_exchange{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Mt" = (
/obj/machinery/computer/secure_data{
icon_state = "computer-left";
@@ -1497,39 +1104,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Od" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Oj" = (
-/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/hangar)
-"Or" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/binary/valve/digital,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"OW" = (
/obj/effect/turf_decal/industrial/traffic{
dir = 4
@@ -1622,24 +1196,6 @@
planetary_atmos = 1
},
/area/hangar)
-"SR" = (
-/obj/structure/railing{
- dir = 9;
- layer = 2.8
- },
-/obj/machinery/atmospherics/components/unary/hydrogen_pump{
- dir = 4
- },
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"Ts" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1665,27 +1221,6 @@
planetary_atmos = 1
},
/area/hangar)
-"UV" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 1;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
"UZ" = (
/obj/effect/turf_decal/siding/white{
dir = 10
@@ -1697,82 +1232,19 @@
layer = 4.1;
dir = 10
},
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"Vu" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 9
- },
-/obj/effect/turf_decal/siding/white,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
-"VK" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Wm" = (
-/obj/structure/railing{
- dir = 5;
- layer = 2.8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/patterned{
- planetary_atmos = 1;
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"WY" = (
-/obj/effect/turf_decal/borderfloor/full,
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel/patterned/cargo_one{
- light_color = "#1B1D2E";
- light_range = 2
- },
-/area/hangar)
-"Xf" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
planetary_atmos = 1
},
/area/hangar)
-"Xq" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
+"Vu" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/white,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/turf/open/floor/plating{
+/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2;
planetary_atmos = 1
@@ -1798,20 +1270,6 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/hangar)
-"XS" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 5
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Yb" = (
/obj/effect/turf_decal/borderfloor{
dir = 4
@@ -1829,19 +1287,6 @@
planetary_atmos = 1
},
/area/hangar)
-"Ye" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"Yn" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt{
@@ -1883,25 +1328,11 @@
/obj/effect/turf_decal/borderfloor/full,
/obj/machinery/light/floor,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plasteel/patterned/cargo_one{
light_color = "#1B1D2E";
light_range = 2
},
/area/hangar)
-"YW" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 6
- },
-/turf/open/floor/plating{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"YX" = (
/obj/structure/flora/tree/dead,
/turf/open/floor/plating/asteroid/snow/temperatre{
@@ -1909,24 +1340,6 @@
light_range = 2
},
/area/hangar)
-"Zj" = (
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/north{
- pixel_x = -6;
- bulb_power = 0.25
- },
-/turf/open/floor/plasteel/patterned/brushed{
- light_color = "#1B1D2E";
- light_range = 2;
- planetary_atmos = 1
- },
-/area/hangar)
"ZE" = (
/obj/effect/turf_decal/industrial/hatch/yellow,
/obj/machinery/vending/coffee,
@@ -3014,8 +2427,8 @@ ao
aE
aZ
aj
-YW
-AU
+fM
+aK
ck
ck
ck
@@ -3056,8 +2469,8 @@ ck
ck
ck
ck
-ts
-XS
+aN
+Iz
am
aZ
aE
@@ -3076,7 +2489,7 @@ aZ
aE
aE
aj
-fT
+aw
aK
ck
ck
@@ -3119,7 +2532,7 @@ ck
ck
ck
aN
-kr
+fM
tR
aE
aE
@@ -3138,7 +2551,7 @@ aE
aE
ao
aj
-fT
+aw
aK
ck
ck
@@ -3181,7 +2594,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aZ
aE
@@ -3200,7 +2613,7 @@ aE
aE
aE
aj
-fT
+aw
aK
ck
ck
@@ -3243,7 +2656,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
aE
@@ -3262,7 +2675,7 @@ aE
ao
aZ
aj
-fT
+aw
aK
aG
ck
@@ -3305,7 +2718,7 @@ ck
ck
aG
pD
-dQ
+ad
am
aE
aE
@@ -3324,7 +2737,7 @@ aZ
aE
aE
aj
-fT
+aw
aK
ck
ck
@@ -3367,7 +2780,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
ao
@@ -3386,7 +2799,7 @@ aE
aZ
aE
aD
-fT
+aw
aK
ck
ck
@@ -3429,7 +2842,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aZ
aE
@@ -3448,7 +2861,7 @@ ao
aE
aE
aD
-fT
+aw
aK
ck
ck
@@ -3491,7 +2904,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
aE
@@ -3510,7 +2923,7 @@ aE
aE
ao
aD
-El
+ad
aK
ck
ck
@@ -3553,7 +2966,7 @@ ck
ck
ck
aN
-dQ
+ad
am
ai
aE
@@ -3572,7 +2985,7 @@ ai
aZ
aE
aD
-El
+ad
aK
aG
ck
@@ -3615,7 +3028,7 @@ ck
ck
aG
pD
-kr
+fM
am
aE
aZ
@@ -3634,7 +3047,7 @@ aE
ao
aZ
aD
-El
+ad
aK
ck
ck
@@ -3677,7 +3090,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
aE
@@ -3696,7 +3109,7 @@ aE
ai
aE
aj
-El
+ad
aK
ck
ck
@@ -3739,7 +3152,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aZ
aE
@@ -3758,7 +3171,7 @@ aZ
aE
ao
aj
-El
+ad
aK
ck
ck
@@ -3801,7 +3214,7 @@ ck
ck
ck
pD
-tF
+aw
am
aE
aE
@@ -3820,7 +3233,7 @@ aE
aE
aZ
aj
-El
+ad
kd
ck
ck
@@ -3863,7 +3276,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
aE
@@ -3882,7 +3295,7 @@ aE
ao
aE
aj
-Ye
+fM
kd
ck
ck
@@ -3925,7 +3338,7 @@ ck
ck
ck
pD
-tF
+aw
am
aE
aE
@@ -3944,7 +3357,7 @@ aE
ai
aE
aj
-Ye
+fM
sw
aG
ck
@@ -3987,7 +3400,7 @@ ck
ck
aG
pD
-kr
+fM
am
ai
aE
@@ -4006,7 +3419,7 @@ aZ
aE
ai
aj
-Ye
+fM
aK
ck
ck
@@ -4068,8 +3481,8 @@ aE
aE
aE
aj
-nZ
-AU
+aw
+aK
ck
ck
ck
@@ -4110,8 +3523,8 @@ ck
ck
ck
ck
-ts
-cb
+aN
+fM
tR
aE
aE
@@ -4130,7 +3543,7 @@ aI
aE
ai
aj
-fT
+aw
aK
ck
ck
@@ -4173,7 +3586,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
aE
@@ -4192,7 +3605,7 @@ au
ao
aE
aj
-fT
+aw
aK
ck
ck
@@ -4235,7 +3648,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
aZ
@@ -4254,7 +3667,7 @@ aI
aE
aZ
aj
-fT
+aw
aK
aG
ck
@@ -4297,7 +3710,7 @@ ck
ck
aG
pD
-dQ
+ad
am
aE
aE
@@ -4316,7 +3729,7 @@ aI
ai
aE
aj
-fT
+aw
aK
ck
ck
@@ -4359,7 +3772,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
aE
@@ -4378,7 +3791,7 @@ aI
aT
aE
aD
-fT
+aw
aK
ck
ck
@@ -4421,7 +3834,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
ao
@@ -4440,7 +3853,7 @@ aI
aI
aE
aD
-fT
+aw
aK
ck
ck
@@ -4483,7 +3896,7 @@ ck
ck
ck
pD
-dQ
+ad
am
aE
ai
@@ -4502,7 +3915,7 @@ aI
aI
aE
aD
-El
+ad
aK
ck
ck
@@ -4545,7 +3958,7 @@ ck
ck
ck
aN
-dQ
+ad
am
aZ
aE
@@ -4564,7 +3977,7 @@ aI
aZ
aE
aD
-El
+ad
aK
aG
ck
@@ -4607,7 +4020,7 @@ ck
ck
aG
pD
-kr
+fM
am
aE
aE
@@ -4626,7 +4039,7 @@ aI
aE
ai
aD
-El
+ad
aK
ck
ck
@@ -4669,7 +4082,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
ao
@@ -4688,7 +4101,7 @@ aI
aE
ao
aj
-El
+ad
aK
ck
ck
@@ -4731,7 +4144,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
aE
@@ -4750,7 +4163,7 @@ aI
aE
aE
aj
-El
+ad
aK
ck
ck
@@ -4793,7 +4206,7 @@ ck
ck
ck
pD
-tF
+aw
am
aE
aZ
@@ -4812,7 +4225,7 @@ aI
aZ
aE
aj
-El
+ad
kd
ck
ck
@@ -4855,7 +4268,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
aE
@@ -4874,7 +4287,7 @@ aI
aE
aE
aj
-fT
+aw
kd
aG
ck
@@ -4917,7 +4330,7 @@ ck
ck
aG
pD
-tF
+aw
tR
aE
aE
@@ -4936,7 +4349,7 @@ au
ai
aE
aj
-fT
+aw
aK
ck
ck
@@ -4979,7 +4392,7 @@ ck
ck
ck
Ck
-kr
+fM
tR
aE
aE
@@ -4994,11 +4407,11 @@ aH
aH
aH
aH
-ln
aE
-Mk
-aD
-El
+aE
+aZ
+pD
+aw
aK
ck
ck
@@ -5041,7 +4454,7 @@ ck
ck
ck
pD
-tF
+aw
aK
aE
aE
@@ -5054,14 +4467,14 @@ aH
(51,1,1) = {"
aH
tj
-jF
+tj
aH
-aZ
aE
-pi
-ps
-dn
-AU
+ao
+aE
+aj
+aw
+aK
ck
ck
ck
@@ -5102,8 +4515,8 @@ ck
ck
ck
ck
-wZ
-Xf
+pD
+aw
tR
aZ
aE
@@ -5116,13 +4529,13 @@ aH
(52,1,1) = {"
aH
tj
-HY
+tj
aH
-Mj
-Mj
-Ht
-aD
-fT
+aE
+aE
+aE
+aj
+aw
aK
ck
ck
@@ -5165,7 +4578,7 @@ ck
ck
ck
pD
-dQ
+ad
tR
ao
aE
@@ -5178,13 +4591,13 @@ aI
(53,1,1) = {"
aH
tj
-Oj
-lo
-vT
-vT
-SR
-ne
-Ye
+tj
+sB
+aE
+aE
+ao
+aD
+ad
aK
aG
ck
@@ -5227,7 +4640,7 @@ ck
ck
aG
pD
-tF
+aw
tR
aE
aE
@@ -5242,11 +4655,11 @@ aH
tj
tj
aH
-Zj
-qN
-AW
-pa
-Od
+aZ
+aE
+aE
+aj
+ad
aK
ck
ck
@@ -5289,7 +4702,7 @@ ck
ck
ck
pD
-tF
+aw
am
aE
aE
@@ -5304,11 +4717,11 @@ aH
aH
aH
aH
+aE
ai
aE
-UV
-iG
-Fw
+aD
+aw
aK
ck
ck
@@ -5351,7 +4764,7 @@ ck
ck
ck
aN
-tF
+aw
tR
aZ
aE
@@ -5365,12 +4778,12 @@ aI
aI
aI
aI
-ln
-aE
+aI
aE
-AW
-pD
-Ye
+ao
+ai
+aj
+fM
aK
ck
ck
@@ -5413,7 +4826,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
ao
@@ -5429,10 +4842,10 @@ aI
aI
aI
aE
-Fi
-Wm
-wG
-Ye
+aE
+aE
+aj
+Iz
aK
ck
ck
@@ -5475,7 +4888,7 @@ ck
ck
ck
pD
-kr
+fM
tR
aE
aE
@@ -5537,7 +4950,7 @@ ck
ck
aG
pD
-kr
+fM
tR
aE
aZ
@@ -5556,7 +4969,7 @@ aE
aE
aZ
aj
-Ye
+fM
kd
ck
ck
@@ -5599,7 +5012,7 @@ ck
ck
ck
pD
-kr
+fM
tR
aE
aI
@@ -5618,7 +5031,7 @@ ao
aE
aE
aj
-Ye
+fM
kd
ck
ck
@@ -5661,7 +5074,7 @@ ck
ck
ck
pD
-kr
+fM
am
ai
aI
@@ -5680,7 +5093,7 @@ aE
aE
ao
aD
-fT
+aw
kd
ck
ck
@@ -5723,7 +5136,7 @@ ck
ck
ck
pD
-tF
+aw
aO
aE
aI
@@ -5742,7 +5155,7 @@ aZ
aE
aE
aj
-fT
+aw
aK
ck
ck
@@ -5785,7 +5198,7 @@ ck
ck
ck
pD
-kr
+fM
aO
aZ
aE
@@ -5804,7 +5217,7 @@ aE
aE
aE
aj
-fT
+aw
aK
aG
ck
@@ -5847,7 +5260,7 @@ ck
ck
aG
aN
-dQ
+ad
tR
ao
aE
@@ -5866,7 +5279,7 @@ aE
aZ
aE
aj
-El
+ad
aK
ck
ck
@@ -5909,7 +5322,7 @@ ck
ck
ck
aN
-tF
+aw
tR
aE
aE
@@ -5928,7 +5341,7 @@ aE
ao
aE
aj
-El
+ad
aK
ck
ck
@@ -5971,7 +5384,7 @@ ck
ck
ck
aN
-tF
+aw
tR
aE
aZ
@@ -5990,7 +5403,7 @@ aE
ai
aE
aj
-El
+ad
aK
ck
ck
@@ -6033,7 +5446,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
ao
@@ -6052,7 +5465,7 @@ aE
aE
ao
aj
-El
+ad
aK
ck
ck
@@ -6095,7 +5508,7 @@ ck
ck
ck
pD
-kr
+fM
tR
aE
aE
@@ -6114,8 +5527,8 @@ aE
aE
aE
aj
-nZ
-Or
+aw
+kd
aG
ck
ck
@@ -6156,8 +5569,8 @@ ck
ck
ck
aG
-wZ
-cb
+pD
+fM
tR
aZ
aT
@@ -6176,7 +5589,7 @@ aE
aZ
aE
aD
-fT
+aw
kd
ck
ck
@@ -6219,7 +5632,7 @@ ck
ck
ck
pD
-tF
+aw
tR
aE
aI
@@ -6238,7 +5651,7 @@ aE
aE
aE
aD
-El
+ad
kd
ck
ck
@@ -6281,7 +5694,7 @@ aG
ck
ck
pD
-dQ
+ad
tR
ai
aI
@@ -6300,7 +5713,7 @@ ao
aE
aE
aj
-El
+ad
cX
Mj
ar
@@ -6313,7 +5726,7 @@ ar
ar
ar
ar
-ia
+ar
ar
ar
ar
@@ -6333,7 +5746,7 @@ ar
ar
ar
ar
-ia
+ar
ar
ar
ar
@@ -6343,7 +5756,7 @@ ar
ar
ar
qX
-dQ
+ad
tR
aZ
aI
@@ -6362,50 +5775,50 @@ aZ
aE
aE
aj
-VK
-Eu
-Eu
-Eu
-Eu
-Eu
-sd
-sd
-sd
-sd
-sd
-Eu
-Eu
-HF
-Eu
-sd
-sd
-Xq
-sd
-sd
-sd
-sd
-Xq
+Cb
+ad
+ad
+ad
+ad
+ad
+aw
+aw
+aw
+aw
+aw
+ad
+ad
+ad
+ad
+aw
+aw
+fM
+aw
+aw
+aw
+aw
+fM
+YA
+aw
+aw
+ad
+fM
+fM
+aw
+aw
+ad
+ad
+ad
+aw
+ad
+ad
+ad
+fM
+fM
+aw
+ad
+ad
YA
-sd
-sd
-Eu
-Xq
-Xq
-sd
-sd
-Eu
-Eu
-HF
-sd
-Eu
-Eu
-Eu
-Xq
-Xq
-sd
-Eu
-Eu
-WY
am
aE
aE
diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm
index 86a2a8d102b1..4da00eb4c972 100644
--- a/_maps/outpost/indie_space.dmm
+++ b/_maps/outpost/indie_space.dmm
@@ -113,7 +113,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
-/obj/effect/spawner/lootdrop/plushie{
+/obj/effect/spawner/random/entertainment/plushie{
pixel_x = 16;
pixel_y = 4
},
@@ -270,7 +270,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
-/obj/effect/spawner/lootdrop/salvage/metal,
+/obj/effect/spawner/random/salvage/metal,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/central)
"bL" = (
@@ -287,7 +287,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"bS" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/turf_decal/corner_techfloor_grid{
dir = 8
},
@@ -346,7 +346,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"ci" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -481,7 +481,7 @@
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms)
"dl" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/turf_decal/steeldecal/steel_decals7{
dir = 9
},
@@ -958,7 +958,7 @@
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"gz" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/item/radio/intercom/directional/east,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
@@ -1001,7 +1001,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"gS" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"gT" = (
@@ -1078,7 +1078,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"hz" = (
@@ -1126,8 +1126,8 @@
/area/outpost/hallway/port)
"hK" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/salvage_laser,
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_laser,
+/obj/effect/spawner/random/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"hM" = (
@@ -1188,7 +1188,7 @@
/area/outpost/maintenance/central)
"hZ" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/wood,
/area/outpost/crew/bar)
"ib" = (
@@ -1269,7 +1269,7 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"iD" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"iG" = (
@@ -1321,6 +1321,7 @@
/turf/open/floor/plating/asteroid,
/area/outpost/maintenance/central)
"iV" = (
+/obj/machinery/door/firedoor/heavy,
/obj/effect/spawner/structure/window/reinforced/indestructable,
/turf/open/floor/plating,
/area/outpost/vacant_rooms/office)
@@ -1350,7 +1351,7 @@
/area/outpost/crew/bar)
"jn" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
@@ -1430,7 +1431,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/hallway/central)
"jM" = (
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/ship/dirt,
/area/outpost/hallway/port)
"jO" = (
@@ -1703,7 +1704,7 @@
/area/outpost/maintenance/central)
"lA" = (
/obj/structure/flora/grass/jungle,
-/obj/effect/spawner/lootdrop/chicken,
+/obj/effect/spawner/random/chicken,
/turf/open/floor/grass/ship/jungle,
/area/outpost/hallway/central)
"lB" = (
@@ -1858,7 +1859,7 @@
/area/outpost/hallway/central)
"mv" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
@@ -2379,7 +2380,8 @@
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
-/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"pG" = (
@@ -2597,8 +2599,8 @@
/area/outpost/maintenance/fore)
"rp" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance/seven,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"rr" = (
@@ -2670,7 +2672,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -2782,7 +2784,7 @@
/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
@@ -2988,9 +2990,9 @@
/area/outpost/crew/library)
"ta" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask,
+/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
@@ -3004,10 +3006,8 @@
/turf/open/floor/wood,
/area/outpost/crew/bar)
"tj" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"tk" = (
@@ -3160,7 +3160,7 @@
/area/outpost/cargo)
"tS" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"tT" = (
@@ -3324,7 +3324,7 @@
/turf/open/floor/ship/dirt,
/area/outpost/hallway/central)
"uE" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3791,7 +3791,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"xu" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -3884,7 +3884,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"xZ" = (
@@ -3968,7 +3968,7 @@
/area/outpost/crew/bar)
"yN" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"yQ" = (
@@ -4155,7 +4155,7 @@
/turf/open/floor/plating/asteroid,
/area/outpost/external)
"zS" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"zY" = (
@@ -4208,7 +4208,7 @@
/turf/open/floor/plasteel/tech,
/area/outpost/maintenance/fore)
"Am" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 8
},
@@ -4396,10 +4396,12 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"AW" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/portable_atmospherics/canister{
+ icon_state = "orangews"
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"Bc" = (
@@ -4858,8 +4860,8 @@
/area/outpost/hallway/port)
"DH" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/clothing/bowler_or_that,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"DI" = (
@@ -4912,7 +4914,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/lootdrop/salvage/metal,
+/obj/effect/spawner/random/salvage/metal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -4984,7 +4986,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"ER" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"EV" = (
@@ -4995,7 +4997,7 @@
/area/outpost/crew/bar)
"EX" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Fa" = (
@@ -5004,6 +5006,15 @@
icon_state = "0-4"
},
/obj/effect/turf_decal/steeldecal/steel_decals_central6,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"Ff" = (
@@ -5088,12 +5099,14 @@
/turf/open/floor/plasteel/dark,
/area/outpost/cargo/office)
"Fx" = (
-/obj/structure/table,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
-/obj/item/radio/intercom/directional/west,
-/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/airalarm/directional/west,
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"FB" = (
@@ -5184,12 +5197,12 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Gi" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk,
+/obj/machinery/atmospherics/components/unary/hydrogen_pump,
+/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"Gj" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -5222,7 +5235,7 @@
/area/outpost/external)
"Gn" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
+/obj/effect/spawner/random/clothing/bowler_or_that,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Gu" = (
@@ -5394,7 +5407,7 @@
/area/outpost/hallway/central)
"Hk" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
+/obj/effect/spawner/random/clothing/beret_or_rabbitears,
/obj/machinery/light/dim/directional/west,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
@@ -5404,9 +5417,6 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Ht" = (
-/obj/machinery/door/airlock/maintenance{
- dir = 4
- },
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
@@ -5425,6 +5435,15 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/door/airlock/atmos/glass{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/office)
"Hv" = (
@@ -5853,7 +5872,7 @@
/area/outpost/cargo/office)
"JV" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/mono,
@@ -5910,6 +5929,7 @@
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 8
},
+/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"Kr" = (
@@ -6008,10 +6028,6 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"KJ" = (
-/obj/effect/decal/cleanable/crayon{
- icon_state = "Donk";
- pixel_y = 32
- },
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/outpost/maintenance/central)
@@ -6213,8 +6229,8 @@
/turf/open/floor/wood,
/area/outpost/crew/library)
"LR" = (
-/obj/effect/spawner/lootdrop/tool_engie_common,
-/obj/effect/spawner/lootdrop/tool_engie_common,
+/obj/effect/spawner/random/engineering/tool/common,
+/obj/effect/spawner/random/engineering/tool/common,
/obj/structure/rack,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
@@ -6454,7 +6470,7 @@
/area/outpost/cargo/office)
"No" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/donut/jelly,
+/obj/effect/spawner/random/food_or_drink/donut/jelly,
/obj/effect/turf_decal/floordetail/tiled,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/security)
@@ -6531,7 +6547,7 @@
/obj/structure/table/wood,
/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_capacitor,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"NV" = (
@@ -6717,8 +6733,12 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/crew/cryo)
"Pw" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/portable_atmospherics/canister{
+ icon_state = "orangews"
+ },
+/obj/item/wrench,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"Px" = (
@@ -6765,9 +6785,13 @@
/obj/structure/holosign/barrier/infinite{
max_integrity = 500
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"PI" = (
@@ -6914,8 +6938,8 @@
/area/outpost/maintenance/fore)
"Qx" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/minor/bowler_or_that,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/clothing/bowler_or_that,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/outpost/storage)
"QA" = (
@@ -7079,7 +7103,7 @@
/obj/structure/cable/yellow{
icon_state = "4-6"
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 10
},
@@ -7166,7 +7190,7 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"RJ" = (
@@ -7390,8 +7414,8 @@
/area/outpost/hallway/port)
"SW" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"SY" = (
@@ -7400,7 +7424,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"Ta" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/oil,
/obj/effect/turf_decal/steeldecal/steel_decals9,
/turf/open/floor/plating,
@@ -7556,7 +7580,7 @@
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 9
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/maintenance/fore)
@@ -7608,7 +7632,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"Uq" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/tech/techmaint,
/area/outpost/hallway/port)
"Us" = (
@@ -7618,7 +7642,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -7673,12 +7697,15 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/cargo)
"UE" = (
-/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
+/obj/machinery/firealarm/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
+/obj/machinery/computer/hydrogen_exchange{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"UG" = (
/obj/structure/cable/yellow{
@@ -7747,8 +7774,15 @@
icon_state = "4-8"
},
/obj/structure/disposalpipe/segment{
- dir = 5
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
+/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"Vc" = (
@@ -7789,7 +7823,7 @@
},
/obj/item/bedsheet/double/captain,
/obj/effect/decal/cleanable/greenglow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/obj/item/clothing/head/papersack/smiley{
pixel_x = 7
@@ -7897,7 +7931,7 @@
/turf/open/floor/carpet/green,
/area/outpost/crew/bar)
"Wa" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/mouse/brown,
/turf/open/floor/plating,
@@ -7970,10 +8004,11 @@
/turf/open/floor/plating,
/area/outpost/maintenance/central)
"WC" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/binary/volume_pump,
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/shutoff,
+/obj/item/radio/intercom/directional/west,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"WH" = (
@@ -8004,7 +8039,7 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"WO" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WR" = (
@@ -8029,7 +8064,7 @@
/turf/open/floor/plating,
/area/outpost/maintenance/fore)
"WV" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/spline/fancy/opaque/lightgrey{
dir = 1
},
@@ -8100,6 +8135,15 @@
/obj/effect/turf_decal/corner/opaque/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/nosmoking/burnt{
+ pixel_y = -28
+ },
/turf/open/floor/plasteel,
/area/outpost/hallway/port)
"Xq" = (
@@ -8161,7 +8205,7 @@
/area/outpost/hallway/port)
"XA" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel/mono,
/area/outpost/vacant_rooms)
"XD" = (
@@ -8332,7 +8376,7 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo)
"YC" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/structure/rack,
/obj/effect/turf_decal/steeldecal/steel_decals_central2{
dir = 4
@@ -8425,9 +8469,12 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"Zk" = (
-/obj/structure/chair{
- dir = 1
+/obj/structure/disposalpipe/trunk{
+ dir = 4
},
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/disposal/bin,
+/obj/machinery/light/dim/directional/west,
/turf/open/floor/plasteel,
/area/outpost/vacant_rooms/office)
"Zl" = (
@@ -8527,9 +8574,6 @@
/turf/open/floor/plasteel,
/area/outpost/hallway/central)
"ZP" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
-/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/outpost/vacant_rooms/office)
"ZU" = (
@@ -17228,7 +17272,7 @@ Gi
WC
Fx
Zk
-cq
+wK
KJ
pA
Mt
diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm
deleted file mode 100644
index d5af45bfef2d..000000000000
--- a/_maps/outpost/nanotrasen_asteroid.dmm
+++ /dev/null
@@ -1,29807 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ac" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"ae" = (
-/obj/machinery/door/airlock/freezer,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"ag" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/blue{
- pixel_x = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"ai" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"ak" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/external)
-"an" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 9
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"aq" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 1
- },
-/obj/structure/railing{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/canister/air,
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering/atmospherics)
-"ar" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/aft)
-"av" = (
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"aw" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/three,
-/obj/machinery/light/small/broken/directional/south,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"ay" = (
-/obj/item/chair/stool/bar,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"az" = (
-/obj/structure/closet/secure_closet/ertMed,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/light/directional/south,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"aA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"aB" = (
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"aC" = (
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"aD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/alien/weeds,
-/obj/structure/alien/egg/burst,
-/obj/effect/decal/cleanable/xenoblood/xgibs/larva,
-/obj/effect/decal/cleanable/xenoblood/xgibs/down{
- pixel_y = 11
- },
-/obj/effect/decal/cleanable/xenoblood/xgibs/limb{
- pixel_x = -11
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"aE" = (
-/obj/structure/table/wood,
-/obj/item/food/cakeslice/birthday{
- pixel_x = -3;
- pixel_y = -5
- },
-/obj/effect/decal/cleanable/confetti{
- pixel_x = -12;
- pixel_y = -3
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/bar)
-"aF" = (
-/obj/item/trash/popcorn{
- pixel_y = -7
- },
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = 10;
- pixel_y = 7
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/caution{
- dir = 4;
- pixel_x = -6
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"aG" = (
-/obj/machinery/light/directional/north,
-/obj/machinery/computer/rdconsole{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/purple/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"aH" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-8"
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"aI" = (
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"aJ" = (
-/obj/structure/grille,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/outpost/maintenance/fore)
-"aL" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/maintenance/aft)
-"aN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"aO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/autolathe,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"aR" = (
-/obj/structure/chair{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"aS" = (
-/obj/item/kirbyplants/random,
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"aU" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"aV" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/item/banner,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/outpost/hallway/fore)
-"aW" = (
-/turf/open/floor/plating,
-/area/outpost/external)
-"aZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 8
- },
-/area/outpost/engineering/atmospherics)
-"ba" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/kirbyplants/photosynthetic,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"bb" = (
-/obj/structure/statue/snow/snowman{
- pixel_y = 5
- },
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"bd" = (
-/turf/open/floor/engine/air,
-/area/outpost/engineering/atmospherics)
-"bg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"bj" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/warning{
- dir = 1;
- pixel_y = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"bk" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"bn" = (
-/obj/structure/table/reinforced,
-/obj/machinery/computer/med_data/laptop{
- pixel_x = -3
- },
-/obj/machinery/computer/secure_data/laptop{
- pixel_x = 14
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"bq" = (
-/obj/structure/table_frame/wood,
-/obj/item/wallframe/airalarm,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"bt" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 10
- },
-/obj/structure/closet/secure_closet/security/sec,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/button/door{
- dir = 4;
- pixel_x = -28;
- pixel_y = 6;
- id = "outpost_security";
- req_access_txt = "101";
- name = "Security Lockdown"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"bu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"bv" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"bw" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/oil/streak,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"bx" = (
-/obj/machinery/door/poddoor/shutters/preopen,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"by" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"bA" = (
-/obj/structure/flora/tree/palm{
- icon_state = "palm2"
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"bB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/light/directional/south,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"bC" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/overlay/holoray,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"bG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = -32
- },
-/obj/item/trash/waffles,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"bH" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"bJ" = (
-/obj/structure/table/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = -6;
- pixel_y = 3
- },
-/obj/item/pen{
- pixel_x = -3;
- pixel_y = 6
- },
-/obj/structure/sign/poster/official/cohiba_robusto_ad{
- pixel_x = -32
- },
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"bL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"bO" = (
-/obj/effect/turf_decal/techfloor,
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"bP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/fluff/hedge,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"bQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"bR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"bS" = (
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"bU" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/library)
-"bV" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/red,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"bW" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 6
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"bX" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"bY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"ca" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"cb" = (
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-12"
- },
-/turf/open/space/basic,
-/area/outpost/external)
-"cc" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 6
- },
-/obj/item/cardboard_cutout{
- icon_state = "cutout_ian"
- },
-/obj/structure/bed/dogbed/ian,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"ce" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"cf" = (
-/obj/structure/closet/crate/wooden,
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- pixel_y = 24
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/retro/nanotrasen_logo_70s{
- pixel_x = -32
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken6"
- },
-/area/outpost/crew/dorm)
-"ci" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"cj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/newscaster/directional/east,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"ck" = (
-/obj/structure/chair/wood{
- dir = 8;
- pixel_x = 7;
- pixel_y = -3
- },
-/obj/item/toy/plush/beeplushie,
-/obj/item/reagent_containers/food/drinks/mug/tea{
- pixel_y = -14;
- pixel_x = -4
- },
-/obj/effect/turf_decal/weather/snow/surround{
- dir = 4
- },
-/turf/open/floor/plating/asteroid/snow/under/lit,
-/area/outpost/external)
-"cm" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"cn" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"cp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"cq" = (
-/obj/machinery/door/airlock/public/glass,
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "3"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"cr" = (
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"ct" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"cv" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/departments/security{
- pixel_y = -32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"cw" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"cB" = (
-/obj/item/kirbyplants/photosynthetic,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"cC" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/sign/poster/contraband/atmosia_independence{
- pixel_x = -32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"cF" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"cG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/crate/trashcart/laundry,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"cH" = (
-/obj/structure/filingcabinet{
- pixel_x = 13
- },
-/obj/item/kirbyplants/random{
- pixel_x = -5
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/obj/machinery/newscaster/directional/north{
- pixel_x = -32
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"cJ" = (
-/turf/open/floor/plating/ice/smooth,
-/area/outpost/hallway/starboard)
-"cK" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"cL" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/aft)
-"cM" = (
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"cR" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/overlay/holoray,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"cS" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"cU" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"cW" = (
-/obj/effect/decal/cleanable/glass,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel,
-/area/outpost/maintenance/fore)
-"cX" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor/ert{
- dir = 8;
- id = "outpost_security";
- desc = "A heavy duty blast door."
- },
-/obj/machinery/door/airlock/outpost{
- dir = 4;
- icon = 'icons/obj/doors/airlocks/station/security.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- assemblytype = /obj/structure/door_assembly/door_assembly_sec;
- req_one_access_txt = "101"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"da" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/shower{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"db" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/fore)
-"dd" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"de" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"df" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/turf_decal/box/corners,
-/obj/item/circuitboard/machine/vendor{
- pixel_y = 4;
- pixel_x = 2
- },
-/obj/structure/window/reinforced/spawner/east,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"dg" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"dh" = (
-/obj/structure/mopbucket,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"di" = (
-/obj/structure/chair/comfy/orange/directional/west{
- buildstackamount = 0;
- color = "#c45c57"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"dj" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/hallway/central)
-"do" = (
-/obj/structure/dresser,
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"dp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"dq" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"dr" = (
-/obj/structure/chair,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"du" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"dv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/ale{
- pixel_x = 6;
- pixel_y = 1
- },
-/obj/item/reagent_containers/food/drinks/bottle/hcider{
- pixel_x = -9;
- pixel_y = 11
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"dw" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark/corner,
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/corner,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"dx" = (
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-38"
- },
-/turf/open/space/basic,
-/area/outpost/external)
-"dA" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"dB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/vending/coffee,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"dC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"dD" = (
-/obj/structure/table/glass,
-/obj/machinery/computer/secure_data/laptop{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/toy/figure/dsquad{
- pixel_x = -9;
- pixel_y = 4
- },
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"dE" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"dF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"dL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"dM" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"dN" = (
-/obj/structure/barricade/wooden/crude{
- layer = 3.13
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/indestructible{
- name = "Showcase Storage";
- dir = 4
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/outpost/maintenance/fore)
-"dO" = (
-/obj/effect/turf_decal/snow,
-/obj/effect/turf_decal/weather/snow{
- dir = 8
- },
-/turf/open/floor/concrete/reinforced,
-/area/outpost/hallway/starboard)
-"dQ" = (
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"dR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"dT" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"dU" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/canteen)
-"dX" = (
-/obj/structure/closet/secure_closet/freezer/kitchen,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/canteen)
-"ea" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/stand_clear,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"eb" = (
-/obj/structure/railing/wood{
- dir = 10
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"ee" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_y = 32
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"ef" = (
-/obj/item/trash/candy,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"eg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"eh" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"ei" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"ej" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"en" = (
-/obj/structure/closet/firecloset/full{
- anchored = 1;
- can_be_unanchored = 1
- },
-/obj/structure/sign/poster/official/moth/hardhats{
- pixel_y = 32
- },
-/obj/effect/turf_decal/industrial/hatch/red,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"ep" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/newspaper{
- pixel_x = -4
- },
-/obj/item/newspaper{
- pixel_x = -4;
- pixel_y = 2
- },
-/obj/item/newspaper{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/reagent_containers/food/drinks/mug{
- pixel_x = 9;
- pixel_y = -1
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"er" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"et" = (
-/obj/structure/railing/wood{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"eu" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"ev" = (
-/obj/structure/girder,
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-9"
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"ex" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/cargo/office)
-"ez" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/railing/wood{
- dir = 10
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"eB" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"eC" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"eF" = (
-/obj/structure/table/glass,
-/obj/machinery/fax/admin/outpost{
- pixel_y = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"eH" = (
-/obj/structure/railing/wood{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"eI" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/caution,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/turf_decal/arrows{
- dir = 4
- },
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"eK" = (
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"eL" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"eM" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow/full,
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"eO" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"eP" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
- },
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"eQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"eR" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"eS" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"eU" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 1
- },
-/obj/structure/sign/poster/official/moth/piping{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"eW" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"eX" = (
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"eZ" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-12"
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"fb" = (
-/obj/machinery/vending/boozeomat/syndicate_access,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/bar)
-"fc" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"ff" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"fg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"fj" = (
-/obj/structure/table/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/obj/item/reagent_containers/food/drinks/mug/coco{
- pixel_x = 7
- },
-/obj/item/trash/cheesie{
- pixel_x = -5
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"fk" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/south,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"fl" = (
-/obj/effect/turf_decal/borderfloorwhite{
- dir = 10
- },
-/obj/structure/toilet/secret{
- dir = 4;
- secret_type = /obj/item/storage/box/donkpockets/donkpocketgondola
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/crew/library)
-"fn" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/number/one,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"fo" = (
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"fp" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"fq" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"fr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"ft" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"fu" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"fv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"fy" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"fA" = (
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"fB" = (
-/obj/structure/janitorialcart,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/light/small/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/crew/library)
-"fE" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-12"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"fG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"fH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"fJ" = (
-/obj/effect/decal/cleanable/molten_object/large,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"fK" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"fL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"fM" = (
-/obj/structure/girder,
-/obj/effect/decal/cleanable/glass{
- pixel_y = -7
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"fN" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"fO" = (
-/obj/structure/urinal{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"fP" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"fQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/fluff/divine/nexus,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"fR" = (
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"fT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/machinery/firealarm/directional/south,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"fU" = (
-/obj/effect/turf_decal/trimline/opaque/purple/filled/line{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"fV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/bookcase/random,
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"fX" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"fZ" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109";
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/crew/library)
-"ga" = (
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"gd" = (
-/obj/structure/chair/comfy/orange/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"ge" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"gg" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"gh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"gk" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"gl" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"gm" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/paper/crumpled,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"gn" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 1
- },
-/area/outpost/crew/cryo)
-"go" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"gs" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/hallway/starboard)
-"gu" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/decal/cleanable/wrapping,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"gv" = (
-/obj/structure/statue/snow/snowman{
- pixel_y = 3
- },
-/turf/open/floor/plating/asteroid/snow/airless,
-/area/outpost/external)
-"gw" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/caution{
- pixel_x = 17
- },
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"gx" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"gy" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"gz" = (
-/obj/structure/girder,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"gA" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/wood{
- icon_state = "wood-broken4"
- },
-/area/outpost/crew/dorm)
-"gB" = (
-/obj/item/kirbyplants{
- icon_state = "plant-22";
- pixel_x = -8
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"gC" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"gF" = (
-/obj/structure/table/reinforced,
-/obj/item/melee/knife/kitchen{
- pixel_y = 6;
- pixel_x = 9
- },
-/obj/item/book/manual/chef_recipes{
- pixel_x = -4;
- pixel_y = 6
- },
-/obj/item/kitchen/rollingpin,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"gH" = (
-/obj/structure/girder,
-/obj/effect/decal/cleanable/blood/gibs/old,
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"gI" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/machinery/light/directional/west,
-/obj/item/bedsheet/red,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"gJ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"gK" = (
-/obj/structure/chair,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"gL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"gM" = (
-/obj/structure/grille,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"gN" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"gO" = (
-/mob/living/simple_animal/pet/penguin/emperor,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"gP" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/canteen)
-"gR" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"gS" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/shreds{
- pixel_y = 14
- },
-/obj/effect/decal/cleanable/cobweb,
-/turf/closed/mineral/random/snow,
-/area/outpost/external)
-"gT" = (
-/obj/machinery/vending/boozeomat/syndicate_access,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"gU" = (
-/obj/machinery/computer/prisoner/management,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"gV" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"gW" = (
-/obj/machinery/door/poddoor/ert{
- id = "outpost_ert"
- },
-/obj/effect/turf_decal/industrial/traffic,
-/obj/effect/turf_decal/industrial/traffic{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security/armory)
-"ha" = (
-/obj/structure/grille,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"hb" = (
-/obj/structure/girder,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"hc" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/crew/cryo)
-"hd" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"he" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/barricade/security,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"hg" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/corner,
-/obj/machinery/power/port_gen/pacman/super,
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"hh" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 10
- },
-/obj/structure/statue/sandstone/venus{
- layer = 3.1
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"hi" = (
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood";
- dir = 8
- },
-/area/outpost/hallway/central)
-"hj" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/engineering)
-"hk" = (
-/obj/structure/table/reinforced,
-/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/bar)
-"hp" = (
-/obj/machinery/processor,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"hu" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"hx" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 1
- },
-/obj/machinery/computer/communications,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"hy" = (
-/obj/machinery/door/airlock/external{
- dir = 8
- },
-/obj/structure/barricade/wooden/crude{
- layer = 3.1
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"hA" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow/full,
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"hD" = (
-/obj/structure/table/wood,
-/obj/item/trash/plate{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/reagent_containers/food/drinks/soda_cans/cola{
- pixel_x = -5
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"hE" = (
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"hF" = (
-/obj/structure/table/wood,
-/obj/item/trash/plate{
- pixel_x = 8
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"hH" = (
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-3"
- },
-/turf/open/space/basic,
-/area/outpost/external)
-"hI" = (
-/obj/machinery/computer/atmos_alert{
- dir = 1
- },
-/obj/structure/railing,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"hJ" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"hK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/wood/walnut,
-/area/outpost/crew/bar)
-"hM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/closet/crate/bin,
-/obj/item/trash/chips,
-/obj/item/trash/pistachios{
- pixel_x = 6
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"hO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/binary/pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"hP" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"hQ" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"hV" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"hW" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/outpost/crew/cryo)
-"hX" = (
-/obj/structure/showcase/cyborg/old,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/cleanable/ash/large{
- pixel_y = -11;
- pixel_x = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/plastic,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"hZ" = (
-/obj/machinery/processor,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"ia" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"ic" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"ie" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"ig" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"il" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"im" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/structure/grille/broken,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/aft)
-"ip" = (
-/obj/structure/filler{
- icon_state = "safe-open"
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"ir" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"iu" = (
-/obj/structure/chair/stool/bar,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"iv" = (
-/obj/structure/table/glass,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"iz" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"iB" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"iD" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/official/obey{
- pixel_y = -32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"iE" = (
-/obj/structure/table/wood,
-/obj/machinery/jukebox/boombox{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/reagent_containers/food/drinks/bottle/applejack{
- pixel_y = 8;
- pixel_x = 5
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/bar)
-"iG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"iH" = (
-/obj/effect/turf_decal/siding/wood/end,
-/obj/structure/table_frame/wood,
-/obj/structure/fluff/paper,
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"iJ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"iK" = (
-/obj/machinery/door/airlock/command{
- name = "Council Chamber";
- req_access_txt = "19";
- security_level = 6;
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"iL" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"iM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"iN" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"iQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"iR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"iT" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"iW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32;
- pixel_y = -32
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"iX" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"iY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil/streak,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"ja" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"jb" = (
-/obj/structure/rack,
-/obj/item/storage/belt/utility/full/engi{
- pixel_y = 4
- },
-/obj/item/geiger_counter{
- pixel_x = 1;
- pixel_y = 2
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"jc" = (
-/obj/structure/table/reinforced,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"je" = (
-/obj/structure/table,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"jf" = (
-/obj/structure/chair/stool/bar,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"jg" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plating,
-/area/outpost/hallway/fore)
-"jh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"jj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"jl" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 8
- },
-/obj/structure/barricade/wooden,
-/obj/structure/barricade/wooden/crude,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"jm" = (
-/obj/structure/chair/comfy/orange/directional/east,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"jn" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"jo" = (
-/obj/effect/decal/cleanable/plasma,
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"js" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"jv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"jw" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"jx" = (
-/obj/machinery/door/poddoor/shutters/preopen,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"jz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"jB" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"jC" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 2
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 1
- },
-/obj/item/circuitboard/machine/shuttle/engine/electric{
- pixel_x = -1;
- pixel_y = -3
- },
-/obj/item/circuitboard/machine/shuttle/engine/electric{
- pixel_x = 1;
- pixel_y = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"jD" = (
-/obj/effect/decal/cleanable/garbage{
- pixel_y = -7;
- pixel_x = 6
- },
-/obj/machinery/light/broken/directional/east,
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"jE" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/obj/effect/overlay/holoray,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"jF" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 10
- },
-/obj/structure/flora/ausbushes/fullgrass{
- pixel_x = 12;
- pixel_y = 2
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"jG" = (
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"jI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"jJ" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/item/storage/box/zipties{
- pixel_y = 7;
- pixel_x = 8
- },
-/obj/item/storage/box/teargas{
- pixel_x = -8;
- pixel_y = 7
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 6
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"jK" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"jL" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"jP" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"jQ" = (
-/obj/structure/alien/weeds,
-/obj/effect/decal/cleanable/blood/innards,
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/decal/cleanable/blood/gibs,
-/obj/structure/bed/nest,
-/obj/machinery/light/built/directional/west,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"jR" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"jT" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/item/banner,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/outpost/hallway/fore)
-"jU" = (
-/obj/effect/turf_decal/borderfloorwhite{
- dir = 5
- },
-/obj/structure/urinal{
- pixel_y = 28
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/crew/library)
-"jV" = (
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/security/armory)
-"jW" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/window/brigdoor{
- base_state = "rightsecure";
- dir = 4;
- icon_state = "rightsecure";
- name = "Head of Personnel's Desk";
- req_access_txt = "101"
- },
-/obj/machinery/door/window/northleft{
- dir = 8;
- name = "Reception Window"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "outpost_office_lockdown";
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"jX" = (
-/obj/structure/fireplace,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/vacant_rooms/office)
-"jY" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"jZ" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 10
- },
-/obj/machinery/autolathe,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"ka" = (
-/obj/structure/foamedmetal,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"kc" = (
-/obj/effect/decal/cleanable/glass,
-/obj/structure/window/reinforced/spawner,
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/plasma,
-/obj/item/shard,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"kd" = (
-/mob/living/simple_animal/chicken,
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"ke" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 5
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"kf" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/structure/sign/poster/contraband/tools{
- pixel_x = -32
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"ki" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"kk" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"kl" = (
-/obj/machinery/door/airlock/outpost{
- dir = 1;
- icon = 'icons/obj/doors/airlocks/station/mining.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- assemblytype = /obj/structure/door_assembly/door_assembly_min
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"kq" = (
-/obj/structure/railing{
- dir = 1;
- layer = 4.1
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"kt" = (
-/obj/machinery/door/window/brigdoor/northright{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"kw" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"kx" = (
-/obj/structure/table/reinforced,
-/obj/machinery/chem_dispenser/drinks/fullupgrade{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/bar)
-"kz" = (
-/obj/structure/railing/wood{
- dir = 6
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"kA" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/official/here_for_your_safety{
- pixel_y = -32
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"kB" = (
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"kC" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"kF" = (
-/obj/machinery/vending/medical/syndicate_access,
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"kH" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/obj/structure/barricade/wooden/crude{
- layer = 3.13
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"kI" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/structure/flora/grass/both,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"kJ" = (
-/obj/effect/turf_decal/techfloor,
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"kM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"kN" = (
-/obj/machinery/computer/secure_data{
- dir = 8
- },
-/obj/structure/railing{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"kO" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/vacant_rooms)
-"kP" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"kR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"kT" = (
-/obj/machinery/door/window/brigdoor/security{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"kY" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"kZ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"la" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"lb" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/obj/machinery/door/poddoor/ert{
- id = "outpost_security_desk";
- desc = "A heavy duty blast door."
- },
-/turf/open/floor/plating,
-/area/outpost/security)
-"le" = (
-/obj/structure/closet/crate/wooden,
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- pixel_y = 24
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"lf" = (
-/obj/structure/table,
-/obj/item/export_scanner{
- pixel_x = -3;
- pixel_y = -10
- },
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 5
- },
-/obj/item/pen{
- pixel_x = -5;
- pixel_y = 7
- },
-/obj/item/phone{
- pixel_x = 8;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"lg" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/structure/sign/poster/contraband/engis_unite{
- pixel_y = 32
- },
-/obj/machinery/power/terminal{
- dir = 4
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"lh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"lq" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"lr" = (
-/turf/open/floor/engine/n2,
-/area/outpost/engineering/atmospherics)
-"lt" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"lx" = (
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"ly" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/grille,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"lz" = (
-/obj/machinery/power/floodlight,
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"lA" = (
-/obj/structure/mopbucket,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"lB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"lD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"lG" = (
-/obj/structure/grille/broken,
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"lH" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/elevator_call_button{
- pixel_y = 25
- },
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "2"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"lI" = (
-/obj/item/trash/syndi_cakes{
- pixel_x = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"lJ" = (
-/turf/closed/wall/rust,
-/area/outpost/maintenance/fore)
-"lK" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
- dir = 1
- },
-/obj/structure/closet/crate/freezer/blood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"lL" = (
-/obj/structure/urinal{
- pixel_y = 33
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating/foam,
-/area/outpost/maintenance/aft)
-"lM" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock{
- dir = 4;
- name = "Chapel"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/lounge)
-"lN" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"lR" = (
-/obj/structure/table/wood,
-/obj/item/newspaper{
- pixel_x = 4;
- pixel_y = -1
- },
-/obj/item/newspaper{
- pixel_x = 4;
- pixel_y = 2
- },
-/obj/item/newspaper{
- pixel_x = 4;
- pixel_y = 5
- },
-/obj/item/table_bell{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/bar)
-"lS" = (
-/obj/structure/table/reinforced,
-/obj/item/radio/old{
- pixel_x = 2;
- pixel_y = 4
- },
-/obj/item/cartridge/quartermaster{
- pixel_x = -3
- },
-/obj/item/cartridge/quartermaster{
- pixel_x = -1;
- pixel_y = 5
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/destTagger,
-/obj/machinery/light/directional/north,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"lT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"lX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fermenting_barrel{
- pixel_x = 7;
- pixel_y = -2
- },
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"lY" = (
-/turf/open/floor/engine/hull/reinforced,
-/area/outpost/external)
-"lZ" = (
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"mb" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"mc" = (
-/obj/structure/chair/wood{
- pixel_x = -1;
- pixel_y = -3
- },
-/obj/item/toy/plush/moth{
- pixel_y = 3;
- pixel_x = -1
- },
-/obj/effect/turf_decal/weather/snow{
- dir = 9
- },
-/turf/open/floor/plating/asteroid/snow/under/lit,
-/area/outpost/external)
-"mh" = (
-/obj/structure/barricade/wooden,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"mj" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/obj/machinery/door/poddoor/preopen{
- id = "outpost_security_window"
- },
-/turf/open/floor/plating,
-/area/outpost/security)
-"mk" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"ml" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/stack/rods/ten{
- pixel_x = -11;
- pixel_y = -1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"mn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/chair/pew/left{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"mp" = (
-/obj/structure/bookcase/random/fiction,
-/obj/item/candle/infinite{
- pixel_y = 19;
- pixel_x = -14
- },
-/obj/structure/sign/poster/official/enlist{
- pixel_x = -32
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"mq" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"mr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"ms" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"mt" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"mu" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/item/clothing/gloves/color/latex{
- pixel_y = -4
- },
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/item/storage/pill_bottle/mannitol{
- pixel_x = -3;
- pixel_y = 9
- },
-/obj/item/storage/pill_bottle/epinephrine{
- pixel_x = -8;
- pixel_y = 11
- },
-/obj/item/reagent_containers/medigel/sterilizine{
- pixel_x = -9;
- pixel_y = 7
- },
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"mv" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair{
- dir = 1;
- pixel_x = 1;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"mw" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_com;
- icon = 'icons/obj/doors/airlocks/station/command.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- req_one_access_txt = "109"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"mx" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/nanotrasen,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"my" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"mz" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/engineering/atmospherics)
-"mA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"mB" = (
-/obj/structure/table/wood,
-/obj/machinery/status_display/ai{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"mD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"mE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/sign/plaques/deempisi{
- pixel_y = 26
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"mF" = (
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 6
- },
-/obj/structure/sign/nanotrasen{
- pixel_y = -32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"mG" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/vomit/old,
-/obj/item/cigbutt/cigarbutt{
- pixel_x = 15;
- pixel_y = -8
- },
-/obj/effect/decal/cleanable/ash{
- pixel_x = 12;
- pixel_y = -4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"mH" = (
-/obj/structure/frame/machine,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"mI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/curtain{
- color = "#363636"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"mJ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"mN" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/button/door{
- pixel_y = 28;
- id = "outpost_ert";
- req_access_txt = "101";
- pixel_x = -3
- },
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"mP" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/contraband/smoke{
- pixel_y = -32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"mR" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"mS" = (
-/obj/machinery/power/floodlight,
-/obj/effect/decal/cleanable/glitter,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"mW" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"mY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"mZ" = (
-/obj/structure/table/wood,
-/obj/machinery/fax/ruin,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"na" = (
-/obj/structure/flora/rock/pile/largejungle{
- pixel_x = 3;
- pixel_y = -3
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"nb" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/sign/poster/official/miners{
- pixel_x = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"nc" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"ne" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"ng" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"nh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"nj" = (
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"nk" = (
-/obj/structure/chair/comfy/grey/directional/south,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"nn" = (
-/obj/structure/elevator_platform,
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/vacant_rooms)
-"no" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/oil,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"nt" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"nv" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"ny" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security/armory)
-"nz" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
- dir = 1
- },
-/obj/structure/closet/secure_closet/medical2,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"nA" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair/pew/right{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"nC" = (
-/obj/structure/table/wood,
-/obj/item/phone{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/item/storage/fancy/nugget_box{
- pixel_y = -5;
- pixel_x = -9
- },
-/obj/item/reagent_containers/food/drinks/mug,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"nE" = (
-/obj/structure/chair/office,
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/sign/poster/official/fruit_bowl{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"nF" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"nH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/bag/trash{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"nJ" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
- dir = 1
- },
-/obj/structure/table/glass,
-/obj/item/storage/firstaid/toxin{
- pixel_x = -2;
- pixel_y = 10
- },
-/obj/item/storage/firstaid/fire{
- pixel_x = 6;
- pixel_y = 4
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"nP" = (
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plating/airless,
-/area/outpost/maintenance/fore)
-"nQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/broken/directional/south,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"nT" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"nU" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"nV" = (
-/turf/closed/indestructible/fakeglass,
-/area/outpost/engineering/atmospherics)
-"nX" = (
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"nY" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"nZ" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"oa" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/sign/poster/official/high_class_martini{
- pixel_x = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"ob" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/sign/poster/contraband/red_rum{
- pixel_x = 32
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_4,
-/area/outpost/hallway/central)
-"oc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/safety_internals{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"od" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"of" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/noticeboard{
- icon_state = "nboard05";
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"og" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"oh" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"ok" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/vehicle/ridden/atv{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"om" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"on" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/nachos,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"oo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/closet/secure_closet/freezer/wall/directional/east,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"op" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_com;
- icon = 'icons/obj/doors/airlocks/station/command.dmi';
- glass = 1;
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- name = "Bridge Access";
- req_one_access_txt = "109"
- },
-/obj/machinery/door/poddoor/preopen{
- id = "outpost_bridge_lockdown"
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"oq" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
- dir = 1
- },
-/obj/machinery/airalarm/directional/east,
-/obj/structure/bed/roller,
-/obj/machinery/iv_drip,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"ot" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"ow" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"oA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"oC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/chair/sofa/brown/right/directional/east,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"oD" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"oE" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"oG" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"oH" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/structure/closet/crate/secure/loot,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"oI" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"oJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"oK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"oL" = (
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/structure/chair/office{
- dir = 8;
- name = "tactical swivel chair"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"oN" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/official/safety_report{
- pixel_y = -32
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/starboard)
-"oS" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"oX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"oZ" = (
-/obj/structure/chair/sofa/brown/right/directional/north,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"pa" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/displaycase/captain{
- req_access = null;
- req_access_txt = "20";
- req_one_access_txt = "0"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"pe" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"pg" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/qm,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"pj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/chair/sofa/brown/left/directional/east,
-/obj/item/radio/intercom/directional/west,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"pl" = (
-/obj/effect/landmark/outpost/elevator{
- shaft = "3"
- },
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/hallway/fore)
-"pm" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"po" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/medical)
-"pq" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"pr" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"ps" = (
-/obj/structure/fluff/hedge,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"pt" = (
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"pu" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"pv" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/sparsegrass{
- pixel_y = -1;
- pixel_x = -1
- },
-/obj/structure/flora/ausbushes/stalkybush,
-/obj/structure/flora/ausbushes/ywflowers,
-/turf/open/floor/grass,
-/area/outpost/hallway/aft)
-"px" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/obj/structure/chair{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"pz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"pC" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/machinery/light/directional/west,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"pD" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/structure/frame/machine,
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"pE" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"pG" = (
-/obj/structure/chair/sofa/brown/left/directional/south,
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/greenglow/filled{
- pixel_y = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/outpost/maintenance/aft)
-"pI" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"pJ" = (
-/obj/structure/table/wood,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_y = 3
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"pK" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/obj/machinery/door/poddoor/preopen{
- id = "outpost_bridge_lockdown"
- },
-/turf/open/floor/plating,
-/area/outpost/operations)
-"pL" = (
-/obj/structure/flora/rock/pile/largejungle{
- pixel_x = -26;
- pixel_y = 3
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"pN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"pR" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/button/door{
- pixel_y = 28;
- id = "outpost_security_window";
- req_access_txt = "101";
- name = "Cell Window Shutters"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"pT" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/jukebox/boombox{
- pixel_y = 5
- },
-/obj/item/phone{
- pixel_x = -11;
- pixel_y = 3
- },
-/obj/item/folder/yellow{
- pixel_x = 7;
- pixel_y = -3
- },
-/obj/item/forcefield_projector{
- pixel_y = -2
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"pU" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/engineering/atmospherics)
-"pX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"pZ" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/computer/med_data,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"qb" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"qc" = (
-/obj/effect/turf_decal/atmos/oxygen{
- dir = 1
- },
-/turf/open/floor/engine/o2,
-/area/outpost/engineering/atmospherics)
-"qd" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/plasteel,
-/area/outpost/hallway/fore)
-"qe" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/structure/reagent_dispensers/servingdish,
-/obj/effect/decal/cleanable/vomit/old{
- pixel_x = 1;
- pixel_y = -9
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"qg" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/condiment/enzyme{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/item/reagent_containers/glass/beaker,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"qi" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"qj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/carpet,
-/area/outpost/hallway/central)
-"qk" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"qm" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"qo" = (
-/obj/structure/closet/secure_closet/freezer/meat,
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/library)
-"qp" = (
-/obj/effect/turf_decal/atmos/plasma{
- dir = 1
- },
-/turf/open/floor/engine/plasma,
-/area/outpost/engineering/atmospherics)
-"qu" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"qv" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin{
- pixel_x = -6
- },
-/obj/item/pen{
- pixel_x = -6
- },
-/obj/item/stamp/qm{
- pixel_x = 6;
- pixel_y = 9
- },
-/obj/item/stamp{
- pixel_x = 6;
- pixel_y = 4
- },
-/obj/item/stamp/denied{
- pixel_x = 6;
- pixel_y = -1
- },
-/obj/item/toy/figure/cargotech{
- pixel_x = -8;
- pixel_y = 15
- },
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"qw" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/bed{
- icon_state = "dirty_mattress"
- },
-/obj/item/storage/wallet,
-/obj/item/reagent_containers/food/drinks/bottle/pruno{
- pixel_x = 5
- },
-/obj/item/bedsheet/nanotrasen,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"qx" = (
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"qy" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"qz" = (
-/obj/structure/railing/corner/wood{
- dir = 1
- },
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/obj/structure/flora/grass/jungle/b{
- pixel_x = 9;
- pixel_y = 9
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"qA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/logo{
- icon_state = "nanotrasen_sign3";
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"qC" = (
-/obj/machinery/light/directional/north,
-/obj/machinery/status_display/ai{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"qE" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"qF" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/structure/frame/computer{
- anchored = 1;
- dir = 8;
- pixel_x = 7
- },
-/obj/structure/grille/broken,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"qG" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark/corner,
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/corner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"qI" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/hallway/central)
-"qK" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 8
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"qL" = (
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "1"
- },
-/obj/machinery/door/airlock/public/glass{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"qN" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"qO" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"qQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/girder,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"qT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/wood/walnut,
-/area/outpost/crew/bar)
-"qU" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/item/radio/intercom/directional/west,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"qW" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet,
-/area/outpost/hallway/central)
-"qX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"qZ" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/plating,
-/area/outpost/hallway/fore)
-"ra" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/window/reinforced/spawner/west,
-/obj/structure/sign/poster/retro/we_watch{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"rc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/sign/painting/library{
- pixel_y = 32
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"rd" = (
-/obj/item/storage/fancy/candle_box{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/structure/table/wood,
-/obj/item/lighter,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"re" = (
-/obj/structure/rack,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"rf" = (
-/obj/structure/table,
-/obj/item/lighter{
- pixel_x = -8
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"rh" = (
-/obj/item/storage/bag/tray,
-/obj/item/storage/box/donkpockets{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/item/storage/box/donkpockets{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/item/reagent_containers/condiment/peppermill{
- desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
- pixel_x = -8;
- pixel_y = 2
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- desc = "Salt. From space oceans, presumably. A staple of modern medicine.";
- pixel_x = -8;
- pixel_y = 12
- },
-/obj/machinery/reagentgrinder{
- pixel_y = 5
- },
-/obj/structure/table,
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel,
-/area/outpost/crew/library)
-"rj" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"rk" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"rl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"ro" = (
-/obj/structure/table/wood/poker,
-/obj/item/flashlight/lamp/green{
- pixel_y = 13;
- pixel_x = -6;
- layer = 4
- },
-/obj/item/paper_bin{
- pixel_x = 6;
- pixel_y = 4
- },
-/obj/item/pen/fountain{
- pixel_x = 4;
- pixel_y = 2
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = 8
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"rs" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/outpost{
- dir = 4;
- icon = 'icons/obj/doors/airlocks/station/medical.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- assemblytype = /obj/structure/door_assembly/door_assembly_med
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"ru" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"rv" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"rw" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"rx" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"ry" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"rA" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"rB" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/moth{
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"rD" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/obj/machinery/suit_storage_unit/inherit,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security)
-"rE" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"rG" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/item/grenade/frag{
- pixel_x = 6;
- pixel_y = -3
- },
-/obj/item/grenade/empgrenade,
-/obj/item/grenade/stingbang{
- pixel_x = -8;
- pixel_y = -4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"rJ" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"rL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"rN" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"rO" = (
-/obj/structure/filingcabinet/security{
- pixel_x = 11
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"rP" = (
-/obj/effect/turf_decal/atmos/carbon_dioxide,
-/turf/open/floor/engine/co2,
-/area/outpost/engineering/atmospherics)
-"rQ" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/plaques/kiddie/library{
- pixel_y = -32
- },
-/obj/item/kirbyplants{
- icon_state = "plant-22";
- pixel_x = -11
- },
-/obj/machinery/vending/games{
- pixel_x = 4
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"rR" = (
-/obj/structure/reagent_dispensers/water_cooler{
- pixel_x = 8;
- pixel_y = 15;
- density = 0
- },
-/obj/item/kirbyplants{
- icon_state = "plant-25";
- pixel_x = -3;
- pixel_y = 6
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"rT" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"rU" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/bottlegreen/line{
- dir = 1
- },
-/obj/structure/bed/roller,
-/obj/machinery/iv_drip,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"rV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/sign/poster/retro/nanotrasen_logo_80s{
- pixel_y = 32
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"rW" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
- },
-/obj/machinery/suit_storage_unit/inherit,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security)
-"rX" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/cargo)
-"rZ" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/condiment/peppermill{
- desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
- pixel_x = -8;
- pixel_y = 2
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- desc = "Salt. From space oceans, presumably. A staple of modern medicine.";
- pixel_x = -8;
- pixel_y = 12
- },
-/obj/item/toy/figure/chef,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"sb" = (
-/obj/machinery/door/window/westright{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"sd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/plasma,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"sg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/showcase/machinery/tv,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"si" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood/walnut,
-/area/outpost/crew/bar)
-"sl" = (
-/obj/item/kirbyplants/dead{
- pixel_x = -6
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/west,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"sm" = (
-/obj/machinery/status_display/ai{
- pixel_y = 32
- },
-/obj/item/clothing/accessory/holster,
-/obj/structure/closet/secure_closet/head_of_personnel,
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"sn" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/cobweb,
-/obj/structure/showcase/mecha/ripley,
-/obj/effect/turf_decal/box/corners{
- dir = 1;
- icon_state = "box_corners"
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"so" = (
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"st" = (
-/obj/machinery/door/airlock/freezer{
- req_access_txt = "109"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
-/area/outpost/crew/canteen)
-"su" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"sv" = (
-/obj/structure/bookcase/random/fiction,
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"sx" = (
-/obj/structure/table/glass,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/pinpointer/nuke{
- pixel_x = -5;
- pixel_y = 4
- },
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 9
- },
-/obj/item/phone{
- desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
- pixel_x = 9;
- pixel_y = 3
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"sz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"sA" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin{
- pixel_x = -4;
- pixel_y = 9
- },
-/obj/item/pen{
- pixel_x = -2;
- pixel_y = 10
- },
-/obj/item/clipboard{
- pixel_x = -3;
- pixel_y = -4
- },
-/obj/item/folder/blue{
- pixel_x = -6;
- pixel_y = -5
- },
-/obj/item/stamp/qm{
- pixel_x = 8;
- pixel_y = 9
- },
-/obj/item/stamp{
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/stamp/denied{
- pixel_y = -1;
- pixel_x = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"sB" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/hallway/fore)
-"sD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/barricade/wooden,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"sF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"sH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/item/kirbyplants{
- icon_state = "plant-09"
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"sI" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"sJ" = (
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"sL" = (
-/obj/structure/railing/wood{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"sM" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/techfloor,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"sN" = (
-/turf/open/floor/plating/asteroid/icerock/smooth,
-/area/outpost/external)
-"sP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"sQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/bar)
-"sR" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"sT" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/closet/secure_closet/freezer/wall/directional/east,
-/obj/item/clothing/suit/apron/chef,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/library)
-"sU" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"sV" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"sX" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/sign/poster/official/random{
- pixel_y = -32;
- pixel_x = 32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"ta" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/carpet,
-/area/outpost/hallway/central)
-"tb" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"td" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"te" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/turf/open/floor/plating,
-/area/outpost/crew/bar)
-"tf" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"ti" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line,
-/obj/effect/turf_decal/industrial/loading{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"tj" = (
-/turf/open/floor/engine/vacuum,
-/area/outpost/engineering/atmospherics)
-"tl" = (
-/obj/machinery/computer/slot_machine,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"tm" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"tp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"tr" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/starboard)
-"ts" = (
-/obj/machinery/door/window/brigdoor/eastleft{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"tt" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"tv" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"tx" = (
-/obj/structure/table/wood,
-/obj/item/papercutter{
- pixel_x = 7;
- pixel_y = 2
- },
-/obj/item/hand_tele{
- pixel_x = -13;
- pixel_y = 5
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"ty" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_atmo;
- icon = 'icons/obj/doors/airlocks/station/atmos.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- req_access_txt = "101"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"tz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"tA" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -8;
- pixel_y = 3
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"tC" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"tD" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"tE" = (
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/flora/ausbushes/lavendergrass{
- pixel_x = -5;
- pixel_y = 6
- },
-/obj/structure/flora/ausbushes/pointybush,
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"tF" = (
-/obj/effect/decal/cleanable/plasma,
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"tG" = (
-/obj/effect/decal/cleanable/food/flour,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"tI" = (
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"tJ" = (
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"tK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"tM" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/stamp/captain{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/railing,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"tN" = (
-/obj/structure/chair/sofa/brown/directional/north,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"tO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"tP" = (
-/obj/machinery/washing_machine,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/crew/library)
-"tQ" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"tV" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109";
- dir = 8
- },
-/turf/open/floor/concrete/reinforced,
-/area/outpost/maintenance/aft)
-"tW" = (
-/obj/machinery/computer/cargo{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"tX" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"tY" = (
-/obj/structure/chair/sofa/brown/corner/directional/north,
-/obj/structure/sign/poster/official/moth/epi{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"tZ" = (
-/obj/structure/chair/comfy/grey/directional/north,
-/obj/machinery/button/door{
- dir = 4;
- pixel_x = -28;
- pixel_y = 6;
- id = "outpost_security_desk";
- name = "Desk Shutter"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"ua" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"uc" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 1
- },
-/obj/item/pen/fountain{
- pixel_y = 2;
- pixel_x = 4
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"ue" = (
-/obj/structure/table/wood,
-/obj/structure/noticeboard{
- pixel_y = 30
- },
-/obj/item/storage/box/PDAs{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/storage/box/ids,
-/obj/item/storage/box/silver_ids{
- pixel_y = 7;
- pixel_x = 6
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"uf" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/aft)
-"ui" = (
-/obj/effect/turf_decal/atmos/nitrogen,
-/turf/open/floor/engine/n2,
-/area/outpost/engineering/atmospherics)
-"uj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/plasma,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/outpost/maintenance/aft)
-"uk" = (
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/concrete/reinforced,
-/area/outpost/crew/garden)
-"un" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"uo" = (
-/obj/item/stack/sheet/mineral/wood,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"up" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"uq" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"ur" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"us" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/mug{
- pixel_x = -7;
- pixel_y = -2
- },
-/obj/item/table_bell{
- pixel_x = -8;
- pixel_y = 7
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"ut" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"uu" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"uv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"uw" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"uD" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"uE" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/item/flashlight/lamp{
- pixel_x = -8;
- pixel_y = 13
- },
-/obj/item/storage/fancy/donut_box{
- pixel_y = 5;
- pixel_x = -2
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"uG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/sign/poster/contraband/robustmore_drinkfoods{
- pixel_x = -32
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"uH" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"uI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"uJ" = (
-/obj/structure/showcase/machinery/cloning_pod,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"uK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"uL" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"uP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/bag/tray/cafeteria{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32;
- pixel_y = -32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"uQ" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/bedsheet/brown,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"uR" = (
-/obj/effect/turf_decal/techfloor/corner,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"uS" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow/full,
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"uU" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"uV" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/aft)
-"uX" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/fore)
-"uZ" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"va" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/north,
-/obj/structure/closet/wall/directional/east{
- name = "Storage Locker"
- },
-/turf/open/floor/carpet,
-/area/outpost/hallway/central)
-"vc" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"vd" = (
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"ve" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"vf" = (
-/obj/structure/showcase/cyborg/old,
-/obj/effect/turf_decal/box/corners{
- dir = 4;
- icon_state = "box_corners"
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"vk" = (
-/obj/structure/table,
-/obj/machinery/microwave{
- pixel_y = 5
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- color = "#808080";
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"vl" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 1
- },
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/clothing/suit/space/engineer,
-/obj/item/clothing/head/helmet/space/light/engineer,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"vm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"vo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/closet/emcloset/wall/directional/north,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"vq" = (
-/obj/structure/sink/kitchen{
- dir = 4;
- pixel_x = -12
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/food/plant_smudge,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"vr" = (
-/obj/structure/sink{
- pixel_y = 23
- },
-/obj/structure/mirror{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"vs" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/item/kirbyplants/random,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"vu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"vv" = (
-/obj/structure/closet/bombcloset,
-/obj/effect/decal/cleanable/robot_debris,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"vw" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/garden)
-"vx" = (
-/turf/closed/mineral/random/jungle,
-/area/outpost/crew/garden)
-"vy" = (
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"vz" = (
-/obj/structure/grille,
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"vB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"vC" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/hallway/aft)
-"vD" = (
-/turf/open/floor/engine/co2,
-/area/outpost/engineering/atmospherics)
-"vE" = (
-/obj/effect/decal/cleanable/plasma,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"vG" = (
-/obj/machinery/door/poddoor/shutters/indestructible{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"vI" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"vJ" = (
-/obj/item/storage/box/maid,
-/obj/item/clothing/gloves/color/latex/nitrile/evil,
-/obj/item/clothing/head/soft/purple,
-/obj/item/clothing/shoes/galoshes,
-/obj/item/storage/box/mousetraps,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/reagent_containers/glass/rag,
-/obj/item/mop,
-/obj/item/soap/deluxe,
-/obj/structure/closet/wall/blue/directional/west{
- name = "Janitorial Closet"
- },
-/obj/machinery/door/window,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/crew/library)
-"vK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/libraryscanner,
-/obj/machinery/light/directional/south,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"vM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21";
- pixel_x = 7
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"vN" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/obj/machinery/computer/bounty,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"vO" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"vQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"vS" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-8"
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"vT" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"vV" = (
-/turf/open/space/basic,
-/area/space)
-"vW" = (
-/obj/structure/sign/logo{
- icon_state = "nanotrasen_sign5";
- pixel_y = 32
- },
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood";
- dir = 4
- },
-/area/outpost/hallway/central)
-"vY" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"vZ" = (
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"wa" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/alien/weeds,
-/obj/effect/decal/cleanable/xenoblood/xgibs/body,
-/obj/effect/decal/cleanable/xenoblood/xgibs,
-/obj/effect/decal/cleanable/xenoblood/xgibs/up,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"wc" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"wd" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"we" = (
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"wf" = (
-/obj/structure/flora/rock/jungle{
- pixel_x = 12
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"wg" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"wh" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor/corner,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"wj" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"wk" = (
-/obj/machinery/atmospherics/components/unary/passive_vent/layer2{
- dir = 8
- },
-/turf/open/floor/engine/air,
-/area/outpost/engineering/atmospherics)
-"wl" = (
-/obj/machinery/cryopod,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"wn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"wp" = (
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"wq" = (
-/obj/structure/elevator_platform,
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/crew/library)
-"wt" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"wu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"wy" = (
-/obj/structure/chair/comfy/grey/directional/west,
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"wz" = (
-/obj/effect/turf_decal/techfloor/orange,
-/obj/machinery/computer/monitor{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"wB" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/spawner,
-/obj/structure/window/reinforced/spawner/north,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"wC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"wE" = (
-/turf/open/floor/concrete/reinforced,
-/area/outpost/hallway/starboard)
-"wF" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair/stool/bar,
-/obj/effect/decal/cleanable/food/egg_smudge{
- pixel_x = 6;
- pixel_y = -5
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"wH" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/fore)
-"wI" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/turf/open/floor/plating,
-/area/outpost/operations)
-"wJ" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"wK" = (
-/obj/machinery/cryopod{
- dir = 8
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"wL" = (
-/obj/structure/table/wood,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_y = 5
- },
-/obj/structure/sign/poster/solgov/paperwork{
- pixel_y = 32
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"wM" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-4"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"wN" = (
-/obj/structure/rack{
- color = "#A47449";
- pixel_y = 11
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/grown/log{
- pixel_x = -7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 20
- },
-/obj/item/grown/log{
- pixel_y = 25
- },
-/obj/item/statuebust{
- pixel_x = 6
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/vacant_rooms/office)
-"wQ" = (
-/obj/structure/flora/rock/pile/icy,
-/turf/open/floor/plating/ice/smooth,
-/area/outpost/hallway/fore)
-"wR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"wS" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/operations)
-"wT" = (
-/obj/structure/table/wood,
-/obj/item/radio/intercom/directional/west{
- freerange = 1;
- name = "Syndicate Radio Intercom"
- },
-/obj/item/folder/red{
- pixel_x = 3
- },
-/obj/item/storage/fancy/cigarettes/cigpack_robustgold{
- pixel_x = -6
- },
-/obj/item/lighter{
- pixel_x = -5;
- pixel_y = -1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"wV" = (
-/obj/structure/closet/radiation,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"wW" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"wY" = (
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 1
- },
-/area/outpost/engineering)
-"wZ" = (
-/obj/item/paper_bin{
- pixel_x = -7;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = -8
- },
-/obj/item/pen/charcoal{
- pixel_y = 8;
- pixel_x = -3
- },
-/obj/item/flashlight/lamp/green{
- pixel_y = 8;
- pixel_x = 6
- },
-/obj/item/phone{
- pixel_x = 8;
- pixel_y = -8
- },
-/obj/structure/table/wood,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"xa" = (
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"xd" = (
-/obj/machinery/power/floodlight,
-/obj/effect/decal/cleanable/garbage{
- pixel_x = -9;
- pixel_y = -6
- },
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"xe" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"xf" = (
-/obj/structure/table_frame/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"xh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"xk" = (
-/obj/structure/bonfire/prelit,
-/obj/effect/turf_decal/weather/snow{
- dir = 1
- },
-/turf/open/floor/plating/asteroid/snow/under/lit,
-/area/outpost/external)
-"xm" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/banner,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"xo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"xp" = (
-/obj/effect/turf_decal/techfloor,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"xr" = (
-/obj/structure/table/wood,
-/obj/item/trash/plate{
- pixel_x = 1;
- pixel_y = 6
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"xs" = (
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"xt" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/banner/command/mundane,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"xu" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"xv" = (
-/obj/structure/chair/sofa/brown/directional/north,
-/obj/structure/sign/poster/contraband/free_tonto{
- pixel_y = -32
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"xw" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow/full,
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/item/radio/intercom/directional/south,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"xy" = (
-/obj/structure/table,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"xA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/machinery/light/built/directional/south,
-/obj/item/wirerod,
-/turf/open/floor/wood{
- icon_state = "wood-broken"
- },
-/area/outpost/maintenance/aft)
-"xC" = (
-/obj/structure/chair/office,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"xD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair/wood{
- pixel_y = 3;
- dir = 4;
- pixel_x = -7
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"xE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"xF" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"xH" = (
-/obj/machinery/door/window/brigdoor/security,
-/obj/structure/rack,
-/obj/effect/decal/cleanable/insectguts{
- pixel_x = 13;
- pixel_y = 5
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"xI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/sign/poster/retro/pdaancient{
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"xK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"xL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/wood{
- dir = 8
- },
-/obj/structure/sign/poster/contraband/missing_gloves{
- pixel_y = 32
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"xM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/ammo_casing/spent{
- pixel_x = 4;
- pixel_y = 2
- },
-/obj/item/ammo_casing/spent{
- pixel_x = -2;
- pixel_y = -6
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"xO" = (
-/obj/structure/rack,
-/obj/effect/decal/cleanable/wrapping{
- pixel_y = -2
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"xQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"xR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"xT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"xU" = (
-/obj/structure/sign/poster/official/help_others,
-/turf/closed/indestructible/reinforced,
-/area/outpost/hallway/central)
-"xV" = (
-/obj/machinery/light/dim/directional/south,
-/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"xW" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 10
- },
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/cell_charger,
-/obj/item/stock_parts/cell/high{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/item/stock_parts/cell/high,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"xY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"xZ" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/item/banner,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"yb" = (
-/obj/machinery/light/broken/directional/east,
-/obj/item/light/tube/broken,
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"yc" = (
-/obj/machinery/door/window/brigdoor/southright,
-/obj/structure/sign/poster/contraband/starkist{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"ye" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"yh" = (
-/obj/structure/rack,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"yi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"yj" = (
-/obj/structure/barricade/wooden/snowed,
-/turf/open/floor/plating/asteroid/snow/airless,
-/area/outpost/external)
-"yl" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"ym" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/corner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"yn" = (
-/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"yo" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"yp" = (
-/obj/item/wallframe/light_fixture{
- pixel_y = -5;
- pixel_x = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"yr" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"ys" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"yy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/siding/wood,
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/wood,
-/area/outpost/operations)
-"yA" = (
-/obj/structure/closet/secure_closet/ertCom,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"yB" = (
-/obj/structure/table/wood,
-/obj/machinery/jukebox/boombox{
- pixel_y = 5
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/storage/fancy/cigarettes/cigpack_robustgold{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/lighter{
- pixel_x = -1
- },
-/obj/item/clothing/mask/cigarette/dromedary{
- pixel_x = -5
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"yD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/structure/window/reinforced/spawner/north,
-/obj/item/screwdriver,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"yE" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating{
- icon_state = "platingdmg1"
- },
-/area/outpost/maintenance/aft)
-"yF" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/overlay/holoray,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"yG" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/lamp{
- pixel_y = 10;
- pixel_x = -7
- },
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"yI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/stool/bar{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"yJ" = (
-/obj/item/kirbyplants{
- icon_state = "plant-09"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"yK" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel,
-/area/outpost/maintenance/fore)
-"yL" = (
-/obj/machinery/door/airlock/grunge,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"yN" = (
-/obj/machinery/computer/cryopod/directional/north{
- pixel_y = -5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/outpost/crew/cryo)
-"yO" = (
-/obj/structure/table,
-/obj/item/circuitboard/machine/vendor{
- pixel_y = 6;
- pixel_x = 2
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"yP" = (
-/obj/structure/bed{
- icon_state = "dirty_mattress"
- },
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/aft)
-"yQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/structure/table/wood,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"yV" = (
-/obj/structure/table/reinforced,
-/obj/item/trash/plate{
- pixel_x = 7
- },
-/obj/item/trash/plate{
- pixel_x = 7;
- pixel_y = 2
- },
-/obj/item/trash/plate{
- pixel_x = 7;
- pixel_y = 4
- },
-/obj/item/trash/plate{
- pixel_x = 7;
- pixel_y = 6
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"yW" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/aft)
-"yX" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"yZ" = (
-/obj/structure/barricade/wooden/crude{
- layer = 3.13
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/indestructible{
- name = "Showcase Storage";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"za" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"zb" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"ze" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/chair,
-/obj/structure/sign/poster/official/high_class_martini{
- pixel_x = -32
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"zf" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"zi" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"zj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"zl" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 5
- },
-/obj/structure/closet/firecloset/wall/directional/north,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"zm" = (
-/obj/machinery/computer/security,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"zn" = (
-/obj/machinery/door/poddoor/ert{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"zo" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/photo_album{
- pixel_y = 10;
- pixel_x = 4
- },
-/obj/machinery/recharger{
- pixel_x = -5
- },
-/obj/machinery/recharger{
- pixel_x = 6
- },
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"zq" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"zs" = (
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32
- },
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"zu" = (
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"zv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"zy" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"zz" = (
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"zB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/food/plant_smudge,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"zD" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 9
- },
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/clothing/suit/space/engineer,
-/obj/item/clothing/head/helmet/space/light/engineer,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"zF" = (
-/obj/machinery/light/broken/directional/south,
-/obj/structure/table/reinforced,
-/obj/item/t_scanner{
- pixel_y = -1;
- pixel_x = -5
- },
-/obj/item/stack/packageWrap,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"zG" = (
-/obj/structure/chair/sofa/brown/left/directional/east,
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/vomit/old{
- pixel_x = 7;
- pixel_y = -5
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"zH" = (
-/obj/machinery/light/built/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/garbage{
- pixel_y = 10;
- pixel_x = -3
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"zI" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"zK" = (
-/obj/structure/chair/comfy/orange/directional/west,
-/obj/item/toy/plush/moth,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"zL" = (
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"zM" = (
-/obj/structure/bookcase/random/fiction,
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"zO" = (
-/obj/structure/flora/tree/palm{
- pixel_x = 16
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"zP" = (
-/obj/structure/closet/wall/red/directional/east{
- name = "Bartender's locker"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"zQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"zR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair/pew/left{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"zS" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"zV" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"zY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"zZ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/obj/machinery/computer/bounty,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"Aa" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/computer/communications{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"Ab" = (
-/obj/structure/elevator_platform,
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/cargo)
-"Ac" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Ad" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/operations)
-"Af" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Ag" = (
-/obj/machinery/door/airlock{
- req_access_txt = "109";
- explosion_block = 2;
- normal_integrity = 1000
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"Ai" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 10
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Aj" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/structure/filingcabinet/double,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Ak" = (
-/obj/structure/flora/ausbushes/leafybush,
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"Al" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_x = 10;
- pixel_y = 13
- },
-/obj/effect/decal/cleanable/vomit/old{
- pixel_y = 8
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"Am" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Ao" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/item/crowbar/power{
- pixel_y = 5
- },
-/obj/item/crowbar/power,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"Ap" = (
-/obj/structure/chair/plastic{
- dir = 4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"As" = (
-/obj/machinery/computer/med_data,
-/obj/effect/turf_decal/trimline/opaque/green/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"At" = (
-/obj/structure/fluff/hedge{
- icon_state = "hedge-4"
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"Au" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Ax" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/structure/railing/corner/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Ay" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/obj/effect/mapping_helpers/airlock/abandoned,
-/obj/effect/mapping_helpers/airlock/locked,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Az" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"AA" = (
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"AB" = (
-/turf/open/floor/plating/asteroid/snow/airless,
-/area/outpost/external)
-"AC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"AD" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"AE" = (
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/hallway/fore)
-"AF" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"AK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"AL" = (
-/obj/effect/landmark/outpost/elevator{
- shaft = "2"
- },
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/hallway/fore)
-"AM" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"AN" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 6
- },
-/obj/structure/flora/ausbushes/sparsegrass{
- pixel_y = 9;
- pixel_x = -9
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"AR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"AS" = (
-/obj/machinery/door/airlock/grunge{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"AT" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"AV" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/fence/door,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"AW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/sign/poster/official/random{
- pixel_y = -32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Bb" = (
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Bc" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Bf" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/turf/open/floor/plating,
-/area/outpost/external)
-"Bg" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 5
- },
-/obj/machinery/smartfridge/bloodbank/preloaded,
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"Bi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/newscaster/directional/west,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"Bj" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/beer{
- pixel_x = -11;
- pixel_y = 12
- },
-/obj/item/reagent_containers/food/drinks/beer{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/toy/cards/deck{
- pixel_y = 2;
- pixel_x = -5
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Bm" = (
-/obj/structure/table/wood/reinforced,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/paper{
- pixel_x = 3;
- pixel_y = 7
- },
-/obj/item/pen/charcoal{
- pixel_y = 8
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"Br" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/light/small/directional/north,
-/obj/effect/decal/cleanable/food/flour,
-/obj/structure/chair/sofa/brown/right/directional/south,
-/obj/item/toy/figure/botanist{
- pixel_x = 2
- },
-/obj/item/toy/figure/clown{
- pixel_x = 10
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Bs" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/generic,
-/obj/item/toy/foamblade,
-/obj/item/trash/can,
-/obj/item/trash/pistachios{
- pixel_x = -3
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Bu" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Bw" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/robot_debris,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/wood/walnut,
-/area/outpost/crew/bar)
-"Bx" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"By" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/outpost/maintenance/fore)
-"Bz" = (
-/obj/machinery/recharger,
-/obj/structure/railing{
- dir = 4
- },
-/obj/machinery/airalarm/directional/north,
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"BA" = (
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"BB" = (
-/obj/effect/decal/cleanable/plasma,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel,
-/area/outpost/maintenance/fore)
-"BC" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/freezer{
- dir = 4;
- req_access_txt = "109"
- },
-/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
-/area/outpost/crew/canteen)
-"BD" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/obj/machinery/light/directional/west,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"BE" = (
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"BF" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sink/kitchen{
- dir = 4;
- pixel_x = -12
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/wrapping,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/library)
-"BG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"BH" = (
-/obj/effect/turf_decal/atmos/nitrous_oxide,
-/turf/open/floor/engine/n2o,
-/area/outpost/engineering/atmospherics)
-"BI" = (
-/obj/machinery/door/window/brigdoor/southright,
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/glowstick,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"BJ" = (
-/obj/structure/noticeboard{
- pixel_y = 31
- },
-/obj/item/storage/box/matches,
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/obj/item/grown/log{
- pixel_x = 7;
- pixel_y = 14
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/vacant_rooms/office)
-"BL" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"BN" = (
-/obj/structure/girder/reinforced,
-/obj/effect/decal/cleanable/molten_object/large{
- pixel_x = -13;
- pixel_y = -3
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"BQ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/overlay/holoray,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"BR" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"BS" = (
-/obj/structure/urinal{
- pixel_y = 33
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/chem_pile,
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plating/foam,
-/area/outpost/maintenance/aft)
-"BT" = (
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"BV" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"BX" = (
-/obj/machinery/light/small/broken/directional/west,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"BY" = (
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Ca" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/fullgrass,
-/obj/structure/flora/ausbushes/fernybush,
-/turf/open/floor/grass,
-/area/outpost/hallway/aft)
-"Cc" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/firealarm/directional/east,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Cd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Ce" = (
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Ci" = (
-/obj/structure/showcase/perfect_employee,
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Cj" = (
-/obj/structure/girder,
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Ck" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/engineering/atmospherics)
-"Cl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"Cn" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/trash/pistachios,
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"Co" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Cp" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"Cs" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 9
- },
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Cv" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/machinery/airalarm/directional/west,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/operations)
-"Cw" = (
-/obj/structure/chair/sofa/brown/left/directional/south,
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Cy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"CA" = (
-/obj/structure/table/wood,
-/obj/machinery/computer/med_data/laptop{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"CC" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"CD" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"CE" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"CF" = (
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"CG" = (
-/obj/effect/landmark/outpost/elevator{
- shaft = "1"
- },
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/hallway/fore)
-"CH" = (
-/obj/structure/barricade/wooden,
-/obj/machinery/door/poddoor/shutters/preopen{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"CJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/girder/displaced,
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"CK" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/computer/crew,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"CL" = (
-/obj/structure/railing,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/structure/table,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"CN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"CQ" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"CU" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/loading{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"CV" = (
-/obj/structure/grille,
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"CW" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"CZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil{
- icon_state = "streak5"
- },
-/obj/effect/decal/cleanable/robot_debris{
- pixel_y = 1
- },
-/obj/effect/decal/cleanable/robot_debris/limb{
- pixel_y = 4;
- pixel_x = -4
- },
-/obj/effect/decal/cleanable/robot_debris/gib{
- icon_state = "peaceborg-noir"
- },
-/obj/effect/decal/cleanable/oil{
- icon_state = "floor6";
- pixel_y = 14;
- pixel_x = -16
- },
-/obj/effect/decal/cleanable/oil{
- icon_state = "streak4";
- pixel_x = -13;
- pixel_y = -11
- },
-/obj/effect/decal/cleanable/ash/large{
- pixel_x = 5;
- pixel_y = -1
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Db" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Df" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Dg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"Dh" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Di" = (
-/turf/open/floor/engine/n2o,
-/area/outpost/engineering/atmospherics)
-"Dk" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Dl" = (
-/obj/machinery/computer/card,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Dm" = (
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/reagent_dispensers,
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"Dp" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Ds" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/effect/turf_decal/box/corners,
-/obj/item/storage/pill_bottle/floorpill/full{
- pixel_x = -8
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Dt" = (
-/obj/machinery/power/floodlight,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Du" = (
-/obj/machinery/computer/secure_data{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Dw" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/window/reinforced/spawner,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Dy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair{
- dir = 4;
- pixel_x = -8
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"DD" = (
-/obj/effect/decal/cleanable/glass{
- pixel_y = -10
- },
-/turf/open/floor/plating/airless,
-/area/outpost/maintenance/fore)
-"DE" = (
-/obj/structure/flora/rock/icy,
-/turf/open/floor/plating/ice/smooth,
-/area/outpost/hallway/starboard)
-"DF" = (
-/obj/item/kirbyplants/random,
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"DH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/table_frame/wood,
-/obj/structure/fluff/paper/stack,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"DJ" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"DL" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/contraband/ambrosia_vulgaris{
- pixel_x = -32
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"DM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"DO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"DP" = (
-/obj/machinery/computer/crew,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"DR" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"DS" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/bar)
-"DU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"DV" = (
-/obj/structure/table/wood,
-/obj/machinery/computer/med_data/laptop{
- dir = 4;
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"DY" = (
-/obj/structure/railing,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"DZ" = (
-/obj/machinery/vending/snack,
-/turf/open/floor/plasteel,
-/area/outpost/hallway/fore)
-"Eb" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Ec" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Ed" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Ee" = (
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Ef" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/lamp{
- pixel_x = -2;
- pixel_y = 12
- },
-/obj/item/export_scanner{
- pixel_x = -3;
- pixel_y = -10
- },
-/obj/item/toy/figure/qm{
- pixel_x = -9;
- pixel_y = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"Eg" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/plasma,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Eh" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/item/kirbyplants{
- icon_state = "plant-03"
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Ei" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/maintenance/fore)
-"El" = (
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"Em" = (
-/obj/machinery/door/airlock{
- req_access_txt = "109";
- explosion_block = 2;
- normal_integrity = 1000
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/crew/library)
-"En" = (
-/obj/structure/chair/comfy/grey/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Ep" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/stool/bar{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Eq" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"Es" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Et" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Ev" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Ew" = (
-/obj/structure/flora/grass/jungle,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Ex" = (
-/turf/open/floor/plating/ice/smooth,
-/area/outpost/hallway/fore)
-"Ey" = (
-/obj/structure/bookcase/random/fiction,
-/obj/item/radio/intercom/directional/west,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"Ez" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/bottle/tomatojuice{
- pixel_y = 2
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_x = 10;
- pixel_y = 6
- },
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_x = -8;
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/food/tomato_smudge{
- pixel_y = -6
- },
-/obj/structure/sign/painting/library{
- pixel_y = 32
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"EA" = (
-/obj/machinery/cryopod{
- dir = 4
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"EB" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/fluff/divine/nexus,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"EC" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"EE" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
- },
-/obj/machinery/recharger{
- pixel_x = -5
- },
-/obj/machinery/recharger{
- pixel_x = 6
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"EF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"EH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"EJ" = (
-/obj/structure/chair/pew/left{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"EM" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/structure/railing/corner/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"EN" = (
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/outpost/external)
-"EO" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/power/terminal{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"EP" = (
-/obj/structure/table,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"EU" = (
-/obj/structure/filingcabinet,
-/obj/structure/filingcabinet{
- pixel_x = 11
- },
-/obj/structure/filingcabinet{
- pixel_x = -11
- },
-/obj/structure/noticeboard{
- pixel_y = 31
- },
-/obj/effect/turf_decal/siding/wood/end{
- dir = 1
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms)
-"EV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"EW" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"EY" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
-/area/outpost/maintenance/fore)
-"EZ" = (
-/obj/structure/closet/crate/solarpanel_small,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Fd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/fluff/hedge,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Fe" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/aft)
-"Ff" = (
-/obj/structure/rack,
-/obj/machinery/light/directional/east,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Fh" = (
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood"
- },
-/area/outpost/hallway/fore)
-"Fi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Fm" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"Fn" = (
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = 9;
- pixel_y = 6
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"Fo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/radio/intercom/directional/north,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"Fp" = (
-/obj/effect/turf_decal/techfloor/orange,
-/obj/structure/railing{
- dir = 2;
- layer = 4.1
- },
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering/atmospherics)
-"Fq" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood";
- dir = 4
- },
-/area/outpost/hallway/central)
-"Fs" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/bag/tray/cafeteria{
- pixel_x = 5;
- pixel_y = -4
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Ft" = (
-/turf/open/floor/plating/asteroid/icerock,
-/area/outpost/external)
-"Fu" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Fw" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/item/kirbyplants{
- icon_state = "plant-10"
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Fx" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Fy" = (
-/obj/effect/turf_decal/techfloor/orange,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Fz" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"FA" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"FC" = (
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"FD" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/structure/chair,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"FG" = (
-/obj/machinery/telecomms/allinone{
- intercept = 1
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"FL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/caution{
- pixel_y = 6
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"FM" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"FN" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"FQ" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"FR" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/plasma,
-/obj/item/banner/command/mundane,
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"FT" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"FU" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/security/armory)
-"FV" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Gc" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Gd" = (
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"Ge" = (
-/obj/structure/window/reinforced/spawner,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1;
- color = "#808080"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Gh" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- req_access_txt = "109"
- },
-/turf/open/floor/plating,
-/area/outpost/crew/lounge)
-"Gi" = (
-/obj/structure/closet/wall/directional/south{
- name = "Storage Locker"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"Gj" = (
-/obj/structure/table/optable,
-/obj/machinery/defibrillator_mount/loaded{
- pixel_y = 24
- },
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"Gk" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Gm" = (
-/obj/machinery/computer/monitor{
- dir = 1
- },
-/obj/structure/railing,
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Gn" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/door/poddoor/shutters/indestructible{
- name = "Showcase Storage";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Gq" = (
-/obj/machinery/door/poddoor/multi_tile/three_tile_hor,
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/fore)
-"Gr" = (
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/power/smes/magical{
- output_level = 200000
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/engineering)
-"Gs" = (
-/obj/machinery/door/window/brigdoor/westright,
-/obj/machinery/door/window/brigdoor/westright{
- dir = 4
- },
-/obj/structure/fans/tiny,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/operations)
-"Gt" = (
-/obj/structure/railing/corner/wood,
-/obj/structure/railing/corner/wood{
- pixel_y = 26
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Gu" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Gv" = (
-/obj/item/toy/snowball{
- pixel_x = -7;
- pixel_y = -10
- },
-/obj/item/toy/snowball{
- pixel_x = 1;
- pixel_y = -10
- },
-/obj/item/toy/snowball{
- pixel_x = 9;
- pixel_y = -10
- },
-/obj/item/toy/snowball{
- pixel_x = 4;
- pixel_y = -2
- },
-/obj/item/toy/snowball{
- pixel_x = -3;
- pixel_y = -2
- },
-/obj/item/toy/snowball{
- pixel_y = 5;
- pixel_x = 1
- },
-/obj/effect/turf_decal/weather/snow{
- dir = 10
- },
-/turf/open/floor/plating/asteroid/snow/under/lit,
-/area/outpost/external)
-"Gw" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/outpost{
- dir = 4;
- name = "Briefing Room"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security/armory)
-"Gx" = (
-/turf/open/floor/plating,
-/area/outpost/hallway/fore)
-"Gy" = (
-/obj/structure/railing/wood{
- layer = 3.1
- },
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"Gz" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/broken/directional/north,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"GA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/machinery/vending/clothing,
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"GB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"GC" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"GD" = (
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/library)
-"GE" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"GG" = (
-/obj/structure/chair/sofa/brown/directional/north,
-/obj/effect/decal/cleanable/vomit/old{
- pixel_y = 7
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"GH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/showcase/mecha/marauder,
-/obj/effect/turf_decal/box/corners{
- dir = 4;
- icon_state = "box_corners"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"GI" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"GJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"GK" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"GL" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/starboard)
-"GN" = (
-/obj/effect/turf_decal/trimline/opaque/purple/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"GO" = (
-/obj/structure/showcase/cyborg/old,
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"GQ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 1
- },
-/area/outpost/engineering)
-"GR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"GS" = (
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/outpost/crew/bar)
-"GT" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"GU" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"GW" = (
-/obj/structure/toilet{
- dir = 4;
- pixel_x = -1;
- pixel_y = 5
- },
-/obj/structure/curtain/bounty,
-/turf/open/floor/plating/catwalk_floor,
-/area/outpost/security)
-"GY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/broken/directional/south,
-/obj/structure/bed{
- icon_state = "dirty_mattress"
- },
-/obj/item/storage/pill_bottle/happy{
- pixel_y = -11;
- pixel_x = -13
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Hb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/cargo)
-"Hh" = (
-/obj/machinery/chem_master/condimaster,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"Hi" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/east,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Hj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"Hk" = (
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/window/reinforced/spawner,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Ho" = (
-/obj/structure/table/wood/reinforced,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/item/storage/fancy/donut_box{
- pixel_y = 6
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"Hp" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/decal/cleanable/robot_debris,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Hq" = (
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Hs" = (
-/obj/machinery/vending/cart{
- req_access_txt = "57"
- },
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Hu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/decal/cleanable/wrapping,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Hv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"Hx" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/railing/wood,
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"Hy" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/decal/cleanable/glass,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"HA" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"HC" = (
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"HD" = (
-/obj/machinery/door/airlock,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"HE" = (
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 8
- },
-/area/outpost/engineering/atmospherics)
-"HF" = (
-/obj/machinery/computer/card,
-/obj/effect/turf_decal/trimline/opaque/green/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"HG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"HH" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/number/three,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"HI" = (
-/obj/effect/turf_decal/techfloor{
- dir = 5
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"HJ" = (
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"HL" = (
-/obj/effect/turf_decal/techfloor/orange/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"HM" = (
-/obj/structure/chair/office{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"HO" = (
-/obj/machinery/door/window/brigdoor/eastleft{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"HS" = (
-/obj/structure/chair/comfy/orange/directional/west,
-/obj/item/toy/plush/beeplushie,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"HT" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"HW" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"HY" = (
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/outpost/external)
-"HZ" = (
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Ia" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Ib" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"Ie" = (
-/obj/structure/railing,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"If" = (
-/obj/structure/rack,
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Ig" = (
-/obj/machinery/door/airlock/outpost{
- dir = 4;
- icon = 'icons/obj/doors/airlocks/external/external.dmi';
- overlays_file = 'icons/obj/doors/airlocks/external/overlays.dmi';
- assemblytype = /obj/structure/door_assembly/door_assembly_ext;
- doorClose = 'sound/machines/airlocks/external/airlock_ext_close.ogg';
- doorOpen = 'sound/machines/airlocks/external/airlock_ext_open.ogg'
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Ih" = (
-/obj/machinery/chem_master/condimaster,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/greenglow,
-/obj/structure/sign/poster/retro/smile{
- pixel_y = -32
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"Ij" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Ik" = (
-/obj/structure/railing,
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/corner_steel_grid{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Il" = (
-/obj/structure/alien/weeds,
-/obj/structure/alien/resin/wall,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"In" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/curtain{
- color = "#363636"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Io" = (
-/obj/machinery/door/airlock/public/glass,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/fore)
-"Iq" = (
-/obj/structure/table/wood,
-/obj/item/trash/plate{
- pixel_x = 1;
- pixel_y = -3
- },
-/obj/item/reagent_containers/food/snacks/meatbun,
-/obj/item/reagent_containers/food/drinks/soda_cans/orange_soda{
- pixel_y = 12;
- pixel_x = -8
- },
-/obj/structure/sign/poster/contraband/eat{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"It" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/vacant_rooms/office)
-"Iu" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Iv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/hallway/central)
-"Iy" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/computer/med_data,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Iz" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"IB" = (
-/obj/machinery/space_heater,
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/decal/cleanable/blood/old,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"IC" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"IE" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/taperecorder{
- pixel_y = -5;
- pixel_x = 10
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"IF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"IH" = (
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"II" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"IJ" = (
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"IL" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/brown,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"IM" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"IN" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"IP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"IR" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"IS" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"IW" = (
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood";
- dir = 4
- },
-/area/outpost/hallway/central)
-"IY" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"IZ" = (
-/obj/machinery/computer/crew,
-/obj/effect/turf_decal/trimline/opaque/green/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Ja" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Jb" = (
-/obj/effect/landmark/outpost/elevator{
- shaft = "4"
- },
-/turf/open/floor/plasteel/elevatorshaft,
-/area/outpost/hallway/fore)
-"Jc" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"Jf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"Jh" = (
-/obj/structure/table/wood,
-/obj/item/storage/photo_album{
- pixel_y = 2;
- pixel_x = 2
- },
-/obj/item/toy/figure/ian{
- pixel_x = -3
- },
-/obj/item/storage/pill_bottle/happy{
- pixel_y = -1;
- pixel_x = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"Ji" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/structure/closet/secure_closet/freezer/fridge,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/canteen)
-"Jj" = (
-/obj/structure/chair/office{
- dir = 8
- },
-/obj/effect/decal/cleanable/generic,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/item/radio/intercom/directional/north{
- icon_state = "clip_headset"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"Jm" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Jp" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Jq" = (
-/obj/structure/table/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/flashlight/lamp/green{
- pixel_x = 7;
- pixel_y = 14;
- layer = 3.1
- },
-/obj/item/toy/cards/deck{
- pixel_x = -2;
- pixel_y = 4
- },
-/obj/item/toy/cards/deck/kotahi{
- pixel_x = 5;
- pixel_y = 2
- },
-/obj/item/storage/pill_bottle/dice{
- pixel_x = -11
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"Js" = (
-/obj/structure/table,
-/obj/item/table_bell{
- pixel_x = -7
- },
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/pen{
- pixel_x = 4;
- pixel_y = 4
- },
-/turf/open/floor/carpet/blue,
-/area/outpost/hallway/central)
-"Jt" = (
-/obj/machinery/modular_computer/console/preset/command{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Ju" = (
-/obj/structure/table,
-/obj/item/reagent_containers/condiment/peppermill{
- desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
- pixel_x = 9;
- pixel_y = 2
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- desc = "Salt. From space oceans, presumably. A staple of modern medicine.";
- pixel_x = 9;
- pixel_y = 12
- },
-/obj/item/trash/plate{
- pixel_x = -6
- },
-/obj/item/trash/plate{
- pixel_x = -6;
- pixel_y = 2
- },
-/obj/item/trash/plate{
- pixel_x = -6;
- pixel_y = 4
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"Jv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/plasma,
-/obj/machinery/light/small/directional/east,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"Jw" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"JB" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"JC" = (
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"JE" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/contraband/xenofauna_parasite{
- pixel_y = -32
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"JH" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"JJ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/airalarm/directional/east,
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"JK" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"JM" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"JO" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/operations)
-"JP" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/vacant_rooms)
-"JR" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"JS" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"JX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/railing/corner/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"JY" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/alien/weeds/node,
-/obj/effect/decal/cleanable/xenoblood/xtracks,
-/obj/effect/decal/cleanable/xenoblood/xtracks{
- pixel_y = 21
- },
-/obj/effect/decal/cleanable/xenoblood/xtracks{
- pixel_y = -19
- },
-/obj/effect/decal/cleanable/xenoblood,
-/obj/effect/decal/cleanable/xenoblood/xgibs/torso,
-/obj/effect/decal/cleanable/xenoblood/xgibs/core{
- pixel_x = -4;
- pixel_y = -6
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"JZ" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/vacant_rooms)
-"Kb" = (
-/obj/structure/table,
-/obj/item/circuitboard/machine/vendor,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"Kd" = (
-/obj/machinery/computer/operating,
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/structure/sign/poster/official/cleanliness{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"Ke" = (
-/obj/machinery/computer/aifixer{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/purple/filled/line,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Kf" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Kg" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/stool/bar{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Kh" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Kj" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Kk" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/railing/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/emcloset/wall/directional/east,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Kn" = (
-/obj/machinery/telecomms/allinone/indestructable,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/operations)
-"Ko" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Kp" = (
-/obj/machinery/door/airlock{
- name = "WC";
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/ridged{
- color = "#4c535b"
- },
-/area/outpost/crew/library)
-"Kt" = (
-/obj/structure/bed{
- pixel_x = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/item/bedsheet/head_of_personnel,
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"Kv" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/table_bell/brass{
- pixel_y = -9;
- pixel_x = 7
- },
-/obj/item/candle/infinite{
- pixel_x = 11;
- pixel_y = 10
- },
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"Kw" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Kx" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/vehicle/ridden/atv{
- dir = 1
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"Kz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"KA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/closet/crate/bin,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"KC" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"KD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/wirecutters{
- pixel_x = 11;
- pixel_y = -8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"KF" = (
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/machinery/light/directional/north,
-/obj/machinery/button/door{
- id = "outpost_bridge_lockdown";
- req_access_txt = "101";
- pixel_x = -8;
- pixel_y = 8;
- name = "Bridge Lockdown"
- },
-/obj/structure/table/wood/reinforced,
-/obj/machinery/button/door{
- id = "outpost_office_lockdown";
- req_access_txt = "101";
- pixel_x = -8;
- name = "Office Lockdown"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"KG" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/overlay/holoray{
- pixel_y = -47
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"KL" = (
-/obj/structure/flora/junglebush,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"KM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"KP" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"KQ" = (
-/obj/structure/barricade/security,
-/obj/structure/curtain/cloth/grey,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"KT" = (
-/obj/machinery/door/window/brigdoor/southright{
- req_access_txt = "1"
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- color = "#808080";
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"KU" = (
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/outpost/hallway/fore)
-"KV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"KW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"KX" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"KY" = (
-/obj/structure/flora/grass/both,
-/turf/open/floor/plating/asteroid/snow/airless,
-/area/outpost/external)
-"Lf" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Lg" = (
-/obj/machinery/deepfryer,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"Lh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/logo{
- icon_state = "nanotrasen_sign2";
- pixel_y = 32
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Lj" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair/stool/bar,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"Ll" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Ln" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/cargo)
-"Lo" = (
-/obj/machinery/light/directional/west,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Lp" = (
-/obj/machinery/pipedispenser,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Lr" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 5
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Ls" = (
-/obj/machinery/pdapainter{
- pixel_y = 2
- },
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Lu" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/obj/effect/landmark/ert_outpost_spawn,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"Lv" = (
-/obj/structure/flora/tree/pine,
-/obj/structure/flora/grass/both,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/fore)
-"Lw" = (
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-11"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Lx" = (
-/obj/effect/turf_decal/borderfloorwhite{
- dir = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white,
-/area/outpost/crew/library)
-"Lz" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_mhatch;
- icon = 'icons/obj/doors/airlocks/hatch/maintenance.dmi';
- overlays_file = 'icons/obj/doors/airlocks/hatch/overlays.dmi';
- req_access_txt = "101"
- },
-/turf/open/floor/plating,
-/area/outpost/engineering/atmospherics)
-"LC" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/bedsheet/brown,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"LD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"LE" = (
-/obj/machinery/computer/bounty{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"LF" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 9
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 10
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"LG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"LI" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"LJ" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4;
- layer = 2.37
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-9"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"LK" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"LM" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"LN" = (
-/obj/machinery/light/small/broken/directional/north,
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_y = 3;
- pixel_x = 4
- },
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_y = -3;
- pixel_x = -9
- },
-/obj/item/reagent_containers/food/drinks/bottle/cognac{
- pixel_x = 5;
- pixel_y = -5
- },
-/obj/item/toy/plush/goatplushie{
- pixel_y = 12;
- pixel_x = -9
- },
-/obj/effect/decal/cleanable/greenglow{
- pixel_y = -6
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"LO" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/outpost/engineering/atmospherics)
-"LP" = (
-/obj/structure/girder/displaced,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"LQ" = (
-/obj/structure/flora/rock/icy,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/fore)
-"LS" = (
-/obj/structure/frame/machine,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"LV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/pew/right{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"LW" = (
-/obj/machinery/door/airlock/command{
- name = "Council Chamber";
- req_access_txt = "19";
- security_level = 6;
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"LX" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"LZ" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Mb" = (
-/obj/structure/showcase/perfect_employee,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Mc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/structure/railing/wood{
- dir = 5
- },
-/obj/structure/chair,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Md" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/pill_bottle/dice{
- pixel_x = -8;
- pixel_y = 6
- },
-/obj/item/toy/cards/deck{
- pixel_x = 3;
- pixel_y = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Me" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/vending/cigarette,
-/obj/machinery/newscaster/directional/west,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Mf" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Mi" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Mk" = (
-/obj/structure/flora/stump,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"Mn" = (
-/obj/machinery/photocopier{
- pixel_y = 3
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Mo" = (
-/obj/structure/bed,
-/obj/structure/curtain/cloth/grey,
-/obj/effect/decal/cleanable/cobweb,
-/obj/item/bedsheet/nanotrasen,
-/turf/open/floor/carpet,
-/area/outpost/crew/dorm)
-"Mp" = (
-/obj/structure/chair/comfy/grey/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Mq" = (
-/turf/open/floor/concrete/reinforced,
-/area/outpost/crew/garden)
-"Mt" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/security)
-"Mv" = (
-/obj/machinery/suit_storage_unit/captain,
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/operations)
-"Mw" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Mx" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/lounge)
-"MA" = (
-/obj/effect/turf_decal/siding/white,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"MC" = (
-/obj/structure/filingcabinet/employment{
- pixel_x = -11
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"MD" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/turf/open/floor/plating,
-/area/outpost/hallway/fore)
-"MF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/grunge,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/crew/cryo)
-"MK" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"MM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"MO" = (
-/obj/structure/chair/sofa/brown/directional/north,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"MP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"MQ" = (
-/obj/structure/table,
-/obj/structure/window/reinforced/spawner/west,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"MR" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"MU" = (
-/obj/effect/turf_decal/plaque,
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"MX" = (
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/siding/white{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"MZ" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Na" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"Nb" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/structure/sign/warning/coldtemp{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"Nc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"Nd" = (
-/obj/structure/frame/machine,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Nf" = (
-/obj/machinery/modular_computer/console/preset/engineering{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Ng" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"Nh" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/window/reinforced/spawner/east,
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Ni" = (
-/obj/structure/chair,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"Nj" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Nm" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"Nn" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/cargo)
-"Nq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/alien/weeds,
-/obj/structure/alien/resin/wall,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Nr" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/library)
-"Ns" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 10
- },
-/obj/item/kirbyplants{
- icon_state = "plant-10"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Nu" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"Nw" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"Ny" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Nz" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/fancy/cigarettes/cigpack_uplift{
- pixel_x = 6;
- pixel_y = 7
- },
-/obj/item/lighter/greyscale{
- pixel_x = 8;
- pixel_y = 1
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"NA" = (
-/obj/structure/table,
-/obj/item/reagent_containers/condiment/enzyme{
- pixel_x = -2;
- pixel_y = 6
- },
-/obj/item/reagent_containers/glass/beaker,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"NC" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"NF" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/effect/turf_decal/number/four,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"NG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood"
- },
-/area/outpost/hallway/fore)
-"NH" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood";
- dir = 8
- },
-/area/outpost/hallway/central)
-"NI" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/curtain/cloth/grey,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"NJ" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"NK" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"NL" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"NM" = (
-/obj/machinery/light/broken/directional/south,
-/obj/item/trash/waffles{
- pixel_y = -3
- },
-/obj/item/trash/sosjerky{
- pixel_x = -4
- },
-/obj/item/trash/raisins,
-/obj/item/trash/pistachios{
- pixel_x = 6
- },
-/obj/structure/closet/crate/trashcart,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"NO" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4;
- layer = 2.37
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/machinery/power/port_gen/pacman,
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"NP" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/table/reinforced,
-/obj/item/melee/knife/kitchen{
- pixel_x = -6;
- pixel_y = 2
- },
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"NQ" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"NR" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"NT" = (
-/obj/structure/bed,
-/obj/item/bedsheet/captain,
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"NV" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/item/kirbyplants{
- icon_state = "plant-21";
- pixel_x = -6;
- pixel_y = 17
- },
-/obj/machinery/light/directional/west,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"NW" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"NX" = (
-/obj/structure/flora/tree/palm{
- icon_state = "palm2"
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"NY" = (
-/obj/structure/rack{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"NZ" = (
-/obj/effect/turf_decal/atmos/air{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/engine/air,
-/area/outpost/engineering/atmospherics)
-"Oa" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"Ob" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"Oc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"Od" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"Oe" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 9
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 10
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Of" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/sign/poster/retro/radio{
- pixel_x = 32
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Og" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"Oh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/structure/closet/body_bag,
-/obj/effect/mob_spawn/human/corpse/damaged,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Oi" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/mob/living/simple_animal/pet/penguin/emperor,
-/obj/machinery/light/directional/east,
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"Ok" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/hallway/fore)
-"Ol" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"Oo" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair/pew/left{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Op" = (
-/obj/machinery/light/directional/north,
-/obj/structure/table/reinforced,
-/obj/item/binoculars,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Oq" = (
-/obj/structure/alien/weeds,
-/obj/structure/alien/resin/wall,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"Or" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Os" = (
-/obj/item/shovel,
-/obj/item/flashlight/lantern{
- pixel_x = 7
- },
-/obj/effect/turf_decal/weather/snow{
- dir = 6
- },
-/turf/open/floor/plating/asteroid/snow/under/lit,
-/area/outpost/external)
-"Ot" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Ou" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Ov" = (
-/obj/effect/turf_decal/trimline/opaque/purple/filled/line{
- dir = 10
- },
-/obj/structure/sign/nanotrasen{
- pixel_y = -32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Ow" = (
-/obj/structure/window/reinforced/fulltile,
-/obj/structure/grille,
-/turf/open/floor/plating,
-/area/outpost/crew/lounge)
-"Ox" = (
-/obj/structure/flora/grass/jungle/b,
-/obj/structure/railing/wood{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Oy" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"OA" = (
-/obj/machinery/processor,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
- },
-/obj/effect/decal/cleanable/food/tomato_smudge,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"OC" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"OE" = (
-/obj/effect/turf_decal/techfloor/orange/corner{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"OF" = (
-/obj/machinery/computer/security{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"OG" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4;
- layer = 2.37
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"OI" = (
-/obj/effect/turf_decal/techfloor/orange,
-/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"OJ" = (
-/obj/structure/fluff/arc,
-/obj/structure/sign/poster/official/love_ian{
- pixel_y = 32;
- pixel_x = 32
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"OK" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"OM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood/walnut,
-/area/outpost/crew/bar)
-"ON" = (
-/obj/structure/bookcase/random/fiction,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"OP" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/maintenance/fore)
-"OQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"OR" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/shower{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"OU" = (
-/obj/machinery/vending/cola{
- pixel_x = -6
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"OV" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"OX" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/effect/turf_decal/corner/opaque/yellow/full,
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Pa" = (
-/obj/structure/table,
-/obj/machinery/jukebox/boombox{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/reagent_containers/condiment/soysauce{
- pixel_x = -6;
- pixel_y = 7
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/hallway/central)
-"Pb" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = -6
- },
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Pc" = (
-/obj/effect/turf_decal/techfloor{
- dir = 9
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Pd" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/item/storage/fancy/cigarettes/cigpack_robustgold{
- pixel_x = -6;
- pixel_y = 6
- },
-/obj/item/lighter{
- pixel_x = -5;
- pixel_y = 3
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Pf" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/contraband/mothpill{
- pixel_x = 32
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Pi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/chair/pew/right{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Pk" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Pl" = (
-/obj/effect/turf_decal/techfloor,
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"Pm" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/kirbyplants{
- icon_state = "plant-10";
- pixel_x = -7
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"Po" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/chair/pew/right{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Pp" = (
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/plasteel,
-/area/outpost/hallway/fore)
-"Pt" = (
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"Pv" = (
-/obj/effect/turf_decal/techfloor/orange/corner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Px" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"PA" = (
-/obj/machinery/vending/coffee,
-/obj/effect/decal/cleanable/robot_debris,
-/obj/structure/sign/poster/contraband/space_cola{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"PB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/showcase/machinery/cloning_pod,
-/obj/effect/turf_decal/box/corners{
- dir = 1;
- icon_state = "box_corners"
- },
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"PC" = (
-/obj/structure/closet/secure_closet/freezer/kitchen,
-/obj/effect/decal/cleanable/food/flour,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/hallway/central)
-"PE" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"PF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/sign/nanotrasen{
- pixel_y = -32
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"PG" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"PH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/random{
- pixel_y = -32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"PL" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 9
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 10
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"PN" = (
-/obj/structure/fluff/paper/stack{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"PO" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/chair/wood,
-/obj/structure/sign/painting/library{
- pixel_x = 32
- },
-/turf/open/floor/wood,
-/area/outpost/maintenance/aft)
-"PP" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/outpost,
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"PR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"PS" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"PV" = (
-/obj/machinery/vending/snack/blue{
- pixel_x = -17
- },
-/obj/item/kirbyplants{
- icon_state = "plant-03";
- pixel_x = 4
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/cleanable/wrapping,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"PX" = (
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"PY" = (
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"PZ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi'
- },
-/area/outpost/crew/cryo)
-"Qb" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/hallway/fore)
-"Qd" = (
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"Qe" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/candle/infinite{
- pixel_x = 11
- },
-/obj/item/binoculars,
-/turf/open/floor/wood/ebony,
-/area/outpost/crew/lounge)
-"Qf" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/airlock/outpost{
- dir = 4;
- icon = 'icons/obj/doors/airlocks/station/mining.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- assemblytype = /obj/structure/door_assembly/door_assembly_min
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/cargo)
-"Qj" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"Qk" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/closed/indestructible/fakeglass,
-/area/outpost/engineering/atmospherics)
-"Ql" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners,
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/item/paperplane,
-/obj/item/radio/intercom/directional/south,
-/obj/machinery/firealarm/directional/south,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Qm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/railing/wood{
- dir = 8
- },
-/obj/structure/table/wood,
-/obj/item/storage/fancy/nugget_box{
- pixel_x = 5;
- pixel_y = -4
- },
-/obj/item/reagent_containers/food/drinks/bottle/kahlua{
- pixel_x = -5;
- pixel_y = 6
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Qn" = (
-/obj/machinery/photocopier{
- pixel_y = 3
- },
-/obj/structure/railing,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Qo" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Qp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Qq" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/structure/closet/secure_closet/freezer/meat,
-/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
-/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
-/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
-/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
-/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
-/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
-/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
-/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
-/turf/open/floor/plasteel/patterned/ridged,
-/area/outpost/crew/canteen)
-"Qu" = (
-/obj/structure/flora/junglebush/large,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Qv" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Qw" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate/trashcart,
-/obj/item/trash/syndi_cakes{
- pixel_x = -4;
- pixel_y = 3
- },
-/obj/item/trash/energybar,
-/obj/item/trash/candy,
-/obj/item/trash/sosjerky,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Qy" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/structure/railing/corner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Qz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"QA" = (
-/turf/open/floor/engine/plasma,
-/area/outpost/engineering/atmospherics)
-"QB" = (
-/obj/machinery/light/broken/directional/south,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/aft)
-"QC" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"QD" = (
-/obj/structure/flora/rock/pile/largejungle{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"QG" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/concrete/reinforced,
-/area/outpost/hallway/central)
-"QH" = (
-/obj/machinery/door/airlock/maintenance_hatch,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"QI" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/operations)
-"QK" = (
-/obj/machinery/door/airlock/public/glass,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"QL" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"QM" = (
-/obj/structure/chair/sofa/brown/right/directional/east,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"QN" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 4
- },
-/obj/structure/flora/ausbushes/fullgrass{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/structure/flora/ausbushes/ppflowers,
-/turf/open/floor/grass,
-/area/outpost/hallway/aft)
-"QO" = (
-/obj/effect/turf_decal/techfloor/orange,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"QP" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/railing/corner/wood,
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"QR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"QS" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"QT" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/vacant_rooms)
-"QU" = (
-/turf/open/floor/engine/o2,
-/area/outpost/engineering/atmospherics)
-"QW" = (
-/obj/structure/chair/office{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"QY" = (
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Ra" = (
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Rc" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Rd" = (
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"Re" = (
-/obj/structure/flora/rock/icy,
-/turf/open/floor/plating/asteroid/snow/airless,
-/area/outpost/external)
-"Rf" = (
-/obj/machinery/computer/station_alert{
- dir = 1
- },
-/obj/structure/railing,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Rg" = (
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Rj" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{
- dir = 1
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"Rk" = (
-/obj/effect/turf_decal/techfloor,
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Rl" = (
-/obj/structure/table/wood,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Rm" = (
-/obj/machinery/door/window/brigdoor/northright{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Rn" = (
-/obj/structure/closet/secure_closet/ertSec,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"Ro" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Rp" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/hallway/fore)
-"Rq" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/hallway/starboard)
-"Rr" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/newscaster/directional/south,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Rt" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/easel,
-/turf/open/floor/wood{
- icon_state = "wood-broken7"
- },
-/area/outpost/maintenance/aft)
-"Ru" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"Rw" = (
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Rx" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/cryo)
-"Rz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/item/kirbyplants{
- icon_state = "plant-09"
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"RA" = (
-/obj/machinery/door/airlock/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"RB" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"RC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"RD" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile/indestructable,
-/turf/open/floor/plating,
-/area/outpost/operations)
-"RE" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"RF" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/goonplaque,
-/area/outpost/crew/cryo)
-"RG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"RH" = (
-/obj/effect/turf_decal/steeldecal/steel_decals10,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"RJ" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
- },
-/obj/machinery/suit_storage_unit/inherit,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/security)
-"RK" = (
-/obj/structure/flora/grass/jungle/b,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"RM" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"RO" = (
-/obj/machinery/computer/slot_machine,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"RP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"RR" = (
-/obj/effect/turf_decal/techfloor,
-/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"RS" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_eng;
- icon = 'icons/obj/doors/airlocks/station/engineering.dmi';
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- req_access_txt = "101"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"RT" = (
-/obj/structure/frame/machine,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/glass,
-/obj/machinery/newscaster/directional/east,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"RV" = (
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/obj/structure/sink{
- dir = 4;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/effect/decal/cleanable/plasma,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"RX" = (
-/obj/effect/decal/cleanable/oil,
-/obj/item/stack/sheet/mineral/wood{
- pixel_x = -4;
- pixel_y = -5
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"RY" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"RZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/item/stack/rods/ten{
- pixel_x = 9
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Sa" = (
-/obj/structure/toilet/secret{
- dir = 4;
- secret_type = /obj/item/storage/box/donkpockets/donkpocketgondola
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Sd" = (
-/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Se" = (
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"Sh" = (
-/obj/structure/bookcase/random/fiction,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Si" = (
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"Sk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Sm" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/contraband/random{
- pixel_x = 32
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/aft)
-"Sn" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"So" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Sp" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"Su" = (
-/obj/structure/filingcabinet/chestdrawer/wheeled,
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Sw" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"Sx" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Sz" = (
-/obj/machinery/jukebox,
-/obj/effect/decal/cleanable/plasma,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"SB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/airlock/outpost{
- assemblytype = /obj/structure/door_assembly/door_assembly_com;
- icon = 'icons/obj/doors/airlocks/station/command.dmi';
- glass = 1;
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi';
- name = "Bridge Access";
- req_one_access_txt = "109"
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"SE" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"SF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"SH" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "foam_plating"
- },
-/area/outpost/maintenance/fore)
-"SK" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"SL" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/lounge)
-"SN" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair/pew/left{
- dir = 4
- },
-/obj/item/trash/can{
- pixel_y = 3
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"SP" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4;
- layer = 2.37
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-10"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-6"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"SR" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/central)
-"ST" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/snacks/nachos{
- pixel_y = 9
- },
-/obj/item/reagent_containers/food/drinks/soda_cans/pacfuel{
- pixel_x = 8;
- pixel_y = 3
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"SW" = (
-/obj/structure/chair/sofa/brown/left/directional/north,
-/obj/effect/decal/cleanable/robot_debris/gib{
- pixel_x = -13
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"SX" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Ta" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/corner/wood{
- dir = 1
- },
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"Tc" = (
-/obj/structure/closet/crate/trashcart/laundry,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
-/obj/structure/grille/broken,
-/obj/effect/turf_decal/box/white,
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/outpost/maintenance/aft)
-"Td" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Te" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Th" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/plasma,
-/obj/structure/closet/crate/secure/loot,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Tk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/vacant_rooms)
-"Tm" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Tn" = (
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/outpost/hallway/central)
-"To" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Tp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Ts" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"Tt" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Tu" = (
-/obj/item/toy/plush/beeplushie{
- pixel_y = 5;
- pixel_x = 3
- },
-/obj/item/reagent_containers/food/snacks/cakebatter{
- pixel_y = -9;
- pixel_x = -5
- },
-/turf/open/floor/engine/n2o,
-/area/outpost/engineering/atmospherics)
-"Tv" = (
-/obj/structure/railing/corner,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/broken/directional/north,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"Tw" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Ty" = (
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 5
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Tz" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/table/reinforced,
-/obj/machinery/light/directional/south,
-/obj/item/reagent_containers/glass/beaker,
-/obj/item/reagent_containers/condiment/enzyme{
- pixel_x = -2;
- pixel_y = 6
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"TA" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/machinery/computer/security{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"TC" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"TF" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 6
- },
-/obj/item/stamp{
- pixel_x = -7;
- pixel_y = 6
- },
-/obj/item/stamp/denied{
- pixel_x = -7
- },
-/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"TH" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"TI" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/obj/machinery/door/poddoor/preopen{
- id = "outpost_office_lockdown";
- dir = 8
- },
-/turf/open/floor/plating,
-/area/outpost/operations)
-"TJ" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/hallway/central)
-"TL" = (
-/obj/structure/table,
-/obj/item/book/manual/chef_recipes{
- pixel_x = -4;
- pixel_y = 6
- },
-/obj/item/melee/knife/kitchen{
- pixel_y = 6;
- pixel_x = 9
- },
-/obj/item/kitchen/rollingpin,
-/obj/effect/turf_decal/industrial/warning{
- dir = 10;
- color = "#808080"
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"TN" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/machinery/door/airlock/security/glass{
- req_access_txt = "109";
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4;
- req_one_access_txt = "101"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"TP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/chair/comfy/grey/directional/north,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"TQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"TR" = (
-/obj/structure/filingcabinet/chestdrawer,
-/obj/item/paper/crumpled/ruins,
-/obj/item/paper/fluff/jobs,
-/obj/item/paper/fluff/jobs/cargo/manifest,
-/obj/machinery/newscaster/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"TS" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"TT" = (
-/obj/structure/chair/office,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"TV" = (
-/obj/structure/dresser,
-/obj/item/trash/candle{
- pixel_y = 15;
- pixel_x = 3
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/carpet/royalblue,
-/area/outpost/operations)
-"TW" = (
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plasteel/stairs{
- icon = 'icons/obj/stairs.dmi';
- dir = 8
- },
-/area/outpost/engineering/atmospherics)
-"TZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/showcase/perfect_employee,
-/obj/effect/turf_decal/box/corners,
-/obj/structure/sign/poster/official/random{
- pixel_y = 32
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Ua" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Ub" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/aft)
-"Uc" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/poster/official/nanotrasen_logo{
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Ud" = (
-/obj/structure/barricade/security,
-/obj/structure/curtain/cloth/grey,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Ug" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Uh" = (
-/obj/effect/turf_decal/borderfloorwhite{
- dir = 9
- },
-/obj/structure/sink{
- pixel_y = 23
- },
-/obj/structure/mirror{
- pixel_y = 32
- },
-/obj/machinery/light/small/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white,
-/area/outpost/crew/library)
-"Ui" = (
-/obj/effect/turf_decal/siding/white{
- dir = 5
- },
-/obj/structure/sign/poster/official/do_not_question{
- pixel_x = 32;
- pixel_y = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Uk" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Un" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/structure/sign/poster/contraband/cybersun_med{
- pixel_x = 32
- },
-/obj/item/kirbyplants{
- pixel_x = 6;
- pixel_y = 7
- },
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Uo" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"Uu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/frame/machine,
-/obj/structure/noticeboard{
- pixel_y = 28
- },
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Uv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/railing{
- dir = 8;
- layer = 4.1
- },
-/obj/item/toy/plush/beeplushie,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Ux" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Uy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/vacant_rooms)
-"UA" = (
-/obj/structure/showcase/mecha/marauder,
-/obj/effect/turf_decal/box/corners,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"UC" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"UD" = (
-/obj/effect/spawner/structure/window/reinforced/indestructable,
-/turf/open/floor/plating,
-/area/outpost/crew/canteen)
-"UG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"UI" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"UK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/machinery/light/small/broken/directional/east,
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"UL" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"UM" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/outpost/maintenance/fore)
-"UO" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"UP" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 4
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"UQ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/sign/poster/retro/nanotrasen_logo_80s{
- pixel_y = 32
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"US" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"UT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/body_bag,
-/obj/effect/mob_spawn/human/corpse/cargo_tech,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"UU" = (
-/obj/structure/railing/wood{
- layer = 3.1;
- dir = 8
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"UW" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/crate/secure/loot,
-/obj/effect/decal/cleanable/ash{
- pixel_x = 15;
- pixel_y = -5
- },
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_y = 7;
- pixel_x = -5
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"UY" = (
-/obj/structure/table/wood,
-/obj/item/trash/plate{
- pixel_x = 1;
- pixel_y = 2
- },
-/obj/item/reagent_containers/food/drinks/soda_cans/cola{
- pixel_x = 12
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"UZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair/pew/right{
- dir = 4
- },
-/obj/item/trash/boritos{
- pixel_x = 3;
- pixel_y = -2
- },
-/turf/open/floor/plating{
- icon_state = "platingdmg3"
- },
-/area/outpost/maintenance/fore)
-"Vb" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/crew/cryo)
-"Vc" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Vg" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/box/prisoner{
- pixel_x = -4;
- pixel_y = 9
- },
-/obj/item/storage/box/flashbangs{
- pixel_x = 7;
- pixel_y = 4
- },
-/obj/item/storage/box/flashes,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 10
- },
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 10
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Vh" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_y = -7
- },
-/obj/machinery/door/window/eastleft{
- dir = 8
- },
-/obj/structure/curtain,
-/obj/item/soap/deluxe,
-/turf/open/floor/plasteel/freezer,
-/area/outpost/crew/library)
-"Vi" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/machinery/light/directional/east,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/elevator_call_button{
- pixel_y = 25
- },
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "3"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"Vk" = (
-/obj/structure/flora/rock/jungle{
- pixel_y = -11
- },
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Vl" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/rockvault,
-/area/outpost/operations)
-"Vn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Vp" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Vq" = (
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Vr" = (
-/obj/machinery/gibber,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Vs" = (
-/obj/effect/turf_decal/siding/wood/corner,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"Vu" = (
-/obj/effect/turf_decal/techfloor/orange/corner{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Vv" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/south,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Vx" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/turf_decal/industrial/loading{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Vy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/structure/sign/poster/contraband/random{
- pixel_y = 32
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/fore)
-"Vz" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"VA" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/carpet/green,
-/area/outpost/hallway/aft)
-"VC" = (
-/obj/effect/turf_decal/corner/opaque/blue/full,
-/turf/open/floor/plasteel/white,
-/area/outpost/medical)
-"VF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"VI" = (
-/obj/machinery/light/small/directional/south,
-/obj/structure/chair{
- dir = 4;
- pixel_x = -7
- },
-/obj/item/trash/can{
- pixel_x = 11;
- pixel_y = -5
- },
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"VK" = (
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "4"
- },
-/obj/machinery/door/airlock/public/glass{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"VL" = (
-/obj/machinery/gibber,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/hallway/central)
-"VM" = (
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"VN" = (
-/turf/open/floor/engine,
-/area/outpost/crew/cryo)
-"VT" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/turf/open/floor/grass/snow/safe,
-/area/outpost/hallway/starboard)
-"VV" = (
-/obj/structure/railing,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/machinery/elevator_call_button{
- dir = 8;
- pixel_x = 25
- },
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "4"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"VZ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/beige/filled/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Wc" = (
-/obj/structure/table/wood/reinforced,
-/obj/item/paper_bin{
- pixel_x = -7;
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4;
- pixel_x = -8
- },
-/obj/item/pen/charcoal{
- pixel_y = 8;
- pixel_x = -3
- },
-/obj/item/flashlight/lamp/green{
- pixel_y = 8;
- pixel_x = 6
- },
-/obj/item/phone{
- pixel_x = 8;
- pixel_y = -3
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/vacant_rooms)
-"Wd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/structure/chair/comfy/grey/directional/west,
-/obj/machinery/light/directional/south,
-/obj/machinery/newscaster/directional/east,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Wi" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Wj" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Wn" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"Wo" = (
-/obj/effect/decal/cleanable/plastic,
-/obj/item/chair{
- pixel_x = -1;
- pixel_y = -4
- },
-/obj/item/chair{
- pixel_x = -1
- },
-/obj/item/chair{
- pixel_x = -1;
- pixel_y = 3
- },
-/obj/effect/turf_decal/box,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Wp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"Wq" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/closed/mineral/random/jungle,
-/area/outpost/crew/garden)
-"Wu" = (
-/obj/effect/turf_decal/siding/white{
- dir = 6
- },
-/obj/structure/statue/sandstone/venus{
- dir = 8;
- layer = 3.1
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"Ww" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/light/directional/north,
-/obj/machinery/elevator_call_button{
- dir = 4;
- pixel_x = -25
- },
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "1"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"Wx" = (
-/obj/structure/chair{
- dir = 8
- },
-/obj/machinery/newscaster/directional/north{
- pixel_y = 33
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/canteen)
-"Wz" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"WB" = (
-/obj/structure/railing,
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/corner_steel_grid{
- dir = 10
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"WC" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/bar)
-"WD" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"WE" = (
-/obj/structure/flora/grass/jungle,
-/obj/machinery/light/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"WI" = (
-/obj/machinery/door/airlock/wood/glass{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"WJ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/structure/chair/stool/bar,
-/obj/effect/decal/cleanable/vomit/old,
-/turf/open/floor/concrete/slab_2,
-/area/outpost/hallway/central)
-"WL" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"WP" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"WS" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"WT" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_y = 5
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/library)
-"WU" = (
-/obj/structure/table/wood,
-/obj/item/storage/photo_album/library{
- pixel_y = 1;
- pixel_x = -4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"WX" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/outpost/hallway/fore)
-"WY" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"WZ" = (
-/turf/open/floor/plating,
-/area/outpost/maintenance/aft)
-"Xb" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/stool/bar{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/wood,
-/area/outpost/crew/bar)
-"Xd" = (
-/obj/structure/railing{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/outpost/operations)
-"Xf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Xg" = (
-/obj/structure/railing/corner/wood,
-/obj/structure/flora/tree/palm{
- icon_state = "palm2"
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Xh" = (
-/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Xi" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/structure/railing/wood{
- dir = 9
- },
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Xm" = (
-/obj/structure/sink/puddle,
-/obj/structure/flora/ausbushes/stalkybush{
- pixel_y = 6
- },
-/turf/open/floor/grass,
-/area/outpost/hallway/central)
-"Xo" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/warning{
- dir = 1;
- pixel_y = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Xp" = (
-/obj/machinery/light/small/directional/west,
-/turf/closed/indestructible/reinforced,
-/area/outpost/maintenance/aft)
-"Xs" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/corner,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Xt" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Xu" = (
-/obj/effect/decal/cleanable/plasma,
-/obj/structure/curtain/cloth/grey,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Xv" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/turf_decal/industrial/loading{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Xw" = (
-/obj/structure/railing{
- layer = 3.1
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/item/trash/can{
- pixel_x = -8;
- pixel_y = -6
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"Xy" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"Xz" = (
-/obj/structure/table/reinforced,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_y = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/north{
- pixel_x = -3
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"XA" = (
-/obj/structure/bookcase/random/fiction,
-/obj/item/candle/infinite{
- pixel_y = 19;
- pixel_x = 15
- },
-/obj/structure/sign/poster/retro/random{
- pixel_x = 32
- },
-/turf/open/floor/wood,
-/area/outpost/vacant_rooms/office)
-"XB" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/crew/garden)
-"XC" = (
-/obj/item/storage/bag/tray,
-/obj/item/storage/box/donkpockets{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/item/storage/box/donkpockets{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/item/reagent_containers/condiment/peppermill{
- desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
- pixel_x = -8;
- pixel_y = 2
- },
-/obj/item/reagent_containers/condiment/saltshaker{
- desc = "Salt. From space oceans, presumably. A staple of modern medicine.";
- pixel_x = -8;
- pixel_y = 12
- },
-/obj/machinery/reagentgrinder{
- pixel_y = 5
- },
-/obj/structure/table,
-/obj/effect/turf_decal/industrial/warning{
- dir = 2;
- color = "#808080"
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"XD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"XH" = (
-/obj/structure/flora/tree/palm{
- pixel_x = 16
- },
-/obj/structure/railing/wood{
- dir = 8
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"XI" = (
-/obj/machinery/computer/secure_data,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"XK" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"XP" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"XQ" = (
-/obj/structure/table/wood,
-/obj/item/table_bell{
- pixel_x = 9;
- pixel_y = -1
- },
-/turf/open/floor/plasteel,
-/area/outpost/crew/canteen)
-"XS" = (
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"XT" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/obj/item/banner,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"XV" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/structure/sign/warning/coldtemp{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"XW" = (
-/obj/effect/turf_decal/siding/wideplating/dark,
-/obj/effect/turf_decal/trimline/opaque/red/line,
-/obj/structure/closet/secure_closet/security/sec,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"XY" = (
-/obj/machinery/door/airlock/public/glass,
-/obj/effect/landmark/outpost/elevator_machine{
- shaft = "2"
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"Ya" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"Yb" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/item/kirbyplants{
- icon_state = "plant-03"
- },
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Yf" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Yh" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 8
- },
-/obj/structure/closet/emcloset/wall/directional/west,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"Yi" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/turf_decal/number/two,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/hallway/fore)
-"Yj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/mop{
- pixel_y = -8;
- pixel_x = -13
- },
-/obj/item/clothing/head/soft/purple,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating{
- icon_state = "platingdmg2"
- },
-/area/outpost/maintenance/fore)
-"Yl" = (
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
- },
-/obj/machinery/chem_dispenser/drinks/fullupgrade{
- dir = 1
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"Yo" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"Yp" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/aft)
-"Yq" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/yellow{
- pixel_x = -7
- },
-/turf/open/floor/plasteel/dark,
-/area/outpost/operations)
-"Yr" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-5"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/engineering)
-"Yt" = (
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/obj/structure/flora/tree/palm{
- pixel_x = 16
- },
-/turf/open/floor/grass,
-/area/outpost/crew/garden)
-"Yv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/bag/tray/cafeteria{
- pixel_x = -9;
- pixel_y = 12
- },
-/obj/effect/decal/cleanable/food/egg_smudge,
-/obj/structure/catwalk/over/plated_catwalk,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Yw" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"Yy" = (
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/trimline/transparent/lightgrey/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"Yz" = (
-/obj/item/toy/plush/lizardplushie{
- name = "Him";
- desc = "A menace unleashed."
- },
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-38"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating/rust,
-/area/outpost/maintenance/fore)
-"YC" = (
-/obj/structure/table/wood,
-/obj/item/storage/secure/briefcase,
-/obj/item/storage/lockbox/loyalty{
- pixel_x = 5;
- pixel_y = 1
- },
-/obj/item/assembly/flash/handheld,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel,
-/area/outpost/operations)
-"YE" = (
-/obj/effect/decal/fakelattice{
- icon_state = "lattice-11"
- },
-/turf/open/space/basic,
-/area/outpost/external)
-"YF" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_x = -8;
- pixel_y = 3
- },
-/obj/item/trash/semki{
- pixel_y = 7;
- pixel_x = 5
- },
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"YG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/railing/wood{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"YH" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8;
- color = "#808080"
- },
-/obj/structure/bed,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"YI" = (
-/obj/structure/closet/secure_closet/captains,
-/turf/open/floor/carpet/blue,
-/area/outpost/operations)
-"YJ" = (
-/obj/structure/table/wood,
-/obj/item/paicard{
- pixel_x = 6;
- pixel_y = 4
- },
-/obj/item/paicard{
- pixel_x = -1;
- pixel_y = 1
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/bar)
-"YM" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 6
- },
-/obj/structure/tank_dispenser,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"YN" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
- },
-/obj/item/gun/energy/ionrifle,
-/obj/item/gun/energy/beam_rifle{
- pixel_x = 3;
- pixel_y = -4
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"YO" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/concrete/slab_4,
-/area/outpost/hallway/central)
-"YP" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/engineering/atmospherics)
-"YR" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/obj/structure/sign/poster/official/soft_cap_pop_art{
- pixel_x = -32
- },
-/turf/open/floor/carpet,
-/area/outpost/crew/library)
-"YS" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"YT" = (
-/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
- layer = 2.030
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"YX" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"YZ" = (
-/obj/structure/closet/secure_closet/ertEngi,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/outpost/security/armory)
-"Za" = (
-/turf/closed/indestructible/reinforced,
-/area/outpost/crew/dorm)
-"Zb" = (
-/obj/structure/closet/secure_closet/freezer/wall/directional/east,
-/obj/item/clothing/under/shorts/cookjorts,
-/obj/item/clothing/suit/toggle/chef,
-/obj/item/clothing/under/rank/civilian/chef,
-/obj/item/clothing/under/rank/civilian/chef/skirt,
-/obj/item/clothing/suit/hooded/wintercoat,
-/obj/item/clothing/head/chefhat,
-/obj/item/clothing/suit/apron/chef,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/showroomfloor,
-/area/outpost/crew/canteen)
-"Zc" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Zd" = (
-/obj/effect/turf_decal/trimline/opaque/beige/filled/line,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/outpost/cargo)
-"Ze" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood/corner,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/central)
-"Zf" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"Zh" = (
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/outpost/vacant_rooms)
-"Zi" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/alien/weeds,
-/obj/structure/alien/egg/burst,
-/obj/effect/decal/cleanable/xenoblood/xgibs/larva/body,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Zk" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/chair/wood,
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"Zl" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/grass,
-/area/outpost/crew/lounge)
-"Zm" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/concrete/tiles,
-/area/outpost/hallway/aft)
-"Zn" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/sign/logo{
- icon_state = "nanotrasen_sign4";
- pixel_y = 32
- },
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"Zp" = (
-/turf/closed/mineral/random/snow,
-/area/outpost/external)
-"Zr" = (
-/obj/machinery/vending/security,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 6
- },
-/obj/effect/turf_decal/trimline/opaque/red/line{
- dir = 6
- },
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel/dark,
-/area/outpost/security)
-"Zs" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
- },
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"Zt" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/turf_decal/box/corners{
- icon_state = "box_corners";
- dir = 8
- },
-/obj/machinery/light/directional/south,
-/obj/item/shard,
-/turf/open/floor/concrete/slab_1,
-/area/outpost/hallway/central)
-"Zu" = (
-/obj/machinery/cryopod{
- dir = 1
- },
-/turf/open/floor/plasteel/telecomms_floor,
-/area/outpost/crew/cryo)
-"Zv" = (
-/obj/structure/table,
-/obj/structure/bedsheetbin,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/crew/library)
-"Zw" = (
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/plasma,
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo/office)
-"Zy" = (
-/obj/structure/girder/displaced,
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
-/turf/open/floor/plating,
-/area/outpost/maintenance/fore)
-"Zz" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/central)
-"ZB" = (
-/turf/open/floor/plasteel/stairs{
- barefootstep = "woodbarefoot";
- color = "#A47449";
- footstep = "wood"
- },
-/area/outpost/hallway/fore)
-"ZC" = (
-/obj/structure/railing/corner/wood{
- dir = 8
- },
-/obj/structure/railing/corner/wood{
- dir = 8;
- pixel_y = 26
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/outpost/crew/dorm)
-"ZD" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/window/brigdoor/southright{
- req_access_txt = "101"
- },
-/obj/machinery/door/window/brigdoor/southright{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/poddoor/ert{
- id = "outpost_security_desk";
- desc = "A heavy duty blast door."
- },
-/turf/open/floor/plasteel/tech/techmaint,
-/area/outpost/security)
-"ZE" = (
-/obj/effect/turf_decal/techfloor/orange{
- dir = 6
- },
-/obj/machinery/portable_atmospherics/scrubber/huge,
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/tech/grid,
-/area/outpost/engineering)
-"ZF" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"ZG" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/railing/corner/wood{
- dir = 1
- },
-/obj/structure/railing/corner/wood{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/wood,
-/area/outpost/hallway/central)
-"ZH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/concrete/slab_3,
-/area/outpost/hallway/starboard)
-"ZJ" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/light/directional/east,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/nanoweave,
-/area/outpost/crew/canteen)
-"ZK" = (
-/obj/machinery/door/poddoor/shutters/preopen,
-/turf/open/floor/plasteel/tech,
-/area/outpost/cargo)
-"ZM" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/turf/open/floor/plasteel/mono/dark,
-/area/outpost/cargo)
-"ZN" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"ZO" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/machinery/light/directional/south,
-/obj/structure/closet/wall/directional/east{
- name = "Game Locker";
- desc = "It's a basic storage unit. Theres a little label on it, asking you to put the toys back in when finished"
- },
-/obj/item/toy/figure/curator{
- pixel_x = 7;
- pixel_y = 8
- },
-/obj/item/toy/figure/detective,
-/obj/item/toy/figure/dsquad{
- pixel_x = 7
- },
-/obj/item/toy/figure/head_of_personnel{
- pixel_y = -5;
- pixel_x = 11
- },
-/obj/item/toy/figure/ian{
- pixel_y = -3;
- pixel_x = 5
- },
-/obj/item/toy/figure/ian{
- pixel_y = -3;
- pixel_x = 5
- },
-/obj/item/toy/figure/ian{
- pixel_y = -3;
- pixel_x = 5
- },
-/obj/item/toy/figure/janitor{
- pixel_y = -7
- },
-/obj/item/toy/figure/lawyer{
- pixel_x = -7;
- pixel_y = -8
- },
-/obj/item/toy/figure/ninja{
- pixel_y = -9;
- pixel_x = 6
- },
-/obj/item/toy/figure/captain,
-/obj/item/toy/figure/syndie,
-/obj/item/toy/figure/syndie,
-/obj/item/toy/figure/syndie,
-/obj/item/toy/figure/secofficer,
-/obj/item/toy/figure/secofficer,
-/obj/item/toy/figure/wizard,
-/obj/item/toy/plush/knight,
-/obj/item/toy/plush/hornet{
- pixel_x = 9;
- pixel_y = -4
- },
-/obj/item/toy/toy_xeno,
-/obj/item/toy/toy_xeno,
-/obj/item/storage/pill_bottle/dice{
- pixel_x = 6;
- pixel_y = 6
- },
-/turf/open/floor/carpet/red,
-/area/outpost/vacant_rooms/office)
-"ZQ" = (
-/obj/machinery/light/directional/north,
-/turf/open/floor/grass,
-/area/outpost/hallway/fore)
-"ZR" = (
-/obj/structure/chair/sofa/brown/corner/directional/east,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/wood,
-/area/outpost/crew/library)
-"ZS" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/outpost/crew/cryo)
-"ZT" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/computer/bounty,
-/turf/open/floor/plasteel/tech,
-/area/outpost/hallway/fore)
-"ZV" = (
-/obj/structure/table,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/outpost/crew/library)
-"ZW" = (
-/obj/structure/chair/stool/bar,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/library)
-"ZX" = (
-/obj/structure/catwalk/over/plated_catwalk,
-/obj/machinery/door/airlock/maintenance_hatch{
- dir = 8
- },
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/outpost/maintenance/aft)
-"ZY" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
- },
-/obj/machinery/light/directional/south,
-/turf/open/floor/concrete/tiles,
-/area/outpost/crew/garden)
-"ZZ" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/mug{
- pixel_x = -7;
- pixel_y = -2
- },
-/obj/item/toy/cards/deck{
- pixel_y = 7;
- pixel_x = 5
- },
-/turf/open/floor/plasteel/sepia,
-/area/outpost/crew/bar)
-
-(1,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(2,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(3,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(4,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(5,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(6,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(7,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(8,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(9,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(10,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(11,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(12,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(13,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(14,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(15,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(16,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(17,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(18,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(19,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(20,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(21,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(22,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(23,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(24,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ow
-Ow
-Ow
-Ow
-Ow
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(25,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ow
-Ow
-Kv
-tJ
-Qe
-Ow
-Ow
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(26,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ow
-Ow
-EB
-Qd
-fK
-fK
-fQ
-Ow
-Ow
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(27,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Mx
-rd
-wt
-fK
-Qd
-Qd
-SL
-yJ
-Mx
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(28,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Mx
-lD
-uw
-ot
-Qd
-vu
-uw
-ia
-Mx
-aL
-aL
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(29,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Mx
-AC
-EJ
-Po
-fK
-zR
-nA
-FM
-Mx
-cL
-aL
-aL
-aL
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(30,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Mx
-Zl
-dM
-od
-fK
-qX
-BY
-Vp
-Gh
-BX
-Ap
-EZ
-aL
-aL
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(31,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Mx
-kk
-mn
-Pi
-tz
-Oo
-LV
-lh
-Mx
-yP
-iN
-iN
-uV
-aL
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(32,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-TJ
-TJ
-TJ
-TJ
-TJ
-TJ
-Mx
-Mx
-Mx
-Mx
-lM
-Mx
-Mx
-Mx
-Mx
-cL
-cL
-cL
-Tv
-cL
-cL
-aL
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(33,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-wH
-lJ
-wH
-wH
-lJ
-OP
-OP
-Zp
-TJ
-TJ
-qj
-yc
-Ja
-gu
-Wj
-re
-dE
-Tn
-cw
-Iz
-gN
-Tn
-AF
-Pm
-rf
-pt
-cL
-tQ
-Xp
-RV
-Fe
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(34,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-HY
-sN
-sN
-sN
-Zp
-OP
-wH
-RO
-xD
-xf
-eX
-zu
-OP
-Zp
-TJ
-xH
-ta
-MQ
-sd
-Cd
-Cd
-Cd
-RE
-Cd
-Gc
-Wi
-cm
-Tn
-xO
-OV
-Js
-ay
-bX
-Lf
-cL
-lL
-Ll
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-aW
-aW
-aW
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(35,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-sN
-Ft
-sN
-HY
-Zp
-OP
-LS
-eW
-eW
-eW
-Nz
-PH
-wH
-Zp
-TJ
-BI
-qW
-xy
-Ze
-EH
-pz
-pz
-pz
-pz
-Dp
-jn
-TS
-Tn
-df
-OV
-DU
-zP
-cL
-uq
-cL
-BS
-cL
-gS
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-ak
-aW
-aW
-aW
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(36,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-HY
-sN
-vV
-Ft
-Ft
-Zp
-wH
-tl
-yb
-zu
-eW
-Ra
-ip
-wH
-wH
-wH
-wH
-va
-yO
-dA
-Kh
-Ff
-yh
-DJ
-Nd
-zI
-LG
-yX
-YO
-ob
-eO
-RT
-TJ
-cL
-Gz
-cL
-qK
-cL
-aL
-cL
-cL
-aL
-aL
-Zp
-cL
-cL
-Ig
-cL
-aW
-aW
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(37,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-sN
-vV
-vV
-cb
-Ft
-OP
-wH
-wH
-wH
-HW
-wH
-lJ
-wH
-wH
-Zi
-jQ
-wH
-WC
-WC
-WC
-WC
-WC
-WC
-WC
-PA
-jI
-Zc
-HA
-xU
-TJ
-TJ
-TJ
-TJ
-hX
-uj
-hJ
-eI
-bG
-nc
-cL
-uo
-Fn
-aL
-aL
-cL
-WZ
-WZ
-cL
-aW
-aW
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(38,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-HY
-Ft
-dx
-YE
-hH
-DD
-kc
-sn
-sg
-yD
-Dw
-PB
-uJ
-lJ
-wa
-JY
-aD
-WC
-mA
-Uk
-ze
-dv
-Hu
-WC
-TJ
-vO
-gk
-mW
-WJ
-Pa
-wn
-NP
-TJ
-cL
-cL
-cL
-Bs
-KD
-aw
-cL
-fV
-RX
-Rt
-aL
-cL
-QY
-WZ
-cL
-aW
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(39,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-HY
-HY
-Ft
-hH
-hH
-nP
-wB
-vf
-GO
-jo
-Hk
-GH
-UA
-wH
-Oq
-Il
-Nq
-WC
-Ez
-uv
-dr
-Bj
-mv
-GS
-bP
-Gc
-GB
-zz
-wF
-EP
-xh
-Tz
-TJ
-hZ
-VL
-cL
-Br
-iN
-ly
-cL
-DH
-PN
-PO
-iH
-cL
-cL
-hy
-cL
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(40,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-AB
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-OP
-lJ
-dN
-yZ
-lG
-lJ
-Gn
-Gn
-wH
-wH
-Dk
-wH
-WC
-Tt
-ge
-nX
-Tm
-un
-sQ
-LK
-BG
-Ij
-zz
-Lj
-Ju
-xh
-Sn
-ae
-El
-Og
-cL
-pG
-sX
-Tc
-cL
-rc
-xA
-cL
-cL
-cL
-Dt
-QB
-cL
-cL
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(41,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-gv
-AB
-Re
-Zp
-Zp
-Zp
-Zp
-wH
-wH
-wH
-vy
-zv
-IE
-vE
-LP
-xY
-SH
-Jf
-Oh
-ha
-WC
-Eb
-Ep
-Xb
-Kg
-yI
-DS
-wJ
-Px
-er
-Ua
-RY
-zB
-oo
-JE
-TJ
-El
-LM
-cL
-ar
-lI
-cL
-cL
-CH
-jl
-cL
-Sp
-Xw
-yn
-uV
-im
-cL
-cL
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(42,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-mc
-Gv
-AB
-Zp
-Zp
-Zp
-wH
-lJ
-oH
-eR
-Yo
-he
-CZ
-xM
-Cj
-xd
-RZ
-UT
-Jv
-cM
-te
-IF
-lR
-aE
-ZZ
-YJ
-GS
-Fd
-Dp
-Ev
-GT
-TJ
-TJ
-TJ
-TJ
-TJ
-PC
-qI
-cL
-ZX
-cL
-cL
-mh
-bR
-ar
-QH
-tD
-bR
-yp
-iN
-Dy
-gH
-cL
-cL
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(43,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-xk
-Os
-yj
-Zp
-Zp
-Zp
-OP
-Ci
-UG
-nH
-xV
-wH
-lJ
-wH
-Rp
-Rp
-Rp
-Rp
-Rp
-gM
-WC
-il
-iE
-si
-si
-qT
-WC
-TJ
-vO
-Ev
-mt
-Tn
-SR
-QW
-Gi
-TJ
-TJ
-cL
-cL
-rk
-rk
-bR
-bR
-iW
-fJ
-cL
-Hy
-IB
-bq
-zH
-KW
-To
-sl
-cL
-cL
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(44,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-ck
-KY
-Zp
-Zp
-Zp
-Zp
-OP
-Mb
-UG
-lz
-wH
-wH
-Lw
-ev
-Rp
-AE
-AE
-CG
-Rp
-hb
-WC
-Un
-hK
-OM
-OM
-Bw
-WC
-OU
-Qp
-Ev
-Zz
-Tn
-lf
-Kb
-Rd
-If
-Ds
-cL
-mH
-Sm
-UK
-yr
-qF
-Qw
-Rx
-Rx
-Rx
-Rx
-Rx
-Rx
-Rx
-fM
-sF
-yE
-cL
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(45,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-OP
-OP
-OP
-OP
-OP
-wH
-TZ
-UG
-wH
-wH
-ng
-SH
-BB
-Rp
-AE
-AE
-AE
-Rp
-Rp
-WC
-WC
-WC
-fb
-hk
-kx
-WC
-PV
-Qp
-jh
-Jm
-AD
-nU
-eg
-dF
-kT
-wR
-vw
-vw
-vw
-cL
-tV
-cL
-Rx
-Rx
-uR
-wW
-NQ
-yF
-Fm
-Rx
-Rx
-ef
-cL
-cL
-cL
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(46,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-OP
-OP
-Zy
-JC
-CV
-aJ
-wH
-Uu
-eR
-Ay
-ai
-SK
-Yz
-NC
-Rp
-AE
-AE
-AE
-Rp
-Lv
-Ex
-wQ
-WC
-WC
-WC
-WC
-WC
-TJ
-iR
-SF
-bk
-Tn
-gm
-NW
-Zt
-vw
-vw
-vw
-vx
-vx
-Wq
-Mq
-uk
-Rx
-uR
-de
-Gu
-Bu
-UP
-kZ
-Fm
-Rx
-Mi
-hd
-dh
-aL
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(47,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Gq
-ka
-ok
-Ob
-nv
-zF
-wH
-ml
-Xs
-wH
-gz
-cW
-yK
-vY
-Rp
-Rp
-qL
-Rp
-Rp
-LQ
-uX
-Ex
-MD
-Gx
-Gx
-Gx
-Gx
-TJ
-gL
-gk
-Zz
-Tn
-pD
-Pf
-Ql
-vw
-vx
-vx
-vx
-pL
-Ed
-fc
-fc
-Rx
-xp
-LF
-kB
-wK
-HI
-pq
-qm
-Rx
-zY
-qQ
-aL
-aL
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(48,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-wH
-ea
-jG
-jG
-Cn
-eW
-kH
-FL
-lX
-Rp
-Rp
-Rp
-Rp
-Rp
-Rp
-Ww
-fn
-CL
-Rp
-KU
-KU
-KU
-Rp
-Rp
-Rp
-Rp
-Gx
-TJ
-Lh
-ir
-HA
-TJ
-TJ
-TJ
-vw
-vw
-vx
-cr
-cr
-cr
-RK
-cr
-RK
-Rx
-Pl
-Oe
-Zu
-yN
-wl
-Ou
-oh
-Rx
-Rx
-Rx
-Rx
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(49,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-wH
-tF
-Kx
-hu
-EY
-nQ
-wH
-NI
-KQ
-Rp
-AE
-AE
-AL
-Rp
-pC
-Bb
-kw
-OC
-qU
-gR
-WX
-Ug
-hh
-At
-Rp
-Gx
-Gx
-TJ
-qA
-TH
-Zz
-sH
-hM
-TJ
-vw
-Vk
-cr
-cr
-NX
-cr
-Xg
-eH
-bA
-Rx
-KG
-PL
-XS
-EA
-Pc
-Yf
-ZS
-hW
-rJ
-Fu
-Rx
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(50,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-OP
-OP
-Uv
-vz
-gM
-Sd
-wH
-Vy
-GY
-Rp
-AE
-AE
-AE
-XY
-Yi
-Ko
-vZ
-vZ
-ga
-ga
-tX
-vZ
-MA
-eZ
-Rp
-qZ
-jg
-TJ
-Zn
-gk
-TS
-JX
-xu
-Zs
-vw
-we
-bA
-Ox
-eH
-eH
-kz
-aA
-ZY
-Rx
-Na
-Se
-HT
-JM
-pE
-js
-cR
-hW
-CK
-rA
-MC
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(51,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-OP
-OP
-OP
-OP
-HW
-wH
-Te
-qw
-Rp
-AE
-AE
-AE
-Rp
-lH
-Ko
-vZ
-ur
-AM
-AM
-oK
-vZ
-MA
-vS
-Rp
-Rp
-QC
-TJ
-vW
-Fq
-IW
-Mc
-yQ
-za
-vw
-rV
-fL
-fL
-mJ
-mJ
-mJ
-XT
-fT
-Rx
-Rx
-XV
-eC
-eC
-eC
-gC
-hW
-hW
-pZ
-Rm
-Vb
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(52,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-OP
-mS
-aF
-wH
-Xu
-Ud
-Rp
-Rp
-Rp
-Rp
-Rp
-aV
-Ko
-vZ
-Ik
-wM
-zZ
-uZ
-OK
-rj
-YS
-Rp
-sJ
-sz
-Fh
-Rw
-Gk
-Ny
-Cd
-Cd
-Kj
-vw
-Hv
-Oc
-Ol
-Ol
-Ol
-Ol
-sP
-XB
-zL
-Rx
-ra
-NJ
-HO
-NJ
-fX
-hW
-TA
-ru
-nY
-je
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(53,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-OP
-sD
-Pb
-wH
-CD
-vB
-AV
-Hi
-Dh
-BV
-Ei
-sB
-bv
-zy
-WB
-fE
-ZT
-Uo
-WS
-up
-WS
-Io
-EV
-Hj
-NG
-iJ
-MU
-Sk
-Sk
-iJ
-iJ
-QK
-KC
-dp
-zb
-Bx
-zb
-zb
-zb
-Bx
-Bx
-MF
-gn
-ZN
-RF
-BL
-PZ
-PP
-dg
-Eq
-VN
-FG
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(54,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-OP
-OP
-Th
-AW
-wH
-xF
-wH
-Rp
-Rp
-Rp
-Rp
-Rp
-jT
-Ko
-vZ
-Ik
-vc
-vN
-OG
-RH
-wh
-oS
-Rp
-rR
-tp
-ZB
-Rw
-rw
-og
-pz
-pz
-pz
-vw
-Fo
-uI
-rx
-td
-rx
-rx
-rx
-jw
-zL
-Rx
-Nh
-dq
-kt
-GE
-Tw
-hW
-Aa
-IC
-IC
-NY
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(55,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-OP
-OP
-OP
-lA
-Ru
-gl
-Jw
-UG
-xm
-Rp
-AE
-AE
-pl
-Rp
-FD
-Ko
-vZ
-UI
-tf
-tf
-Vz
-vZ
-MA
-At
-Rp
-xL
-Ta
-ez
-hi
-NH
-hi
-Xi
-cp
-Qm
-vw
-UQ
-fv
-fv
-fv
-fv
-fv
-xZ
-RM
-Rx
-Rx
-Nb
-iB
-iB
-iB
-Fm
-hW
-hW
-Iy
-ts
-ci
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(56,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-OP
-UZ
-SN
-Yj
-HG
-jD
-wH
-oE
-zs
-Rp
-AE
-AE
-AE
-cq
-HH
-Ko
-vZ
-vZ
-ga
-ga
-Vz
-vZ
-MA
-eZ
-Rp
-ZQ
-OJ
-QP
-zz
-gk
-zz
-ZG
-Ec
-Wd
-vw
-sL
-XH
-qz
-et
-et
-eb
-dC
-FN
-Rx
-bC
-de
-Gu
-Bu
-UP
-kZ
-Fm
-hW
-DP
-rA
-rO
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(57,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-OP
-UW
-UG
-HG
-NM
-wH
-wH
-wH
-wH
-Rp
-AE
-AE
-AE
-Rp
-Vi
-Ui
-WD
-Qy
-nb
-Ok
-hP
-KX
-Wu
-aH
-Rp
-Rp
-xa
-Hx
-Dp
-GB
-Ua
-Kk
-lt
-TJ
-vw
-WE
-cr
-cr
-zO
-cr
-Yt
-et
-XH
-Rx
-bO
-LF
-kB
-wK
-HI
-pq
-ZS
-hW
-Cc
-nT
-Rx
-Rx
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(58,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-wH
-bQ
-iM
-vv
-hj
-hj
-Gr
-BD
-hg
-Rp
-Rp
-Rp
-Rp
-Rp
-Rp
-vT
-NF
-VV
-Rp
-qd
-Qb
-Pp
-DZ
-Rp
-QT
-QT
-QT
-QT
-xQ
-Ev
-HA
-It
-WI
-It
-vw
-vw
-Qu
-cr
-na
-KL
-wf
-Ew
-vx
-Rx
-Pl
-Oe
-Zu
-yN
-wl
-Ou
-oh
-Rx
-Rx
-Rx
-Rx
-hc
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(59,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-wH
-wH
-xF
-wH
-hj
-Gr
-Cp
-Yr
-LX
-wY
-an
-Yh
-px
-xW
-Rp
-Rp
-VK
-Rp
-QT
-QT
-JP
-QT
-QT
-QT
-EU
-NV
-Bi
-Ho
-Oa
-Ev
-mt
-It
-mE
-nk
-bJ
-vw
-vx
-vx
-cr
-cr
-vx
-vx
-vx
-Rx
-xp
-PL
-XS
-EA
-Pc
-Yf
-BQ
-Rx
-Uh
-fl
-Nr
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(60,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-wH
-wH
-CJ
-iY
-VI
-hj
-lg
-SP
-IY
-Jc
-GQ
-CC
-sU
-ie
-wz
-Rp
-AE
-AE
-Jb
-QT
-nn
-nn
-nn
-QT
-wL
-Rl
-by
-TT
-xs
-Qp
-xT
-bY
-RA
-yi
-fp
-wy
-vw
-vw
-vx
-vx
-vx
-vx
-vx
-vx
-Rx
-qO
-Se
-jE
-JM
-pE
-js
-gC
-Rx
-jU
-Lx
-Vh
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(61,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-wH
-Wo
-uP
-Yv
-BN
-hj
-Gr
-EO
-LJ
-qN
-wY
-Lr
-Vu
-Pv
-YM
-Rp
-AE
-AE
-AE
-QT
-nn
-nn
-nn
-QT
-Wc
-di
-vm
-eS
-Bm
-Co
-Ev
-Zz
-It
-BJ
-dL
-GR
-vK
-vw
-vw
-vw
-vw
-po
-po
-po
-Rx
-Rx
-Na
-mR
-mk
-eC
-gC
-Rx
-Rx
-Nr
-Kp
-Nr
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(62,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-wH
-qe
-Fs
-wH
-wH
-hj
-hj
-Gr
-DR
-NO
-hj
-hj
-yl
-Fy
-hj
-Rp
-AE
-AE
-AE
-QT
-nn
-nn
-nn
-QT
-ps
-Ee
-Ee
-Ee
-QT
-Nu
-jh
-QS
-It
-jX
-TP
-Si
-rQ
-It
-Gd
-mp
-Ey
-po
-Bg
-fo
-nz
-Rx
-Rx
-Rx
-Rx
-Rx
-Rx
-Rx
-fB
-vJ
-cn
-Zv
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(63,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-wH
-LN
-nt
-pU
-uE
-jC
-pU
-pU
-pU
-pU
-pU
-zD
-HL
-OE
-jZ
-Rp
-Rp
-Rp
-Rp
-QT
-vG
-vG
-vG
-QT
-QT
-QT
-AS
-QT
-QT
-rl
-Ev
-Or
-It
-wN
-lB
-Si
-uL
-dR
-dR
-dR
-fk
-po
-kF
-VC
-lK
-po
-Mo
-uQ
-cf
-bV
-gI
-Za
-Nr
-Nr
-cn
-ZV
-Nr
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(64,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-wH
-wH
-HG
-pU
-pT
-Eg
-NK
-cC
-Jp
-Lp
-pU
-vl
-Iu
-UL
-OI
-hj
-en
-wV
-hj
-fR
-Qz
-Xf
-lN
-nj
-Qz
-kf
-Qz
-Ns
-QT
-Uc
-Ev
-CW
-It
-It
-xC
-WU
-FT
-tK
-QR
-QR
-vM
-po
-Kd
-qx
-nJ
-po
-xI
-UC
-ZC
-oA
-Am
-mI
-Sx
-pX
-eu
-tP
-Nr
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(65,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-UM
-By
-db
-Xt
-Lz
-ry
-ry
-YP
-dT
-Qv
-Mf
-ty
-qi
-tb
-NL
-QO
-RS
-WL
-WL
-RS
-eL
-kO
-kO
-JZ
-Ro
-Uy
-Tk
-kO
-Zh
-yL
-fr
-ve
-Zz
-QG
-It
-nE
-Jq
-ZO
-It
-XA
-zM
-Gd
-po
-Gj
-aB
-rU
-po
-Zk
-Mw
-Gt
-cG
-Mw
-In
-gA
-LD
-mY
-Nr
-Nr
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(66,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-HY
-HY
-wH
-wH
-pU
-aq
-Fp
-jb
-Kw
-tO
-Et
-pU
-zl
-wg
-vI
-ZE
-hj
-da
-OR
-hj
-aC
-iT
-iT
-ys
-jv
-gh
-zi
-Ac
-MX
-QT
-vO
-GB
-mP
-TJ
-It
-It
-It
-It
-It
-It
-It
-It
-po
-mu
-fA
-oq
-po
-LC
-IL
-le
-pg
-mx
-Za
-GA
-MK
-Vv
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(67,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-HY
-Zp
-Zp
-pU
-aq
-Fp
-pU
-HE
-aZ
-TW
-pU
-kq
-Dm
-hj
-hj
-hj
-hj
-hj
-hj
-QT
-QT
-AS
-QT
-QT
-QT
-QT
-QT
-QT
-QT
-RB
-gk
-Zz
-vC
-Me
-pj
-oC
-ep
-vC
-pv
-Ca
-QN
-po
-po
-rs
-po
-po
-Za
-Za
-Za
-Za
-Za
-Za
-Za
-AT
-rT
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(68,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-pU
-pU
-pU
-pU
-eU
-tO
-JS
-pU
-pU
-pU
-gP
-Vr
-BA
-sR
-gP
-ba
-DL
-FC
-IJ
-cB
-gP
-dj
-dj
-dj
-dj
-Gy
-Qp
-gk
-mW
-Ub
-Dg
-Cl
-Dg
-bB
-vC
-mr
-mr
-mr
-Zm
-la
-MM
-mr
-Nr
-Rz
-zj
-Db
-nh
-YR
-fG
-fG
-Nj
-Xy
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(69,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-vD
-nV
-my
-LO
-CE
-nV
-QU
-pU
-Qq
-AK
-sR
-sR
-gP
-ua
-sI
-mZ
-IJ
-IJ
-gP
-dj
-dj
-dj
-Xm
-Ak
-Qp
-uH
-Px
-uf
-aU
-GU
-FQ
-FA
-Ag
-xK
-su
-Ng
-Yp
-Yp
-CN
-Yp
-Em
-YG
-vQ
-fg
-EM
-Ax
-JK
-rL
-Es
-jz
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(70,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-rP
-nV
-my
-LO
-CE
-nV
-qc
-pU
-dX
-Pk
-Rc
-tm
-st
-lT
-gy
-wZ
-XQ
-CA
-gP
-TJ
-TJ
-TJ
-kd
-AN
-Qp
-gk
-Ua
-yW
-PR
-PR
-VA
-PF
-vC
-Fi
-Ux
-KM
-RG
-RP
-iG
-Rr
-Nr
-Sh
-ON
-ON
-Nc
-XK
-ZW
-us
-Ts
-Yl
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(71,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-vD
-nV
-my
-mz
-ye
-nV
-QU
-pU
-dU
-Td
-gx
-sR
-gP
-zQ
-wc
-xE
-XP
-eQ
-jj
-qy
-uG
-Ib
-ut
-ut
-Gc
-Ev
-cv
-vC
-dB
-KA
-iG
-Yb
-vC
-bn
-Ef
-sA
-ex
-Nn
-Qf
-Nn
-Nr
-ZR
-QM
-ro
-pN
-XK
-jf
-Al
-BT
-Rj
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(72,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-pU
-pU
-pu
-mz
-zV
-pU
-pU
-pU
-Ji
-go
-Zb
-Hq
-gP
-ee
-Vs
-VF
-ZJ
-bL
-oa
-cj
-Iv
-Iv
-Iv
-Iv
-wJ
-XD
-Wn
-Mt
-Mt
-Mt
-cX
-Mt
-Mt
-lS
-Jj
-TR
-ex
-RR
-Ln
-oI
-Nr
-Cw
-fq
-gB
-Au
-Fz
-iu
-pJ
-Nm
-gT
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(73,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-lr
-nV
-my
-mz
-ye
-nV
-QA
-pU
-gP
-BC
-gP
-gP
-gP
-AR
-JB
-gP
-gP
-gP
-gP
-TJ
-dj
-UU
-QD
-jF
-Qp
-Ev
-Zz
-Mt
-yG
-zo
-tt
-bt
-Mt
-ic
-Zw
-vd
-kl
-aI
-Ln
-oI
-Nr
-sv
-mG
-aR
-Nc
-kA
-Nr
-Nr
-Nr
-Nr
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(74,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-ui
-nV
-my
-mz
-ye
-nV
-qp
-pU
-Hh
-pr
-vq
-gP
-Sz
-Nw
-ff
-AA
-zG
-tY
-gP
-dj
-dj
-dj
-VM
-tE
-Qp
-Ev
-Zz
-Mt
-Xz
-En
-QL
-XW
-Mt
-Mt
-ex
-ex
-ex
-Nn
-Qf
-Nn
-Nr
-Nr
-yB
-Md
-pN
-Fw
-Nr
-hp
-rh
-WT
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(75,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-lr
-nV
-my
-mz
-ye
-nV
-QA
-pU
-OA
-IJ
-tv
-rZ
-AA
-Nw
-ff
-gK
-tA
-xv
-gP
-Rq
-Rq
-Rq
-Rq
-gs
-vo
-tr
-jL
-Mt
-Mn
-zf
-rv
-ki
-RJ
-Mt
-Ab
-Ab
-Ab
-bx
-qu
-mb
-cS
-Nr
-of
-qb
-xR
-MR
-BF
-II
-rE
-qg
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(76,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-pU
-pU
-pU
-Yy
-mz
-ig
-pU
-pU
-pU
-XC
-IJ
-tv
-jc
-AA
-iQ
-bu
-gK
-UY
-tN
-UD
-DE
-Rq
-Rq
-Rq
-gs
-xo
-EF
-iD
-Mt
-Mt
-Aj
-LI
-ki
-rD
-Mt
-Ab
-Ab
-Ab
-ZK
-Zf
-jY
-cS
-Nr
-rB
-Vq
-ca
-LZ
-bU
-Qj
-Sw
-gF
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(77,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-pU
-Di
-nV
-my
-mz
-PE
-nV
-tj
-pU
-NA
-tG
-tv
-yV
-AA
-AA
-TQ
-Ni
-xr
-oZ
-UD
-cJ
-cJ
-Rq
-Rq
-gs
-zq
-MP
-fy
-ZD
-tZ
-wp
-jK
-EW
-rW
-Mt
-Ab
-Ab
-Ab
-jx
-IH
-jY
-cS
-Nr
-fj
-YF
-ca
-cU
-sT
-DO
-CF
-Ih
-Nr
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(78,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-pU
-BH
-nV
-MZ
-Ck
-ye
-nV
-tj
-pU
-vk
-TL
-IJ
-uc
-AA
-GC
-mD
-oD
-oD
-pI
-UD
-bb
-CQ
-gO
-Rq
-gs
-Ya
-MP
-fy
-lb
-Du
-OF
-qG
-uU
-Mt
-Mt
-Nn
-Nn
-Nn
-Nn
-GK
-jY
-Nn
-Nr
-Of
-Hp
-ca
-Eh
-Nr
-GD
-qo
-Nr
-Nr
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(79,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-pU
-Tu
-nV
-ke
-hO
-bW
-nV
-tj
-pU
-gP
-Lg
-IJ
-gP
-zS
-fP
-aN
-AA
-Pt
-GC
-UD
-av
-Mk
-CQ
-Rq
-gs
-Kz
-uD
-oN
-Mt
-Mt
-Mt
-TN
-Mt
-Mt
-NR
-EC
-cF
-WP
-Df
-xe
-Kf
-ow
-Nr
-Nr
-Nr
-fZ
-Nr
-Nr
-Nr
-Nr
-Nr
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(80,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-pU
-pU
-pU
-nV
-Qk
-nV
-pU
-pU
-pU
-gP
-gP
-gP
-gP
-Iq
-hD
-AA
-gK
-on
-SW
-UD
-VT
-Oi
-kI
-Rq
-gs
-KV
-uD
-fy
-mj
-GW
-Ge
-tt
-Vg
-Mt
-Od
-Od
-Od
-ZM
-Wz
-jB
-YT
-iL
-uS
-Nr
-wq
-wq
-wq
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(81,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-pU
-bd
-bd
-NZ
-bd
-bd
-pU
-Ad
-gP
-vr
-Sa
-gP
-Wx
-dQ
-GC
-gK
-hF
-GG
-gP
-dO
-gs
-gs
-gs
-gs
-ZH
-tr
-fy
-mj
-YH
-KT
-LI
-JH
-Mt
-Od
-Od
-bH
-ZM
-Wz
-jB
-YT
-iL
-eM
-Nr
-wq
-wq
-wq
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(82,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-pU
-bd
-bd
-wk
-bd
-bd
-pU
-Ad
-gP
-fO
-hE
-HD
-mq
-HJ
-lx
-gK
-ST
-MO
-gP
-wE
-GL
-Ot
-ja
-Vn
-ct
-uD
-Vc
-Mt
-Mt
-Mt
-pR
-sV
-Mt
-YX
-uu
-ft
-ft
-kY
-bw
-cK
-Zd
-OX
-Nr
-wq
-wq
-wq
-Nr
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(83,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-pU
-pU
-pU
-pU
-pU
-pU
-pU
-wS
-gP
-gP
-gP
-wS
-wS
-wS
-gP
-gP
-gP
-gP
-gP
-gP
-gP
-SX
-Qo
-wu
-wu
-kR
-fN
-mj
-GW
-Ge
-fu
-GI
-Mt
-Yw
-Od
-bH
-ZM
-Xo
-yo
-YT
-Zd
-hA
-Nn
-Nn
-Nn
-Nn
-Nn
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(84,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ft
-Ft
-lY
-Bf
-EN
-wS
-wS
-Nf
-iv
-Jt
-wS
-Ad
-Ad
-Ad
-Kn
-Ad
-Ad
-Ad
-Ad
-Ad
-Ad
-Ad
-wS
-oc
-Tp
-eh
-IS
-lq
-RC
-mj
-YH
-KT
-dw
-Zr
-Mt
-WY
-bH
-ZF
-Oy
-bj
-BR
-om
-ce
-uS
-Nn
-aO
-Pd
-qv
-Nn
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(85,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ft
-Zp
-lY
-Bf
-EN
-RD
-gU
-Ty
-tI
-mF
-wS
-wS
-wS
-wS
-Gs
-wS
-wS
-wS
-wS
-wS
-Ad
-Ad
-wS
-OQ
-MP
-fy
-FU
-FU
-FU
-FU
-FU
-FU
-Gw
-FU
-FU
-YX
-ft
-rN
-uu
-Wz
-Fx
-dd
-VZ
-ms
-rX
-PY
-oL
-sM
-Nn
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(86,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-lY
-Bf
-EN
-RD
-XI
-Cs
-FV
-ne
-JO
-BE
-Cv
-UO
-ej
-pm
-Lo
-jR
-Ai
-wS
-wS
-wS
-wS
-wC
-tr
-Vc
-FU
-du
-Lu
-jJ
-YN
-EE
-gJ
-rG
-FU
-Od
-bH
-Od
-ZM
-Xo
-wj
-no
-ym
-nF
-Hb
-PX
-Xh
-Rk
-Nn
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(87,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-HY
-lY
-Bf
-EN
-RD
-zm
-Vl
-PG
-hI
-sx
-uK
-DV
-wT
-kP
-jm
-gd
-Rg
-Cy
-wI
-aS
-FR
-pK
-Ya
-pe
-TC
-gW
-bS
-bS
-jV
-gw
-hV
-gV
-Rn
-FU
-Od
-Od
-Od
-ZM
-Xo
-cK
-cK
-iL
-xw
-Nn
-lZ
-Xh
-kJ
-Nn
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(88,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-HY
-HY
-lY
-Bf
-EN
-wS
-Op
-GJ
-tC
-Gm
-hx
-US
-Mp
-KP
-vs
-ag
-Yq
-Rg
-kM
-SB
-Wp
-oJ
-op
-IP
-kR
-oG
-gW
-bS
-bS
-jV
-ny
-ny
-iX
-Rn
-FU
-nZ
-hQ
-ei
-ei
-CU
-Vx
-Xv
-ti
-uS
-Nn
-tW
-LE
-Nn
-Nn
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(89,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ft
-HY
-lY
-Bf
-EN
-RD
-IZ
-Vl
-bg
-Rf
-dD
-oX
-TF
-nC
-SE
-HS
-zK
-US
-iz
-wI
-DF
-xt
-pK
-KV
-jP
-jL
-FU
-mN
-JJ
-Ao
-yA
-YZ
-az
-FU
-FU
-Nn
-Nn
-Nn
-Nn
-zn
-zn
-zn
-zn
-Nn
-Nn
-Nn
-Nn
-Nn
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(90,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Ft
-Zp
-lY
-Bf
-EN
-RD
-As
-eP
-Ia
-Az
-QI
-Ce
-Xd
-wd
-IM
-ac
-HC
-qE
-HZ
-wS
-wS
-wS
-wS
-TI
-jW
-TI
-wS
-wS
-FU
-FU
-FU
-FU
-FU
-FU
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(91,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-lY
-Bf
-EN
-RD
-HF
-fU
-GN
-Ov
-wS
-wS
-wS
-LW
-wS
-wS
-wS
-iK
-wS
-wS
-sm
-Jh
-wS
-Dl
-HM
-Su
-Qn
-wS
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(92,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-lY
-Bf
-EN
-wS
-wS
-aG
-eF
-Ke
-wS
-cH
-yy
-kC
-pa
-YI
-wS
-Bc
-IN
-wS
-eK
-PS
-wS
-KF
-fH
-So
-Ie
-wS
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(93,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-ak
-ak
-ak
-wS
-RD
-RD
-RD
-wS
-mB
-eB
-qk
-sb
-so
-wS
-qC
-DM
-mw
-IR
-Af
-mw
-JR
-gg
-cc
-DY
-wS
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(94,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-ak
-ak
-ak
-ak
-EN
-EN
-EN
-wS
-tx
-tM
-Mv
-do
-NT
-wS
-ue
-YC
-wS
-TV
-Kt
-wS
-Bz
-Ls
-Hs
-kN
-wS
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(95,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-ak
-ak
-ak
-Bf
-Bf
-Bf
-wS
-RD
-RD
-wS
-wS
-wS
-wS
-RD
-wS
-wS
-wS
-wS
-wS
-wS
-wS
-wS
-wS
-wS
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(96,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-sN
-sN
-sN
-HY
-HY
-HY
-HY
-HY
-sN
-sN
-sN
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(97,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-sN
-sN
-HY
-HY
-Zp
-Zp
-HY
-sN
-sN
-sN
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(98,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-HY
-HY
-HY
-Zp
-vV
-vV
-vV
-vV
-vV
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-Zp
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(99,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(100,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(101,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(102,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(103,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(104,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(105,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(106,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(107,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(108,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(109,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(110,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(111,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(112,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(113,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(114,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(115,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(116,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(117,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(118,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(119,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(120,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
-(121,1,1) = {"
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-vV
-"}
diff --git a/_maps/outpost/nanotrasen_ice.dmm b/_maps/outpost/nanotrasen_ice.dmm
index 71f305ef1c20..a63dad550b80 100644
--- a/_maps/outpost/nanotrasen_ice.dmm
+++ b/_maps/outpost/nanotrasen_ice.dmm
@@ -630,6 +630,23 @@
light_range = 2
},
/area/outpost/exterior)
+"ek" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/camera{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister{
+ icon_state = "orangews"
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"el" = (
/obj/structure/window/reinforced/spawner{
dir = 4
@@ -943,7 +960,7 @@
"gO" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/sign/poster/retro/random{
pixel_x = -32
},
@@ -1168,7 +1185,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"iH" = (
@@ -1280,9 +1297,6 @@
/turf/open/floor/plasteel/patterned/ridged,
/area/outpost/vacant_rooms/shop)
"jI" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
/obj/effect/turf_decal/borderfloor,
/obj/machinery/light/small/directional/east,
/obj/structure/railing{
@@ -1342,6 +1356,18 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/telecomms_floor,
/area/outpost/security/checkpoint)
+"kB" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"kG" = (
/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/glass{
@@ -1436,14 +1462,13 @@
/turf/open/floor/plasteel/patterned,
/area/outpost/crew/cryo)
"li" = (
-/obj/effect/turf_decal/siding/white{
- dir = 4
- },
/obj/effect/turf_decal/borderfloor{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
+/obj/structure/railing{
+ dir = 4
+ },
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2
@@ -1652,6 +1677,17 @@
light_range = 2
},
/area/outpost/exterior)
+"mh" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plating{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"mk" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/white{
@@ -1816,7 +1852,7 @@
"mV" = (
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"na" = (
@@ -1839,6 +1875,17 @@
},
/turf/open/floor/plasteel/dark,
/area/outpost/cargo/smeltery)
+"nh" = (
+/obj/machinery/atmospherics/components/unary/hydrogen_pump{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"nn" = (
/obj/structure/window/reinforced/spawner,
/obj/effect/turf_decal/siding/white,
@@ -2184,7 +2231,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/outpost/maintenance/starboard)
"oF" = (
@@ -2516,6 +2563,16 @@
},
/turf/open/floor/plasteel/dark,
/area/outpost/cargo/smeltery)
+"qW" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"qY" = (
/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/machinery/door/firedoor/border_only{
@@ -3274,7 +3331,7 @@
/area/outpost/maintenance/fore)
"vn" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small/directional/south,
/turf/open/floor/plating{
@@ -3483,7 +3540,7 @@
/area/outpost/engineering/atmospherics)
"wD" = (
/obj/structure/grille/broken,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/spider/stickyweb,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plating/rust,
@@ -3514,10 +3571,6 @@
/obj/effect/turf_decal/borderfloor{
dir = 9
},
-/obj/effect/turf_decal/siding/white/corner,
-/obj/structure/railing/corner{
- layer = 4.1
- },
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2
@@ -3641,6 +3694,19 @@
},
/turf/open/floor/plasteel/tech,
/area/outpost/maintenance/starboard)
+"xB" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"xG" = (
/obj/effect/turf_decal/siding/white/corner,
/obj/effect/turf_decal/borderfloor{
@@ -3821,6 +3887,20 @@
/obj/effect/landmark/ert_outpost_spawn,
/turf/open/floor/plasteel/tech,
/area/outpost/security/armory)
+"zs" = (
+/obj/machinery/portable_atmospherics/canister{
+ icon_state = "orangews"
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/sign/nanotrasen/ns{
+ pixel_x = 32
+ },
+/obj/item/wrench,
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"zw" = (
/obj/effect/turf_decal/borderfloor{
dir = 8
@@ -4009,7 +4089,7 @@
/obj/structure/flora/grass/both{
layer = 3.1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -4403,7 +4483,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/trash/sosjerky,
/obj/item/trash/can,
/turf/open/floor/plasteel/patterned/brushed{
@@ -4538,10 +4618,6 @@
/obj/effect/turf_decal/borderfloor{
dir = 1
},
-/obj/effect/turf_decal/siding/white,
-/obj/structure/railing{
- layer = 4.1
- },
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
@@ -4559,7 +4635,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
dir = 8
},
@@ -4847,7 +4923,7 @@
dir = 5
},
/obj/item/trash/chips,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/trash/candy,
/turf/open/floor/wood/walnut,
/area/outpost/crew/bar)
@@ -5598,6 +5674,16 @@
},
/turf/open/floor/plating,
/area/outpost/security)
+"Mh" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 6
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"Mi" = (
/obj/machinery/camera{
dir = 10
@@ -5708,6 +5794,19 @@
/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/plasteel/patterned,
/area/outpost/cargo/smeltery)
+"MS" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 10
+ },
+/obj/structure/railing/corner{
+ dir = 4;
+ layer = 4.1
+ },
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"MW" = (
/obj/structure/closet/emcloset,
/obj/item/clothing/suit/hooded/wintercoat,
@@ -6069,7 +6168,7 @@
"PN" = (
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/outpost/vacant_rooms/shop)
"PT" = (
@@ -6778,18 +6877,8 @@
},
/area/outpost/external)
"TZ" = (
-/obj/structure/flora/grass/both{
- layer = 3.1
- },
-/obj/item/broken_bottle{
- pixel_x = 4
- },
-/obj/item/cigbutt,
-/obj/item/cigbutt{
- pixel_y = 6;
- pixel_x = -8
- },
-/turf/open/floor/plating/asteroid/snow/temperatre{
+/obj/machinery/atmospherics/components/binary/volume_pump,
+/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2
},
@@ -7383,6 +7472,23 @@
},
/turf/open/floor/plasteel/dark,
/area/outpost/cargo/smeltery)
+"Xr" = (
+/obj/item/cigbutt{
+ pixel_y = 6;
+ pixel_x = -8
+ },
+/obj/effect/decal/cleanable/ash,
+/obj/item/cigbutt{
+ pixel_x = 3
+ },
+/obj/structure/sign/warning/nosmoking/burnt{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/patterned/brushed{
+ light_color = "#1B1D2E";
+ light_range = 2
+ },
+/area/outpost/exterior)
"Xv" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
@@ -7558,7 +7664,7 @@
/obj/structure/flora/grass/green{
layer = 3.1
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -7682,10 +7788,14 @@
/turf/open/floor/plasteel/tech,
/area/outpost/security/checkpoint)
"YZ" = (
-/obj/machinery/camera{
+/obj/machinery/computer/hydrogen_exchange{
dir = 8
},
-/turf/open/floor/plating/asteroid/snow/temperatre{
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/patterned/brushed{
light_color = "#1B1D2E";
light_range = 2
},
@@ -7695,7 +7805,7 @@
layer = 3.1
},
/obj/item/shard,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/asteroid/snow/temperatre{
light_color = "#1B1D2E";
light_range = 2
@@ -12947,11 +13057,11 @@ zw
SA
Nn
wW
-HW
-HW
+xB
+qW
li
-AT
-nH
+kB
+MS
Ti
xG
HW
@@ -13032,9 +13142,9 @@ nZ
BL
Ey
YZ
-qZ
+Mh
TZ
-NG
+ek
jI
Ti
ig
@@ -13116,8 +13226,8 @@ iO
Zy
iO
iO
-NG
-cC
+mh
+Xr
Ak
Ak
ny
@@ -13200,8 +13310,8 @@ iO
YA
xn
iO
-cC
-cC
+nh
+zs
Ak
Od
ML
diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm
index c283c0d21584..3033a47aedc5 100644
--- a/_maps/shuttles/independent/independent_beluga.dmm
+++ b/_maps/shuttles/independent/independent_beluga.dmm
@@ -243,7 +243,6 @@
/obj/effect/turf_decal/industrial/traffic/corner{
dir = 8
},
-/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/light/directional/east,
/obj/machinery/button/shieldwallgen{
dir = 1;
@@ -257,12 +256,7 @@
pixel_y = -23;
dir = 1
},
-/obj/machinery/mineral/ore_redemption{
- dir = 8;
- input_dir = 8;
- output_dir = 8
- },
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
"cW" = (
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -1090,7 +1084,7 @@
pixel_y = -32
},
/obj/item/storage/bag/tray,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 6;
pixel_y = 6
},
@@ -2631,7 +2625,7 @@
"zh" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
/area/ship/crew/dorm)
@@ -3425,7 +3419,7 @@
/area/ship/crew/canteen)
"Hq" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/obj/structure/sign/poster/official/ian{
pixel_x = 32
@@ -3803,7 +3797,7 @@
"Kc" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light_switch{
pixel_x = -8;
pixel_y = -20;
@@ -3827,7 +3821,7 @@
/area/ship/crew)
"Ko" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/turf/open/floor/carpet/red,
/area/ship/crew)
@@ -4118,7 +4112,7 @@
"Nv" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"Nw" = (
@@ -4569,6 +4563,8 @@
pixel_y = 7;
pixel_x = -8
},
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
"SK" = (
@@ -4927,7 +4923,7 @@
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/under/syndicate/inteq/skirt,
/obj/item/clothing/under/syndicate/inteq,
/obj/item/clothing/head/beret/sec/inteq,
diff --git a/_maps/shuttles/independent/independent_box.dmm b/_maps/shuttles/independent/independent_box.dmm
index 31891a371d8c..55d739348aa4 100644
--- a/_maps/shuttles/independent/independent_box.dmm
+++ b/_maps/shuttles/independent/independent_box.dmm
@@ -711,7 +711,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"cG" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/emcloset/anchored,
/obj/machinery/atmospherics/pipe/simple/orange/hidden{
dir = 4
@@ -968,7 +968,7 @@
dir = 8
},
/obj/structure/bed/pod,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet/blue,
/area/ship/crew)
"dr" = (
@@ -1162,7 +1162,7 @@
/obj/structure/sign/poster/official/help_others{
pixel_x = -32
},
-/obj/effect/spawner/lootdrop/tool_surgery_adv,
+/obj/effect/spawner/random/medical/surgery_tool/adv,
/obj/item/megaphone/command,
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
@@ -1269,7 +1269,6 @@
/obj/structure/rack,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/item/storage/box/lights/bulbs,
-/obj/item/circuitboard/machine/ore_redemption,
/obj/item/pickaxe/emergency,
/obj/item/storage/box/lights/mixed,
/obj/item/stack/sheet/mineral/plasma/twenty,
@@ -1360,7 +1359,7 @@
icon_state = "med";
name = "equipment locker"
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/reagent_containers/spray/cleaner,
/obj/item/storage/belt/medical,
/obj/item/storage/belt/medical,
@@ -1421,7 +1420,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/medical)
"mx" = (
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
@@ -1443,8 +1442,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"mE" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -1460,10 +1460,10 @@
/area/ship/medical)
"nA" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_y = 3
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -5;
pixel_y = 3
},
@@ -2022,7 +2022,7 @@
/obj/item/circuitboard/machine/chem_master,
/obj/item/reagent_containers/glass/beaker/large,
/obj/item/stack/sheet/glass/two,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/trash/can/food/beans,
/turf/open/floor/plasteel/white,
/area/ship/medical)
@@ -2165,7 +2165,7 @@
/obj/item/vending_refill/medical,
/obj/item/screwdriver,
/obj/machinery/airalarm/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Cn" = (
@@ -2808,7 +2808,7 @@
/obj/structure/cable/yellow{
icon_state = "0-10"
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/rack,
/obj/item/areaeditor/shuttle,
/obj/item/flashlight{
diff --git a/_maps/shuttles/independent/independent_bubble.dmm b/_maps/shuttles/independent/independent_bubble.dmm
index 08fd116f2536..298a919bbaa7 100644
--- a/_maps/shuttles/independent/independent_bubble.dmm
+++ b/_maps/shuttles/independent/independent_bubble.dmm
@@ -248,7 +248,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/hallway/central)
"jr" = (
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/bed,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood{
@@ -905,7 +905,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"LK" = (
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/bed,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood{
@@ -1228,7 +1228,7 @@
/turf/open/floor/plasteel,
/area/ship/engineering)
"Yi" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/closet/firecloset/full,
/turf/open/floor/plating,
/area/ship/maintenance/port)
diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm
index d1cc698c0c92..a137fd2df5d0 100644
--- a/_maps/shuttles/independent/independent_dwayne.dmm
+++ b/_maps/shuttles/independent/independent_dwayne.dmm
@@ -22,9 +22,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
-"ap" = (
-/turf/closed/wall,
-/area/ship/crew/dorm)
"as" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/cyan{
@@ -33,7 +30,10 @@
/obj/structure/cable/cyan{
icon_state = "1-6"
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"ax" = (
/obj/machinery/power/solar,
@@ -82,7 +82,7 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"aS" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer2{
dir = 1
},
/obj/machinery/advanced_airlock_controller{
@@ -116,17 +116,19 @@
dir = 1
},
/obj/item/stack/packageWrap{
- pixel_y = 9;
+ pixel_y = 2;
pixel_x = -7
},
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"bf" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"bj" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"bl" = (
/obj/effect/decal/cleanable/dirt,
@@ -139,7 +141,7 @@
/obj/structure/cable/cyan{
icon_state = "2-9"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"bv" = (
/obj/structure/cable/cyan{
@@ -163,9 +165,7 @@
/turf/open/floor/wood,
/area/ship/crew/canteen)
"bE" = (
-/obj/machinery/door/airlock/grunge{
- name = "Bathroom"
- },
+/obj/machinery/door/airlock/public,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
@@ -178,8 +178,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/toilet)
"bO" = (
-/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"bP" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -247,7 +246,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/bridge)
"cL" = (
@@ -257,12 +256,15 @@
/obj/structure/closet/crate,
/obj/machinery/firealarm/directional/north,
/obj/item/circuitboard/machine/pipedispenser,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"dh" = (
-/obj/structure/sign/number/random,
-/turf/closed/wall/r_wall,
+/obj/structure/sign/number/random{
+ color = "Black";
+ pixel_y = -7
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/canteen)
"dx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -272,9 +274,9 @@
dir = 9
},
/obj/effect/decal/cleanable/dirt,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/closet/crate/secure/plasma{
name = "ammo crate";
desc = "A secure ammo crate."
@@ -302,22 +304,15 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"dQ" = (
-/turf/closed/wall/r_wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/cryo)
-"ec" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
"ei" = (
/obj/machinery/door/poddoor/preopen{
id = "dwayne_windows";
dir = 2
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/crew/cryo)
"eu" = (
@@ -339,7 +334,7 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/storage/eva)
"eM" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/cargo)
"fl" = (
/obj/machinery/atmospherics/components/trinary/mixer{
@@ -349,6 +344,7 @@
node2_concentration = 0.67;
target_pressure = 500
},
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"fp" = (
@@ -362,12 +358,11 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew/canteen)
"fy" = (
-/obj/structure/catwalk,
/obj/item/clothing/head/cone{
pixel_x = 3;
pixel_y = -2
},
-/turf/open/floor/plating/airless,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
"fz" = (
/obj/structure/cable/yellow{
@@ -376,6 +371,7 @@
/obj/structure/sign/poster/contraband/cardinal_port_starboard{
pixel_y = 32
},
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"fV" = (
@@ -417,6 +413,9 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"gf" = (
@@ -457,7 +456,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"gu" = (
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/cargo)
"gF" = (
/obj/machinery/power/shuttle/engine/fire,
@@ -489,7 +488,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/crew/canteen)
"he" = (
@@ -575,10 +574,11 @@
/obj/structure/cable/cyan{
icon_state = "0-2"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/storage/eva)
"iq" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer4,
/obj/effect/turf_decal/industrial/warning{
dir = 9
},
@@ -711,14 +711,14 @@
/obj/structure/cable/yellow{
icon_state = "0-6"
},
-/obj/item/paper/guides/jobs/engi/combustion_thruster{
- pixel_x = -5;
- pixel_y = 1
- },
/obj/item/reagent_containers/food/drinks/mug{
pixel_x = 10;
pixel_y = 3
},
+/obj/item/newspaper{
+ pixel_x = -5;
+ pixel_y = 2
+ },
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"ld" = (
@@ -727,7 +727,7 @@
dir = 2
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/crew/canteen)
"ls" = (
@@ -792,6 +792,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"mf" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/effect/turf_decal/industrial/warning,
/obj/item/c_tube{
pixel_y = 3
@@ -799,16 +800,19 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"mr" = (
/obj/structure/cable/cyan{
icon_state = "1-2"
},
+/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
+ dir = 4
+ },
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"ms" = (
/obj/machinery/computer/helm/viewscreen/directional/north,
@@ -835,13 +839,11 @@
icon_state = "4-8"
},
/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"mA" = (
/obj/effect/turf_decal/industrial/warning/corner,
/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"mC" = (
@@ -878,7 +880,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"mF" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/engineering)
"mJ" = (
/obj/structure/table/reinforced,
@@ -895,11 +897,15 @@
pixel_y = 6
},
/obj/item/pen/fountain,
+/obj/item/stamp/captain{
+ pixel_x = -7;
+ pixel_y = 9
+ },
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"mR" = (
/obj/effect/turf_decal/solarpanel,
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/crew/cryo)
"mX" = (
/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
@@ -942,7 +948,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"nY" = (
-/turf/closed/wall/r_wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/canteen)
"oa" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -963,7 +969,9 @@
/obj/effect/turf_decal/box/corners{
dir = 4
},
-/obj/machinery/suit_storage_unit/independent/mining/eva,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/mining/independent,
+/obj/item/clothing/mask/gas/explorer,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"om" = (
@@ -1026,10 +1034,7 @@
/obj/item/clothing/shoes/workboots,
/obj/item/clothing/under/rank/security/detective,
/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/suit/jacket/leather/duster{
- name = "foreman's duster";
- desc = "A long, utilitarian leather coat. Ideal for protecting its wearer from rain, sun, dust and paperwork."
- },
+/obj/item/clothing/suit/jacket/leather/duster,
/obj/item/storage/belt/utility/full,
/obj/item/clothing/gloves/fingerless,
/obj/item/clothing/head/cowboy/sec,
@@ -1146,9 +1151,6 @@
/obj/machinery/computer/crew,
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
-"pn" = (
-/turf/closed/wall,
-/area/ship/crew/cryo)
"pq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -1237,9 +1239,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/plasteel/tech,
/area/ship/crew/canteen)
-"qz" = (
-/turf/closed/wall/r_wall,
-/area/ship/storage/eva)
"qK" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -1278,7 +1277,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"rE" = (
-/turf/closed/wall/r_wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
"sg" = (
/obj/effect/turf_decal/industrial/warning,
@@ -1307,7 +1306,6 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/dept/cargo{
dir = 1
},
@@ -1356,9 +1354,6 @@
/obj/item/cigbutt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
-"tq" = (
-/turf/closed/wall/r_wall,
-/area/ship/engineering)
"tJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
@@ -1367,7 +1362,7 @@
dir = 10
},
/obj/item/stack/sheet/cardboard,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"tX" = (
/obj/effect/turf_decal/ntspaceworks_big/eight{
@@ -1376,7 +1371,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"uc" = (
-/turf/closed/wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/storage/eva)
"uk" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -1406,6 +1401,7 @@
/obj/structure/cable/cyan{
icon_state = "0-1"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/cargo)
"uT" = (
@@ -1442,7 +1438,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"vj" = (
@@ -1452,8 +1448,11 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"vm" = (
-/obj/structure/sign/number/random,
-/turf/closed/wall/r_wall,
+/obj/structure/sign/number/random{
+ color = "Black";
+ pixel_y = -7
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"vn" = (
/obj/machinery/power/smes/shuttle/precharged{
@@ -1489,7 +1488,7 @@
/area/ship/crew/canteen)
"vA" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"vJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1500,7 +1499,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/engineering)
"vQ" = (
@@ -1508,6 +1507,7 @@
icon_state = "5-8"
},
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"wh" = (
@@ -1523,12 +1523,11 @@
pixel_x = -12;
pixel_y = -20
},
-/obj/machinery/suit_storage_unit/independent/mining/eva,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/mining/independent,
+/obj/item/clothing/mask/gas/explorer,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
-"wv" = (
-/turf/closed/wall,
-/area/ship/bridge)
"ww" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/structure/closet/crate/secure/exo,
@@ -1537,12 +1536,14 @@
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
/obj/item/clothing/suit/hazardvest,
+/obj/item/storage/belt/mining/alt,
+/obj/item/storage/belt/mining/alt,
/obj/item/clothing/head/hardhat/mining,
/obj/item/clothing/head/hardhat/mining,
/obj/item/clothing/head/hardhat/mining,
/obj/item/clothing/glasses/meson,
/obj/item/clothing/glasses/meson,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"wW" = (
/obj/effect/turf_decal/industrial/warning{
@@ -1551,7 +1552,6 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"xh" = (
@@ -1584,7 +1584,7 @@
},
/obj/machinery/light/directional/west,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"yu" = (
@@ -1651,6 +1651,7 @@
dir = 1
},
/obj/effect/decal/cleanable/oil/streak,
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"zi" = (
@@ -1691,7 +1692,9 @@
/obj/effect/turf_decal/box/corners{
dir = 1
},
-/obj/machinery/suit_storage_unit/independent/mining/eva,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/mining/independent,
+/obj/item/clothing/mask/gas/explorer,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"zF" = (
@@ -1727,10 +1730,13 @@
/obj/structure/cable/cyan{
icon_state = "1-2"
},
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"zQ" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -1824,7 +1830,7 @@
dir = 2
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/bridge)
"Bx" = (
@@ -1850,7 +1856,7 @@
/area/ship/storage/eva)
"CB" = (
/obj/structure/sign/warning/docking,
-/turf/closed/wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/engineering)
"CD" = (
/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
@@ -1876,7 +1882,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/crew/dorm)
"CP" = (
@@ -1889,7 +1895,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/large,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Ds" = (
@@ -1901,7 +1907,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/crew/canteen)
"DG" = (
@@ -1929,7 +1935,6 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/ash,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"DR" = (
@@ -1965,7 +1970,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/crew/toilet)
"Ex" = (
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/obj/structure/grille,
/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
@@ -1985,11 +1990,13 @@
icon_state = "4-8"
},
/obj/structure/extinguisher_cabinet/directional/north,
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"Fd" = (
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"Fn" = (
@@ -2004,7 +2011,7 @@
/area/ship/storage/eva)
"Fq" = (
/obj/effect/turf_decal/solarpanel,
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/crew/dorm)
"Fz" = (
/obj/structure/table/wood,
@@ -2037,14 +2044,13 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/central)
"FN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -2055,7 +2061,7 @@
"FP" = (
/obj/structure/closet/crate/large,
/obj/machinery/portable_atmospherics/canister/hydrogen,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"FR" = (
/obj/structure/closet/cardboard,
@@ -2115,6 +2121,8 @@
},
/obj/machinery/light/directional/east,
/obj/structure/closet/crate/engineering,
+/obj/item/radio/weather_monitor,
+/obj/item/radio/weather_monitor,
/obj/item/t_scanner/adv_mining_scanner/lesser{
pixel_y = -3
},
@@ -2149,10 +2157,11 @@
/obj/structure/cable/cyan{
icon_state = "0-2"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/storage/eva)
"GW" = (
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
"He" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -2169,14 +2178,14 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
"Hh" = (
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/obj/structure/grille,
/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/cargo)
"HE" = (
/obj/effect/turf_decal/solarpanel,
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/crew/canteen)
"HI" = (
/obj/machinery/door/airlock/external{
@@ -2189,7 +2198,7 @@
/obj/structure/toilet{
dir = 8;
pixel_y = 7;
- pixel_x = 6
+ pixel_x = 4
},
/obj/effect/decal/cleanable/vomit/old{
pixel_y = 13;
@@ -2208,13 +2217,14 @@
/obj/machinery/door/poddoor{
id = "dwayne_cargo"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/cargo)
"Is" = (
/obj/structure/closet/crate/science,
/obj/item/paicard,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"IF" = (
/obj/effect/turf_decal/corner/opaque/ntblue/half,
@@ -2246,7 +2256,7 @@
id = "dwayne_windows";
dir = 2
},
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/bridge)
"IZ" = (
@@ -2272,7 +2282,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/crew/canteen)
"Jn" = (
@@ -2433,10 +2443,10 @@
/obj/structure/closet/secure_closet/freezer/wall/directional/south{
name = "kitchen cabinet"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -2484,12 +2494,11 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/engineering)
"Mn" = (
/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"Mo" = (
@@ -2499,7 +2508,10 @@
/obj/structure/cable/cyan{
icon_state = "5-10"
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/ntspaceworks_big/six{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"Mz" = (
/obj/machinery/holopad/emergency/command,
@@ -2535,7 +2547,7 @@
/turf/open/floor/plating/airless,
/area/ship/external/dark)
"MG" = (
-/turf/closed/wall/r_wall,
+/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/dorm)
"MQ" = (
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
@@ -2551,16 +2563,18 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"MT" = (
+/obj/effect/turf_decal/corner/opaque/yellow/full,
/obj/effect/turf_decal/industrial/warning/corner{
dir = 4
},
/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"Nf" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Nw" = (
/obj/structure/cable/cyan{
@@ -2603,7 +2617,7 @@
dir = 2
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating/airless,
/area/ship/crew/dorm)
"NN" = (
@@ -2617,29 +2631,11 @@
/area/ship/storage/eva)
"NT" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_y = 2
- },
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_y = -3;
- pixel_x = 7
- },
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = -6
- },
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_y = -3
- },
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = -4;
- pixel_y = -4
- },
-/turf/open/floor/plating,
+/obj/item/storage/box/glowsticks,
+/obj/item/storage/box/glowsticks,
+/obj/item/storage/box/glowsticks,
+/obj/item/storage/box/glowsticks,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"NW" = (
/obj/effect/decal/cleanable/dirt,
@@ -2664,11 +2660,13 @@
/obj/effect/turf_decal/industrial/warning/corner{
dir = 1
},
-/obj/structure/chair/comfy/shuttle{
- dir = 2
- },
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/fragile,
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/clothing/mask/breath,
+/obj/item/tank/internals/emergency_oxygen,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"Ov" = (
@@ -2701,17 +2699,18 @@
/obj/machinery/light/directional/west,
/obj/structure/filingcabinet/filingcabinet{
dir = 4;
- pixel_x = -10
+ pixel_x = -10;
+ density = 0
},
/obj/effect/turf_decal/corner/opaque/ntblue/border{
dir = 8
},
/obj/item/flashlight/flare,
-/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen,
/obj/item/clothing/mask/breath,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/gun/ballistic/revolver/detective,
/obj/item/megaphone/cargo,
/turf/open/floor/plasteel/mono/dark,
@@ -2751,11 +2750,11 @@
/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/structure/closet/crate/large,
/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/lootdrop/plushie,
-/obj/effect/spawner/lootdrop/plushie,
-/obj/effect/spawner/lootdrop/plushie,
-/obj/effect/spawner/lootdrop/plushie,
-/obj/effect/spawner/lootdrop/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
/obj/structure/cable/cyan{
icon_state = "1-2"
},
@@ -2774,18 +2773,11 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"Pe" = (
-/obj/structure/catwalk,
/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
dir = 4
},
-/turf/open/floor/plating/airless,
+/turf/open/floor/engine/hull,
/area/ship/external/dark)
-"Ph" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/storage/eva)
"Pl" = (
/obj/structure/cable/yellow{
icon_state = "4-6"
@@ -2831,10 +2823,10 @@
/obj/effect/turf_decal/industrial/warning/corner{
dir = 8
},
+/obj/item/radio/intercom/directional/east,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
-/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"PU" = (
@@ -2849,6 +2841,8 @@
/obj/item/pen,
/obj/item/pen,
/obj/effect/turf_decal/ntspaceworks_big/eight,
+/obj/item/stamp,
+/obj/item/stamp/denied,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Qe" = (
@@ -2864,10 +2858,10 @@
pixel_x = -2;
pixel_y = 3
},
-/obj/structure/catwalk/over/plated_catwalk/white,
/obj/machinery/door/window/northleft{
name = "Shower Door"
},
+/obj/structure/catwalk/over/plated_catwalk/white,
/turf/open/floor/plasteel/mono/white,
/area/ship/crew/toilet)
"Qg" = (
@@ -2923,6 +2917,9 @@
dir = 1
},
/obj/item/cigbutt,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"RA" = (
@@ -2949,7 +2946,7 @@
/turf/open/floor/plating/airless,
/area/ship/external/dark)
"RN" = (
-/turf/closed/wall/r_wall/yesdiag,
+/turf/closed/wall/mineral/titanium,
/area/ship/storage/eva)
"RS" = (
/obj/effect/turf_decal/corner/opaque/yellow/three_quarters{
@@ -2988,11 +2985,14 @@
/obj/item/tank/internals/oxygen/yellow,
/obj/item/tank/internals/oxygen/yellow,
/obj/item/tank/internals/oxygen/yellow,
-/obj/item/tank/internals/oxygen/yellow,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/item/tank/internals/emergency_oxygen/engi,
-/turf/open/floor/plating,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/effect/turf_decal/ntspaceworks_big/one{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"Se" = (
/obj/machinery/door/firedoor/border_only{
@@ -3048,7 +3048,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/crew/dorm)
"SB" = (
@@ -3068,7 +3068,10 @@
/obj/structure/cable/cyan{
icon_state = "0-4"
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"Tl" = (
/obj/machinery/washing_machine,
@@ -3089,6 +3092,9 @@
"TO" = (
/obj/effect/turf_decal/corner/opaque/yellow/half,
/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"TP" = (
@@ -3115,9 +3121,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
-"Um" = (
-/turf/closed/wall,
-/area/ship/crew/canteen)
"Un" = (
/obj/effect/decal/cleanable/ash,
/obj/structure/railing{
@@ -3215,7 +3218,7 @@
dir = 4
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/crew/dorm)
"Wi" = (
@@ -3254,7 +3257,8 @@
/area/ship/hallway/central)
"WK" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/ntspaceworks_big/seven,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"WL" = (
/obj/machinery/door/poddoor/preopen{
@@ -3262,7 +3266,7 @@
dir = 2
},
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
+/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/engineering)
"WZ" = (
@@ -3383,9 +3387,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering)
-"YJ" = (
-/turf/closed/wall/r_wall,
-/area/ship/cargo)
"YN" = (
/obj/machinery/door/poddoor{
id = "dwayne_cargo"
@@ -3398,6 +3399,7 @@
/obj/structure/cable/cyan{
icon_state = "0-1"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/cargo)
"YY" = (
@@ -3405,7 +3407,7 @@
/obj/item/trash/candy,
/obj/item/trash/sosjerky,
/obj/item/trash/can/food/beans,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/cable/cyan{
icon_state = "2-5"
},
@@ -3443,16 +3445,20 @@
/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"ZA" = (
+/obj/effect/turf_decal/corner/opaque/yellow/half{
+ dir = 1
+ },
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid,
/area/ship/storage/eva)
"ZK" = (
/obj/machinery/door/poddoor{
id = "dwayne_mining"
},
+/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plating,
/area/ship/storage/eva)
"ZL" = (
@@ -3573,26 +3579,26 @@ OJ
"}
(5,1,1) = {"
OJ
-tq
+mF
CD
vn
-tq
+mF
Mk
-tq
-tq
+mF
+mF
kf
-tq
-tq
+mF
+mF
vJ
-tq
+mF
ls
gm
-tq
+mF
OJ
"}
(6,1,1) = {"
OJ
-tq
+mF
YE
bP
om
@@ -3606,12 +3612,12 @@ fY
zQ
oa
AE
-tq
+mF
OJ
"}
(7,1,1) = {"
OJ
-tq
+mF
kQ
hZ
QI
@@ -3625,12 +3631,12 @@ mC
Vv
fl
VP
-tq
+mF
OJ
"}
(8,1,1) = {"
OJ
-tq
+mF
Ez
AY
NE
@@ -3644,12 +3650,12 @@ Kc
ig
hK
zY
-tq
+mF
OJ
"}
(9,1,1) = {"
RN
-qz
+uc
uc
uc
uc
@@ -3663,11 +3669,11 @@ eM
eM
eM
eM
-YJ
+eM
gu
"}
(10,1,1) = {"
-qz
+uc
MT
eH
Cp
@@ -3683,7 +3689,7 @@ ve
xP
SI
mX
-YJ
+eM
"}
(11,1,1) = {"
in
@@ -3763,7 +3769,7 @@ Ip
"}
(15,1,1) = {"
ZK
-Ph
+eu
bO
nL
kM
@@ -3819,7 +3825,7 @@ OW
YN
"}
(18,1,1) = {"
-qz
+uc
RS
Uj
GN
@@ -3835,11 +3841,11 @@ ja
oy
cc
OQ
-YJ
+eM
"}
(19,1,1) = {"
RN
-qz
+uc
uc
uc
uc
@@ -3853,7 +3859,7 @@ eM
eM
eM
eM
-YJ
+eM
gu
"}
(20,1,1) = {"
@@ -3862,9 +3868,9 @@ mR
dQ
oE
sp
-pn
+dQ
oC
-ec
+DJ
oR
dy
bE
@@ -3882,7 +3888,7 @@ ei
Ub
gs
MB
-dy
+Zv
qK
bv
yJ
@@ -3900,16 +3906,16 @@ za
ei
sZ
Px
-pn
+dQ
IJ
DJ
xh
vj
-Um
-Um
-Um
-Um
-Um
+nY
+nY
+nY
+nY
+nY
dh
OJ
"}
@@ -3917,14 +3923,14 @@ OJ
OJ
FS
MG
-ap
-ap
-ap
-ap
+MG
+MG
+MG
+MG
Xl
AQ
OP
-Um
+nY
pv
aY
vw
@@ -3939,7 +3945,7 @@ MG
fV
Vb
cf
-ap
+MG
vQ
Ka
Zv
@@ -3962,7 +3968,7 @@ DG
Zv
qg
Mn
-Um
+nY
ms
kO
hy
@@ -3977,11 +3983,11 @@ CO
aV
sP
LH
-ap
+MG
Xo
ak
RT
-Um
+nY
XC
Xw
jS
@@ -3996,11 +4002,11 @@ NM
ZQ
JH
Gl
-ap
+MG
Se
-wv
+rE
sM
-Um
+nY
bx
Fz
TR
@@ -4015,11 +4021,11 @@ Fq
St
VZ
rE
-wv
+rE
Xm
OL
Gr
-wv
+rE
rE
Ds
Jk
diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm
index 0ae98ef37fe2..c7b7eb4ae673 100644
--- a/_maps/shuttles/independent/independent_junker.dmm
+++ b/_maps/shuttles/independent/independent_junker.dmm
@@ -48,7 +48,7 @@
/area/ship/maintenance/port)
"aq" = (
/obj/item/trash/sosjerky,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/item/areaeditor/shuttle{
pixel_y = 7
},
@@ -67,7 +67,7 @@
/obj/item/storage/backpack/explorer,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/pickaxe/rusted,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
@@ -75,7 +75,7 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small/broken/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/flashlight/pen,
/turf/open/floor/wood/walnut{
icon_state = "wood-broken"
@@ -399,7 +399,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/engineering/electrical)
"hb" = (
@@ -857,7 +857,7 @@
"qm" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/reagent_containers/food/snacks/canned/peaches/maint,
/turf/open/floor/plating,
/area/ship/construction)
@@ -1232,7 +1232,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/structure/safe/floor{
number_of_tumblers = 5
},
@@ -1610,7 +1610,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Df" = (
@@ -1735,7 +1735,7 @@
/obj/item/reagent_containers/glass/bottle/welding_fuel,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plating,
/area/ship/storage/eva)
"Fz" = (
@@ -1808,7 +1808,7 @@
/area/ship/storage/eva)
"Hj" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/decal_painter,
/obj/item/storage/box/mousetraps,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -2034,7 +2034,7 @@
"JZ" = (
/obj/structure/rack,
/obj/machinery/light/small/broken/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/item/toner,
/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plating,
@@ -2085,7 +2085,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/light/small/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/wood/walnut{
icon_state = "wood-broken3"
},
@@ -2231,7 +2231,7 @@
dir = 1
},
/mob/living/simple_animal/hostile/cockroach/glockroach,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 20;
@@ -2487,7 +2487,7 @@
},
/obj/effect/decal/cleanable/sprayweb,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/pod/light,
/area/ship/maintenance/aft)
"Wv" = (
@@ -2730,7 +2730,7 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/ship/maintenance/port)
diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm
index 35f955ff0b3d..38d9d1cc6853 100644
--- a/_maps/shuttles/independent/independent_kilo.dmm
+++ b/_maps/shuttles/independent/independent_kilo.dmm
@@ -123,7 +123,7 @@
/turf/open/floor/plating,
/area/ship/hallway/port)
"bm" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"bn" = (
@@ -661,13 +661,14 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/item/ammo_box/a12g/rubbershot,
+/obj/item/storage/box/ammo/a12g_buckshot,
/obj/item/gun/ballistic/shotgun/doublebarrel/presawn{
- spawnwithmagazine = 0
+ default_ammo_type = 0
},
/obj/structure/cable/pink{
icon_state = "4-10"
},
+/obj/item/gun/ballistic/shotgun/doublebarrel/presawn/empty,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"gs" = (
@@ -905,7 +906,7 @@
/area/ship/cargo)
"mz" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light_switch{
pixel_x = 7;
pixel_y = 20
@@ -1212,9 +1213,9 @@
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
/obj/item/reagent_containers/food/drinks/soda_cans/cola,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/effect/turf_decal/corner/transparent/beige/full,
@@ -1789,7 +1790,7 @@
/obj/structure/cable/pink{
icon_state = "1-6"
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/directional/west,
/turf/open/floor/carpet,
/area/ship/crew/dorm)
@@ -1875,8 +1876,8 @@
icon_state = "9-10"
},
/obj/effect/decal/cleanable/oil,
-/obj/item/ammo_box/a12g,
-/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/obj/item/gun/ballistic/shotgun/doublebarrel/empty,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Vd" = (
diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm
index 5130aed76be3..395cd497b5e0 100644
--- a/_maps/shuttles/independent/independent_lagoon.dmm
+++ b/_maps/shuttles/independent/independent_lagoon.dmm
@@ -87,6 +87,12 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/pod/light,
/area/ship/hallway/port)
+"av" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/effect/turf_decal/weather/sand,
+/obj/machinery/light/directional/west,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"az" = (
/obj/machinery/door/poddoor/preopen{
id = "cruisebridge"
@@ -426,6 +432,10 @@
},
/turf/open/floor/plasteel/white,
/area/ship/medical)
+"cL" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"cM" = (
/obj/machinery/button/door{
dir = 4;
@@ -477,9 +487,6 @@
},
/turf/open/floor/pod/dark,
/area/ship/hallway/port)
-"cP" = (
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"cR" = (
/obj/machinery/computer/arcade/battle,
/obj/machinery/firealarm/directional/north,
@@ -553,6 +560,10 @@
/obj/effect/turf_decal/corner/opaque/white/border,
/turf/open/floor/plasteel,
/area/ship/hallway/starboard)
+"dA" = (
+/obj/item/toy/seashell,
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"dF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -591,9 +602,6 @@
},
/turf/open/floor/wood,
/area/ship/crew/canteen)
-"dN" = (
-/turf/open/floor/plating/beach/water,
-/area/ship/hallway/central)
"dP" = (
/obj/effect/turf_decal/corner/opaque/white/border{
dir = 1
@@ -641,6 +649,11 @@
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel/stairs,
/area/ship/bridge)
+"ee" = (
+/obj/effect/turf_decal/weather/sand,
+/obj/machinery/light/directional/east,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"ef" = (
/obj/item/kirbyplants/photosynthetic,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -665,6 +678,12 @@
/obj/structure/chair,
/turf/open/floor/plasteel,
/area/ship/external)
+"es" = (
+/obj/structure/flora/tree/jungle/small{
+ randomize_icon = 0
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"et" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -808,12 +827,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"fs" = (
-/obj/structure/flora/tree/jungle/small{
- randomize_icon = 0
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"fu" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -879,6 +892,10 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"fH" = (
+/obj/item/reagent_containers/spray/spraytan,
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"fI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
@@ -937,12 +954,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/ship/hallway/port)
-"gf" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/effect/turf_decal/weather/sand,
-/obj/machinery/light/directional/west,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"gn" = (
/obj/structure/railing{
dir = 8;
@@ -1009,10 +1020,6 @@
/obj/effect/turf_decal/corner/opaque/white/border,
/turf/open/floor/plasteel,
/area/ship/hallway/port)
-"gM" = (
-/obj/structure/chair/comfy/grey/directional/east,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"gR" = (
/obj/structure/sign/barsign{
pixel_y = 32
@@ -1092,6 +1099,17 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
+"hp" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
+"hq" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/chair/pew/left{
+ dir = 4
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"hr" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1233,11 +1251,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"id" = (
-/obj/effect/turf_decal/weather/sand,
-/obj/machinery/light/directional/east,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"ie" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
@@ -1410,6 +1423,19 @@
},
/turf/open/floor/wood,
/area/ship/crew/library)
+"je" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"jf" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1495,10 +1521,6 @@
},
/turf/open/floor/wood,
/area/ship/crew)
-"jI" = (
-/obj/item/toy/seashell,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"jM" = (
/obj/machinery/libraryscanner,
/obj/machinery/newscaster/directional/east,
@@ -1868,6 +1890,10 @@
},
/turf/open/floor/wood,
/area/ship/bridge)
+"mn" = (
+/obj/effect/turf_decal/weather/sand,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"mp" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -1924,6 +1950,11 @@
/obj/effect/turf_decal/corner/opaque/lightgrey/full,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
+"mH" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/effect/turf_decal/weather/sand,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"mJ" = (
/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
@@ -2125,6 +2156,19 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
+"oi" = (
+/obj/machinery/airalarm/directional/north,
+/obj/structure/table/wood,
+/obj/item/storage/bag/easterbasket{
+ pixel_x = 5;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/snacks/egg{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"oj" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -2164,6 +2208,10 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/plasteel,
/area/ship/hallway/port)
+"ow" = (
+/obj/structure/chair/comfy/grey/directional/east,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"oz" = (
/obj/machinery/door/airlock/titanium{
name = "Cabin 5"
@@ -2474,6 +2522,12 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/plasteel/dark,
/area/ship/security)
+"qi" = (
+/obj/structure/chair/pew/right{
+ dir = 4
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"ql" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -2518,9 +2572,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"qx" = (
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"qA" = (
/obj/structure/chair{
dir = 1
@@ -2730,6 +2781,10 @@
/obj/structure/flora/rock/icy,
/turf/open/floor/grass/fairy,
/area/ship/hallway/aft)
+"rS" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"rV" = (
/obj/machinery/light/directional/east,
/obj/machinery/vending/cigarette/beach,
@@ -2738,6 +2793,11 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/port)
+"rZ" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/effect/turf_decal/weather/sand,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"sa" = (
/obj/structure/railing/corner,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -2755,10 +2815,7 @@
/area/ship/crew)
"sm" = (
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
- },
+/obj/item/storage/case/surgery,
/obj/item/reagent_containers/spray/cleaner,
/obj/item/clothing/neck/stethoscope,
/obj/structure/cable{
@@ -2873,9 +2930,6 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/light/colour_cycle/dancefloor_b,
/area/ship/storage)
-"ta" = (
-/turf/open/floor/plating/beach/coastline_t,
-/area/ship/hallway/central)
"tb" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/dorm)
@@ -2957,12 +3011,6 @@
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel,
/area/ship/external)
-"tD" = (
-/obj/structure/chair/pew/right{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"tH" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -3020,12 +3068,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
-"uf" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/structure/chair/comfy/grey/directional/east,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"um" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -3399,6 +3441,10 @@
"wI" = (
/turf/closed/wall/mineral/titanium,
/area/ship/crew/dorm)
+"wO" = (
+/obj/structure/mineral_door/sandstone,
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"wP" = (
/obj/structure/bed,
/obj/item/bedsheet/black,
@@ -3422,10 +3468,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"wV" = (
-/obj/structure/mineral_door/sandstone,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"wX" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
@@ -3506,13 +3548,6 @@
/obj/machinery/smartfridge/food,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/hydroponics)
-"xz" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"xA" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -3580,6 +3615,23 @@
"xZ" = (
/turf/closed/wall/mineral/titanium,
/area/ship/engineering)
+"yb" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/light_switch{
+ pixel_x = -13;
+ pixel_y = 23
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
+"yc" = (
+/obj/structure/flora/tree/palm,
+/obj/effect/overlay/coconut,
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"yf" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -3788,10 +3840,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"zf" = (
-/obj/structure/flora/ausbushes/ppflowers,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"zs" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/food/snacks/burger/fish,
@@ -3803,6 +3851,9 @@
/obj/effect/turf_decal/corner/opaque/white/border,
/turf/open/floor/plasteel,
/area/ship/hallway/starboard)
+"zE" = (
+/turf/open/water/ship,
+/area/ship/hallway/central)
"zI" = (
/turf/open/floor/pod/light,
/area/ship/hallway/port)
@@ -3819,18 +3870,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
-"zP" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"zQ" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/siding/wood/end{
@@ -3858,13 +3897,6 @@
/obj/item/radio/intercom/directional/north,
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"zW" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/structure/chair/pew/left{
- dir = 4
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"zX" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -3989,10 +4021,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"AI" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating/beach/water,
-/area/ship/hallway/central)
"AR" = (
/obj/structure/railing{
dir = 1
@@ -4110,23 +4138,6 @@
/obj/machinery/door/window/eastright,
/turf/open/floor/plating,
/area/ship/engineering)
-"BB" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
-"BI" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"BO" = (
/obj/machinery/door/airlock/public/glass,
/obj/structure/cable{
@@ -4406,6 +4417,10 @@
/obj/effect/turf_decal/corner/opaque/white/border,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
+"DN" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"DP" = (
/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -4416,6 +4431,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"DQ" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"DS" = (
/obj/structure/table/optable,
/obj/machinery/defibrillator_mount/loaded{
@@ -4472,19 +4494,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ship/crew/library)
-"Eg" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/mob/living/simple_animal/chick,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"Ej" = (
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck,
@@ -4505,6 +4514,14 @@
/obj/effect/turf_decal/siding/wood/end,
/turf/open/floor/wood,
/area/ship/crew)
+"Em" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/ship/crew)
"Er" = (
/obj/structure/table/reinforced,
/obj/item/table_bell,
@@ -4583,6 +4600,11 @@
},
/turf/open/floor/carpet/black,
/area/ship/crew/library)
+"EI" = (
+/turf/open/water/ship{
+ icon_state = "sandwater_t"
+ },
+/area/ship/hallway/central)
"EM" = (
/obj/machinery/advanced_airlock_controller{
pixel_x = 25
@@ -4823,10 +4845,11 @@
/obj/structure/curtain/bounty,
/turf/open/floor/plating,
/area/ship/crew/office)
-"Gw" = (
-/obj/structure/flora/ausbushes/ppflowers,
-/obj/effect/turf_decal/weather/sand,
-/turf/open/floor/grass,
+"Gt" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/chair/comfy/grey/directional/east,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/grass/ship,
/area/ship/hallway/central)
"GA" = (
/obj/structure/disposalpipe/segment{
@@ -4871,14 +4894,6 @@
/obj/effect/turf_decal/corner/opaque/black/border,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
-"GN" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/ship/crew)
"GO" = (
/obj/machinery/suit_storage_unit/standard_unit,
/obj/effect/turf_decal/corner/opaque/lightgrey/border{
@@ -5107,6 +5122,10 @@
},
/turf/open/floor/wood,
/area/ship/bridge)
+"IF" = (
+/obj/item/clothing/shoes/sandal,
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"IG" = (
/obj/structure/closet/crate{
name = "food crate"
@@ -5133,6 +5152,12 @@
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
/area/ship/crew/canteen)
+"IM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"IX" = (
/obj/structure/disposalpipe/segment{
dir = 8
@@ -5293,6 +5318,18 @@
"JJ" = (
/turf/open/floor/carpet/black,
/area/ship/crew/office)
+"JL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"JN" = (
/obj/machinery/vending/wardrobe/jani_wardrobe,
/turf/open/floor/plating,
@@ -5327,10 +5364,6 @@
},
/turf/open/floor/plasteel,
/area/ship/crew/janitor)
-"Kd" = (
-/obj/item/toy/beach_ball,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"Kh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
@@ -5405,6 +5438,9 @@
/obj/item/radio/intercom/directional/east,
/turf/open/floor/pod/light,
/area/ship/hallway/fore)
+"KN" = (
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"KO" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew)
@@ -5496,10 +5532,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/carpet,
/area/ship/crew/chapel)
-"LD" = (
-/obj/item/reagent_containers/spray/spraytan,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"LF" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 10
@@ -5523,19 +5555,6 @@
/obj/machinery/light/directional/north,
/turf/open/floor/plating,
/area/ship/cargo)
-"LV" = (
-/obj/structure/flora/ausbushes/brflowers,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"Md" = (
/obj/machinery/power/generator{
dir = 4
@@ -5600,10 +5619,9 @@
/obj/structure/closet/radiation,
/turf/open/floor/plating,
/area/ship/engineering)
-"Mx" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/effect/turf_decal/weather/sand,
-/turf/open/floor/grass,
+"Ms" = (
+/obj/item/toy/beach_ball,
+/turf/open/floor/plating/asteroid/sand/ship,
/area/ship/hallway/central)
"My" = (
/obj/effect/turf_decal/corner/opaque/white/border{
@@ -6153,14 +6171,6 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/port)
-"QI" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/wood,
-/area/ship/crew)
"QJ" = (
/obj/machinery/door/airlock/external{
dir = 4
@@ -6417,9 +6427,6 @@
},
/turf/open/floor/wood,
/area/ship/crew/hydroponics)
-"RR" = (
-/turf/open/floor/plating/beach/coastline_b,
-/area/ship/hallway/central)
"RS" = (
/obj/structure/window/plasma/reinforced/spawner/west,
/obj/structure/window/plasma/reinforced/spawner/north,
@@ -6525,6 +6532,19 @@
},
/turf/open/floor/plasteel/white,
/area/ship/medical)
+"SF" = (
+/obj/structure/flora/ausbushes/brflowers,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"SH" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/siding/wood,
@@ -6548,6 +6568,14 @@
},
/turf/open/floor/plating,
/area/ship/crew/janitor)
+"SS" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ship/crew)
"ST" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -6594,10 +6622,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
-"Tt" = (
-/obj/effect/turf_decal/weather/sand,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"Tw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6802,6 +6826,9 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"Uz" = (
+/turf/open/floor/plating/asteroid/sand/ship,
+/area/ship/hallway/central)
"UE" = (
/obj/machinery/door/airlock/security{
req_access = list(1)
@@ -6888,18 +6915,16 @@
},
/turf/open/floor/plating,
/area/ship/engineering)
+"Ve" = (
+/obj/machinery/light/directional/south,
+/turf/open/water/ship,
+/area/ship/hallway/central)
"Vg" = (
/obj/structure/table/reinforced,
/obj/machinery/microwave,
/obj/effect/turf_decal/corner/opaque/white/diagonal,
/turf/open/floor/plasteel,
/area/ship/crew/canteen/kitchen)
-"Vi" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"Vl" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6937,21 +6962,6 @@
},
/turf/open/floor/circuit,
/area/ship/hallway/fore)
-"VE" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"VF" = (
/obj/machinery/door/airlock/external{
dir = 4
@@ -7141,6 +7151,19 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
+"WN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/mob/living/simple_animal/chick,
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"WR" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -7158,10 +7181,6 @@
/obj/effect/turf_decal/corner/opaque/white/border,
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"WW" = (
-/obj/structure/flora/ausbushes/brflowers,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"WX" = (
/obj/machinery/suit_storage_unit/security,
/obj/structure/cable{
@@ -7257,6 +7276,21 @@
/obj/machinery/power/apc/auto_name/directional/north,
/turf/open/floor/plasteel,
/area/ship/crew/janitor)
+"Xp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/grass/ship,
+/area/ship/hallway/central)
"Xs" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/clothing/under/suit/black/female,
@@ -7275,28 +7309,16 @@
},
/turf/open/floor/wood,
/area/ship/crew/chapel)
+"XB" = (
+/turf/open/water/ship{
+ icon_state = "sandwater_b"
+ },
+/area/ship/hallway/central)
"XC" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/newscaster/directional/east,
/turf/open/floor/carpet/black,
/area/ship/crew)
-"XI" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/grass,
-/area/ship/hallway/central)
-"XM" = (
-/obj/machinery/airalarm/directional/north,
-/obj/structure/table/wood,
-/obj/item/storage/bag/easterbasket{
- pixel_x = 5;
- pixel_y = 9
- },
-/obj/item/reagent_containers/food/snacks/egg{
- pixel_x = -8;
- pixel_y = 4
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"XV" = (
/obj/item/kirbyplants/photosynthetic,
/turf/open/floor/carpet/nanoweave/blue,
@@ -7346,18 +7368,6 @@
},
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
-"Yh" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/light_switch{
- pixel_x = -13;
- pixel_y = 23
- },
-/turf/open/floor/grass,
-/area/ship/hallway/central)
"Yl" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -7489,15 +7499,6 @@
},
/turf/open/floor/wood,
/area/ship/crew/dorm)
-"Zx" = (
-/obj/structure/flora/tree/palm,
-/obj/effect/overlay/coconut,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
-"ZA" = (
-/obj/item/clothing/shoes/sandal,
-/turf/open/floor/plating/beach/sand,
-/area/ship/hallway/central)
"ZH" = (
/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{
dir = 1;
@@ -8306,9 +8307,9 @@ pZ
Qy
Hx
jC
-GN
+SS
EX
-QI
+Em
Kl
IX
uD
@@ -8429,9 +8430,9 @@ Tz
Qy
Tf
jC
-GN
+SS
EX
-QI
+Em
Kl
FW
yf
@@ -8676,7 +8677,7 @@ Qy
kl
Kl
RH
-GN
+SS
dG
Kl
IX
@@ -8838,7 +8839,7 @@ kv
FX
Pw
Pw
-wV
+wO
Pw
Pw
Pw
@@ -8872,17 +8873,17 @@ vy
vy
vy
cS
-XM
-tD
-zW
-LV
-cP
-gf
-qx
-Kd
-ta
-RR
-AI
+oi
+qi
+hq
+SF
+KN
+av
+Uz
+Ms
+EI
+XB
+Ve
Pw
on
Bo
@@ -8913,17 +8914,17 @@ SK
SK
SK
RM
-WW
-cP
-cP
-BB
-cP
-Mx
-Zx
-qx
-ta
-RR
-dN
+cL
+KN
+KN
+je
+KN
+mH
+yc
+Uz
+EI
+XB
+zE
Pw
wU
rI
@@ -8954,17 +8955,17 @@ CD
CD
CD
TH
-cP
-XI
-fs
-Eg
-cP
-Tt
-qx
-qx
-ta
-RR
-dN
+KN
+rS
+es
+WN
+KN
+mn
+Uz
+Uz
+EI
+XB
+zE
Pw
yn
rI
@@ -8995,17 +8996,17 @@ vy
vy
vy
cS
-Yh
-Vi
-xz
-VE
-cP
-Gw
-qx
-LD
-ta
-RR
-dN
+yb
+IM
+DQ
+Xp
+KN
+rZ
+Uz
+fH
+EI
+XB
+zE
Pw
wU
rI
@@ -9036,17 +9037,17 @@ cS
cS
cS
cS
-uf
-gM
-zf
-zP
-BI
-id
-ZA
-jI
-ta
-RR
-AI
+Gt
+ow
+hp
+JL
+DN
+ee
+IF
+dA
+EI
+XB
+Ve
Pw
zX
hN
diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm
index 26474b9c4c2f..a537ef01dd27 100644
--- a/_maps/shuttles/independent/independent_mudskipper.dmm
+++ b/_maps/shuttles/independent/independent_mudskipper.dmm
@@ -324,13 +324,14 @@
/obj/item/circular_saw,
/obj/item/multitool,
/obj/item/stack/marker_beacon/thirty,
-/obj/item/gun/energy/plasmacutter,
/obj/structure/cable{
icon_state = "2-10"
},
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
+/obj/item/radio/headset/alt,
+/obj/item/gear_pack/anglegrinder,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
"gT" = (
@@ -1016,6 +1017,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/cargo)
+"xR" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "mudskipper_window"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/aft)
"xU" = (
/obj/machinery/power/terminal{
dir = 1
@@ -1051,7 +1060,7 @@
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
-/obj/structure/window/fulltile,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ship/cargo)
"yB" = (
@@ -1404,7 +1413,7 @@
/area/ship/hallway/aft)
"Ft" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/obj/machinery/light_switch{
dir = 1;
@@ -1431,7 +1440,7 @@
dir = 4;
id = "mudskipper_bridge"
},
-/obj/effect/spawner/structure/window,
+/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/ship/bridge)
"Gq" = (
@@ -1719,10 +1728,10 @@
/obj/structure/closet/crate{
name = "ration crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
/obj/item/reagent_containers/food/snacks/canned/beans,
@@ -1811,7 +1820,7 @@
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
-/obj/structure/window/fulltile,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ship/hallway/aft)
"PU" = (
@@ -1823,10 +1832,10 @@
"Qt" = (
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/structure/window/reinforced/fulltile,
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
-/obj/structure/window/fulltile,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"Qu" = (
@@ -1982,7 +1991,7 @@
/area/ship/crew/toilet)
"ST" = (
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/structure/closet/secure_closet/freezer{
anchored = 1;
name = "fridge"
@@ -2132,7 +2141,7 @@
/area/ship/engineering/engine)
"Vy" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim/directional/north,
@@ -2224,7 +2233,7 @@
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
-/obj/structure/window/fulltile,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ship/hallway/aft)
"XI" = (
@@ -2278,7 +2287,7 @@
/obj/machinery/door/poddoor/shutters{
id = "mudskipper_window"
},
-/obj/structure/window/fulltile,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ship/crew)
"Yi" = (
@@ -2566,7 +2575,7 @@ cs
hX
cs
cs
-Xm
+xR
yg
XK
Ni
diff --git a/_maps/shuttles/independent/independent_raleigh.dmm b/_maps/shuttles/independent/independent_raleigh.dmm
new file mode 100644
index 000000000000..6914783b21dd
--- /dev/null
+++ b/_maps/shuttles/independent/independent_raleigh.dmm
@@ -0,0 +1,6335 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"af" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/button/door{
+ pixel_y = -22;
+ pixel_x = -6;
+ name = "bay doors";
+ id = "ra_cargo";
+ dir = 1
+ },
+/obj/machinery/button/shieldwallgen{
+ pixel_x = 3;
+ pixel_y = -20;
+ id = "ra_door";
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"aq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"at" = (
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_x = -28
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"av" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"aB" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/steeldecal/steel_decals_central2,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"aQ" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"aU" = (
+/obj/effect/turf_decal/corner/opaque/red/border{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"be" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"bm" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"bo" = (
+/obj/structure/chair/stool/bar{
+ dir = 8;
+ pixel_x = -10
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"bz" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/door/window/eastleft{
+ dir = 1;
+ req_access_txt = "3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"bA" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"bF" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_arms";
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/ship/security/armory)
+"bG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"bP" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
+"cb" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/condiment/hotsauce{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"ci" = (
+/obj/structure/sign/number/random{
+ dir = 4
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"cn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/button/door{
+ pixel_x = -10;
+ pixel_y = -22;
+ dir = 1;
+ name = "privacy lock";
+ id = "ra_gay";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"cu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Port Thrusters"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/engines/port)
+"cv" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/engines/starboard)
+"cC" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -8;
+ pixel_y = 24
+ },
+/obj/machinery/button/door{
+ dir = 2;
+ pixel_y = 22;
+ pixel_x = 5;
+ id = "ra_peng";
+ name = "engine shutters"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"cG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"cO" = (
+/obj/item/soap,
+/obj/structure/closet/wall/directional/east,
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/storage/cans/sixbeer,
+/obj/structure/sign/poster/official/no_erp{
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"di" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"dn" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/structure/cable/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"dB" = (
+/obj/effect/turf_decal/corner/opaque/red/border{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"dD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -10;
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"dL" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/closet/wall/orange/directional/north{
+ name = "fuel supply"
+ },
+/obj/item/stack/sheet/mineral/plasma/twenty,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"ec" = (
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "ra_fore"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"ef" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"ej" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
+"em" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/structure/closet/crate/bin,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"ev" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"eI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"eR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/pushbroom,
+/obj/item/reagent_containers/glass/rag,
+/obj/structure/closet/wall/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"fo" = (
+/obj/structure/chair/office,
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"fx" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering/electrical)
+"fE" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/table,
+/obj/machinery/light/directional/north,
+/obj/item/storage/crayons{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/item/taperecorder{
+ pixel_x = 10;
+ pixel_y = 5
+ },
+/obj/item/tape/random,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"fM" = (
+/turf/open/floor/plasteel/grimy,
+/area/ship/security/armory)
+"fN" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "XO's Quarters";
+ id_tag = "ra_lt";
+ req_access_txt = "3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"go" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/electrical)
+"gq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"gC" = (
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"gJ" = (
+/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"gL" = (
+/obj/item/radio/intercom/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"gN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"hb" = (
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"hk" = (
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"hl" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/ccommons)
+"hm" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/ale{
+ pixel_y = 7;
+ pixel_x = 8
+ },
+/obj/item/reagent_containers/food/drinks/ale{
+ pixel_x = -7;
+ pixel_y = -5
+ },
+/obj/machinery/newscaster/directional/north,
+/obj/item/reagent_containers/condiment/hotsauce{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"hr" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"hs" = (
+/obj/structure/table,
+/obj/machinery/jukebox/boombox,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"hw" = (
+/obj/structure/table,
+/obj/item/storage/box/cups{
+ pixel_x = -1;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"hz" = (
+/obj/machinery/door/airlock/atmos{
+ dir = 4;
+ name = "Atmospherics"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"hI" = (
+/obj/item/storage/box/zipties,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/structure/closet/wall/red/directional/west{
+ name = "specialist tools";
+ req_access_txt = "3"
+ },
+/obj/item/razor{
+ name = "uniform compliance tool"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"hN" = (
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"hU" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/canteen)
+"ic" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security/armory)
+"ie" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"ig" = (
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/north,
+/obj/machinery/button/door{
+ pixel_y = 23;
+ pixel_x = 9;
+ name = "window shutters";
+ id = "ra_capt"
+ },
+/obj/item/modular_computer/laptop/preset/civilian,
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"iq" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 9
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-09";
+ pixel_y = 14;
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"is" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering/electrical)
+"iu" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"iw" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"iD" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"iE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 22;
+ pixel_x = -6;
+ name = "window shutter";
+ id = "ra_at"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"iL" = (
+/obj/structure/closet/secure_closet/wall/directional/south{
+ icon_state = "solgov_wall";
+ name = "Captain's Locker";
+ req_access_txt = "20"
+ },
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/clothing/under/rank/command/captain,
+/obj/item/clothing/head/caphat,
+/obj/item/clothing/under/syndicate/camo{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/clothing/suit/armor/hos/trenchcoat,
+/obj/item/clothing/glasses/hud/security{
+ pixel_y = 10;
+ pixel_x = -4
+ },
+/obj/item/melee/knife/switchblade,
+/obj/item/storage/backpack/security,
+/obj/item/clothing/shoes/combat,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/clothing/gloves/fingerless,
+/obj/item/reagent_containers/food/drinks/flask,
+/obj/item/clothing/glasses/sunglasses/ballistic,
+/obj/item/storage/guncase/pistol/viper,
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
+"iN" = (
+/obj/effect/turf_decal/corner/opaque/blue/border,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"iY" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow/mono,
+/obj/structure/closet/wall/white/directional/east,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/storage/cans/sixbeer,
+/obj/item/storage/cans/sixbeer,
+/obj/effect/decal/cleanable/food/flour,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen)
+"jc" = (
+/obj/structure/chair/sofa/brown/right/directional/south,
+/obj/machinery/button/door{
+ pixel_x = -22;
+ pixel_y = 8;
+ dir = 4;
+ name = "window shutters";
+ id = "ra_obvs"
+ },
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"je" = (
+/obj/structure/cable{
+ icon_state = "5-9"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"jf" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"jj" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"jt" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/indie,
+/obj/item/storage/box/matches{
+ pixel_y = 23;
+ pixel_x = 1
+ },
+/obj/item/radio/intercom/directional/south{
+ pixel_x = -2
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"jv" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"jx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"jB" = (
+/obj/machinery/washing_machine,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"jC" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"jE" = (
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"jF" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"jJ" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "ra_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"kb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -24;
+ pixel_y = 10
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/machinery/light/small/directional/west{
+ pixel_y = -2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light_switch{
+ pixel_y = -18;
+ pixel_x = 10;
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"kc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"kl" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/atmospherics)
+"kI" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/electrical)
+"kJ" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/snacks/chocolatebar{
+ pixel_y = 11;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"kO" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -24;
+ pixel_y = -8
+ },
+/obj/effect/turf_decal/corner/opaque/red/border,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"lb" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 8
+ },
+/area/ship/crew/dorm)
+"ls" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"lv" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"lC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"lF" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock/mining{
+ dir = 4;
+ name = "Cargo Bay"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"lK" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"lM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"lN" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm/captain)
+"lO" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"md" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -8;
+ pixel_y = -22
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -22;
+ pixel_x = 5;
+ id = "ra_seng";
+ name = "engine shutters"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"mh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"mm" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock{
+ name = "Observatory";
+ id_tag = "ra_gay"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"mq" = (
+/obj/docking_port/stationary{
+ dwidth = 4;
+ width = 11;
+ height = 15;
+ dir = 8
+ },
+/turf/template_noop,
+/area/template_noop)
+"ms" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"my" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/structure/curtain/bounty,
+/obj/item/toy/plush/flushed,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"mA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"mE" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/structure/curtain/bounty,
+/obj/item/toy/plush/carpplushie,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"mV" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"mX" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"nc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"ng" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"nn" = (
+/obj/machinery/atmospherics/components/binary/pressure_valve{
+ pixel_y = 0;
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pressure_valve/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"nt" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/airlock{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"nP" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/folder/blue{
+ pixel_x = 7;
+ pixel_y = 5
+ },
+/obj/item/paper_bin{
+ pixel_y = 1;
+ pixel_x = -6
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 5;
+ pixel_x = -7
+ },
+/obj/item/storage/pill_bottle/stimulant{
+ pixel_y = 13;
+ pixel_x = -2
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/wood,
+/area/ship/security)
+"nT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 10
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/corner/opaque/brown/border,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"nV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 6
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"nX" = (
+/obj/structure/table/reinforced,
+/obj/structure/closet/wall/red/directional/north{
+ name = "uniform closet";
+ req_access_txt = "1"
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_y = -7;
+ pixel_x = -2
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_y = -7;
+ pixel_x = -2
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_y = -7;
+ pixel_x = -2
+ },
+/obj/item/clothing/under/syndicate/camo{
+ pixel_x = 5
+ },
+/obj/item/clothing/under/syndicate/camo{
+ pixel_x = 5
+ },
+/obj/item/clothing/under/syndicate/camo{
+ pixel_x = 5
+ },
+/obj/item/clothing/head/helmet/bulletproof/m10{
+ pixel_y = 11;
+ pixel_x = -4
+ },
+/obj/item/clothing/head/helmet/bulletproof/m10{
+ pixel_y = 11;
+ pixel_x = -4
+ },
+/obj/item/clothing/head/helmet/bulletproof/m10{
+ pixel_y = 11;
+ pixel_x = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_y = 2;
+ pixel_x = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_y = 2;
+ pixel_x = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_y = 2;
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 6
+ },
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/clothing/glasses/sunglasses/ballistic{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/clothing/glasses/sunglasses/ballistic{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/clothing/glasses/sunglasses/ballistic{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"op" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ name = "Window Shutters";
+ id = "ra_at"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"oz" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor{
+ id = "ra_cargo";
+ dir = 4
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "ra_door"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/cargo)
+"oJ" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/ccommons)
+"oP" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 4
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -4
+ },
+/obj/item/multitool{
+ pixel_x = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"pf" = (
+/obj/structure/curtain,
+/obj/machinery/shower{
+ pixel_y = 16
+ },
+/obj/structure/chair/plastic{
+ dir = 4;
+ name = "shower chair";
+ desc = "Now you just need a shower beer"
+ },
+/obj/structure/mirror{
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals9,
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_x = 9;
+ pixel_y = -22;
+ dir = 1;
+ name = "privacy lock";
+ id = "ra_shower";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"pk" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/item/radio/intercom/directional/west,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"pn" = (
+/obj/item/radio/intercom/wideband/directional/north,
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ pixel_y = 20;
+ pixel_x = 16;
+ name = "bridge shutters";
+ id = "ra_bridge_ext"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"pt" = (
+/obj/machinery/photocopier,
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"pM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"pS" = (
+/obj/structure/chair/sofa/brown/directional/east,
+/obj/machinery/light/directional/west,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"ql" = (
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"qn" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"qy" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"qL" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"qP" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"qT" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "ra_bridge_ext"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"rd" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"rl" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/machinery/light/small/directional/south,
+/obj/item/bedsheet/black{
+ dir = 4
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/security)
+"rn" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/engineering/engines/starboard)
+"rA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/railing,
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/corner/opaque/red/border{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"rV" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/item/radio/intercom/directional/north{
+ pixel_x = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"rY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/meter/atmos/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"sa" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/engines/port)
+"se" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk/over,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"sf" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/bordercorner{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/machinery/light_switch{
+ pixel_x = -10;
+ pixel_y = -20;
+ dir = 1
+ },
+/obj/effect/decal/cleanable/generic,
+/obj/item/kirbyplants{
+ icon_state = "plant-05";
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"sm" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"sq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"sH" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_peng";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering/engines/port)
+"sI" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering/electrical)
+"sR" = (
+/obj/structure/filingcabinet/double{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/item/camera{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/obj/structure/cabinet/oneshot{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"sS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/chair/comfy/red/old/directional/east,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ship/security)
+"sV" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8;
+ layer = 2.040
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"tg" = (
+/obj/effect/spawner/random/vending/cola,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/central)
+"th" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"tk" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"tS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/button/door{
+ pixel_x = 10;
+ pixel_y = 22;
+ dir = 2;
+ name = "privacy lock";
+ id = "ra_lt";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/wood,
+/area/ship/security)
+"tU" = (
+/obj/item/clothing/head/papersack/smiley,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 8
+ },
+/obj/structure/rack,
+/obj/item/wrench{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/item/toy/eightball{
+ name = "problem prioritizer";
+ pixel_x = -3;
+ pixel_y = -5
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_cannabis{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"tZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"ug" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"uv" = (
+/obj/structure/table,
+/obj/item/reagent_containers/glass/rag{
+ pixel_y = 10;
+ pixel_x = 1
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ pixel_x = 9
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"uw" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"uy" = (
+/obj/machinery/door/poddoor{
+ id = "ra_cargo";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/cargo)
+"uS" = (
+/obj/structure/guncloset{
+ anchored = 1
+ },
+/obj/item/gun/ballistic/automatic/smg/cobra/indie/no_mag,
+/obj/item/gun/ballistic/automatic/assault/e40,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"uU" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/structure/closet/crate{
+ name = "Dr. Flare's Magnificent Lighting Solution"
+ },
+/obj/item/storage/box/sparklers,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"uW" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm)
+"vr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 10;
+ pixel_y = -22;
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"vw" = (
+/obj/structure/chair/stool/bar{
+ dir = 8;
+ pixel_x = -10
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"vy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"wb" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"wc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"ws" = (
+/obj/structure/curtain/bounty,
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"wS" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_x = 22;
+ pixel_y = 9;
+ id = "ra_fore";
+ name = "fore airlock shutters"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"wX" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/newspaper{
+ pixel_y = 7;
+ pixel_x = -2
+ },
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = -1;
+ pixel_x = -6
+ },
+/obj/item/desk_flag/trans{
+ pixel_x = 8;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/dorm)
+"xb" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/door/window/eastright{
+ dir = 1;
+ req_access_txt = "3"
+ },
+/obj/item/folder/blue{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"xk" = (
+/obj/structure/rack,
+/obj/item/melee/sword/mass,
+/obj/item/melee/sword/mass{
+ pixel_x = 5
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"xx" = (
+/obj/structure/chair/sofa/brown/left/directional/south,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"xy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -11
+ },
+/obj/machinery/button/door{
+ pixel_x = -20;
+ pixel_y = 15;
+ dir = 4;
+ name = "privacy lock";
+ id = "ra_capt2";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
+"xB" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/under/utility{
+ pixel_x = 7
+ },
+/obj/item/clothing/under/pants/khaki{
+ pixel_x = 4;
+ pixel_y = -14
+ },
+/obj/item/clothing/under/pants/khaki{
+ pixel_x = 4;
+ pixel_y = -14
+ },
+/obj/item/clothing/under/pants/camo{
+ pixel_x = -5;
+ pixel_y = -10
+ },
+/obj/item/clothing/under/pants/camo{
+ pixel_x = -5;
+ pixel_y = -10
+ },
+/obj/item/clothing/head/soft/black{
+ pixel_x = 8;
+ pixel_y = 14
+ },
+/obj/item/clothing/head/soft/black{
+ pixel_x = 8;
+ pixel_y = 14
+ },
+/obj/item/clothing/head/cowboy{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/clothing/head/cowboy{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/clothing/shoes/workboots/mining{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/obj/item/clothing/shoes/workboots/mining{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/obj/item/clothing/shoes/workboots/mining{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/obj/item/clothing/under/pants/jeans{
+ pixel_x = -6;
+ pixel_y = -8
+ },
+/obj/item/clothing/under/pants/jeans{
+ pixel_x = -6;
+ pixel_y = -8
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"xD" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"yj" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"yk" = (
+/obj/effect/turf_decal/corner/opaque/blue/bordercorner,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"yF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ship/security)
+"yR" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/steeldecal/steel_decals_central2,
+/obj/structure/sign/poster/contraband/cardinal_port_starboard{
+ pixel_x = -27
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"yT" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/spacecash/bundle/pocketchange,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"yZ" = (
+/obj/docking_port/mobile{
+ dir = 4;
+ name = "hunter shuttle";
+ port_direction = 2;
+ preferred_direction = 4
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"zV" = (
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"Ae" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/obj/item/target,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"Aj" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"Ap" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"Aw" = (
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east{
+ pixel_y = 5
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_x = 22;
+ pixel_y = -11;
+ name = "window shutters";
+ id = "ra_arms"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/security/armory)
+"AC" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"AD" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/cryo)
+"AF" = (
+/obj/machinery/airalarm/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"AM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/structure/catwalk/over,
+/obj/machinery/door/airlock/engineering{
+ name = "Engineering"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/electrical)
+"AQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"AS" = (
+/obj/structure/chair/stool/bar{
+ dir = 8;
+ pixel_x = -10
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"AU" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/bordercorner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"AX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"By" = (
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"BE" = (
+/obj/machinery/firealarm/directional/north,
+/obj/structure/table,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"BF" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_obvs";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/crew/dorm)
+"BH" = (
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Cl" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"CG" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"CN" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable{
+ icon_state = "0-10"
+ },
+/obj/structure/sign/poster/contraband/missing_gloves{
+ pixel_y = 30
+ },
+/obj/structure/catwalk/over,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"CO" = (
+/obj/structure/closet/crate/bin,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 10
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"CY" = (
+/obj/structure/sign/poster/official/wtf_is_co2{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/engineer,
+/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/item/tank/internals/oxygen,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Dd" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"Dg" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"Dw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Dy" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/item/pen{
+ pixel_y = 3;
+ pixel_x = 5
+ },
+/obj/machinery/light/directional/east,
+/obj/item/toy/cards/deck{
+ pixel_x = -10;
+ pixel_y = 6
+ },
+/obj/item/desk_flag{
+ pixel_y = 13;
+ pixel_x = 13
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"DH" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"DL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"DO" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"DR" = (
+/obj/structure/chair/stool/bar{
+ dir = 4;
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Ej" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Em" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/stairs/old,
+/area/ship/cargo)
+"Eo" = (
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Eq" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"Ew" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf{
+ dry = 1;
+ pixel_x = -10;
+ pixel_y = 1;
+ name = "dried mushroom leaves"
+ },
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf{
+ dry = 1;
+ pixel_x = 3;
+ pixel_y = 8;
+ name = "dried mushroom leaves"
+ },
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf{
+ dry = 1;
+ pixel_x = -7;
+ pixel_y = 8;
+ name = "dried mushroom leaves"
+ },
+/obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf{
+ dry = 1;
+ pixel_x = -2;
+ pixel_y = 1;
+ name = "dried mushroom leaves"
+ },
+/obj/item/clothing/mask/cigarette/pipe{
+ pixel_x = 5
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"EE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"EQ" = (
+/obj/machinery/door/window/survival_pod{
+ dir = 1
+ },
+/obj/machinery/blackbox_recorder,
+/obj/structure/sign/warning/securearea{
+ pixel_y = -22
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"EX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"EZ" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/border{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Fr" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "ra_capt"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/dorm/captain)
+"Fu" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -13;
+ pixel_y = 7
+ },
+/obj/structure/mirror{
+ pixel_x = -24;
+ pixel_y = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/machinery/button/door{
+ pixel_x = 10;
+ pixel_y = 22;
+ dir = 2;
+ name = "privacy lock";
+ id = "ra_piss";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/canteen)
+"Fv" = (
+/obj/structure/table/wood,
+/obj/item/ammo_casing/a357/hp{
+ name = ".357 execution round casing";
+ desc = "Put it right to their head, and pull the trigger. No witnesses.";
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/ammo_casing/a357/hp{
+ name = ".357 execution round casing";
+ desc = "Put it right to their head, and pull the trigger. No witnesses.";
+ pixel_x = 8;
+ pixel_y = 1
+ },
+/obj/item/ammo_casing/a357/hp{
+ name = ".357 execution round casing";
+ desc = "Put it right to their head, and pull the trigger. No witnesses.";
+ pixel_x = 11;
+ pixel_y = 5
+ },
+/obj/item/storage/fancy/cigarettes/cigars{
+ pixel_y = 14;
+ pixel_x = -5
+ },
+/obj/item/storage/box/matches{
+ pixel_y = 10;
+ pixel_x = -9
+ },
+/obj/item/spacecash/bundle/pocketchange{
+ pixel_x = -6;
+ pixel_y = -5
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"FA" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-17";
+ pixel_x = -7
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"FE" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_obvs"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/dorm)
+"FH" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/closet/secure_closet/wall/directional/north{
+ icon_state = "solgov_wall";
+ name = "bridge locker";
+ req_access_txt = "19"
+ },
+/obj/item/gps{
+ pixel_y = 8;
+ pixel_x = 2
+ },
+/obj/item/binoculars,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"FJ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
+"FK" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/cryo)
+"FM" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"FO" = (
+/obj/item/melee/knife/switchblade,
+/obj/structure/closet/cabinet,
+/obj/item/clothing/under/syndicate/camo{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/clothing/glasses/hud/security{
+ pixel_y = 10;
+ pixel_x = -4
+ },
+/obj/item/storage/backpack/security,
+/obj/item/clothing/suit/armor/vest/duster,
+/obj/item/clothing/shoes/combat,
+/obj/item/storage/backpack/security,
+/obj/item/clothing/gloves/fingerless,
+/obj/item/reagent_containers/food/drinks/rilenacup,
+/obj/item/clothing/glasses/sunglasses/ballistic,
+/turf/open/floor/carpet/red_gold,
+/area/ship/security)
+"Gm" = (
+/obj/effect/turf_decal/kfp_small,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Gp" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"Gq" = (
+/obj/effect/turf_decal/corner/opaque/blue/bordercorner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Gt" = (
+/obj/structure/sign/warning/incident{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/rack,
+/obj/item/stack/sheet/metal/twenty{
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/obj/item/stack/sheet/glass/twenty{
+ pixel_y = 2;
+ pixel_x = -3
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"Gu" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-18";
+ pixel_y = 20;
+ pixel_x = 8
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/border{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/bordercorner{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/north{
+ pixel_x = 3
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -10
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Gy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Starboard Thrusters"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/engines/starboard)
+"GD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/border,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"GH" = (
+/obj/effect/turf_decal/corner/opaque/blue/bordercorner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"GI" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Bathroom";
+ id_tag = "ra_piss"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"GO" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"GP" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow/mono,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen)
+"Hb" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"He" = (
+/obj/structure/closet/wall/orange/directional/north{
+ name = "tool closet"
+ },
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/obj/item/weldingtool/largetank,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Hu" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/starboard)
+"HD" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"HI" = (
+/obj/structure/chair/sofa/brown/corner/directional/east,
+/obj/structure/sign/painting/library{
+ pixel_x = -28
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"HS" = (
+/obj/structure/sign/poster/contraband/c20r{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced/spawner{
+ dir = 1
+ },
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 5;
+ pixel_x = 3
+ },
+/obj/item/stamp{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/stamp/denied{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/obj/item/toy/figure/secofficer{
+ pixel_x = 12;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"Ih" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/light_switch{
+ pixel_x = 22;
+ pixel_y = -21;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"Ii" = (
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/shoes/workboots{
+ pixel_x = 5;
+ pixel_y = -6
+ },
+/obj/structure/closet/wall/orange/directional/north{
+ name = "Engineer's locker";
+ req_access_txt = "11"
+ },
+/obj/item/clothing/head/hardhat{
+ pixel_y = 9
+ },
+/obj/item/clothing/under/utility{
+ pixel_x = 7
+ },
+/obj/item/clothing/suit/hazardvest,
+/obj/item/storage/toolbox/electrical,
+/obj/item/clothing/gloves/color/yellow{
+ pixel_y = 9
+ },
+/obj/item/storage/backpack/industrial,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Il" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/layer4{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"In" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"Is" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "Armory";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"IB" = (
+/obj/structure/railing,
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ pixel_y = 22;
+ pixel_x = -1;
+ name = "bay doors";
+ id = "ra_cargo";
+ dir = 2
+ },
+/obj/machinery/button/shieldwallgen{
+ pixel_x = 9;
+ pixel_y = 21;
+ id = "ra_door";
+ dir = 2
+ },
+/obj/item/clipboard{
+ pixel_x = 8;
+ pixel_y = -6
+ },
+/obj/item/paper_bin{
+ pixel_x = -4;
+ pixel_y = 7
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 9;
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 7;
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"IT" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Ji" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/security/armory)
+"Jj" = (
+/obj/structure/chair,
+/obj/structure/sign/poster/retro/lasergun_new{
+ pixel_x = 31
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"JO" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable{
+ icon_state = "0-9"
+ },
+/obj/structure/catwalk/over,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"JS" = (
+/obj/structure/table/wood,
+/obj/item/spacecash/bundle/pocketchange{
+ pixel_y = 3;
+ pixel_x = 2
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"JV" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"JW" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"JY" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow/mono,
+/obj/item/cutting_board{
+ anchored = 1
+ },
+/obj/item/melee/knife/kitchen,
+/obj/item/kitchen/rollingpin{
+ pixel_x = 7;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen)
+"Kh" = (
+/obj/effect/turf_decal/kfp_small/right,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"KK" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 1;
+ initialize_directions = 1
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"KQ" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/dorm/captain)
+"KZ" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/engine/hull,
+/area/ship/engineering/engines/port)
+"Lr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"LB" = (
+/obj/structure/sign/warning/vacuum{
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/cee,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/ccommons)
+"LD" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"LJ" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -10
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"LM" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/light/small/directional/north{
+ pixel_x = 6
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"LO" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"LR" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"LU" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_seng";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering/engines/starboard)
+"LV" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor{
+ id = "ra_cargo";
+ dir = 4
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "ra_door";
+ dir = 1
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/cargo)
+"LY" = (
+/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Md" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/newscaster/directional/west,
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/storage/ration/crayons,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"Me" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"Mi" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Mj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/electrical)
+"Ml" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/airlock{
+ name = "Shower";
+ id_tag = "ra_shower"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"Mq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"Mx" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -24;
+ pixel_y = -7
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/machinery/light/small/directional/west{
+ pixel_y = 0
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"MA" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"MG" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "ra_arms";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/security/armory)
+"No" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"Nr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Nx" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-16";
+ pixel_x = 8;
+ pixel_y = 15
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"NC" = (
+/obj/structure/cable{
+ icon_state = "6-10"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/steeldecal/steel_decals_central2,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"NE" = (
+/obj/structure/chair/sofa/brown/right/directional/north,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"NF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"NW" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Oa" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = 12;
+ pixel_x = -20
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"Ob" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"Oe" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-13";
+ pixel_y = 0;
+ pixel_x = 9
+ },
+/obj/effect/turf_decal/corner/opaque/red/bordercorner{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_y = 10;
+ pixel_x = 20
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Of" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Oy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"OL" = (
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"OO" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/chair/handrail,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"OQ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/hardsuit/security/independent,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"OV" = (
+/turf/template_noop,
+/area/template_noop)
+"OX" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"Pa" = (
+/obj/structure/table,
+/obj/item/radio{
+ pixel_x = -12;
+ pixel_y = 9
+ },
+/obj/item/radio{
+ pixel_x = -4;
+ pixel_y = 9
+ },
+/obj/item/radio{
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/obj/item/radio{
+ pixel_x = 11;
+ pixel_y = 9
+ },
+/obj/item/radio{
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/item/radio{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/radio{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/obj/item/radio{
+ pixel_x = 12;
+ pixel_y = 2
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"Pj" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Pt" = (
+/obj/machinery/computer/helm{
+ icon_state = "computer-middle";
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"PC" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"PD" = (
+/obj/machinery/computer/cargo{
+ icon_state = "computer-right";
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"PH" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/dorm)
+"PM" = (
+/obj/effect/turf_decal/corner/opaque/red/border,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"PN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"PS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"PV" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/closet/emcloset,
+/obj/structure/sign/poster/official/walk{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/central)
+"PW" = (
+/obj/structure/toilet{
+ dir = 8;
+ pixel_x = 4
+ },
+/obj/structure/curtain,
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/canteen)
+"PZ" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/item/pen/fountain/captain{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/folder/blue{
+ pixel_x = -9;
+ pixel_y = -6
+ },
+/obj/item/folder/red{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/obj/item/pen{
+ pixel_y = 3;
+ pixel_x = -5
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -20;
+ pixel_x = -19;
+ id = "ra_bridge";
+ name = "privacy shutters"
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/bridge)
+"QU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "ra_fore"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"QZ" = (
+/obj/effect/turf_decal/corner/opaque/blue/border{
+ dir = 4
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Helm"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Rp" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"Rq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Rt" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 2;
+ id = "ra_bridge_ext"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"Rz" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/dorm)
+"RB" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"RD" = (
+/obj/machinery/holopad/emergency/medical,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"Sb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"Se" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = 12;
+ pixel_x = -20
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"Sj" = (
+/obj/machinery/firealarm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes/cigars{
+ pixel_y = 4;
+ pixel_x = 2
+ },
+/obj/item/storage/box/matches{
+ pixel_y = 10;
+ pixel_x = -9
+ },
+/obj/item/spacecash/bundle/pocketchange{
+ pixel_y = 10;
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ship/security)
+"Sy" = (
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/obj/machinery/light_switch{
+ pixel_y = 23;
+ pixel_x = 11
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"SJ" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"SL" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"SO" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 2;
+ id = "ra_capt"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/dorm/captain)
+"SQ" = (
+/obj/effect/turf_decal/corner/opaque/blue/border,
+/obj/item/kirbyplants{
+ icon_state = "plant-21";
+ pixel_x = -6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"SS" = (
+/obj/structure/rack,
+/obj/item/attachment/bayonet,
+/obj/item/attachment/bayonet{
+ pixel_x = -5
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/screwdriver{
+ pixel_x = 6
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"SZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/meter/atmos/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Te" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/corner/opaque/brown/border,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"Tk" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/yellow/mono,
+/obj/structure/sink/chem{
+ name = "kitchen sink";
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen)
+"Tm" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/chair/plastic{
+ dir = 2
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/item/target{
+ layer = 3.001
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"Tp" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"TB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/computer/cryopod/directional/south,
+/obj/structure/noticeboard{
+ dir = 8;
+ pixel_y = 0;
+ pixel_x = 25
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/crew/cryo)
+"TH" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"TR" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 3;
+ pixel_x = -6
+ },
+/obj/item/storage/lockbox/medal/sec{
+ pixel_x = 8;
+ pixel_y = 15
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"Un" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/structure/crate_shelf,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Uq" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/head/cowboy{
+ pixel_y = 5;
+ pixel_x = -3
+ },
+/obj/item/clothing/head/soft/black{
+ pixel_x = 8;
+ pixel_y = 14
+ },
+/obj/item/clothing/head/beret{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/obj/item/clothing/shoes/cowboy/black{
+ pixel_x = -6;
+ pixel_y = -10
+ },
+/obj/item/clothing/shoes/workboots{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/clothing/head/flatcap{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/obj/item/clothing/head/beret/puce{
+ pixel_y = 12;
+ pixel_x = -2
+ },
+/obj/item/clothing/head/soft/red{
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/jackboots{
+ pixel_x = 2;
+ pixel_y = -3
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_x = -7
+ },
+/obj/item/clothing/shoes/cowboy{
+ pixel_y = -9;
+ pixel_x = -6
+ },
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"Ut" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"UA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/machinery/light_switch{
+ pixel_y = -16;
+ pixel_x = 11;
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"UL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/cargo)
+"UM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"UV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"UY" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "Secure Storage";
+ req_access_txt = "3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Vd" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"Ve" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Vv" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"Vy" = (
+/obj/structure/chair/comfy/blue/old/directional/east,
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"VP" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -10
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"VR" = (
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"VV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"VX" = (
+/obj/structure/chair/sofa/brown/corner/directional/north,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"Wf" = (
+/obj/effect/turf_decal/kfp_small/left{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Wm" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/cargo)
+"Wn" = (
+/obj/item/toy/plush/moth{
+ pixel_y = 9
+ },
+/obj/structure/dresser{
+ dir = 8
+ },
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"Ws" = (
+/obj/machinery/computer/crew{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Wv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"WD" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"WF" = (
+/obj/effect/turf_decal/corner/opaque/red/border{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_x = -31
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"WI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"WJ" = (
+/obj/structure/closet/crate/bin{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/broken_bottle,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/central)
+"WK" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/port)
+"WU" = (
+/obj/structure/guncloset{
+ anchored = 1
+ },
+/obj/item/gun/ballistic/automatic/pistol/ringneck/indie/no_mag,
+/obj/item/gun/ballistic/automatic/pistol/ringneck/indie/no_mag,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/bulldog{
+ pixel_y = 28
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"Xc" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"Xg" = (
+/obj/structure/table/reinforced,
+/obj/structure/closet/wall/red/directional/north{
+ name = "ammo locker";
+ req_access_txt = "1"
+ },
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/m45_cobra,
+/obj/item/ammo_box/magazine/e40,
+/obj/item/ammo_box/magazine/e40,
+/obj/item/ammo_box/magazine/e40,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/stock_parts/cell/gun,
+/obj/item/storage/box/ammo/c299,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Xm" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/central)
+"Xr" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_y = 11;
+ pixel_x = 20
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/modular_computer/laptop/preset/civilian,
+/turf/open/floor/wood,
+/area/ship/security)
+"Xu" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/hallway/central)
+"Xx" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Xy" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/cable/yellow,
+/obj/machinery/power/port_gen/pacman,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"XF" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock{
+ name = "Canteen"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"XG" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"XJ" = (
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = 25
+ },
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 1
+ },
+/obj/structure/chair/handrail,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/ccommons)
+"XN" = (
+/obj/structure/cable{
+ icon_state = "2-6"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"XY" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/item/toy/plush/snakeplushie,
+/obj/structure/sign/poster/rilena/run{
+ pixel_y = 30
+ },
+/obj/item/storage/secure/safe{
+ dir = 8;
+ pixel_x = -30
+ },
+/obj/item/bedsheet/black{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/dorm/captain)
+"Yz" = (
+/obj/structure/chair/sofa/brown/left/directional/south,
+/turf/open/floor/carpet,
+/area/ship/crew/ccommons)
+"YB" = (
+/obj/structure/table/reinforced,
+/obj/structure/closet/wall/red/directional/north{
+ name = "ammo locker";
+ req_access_txt = "1"
+ },
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/item/ammo_box/magazine/m10mm_ringneck,
+/obj/machinery/cell_charger{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/screwdriver{
+ pixel_x = 6
+ },
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"YC" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"YD" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/medical,
+/obj/item/storage/firstaid/regular,
+/obj/item/storage/firstaid/regular,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/syringe,
+/obj/item/reagent_containers/syringe,
+/obj/item/storage/box/gloves,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"YH" = (
+/obj/effect/turf_decal/corner/opaque/orange/border{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"YI" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/item/kirbyplants{
+ icon_state = "plant-14";
+ pixel_y = 8;
+ pixel_x = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+"YQ" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"YV" = (
+/obj/structure/sign/poster/contraband/gec{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"YZ" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Za" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"Zc" = (
+/obj/structure/closet/cardboard/metal,
+/obj/item/storage/box/emptysandbags,
+/obj/item/storage/box/emptysandbags,
+/obj/item/shovel,
+/obj/item/shovel,
+/obj/item/pickaxe,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Zi" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"Zp" = (
+/obj/effect/turf_decal/corner/opaque/brown/border{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Zu" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/mining{
+ dir = 4;
+ name = "Cargo Bay"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"Zx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/ccommons)
+"Zy" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = 7;
+ pixel_y = 5
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/carpet/green,
+/area/ship/crew/dorm)
+"ZE" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/spawner/random/maintenance/three,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"ZM" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters";
+ id_tag = "ra_capt2";
+ req_access_txt = "20"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm/captain)
+"ZQ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/rack,
+/obj/item/clothing/head/cone{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -5;
+ pixel_y = -8
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -5;
+ pixel_y = -8
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = 6;
+ pixel_y = -8
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = 6;
+ pixel_y = -8
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering/electrical)
+"ZR" = (
+/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/canteen)
+
+(1,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(2,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(3,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(4,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(5,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(6,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(7,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+ci
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+yZ
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(8,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+XG
+OV
+ci
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+Cl
+OV
+Cl
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(9,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+XG
+OV
+ci
+WD
+WD
+OV
+OV
+OV
+OV
+OV
+mq
+OV
+OV
+OV
+OV
+WD
+lK
+Cl
+OV
+Cl
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(10,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+Wm
+XG
+XG
+hN
+WD
+hN
+XG
+BH
+OV
+BH
+BH
+OV
+BH
+Cl
+Dw
+Ut
+PS
+Cl
+Cl
+kl
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(11,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+Wm
+XG
+XG
+XG
+XG
+XG
+jE
+BH
+BH
+BH
+BH
+jE
+Cl
+op
+Cl
+Cl
+Cl
+kl
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(12,1,1) = {"
+OV
+OV
+OV
+OV
+FK
+OV
+OV
+FK
+OV
+OV
+OV
+OV
+XG
+OQ
+av
+OQ
+XG
+XG
+XG
+oz
+uy
+LV
+XG
+Cl
+iE
+nV
+KK
+Cl
+OV
+OV
+OV
+OV
+ej
+OV
+OV
+ej
+OV
+OV
+OV
+OV
+"}
+(13,1,1) = {"
+OV
+OV
+OV
+OV
+AD
+AD
+AD
+AD
+OV
+OV
+OV
+OV
+XG
+Tm
+VV
+In
+Em
+rA
+LR
+DH
+iD
+af
+XG
+Wf
+rY
+nn
+Il
+Cl
+OV
+OV
+OV
+OV
+Za
+Za
+Za
+Za
+OV
+OV
+OV
+OV
+"}
+(14,1,1) = {"
+OV
+OV
+FK
+AD
+AD
+di
+YC
+AD
+OV
+OV
+OV
+OV
+Wm
+XG
+IB
+iq
+sV
+nT
+Tp
+UM
+uU
+AF
+XG
+Gm
+SZ
+tU
+Cl
+kl
+OV
+OV
+OV
+OV
+Za
+FO
+rl
+Za
+Za
+Za
+OV
+OV
+"}
+(15,1,1) = {"
+OV
+OV
+WD
+AD
+Se
+lv
+gL
+AD
+OV
+OV
+OV
+OV
+OV
+Wm
+XG
+DL
+AC
+Te
+UL
+vy
+YD
+zV
+XG
+Kh
+YV
+Cl
+kl
+OV
+OV
+OV
+OV
+OV
+Za
+yF
+sS
+Sj
+Za
+WD
+OV
+OV
+"}
+(16,1,1) = {"
+OV
+OV
+WD
+AD
+Pa
+Mq
+TB
+AD
+FK
+OV
+OV
+OV
+OV
+OV
+XG
+Sy
+tZ
+XG
+DO
+qy
+Sb
+Ae
+XG
+CY
+UA
+Cl
+OV
+OV
+OV
+OV
+OV
+ej
+Za
+tS
+Xr
+nP
+Za
+WD
+OV
+OV
+"}
+(17,1,1) = {"
+OV
+Rz
+uW
+uW
+uW
+nt
+uW
+uW
+uW
+Rz
+OV
+OV
+OV
+sa
+XG
+lF
+Zu
+XG
+xD
+jf
+Zc
+Un
+XG
+Cl
+hz
+Cl
+cv
+OV
+OV
+OV
+cv
+bP
+bP
+fN
+bP
+bP
+bP
+bP
+bP
+OV
+"}
+(18,1,1) = {"
+OV
+WD
+uW
+pf
+uW
+dD
+mE
+jB
+PH
+uW
+KZ
+KZ
+KZ
+WK
+PV
+hk
+Zp
+tk
+XG
+XG
+XG
+XG
+XG
+Ii
+UV
+EQ
+Hu
+rn
+rn
+rn
+Hu
+bP
+WF
+dB
+bP
+uS
+hI
+bP
+WD
+OV
+"}
+(19,1,1) = {"
+OV
+WD
+uW
+cO
+Ml
+nc
+Uq
+Hb
+LD
+uW
+sH
+sH
+sH
+WK
+WK
+Mi
+qL
+go
+ZQ
+yR
+pk
+at
+go
+He
+sq
+Hu
+Hu
+LU
+LU
+LU
+Hu
+YB
+wc
+Lr
+bP
+WU
+By
+bP
+WD
+OV
+"}
+(20,1,1) = {"
+Rz
+uW
+uW
+uW
+uW
+bG
+ws
+Wn
+lb
+uW
+cC
+sm
+sm
+kb
+WK
+iu
+GO
+go
+sI
+qn
+TH
+Eq
+go
+Pj
+IT
+Hu
+Mx
+jC
+Of
+md
+Hu
+Xg
+JV
+iw
+bP
+bP
+UY
+bP
+bP
+ic
+"}
+(21,1,1) = {"
+OV
+FE
+jc
+Me
+mm
+mV
+th
+th
+lC
+uW
+ev
+OX
+se
+lM
+cu
+gN
+Oy
+AM
+Wv
+XN
+cG
+pM
+Mj
+gJ
+LY
+Gy
+AX
+EE
+Ve
+NF
+Hu
+nX
+EX
+Eo
+kO
+bz
+fM
+sR
+bP
+OV
+"}
+(22,1,1) = {"
+OV
+FE
+xx
+cn
+uW
+Zy
+bm
+hb
+ie
+uW
+MA
+YQ
+jv
+WK
+WK
+YH
+FM
+go
+fx
+aB
+je
+oP
+dn
+Dd
+Xc
+Hu
+Hu
+LM
+qP
+ZE
+Hu
+eI
+WI
+jx
+PM
+xb
+Ji
+ql
+bF
+OV
+"}
+(23,1,1) = {"
+OV
+BF
+FE
+wX
+uW
+bA
+my
+xB
+vr
+uW
+Gp
+Gp
+Gp
+Gp
+Gp
+OO
+eR
+go
+is
+NC
+lO
+Gt
+go
+dL
+SJ
+Xy
+Hu
+Hu
+Hu
+Hu
+Hu
+aU
+Oe
+xk
+SS
+HS
+Aw
+bF
+MG
+OV
+"}
+(24,1,1) = {"
+OV
+OV
+BF
+uW
+uW
+uW
+Gp
+Gp
+Vv
+Gp
+Gp
+Gp
+Fu
+PW
+Gp
+Nx
+mA
+kI
+go
+CN
+JO
+go
+go
+Vd
+ng
+go
+hl
+HI
+pS
+VX
+hl
+Is
+bP
+bP
+bP
+bP
+bP
+MG
+OV
+OV
+"}
+(25,1,1) = {"
+OV
+OV
+OV
+Rz
+WD
+WD
+Gp
+Md
+ZR
+Oa
+em
+Gp
+GI
+Gp
+Gp
+WJ
+mA
+VR
+kI
+go
+go
+go
+go
+go
+go
+hl
+hs
+Yz
+yT
+NE
+OL
+kc
+CO
+hl
+WD
+WD
+ic
+OV
+OV
+OV
+"}
+(26,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+Gp
+SL
+PC
+Dg
+cb
+jF
+Ob
+FA
+hU
+hU
+AU
+Xx
+Rq
+PN
+aq
+Ej
+Nr
+GD
+mX
+Zx
+No
+mh
+mh
+mh
+Zx
+rd
+hr
+hl
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(27,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+Gp
+YI
+DR
+DR
+DR
+DR
+ef
+Ih
+XF
+YZ
+AQ
+VR
+yk
+wb
+Gq
+gq
+sf
+hl
+VP
+kc
+gC
+jj
+OL
+ls
+RB
+hl
+oJ
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(28,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+Gp
+hm
+hw
+uv
+kJ
+CG
+JY
+Gp
+Gu
+EZ
+EZ
+Aj
+uw
+jJ
+jJ
+jJ
+hl
+fE
+ms
+gC
+RD
+OL
+JS
+Rp
+hl
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(29,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+vw
+bo
+AS
+vw
+aQ
+Tk
+Gp
+Xu
+tg
+Xm
+Aj
+LJ
+SQ
+Ew
+jt
+hl
+BE
+Ap
+wS
+LO
+Jj
+Dy
+Rp
+oJ
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(30,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+Gp
+Gp
+Gp
+hU
+iY
+GP
+lN
+lN
+lN
+lN
+Aj
+FH
+iN
+fo
+PZ
+Aj
+hl
+QU
+oJ
+hl
+hl
+hl
+hl
+oJ
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(31,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+WD
+WD
+Gp
+Gp
+Gp
+lN
+XY
+JW
+xy
+ZM
+HD
+iN
+be
+pt
+Aj
+XJ
+LB
+hl
+WD
+WD
+oJ
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(32,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+hU
+OV
+lN
+lN
+ig
+Vy
+iL
+Aj
+rV
+GH
+yj
+ug
+Aj
+Aj
+ec
+oJ
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(33,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+KQ
+SO
+Fv
+TR
+FJ
+Aj
+pn
+QZ
+NW
+NW
+Rt
+Zi
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(34,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+Fr
+Fr
+Fr
+lN
+Aj
+Ws
+Pt
+PD
+Rt
+qT
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(35,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+lN
+qT
+qT
+qT
+qT
+qT
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(36,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(37,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(38,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(39,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(40,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
+(41,1,1) = {"
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+OV
+"}
diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm
index d6cb54aed39c..b3e90787e119 100644
--- a/_maps/shuttles/independent/independent_rigger.dmm
+++ b/_maps/shuttles/independent/independent_rigger.dmm
@@ -62,7 +62,7 @@
"bc" = (
/obj/structure/closet/cardboard,
/obj/item/paicard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"bi" = (
@@ -239,8 +239,8 @@
populate = 0
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/sugar,
/obj/item/radio/intercom/directional/north,
@@ -283,7 +283,7 @@
"eu" = (
/obj/structure/closet/crate,
/obj/machinery/airalarm/directional/north,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"eF" = (
@@ -430,7 +430,7 @@
dir = 1
},
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
@@ -1102,7 +1102,7 @@
"nU" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/corner/opaque/yellow/diagonal,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"od" = (
@@ -1160,7 +1160,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"oX" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"ph" = (
@@ -2463,7 +2463,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
"DG" = (
@@ -2616,7 +2616,7 @@
},
/obj/structure/closet/crate,
/obj/machinery/firealarm/directional/west,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Fu" = (
@@ -3240,7 +3240,7 @@
/area/ship/medical)
"Ne" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
@@ -3552,7 +3552,7 @@
/area/ship/maintenance/central)
"Qv" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel,
/area/ship/construction)
"QB" = (
@@ -3581,8 +3581,8 @@
/obj/item/clothing/glasses/sunglasses,
/obj/item/gun/ballistic/revolver/detective,
/obj/item/clothing/head/HoS/cowboy,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/structure/closet/secure_closet/wall/directional/west{
icon_state = "solgov_wall";
name = "first mate's closet";
@@ -3680,7 +3680,7 @@
},
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"Sj" = (
@@ -3791,13 +3791,13 @@
dir = 1
},
/obj/structure/crate_shelf,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large{
pixel_x = 1;
pixel_y = -3
@@ -3903,7 +3903,7 @@
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable,
/obj/structure/closet/crate/bin,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Ug" = (
@@ -4132,7 +4132,7 @@
name = "ammunition locker";
req_access_txt = "1"
},
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45/rubber,
/obj/item/ammo_box/magazine/m45,
@@ -4410,9 +4410,9 @@
/turf/closed/wall/mineral/plastitanium,
/area/ship/construction)
"ZI" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/obj/item/clothing/gloves/color/latex/nitrile,
/obj/structure/table/glass,
@@ -4468,7 +4468,8 @@
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/belt/utility,
/obj/item/clothing/glasses/welding,
-/obj/item/gun/energy/plasmacutter,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
/turf/open/floor/plating,
/area/ship/engineering)
diff --git a/_maps/shuttles/independent/independent_scarab.dmm b/_maps/shuttles/independent/independent_scarab.dmm
new file mode 100644
index 000000000000..99e4797077d2
--- /dev/null
+++ b/_maps/shuttles/independent/independent_scarab.dmm
@@ -0,0 +1,4978 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ad" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"ag" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"am" = (
+/obj/structure/cable/green{
+ icon_state = "2-5"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/dark/airless,
+/area/ship/maintenance/port)
+"as" = (
+/obj/structure/closet,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"aH" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"aI" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 5
+ },
+/obj/item/paperplane{
+ dir = 8;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"aK" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "scarab_conveyor"
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/maintenance/central)
+"aL" = (
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock{
+ dir = 2;
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/crew/dorm)
+"aO" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/cryo)
+"aU" = (
+/turf/closed/wall/mineral/iron,
+/area/ship/maintenance/port)
+"bb" = (
+/obj/structure/catwalk/over/plated_catwalk/white,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/curtain,
+/obj/structure/window/reinforced/tinted/frosted{
+ dir = 1
+ },
+/obj/item/soap,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/toilet)
+"bj" = (
+/obj/structure/filingcabinet/double{
+ name = "storage cabinets"
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/item/restraints/handcuffs/cable/zipties,
+/obj/item/restraints/handcuffs/cable/zipties,
+/obj/item/restraints/handcuffs/cable/zipties,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"bq" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/dorm)
+"bw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = -13;
+ dir = 1;
+ pixel_y = -19
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"by" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "0-5"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"bz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"bA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"bD" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"bP" = (
+/turf/closed/wall/rust,
+/area/ship/maintenance/fore)
+"ca" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"ch" = (
+/obj/structure/closet/cardboard,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/effect/spawner/random/entertainment/plushie,
+/obj/structure/sign/poster/random{
+ pixel_x = 32
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"cr" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "0-1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"ct" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"cx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure/weapon,
+/obj/item/gun/ballistic/shotgun/toy,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"cC" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"cD" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/west{
+ pixel_y = 7
+ },
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = -5
+ },
+/obj/structure/cable/green{
+ icon_state = "2-5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"cO" = (
+/obj/structure/closet/crate/medical,
+/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/storage/firstaid/regular,
+/obj/item/roller,
+/obj/item/storage/pill_bottle/charcoal/less,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"dC" = (
+/obj/machinery/blackbox_recorder,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"dG" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"dJ" = (
+/obj/structure/closet/crate/trashcart,
+/obj/item/trash/chips,
+/obj/item/trash/can,
+/obj/item/trash/sosjerky,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"dP" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"dQ" = (
+/obj/machinery/power/port_gen/pacman/super{
+ anchored = 1
+ },
+/obj/structure/cable/pink{
+ icon_state = "0-8"
+ },
+/obj/structure/cable/pink{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"dV" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew/dorm)
+"dX" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer2{
+ dir = 8
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 23
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"dY" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"ee" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"eg" = (
+/obj/item/radio/intercom/directional/west,
+/obj/structure/marker_beacon{
+ picked_color = "Bronze";
+ pixel_y = -4
+ },
+/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"et" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 11
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/firealarm/directional/west,
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/pen,
+/obj/item/folder/yellow{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"ex" = (
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/obj/structure/sign/warning/explosives/alt{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"eB" = (
+/obj/structure/dresser,
+/obj/machinery/light/small/directional/west,
+/obj/effect/spawner/random/entertainment/plushie/moth{
+ pixel_y = 11;
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_x = 9;
+ pixel_y = 9
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"eH" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/bridge)
+"eM" = (
+/obj/structure/cable/green{
+ icon_state = "8-9"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"fa" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/external,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"fx" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Cryogenics";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/crew/cryo)
+"fW" = (
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock{
+ dir = 2;
+ name = "Bathroom"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/crew/toilet)
+"fY" = (
+/obj/structure/closet/wall/directional/west,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 13
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"ge" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/obj/structure/sign/warning/fire{
+ pixel_y = -20;
+ pixel_x = -10
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"gg" = (
+/obj/machinery/computer/helm{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"gj" = (
+/obj/machinery/door/airlock/maintenance/external{
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"gp" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/binary/pump/on/layer2{
+ dir = 1;
+ name = "Air to Distro"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"gq" = (
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"gs" = (
+/obj/machinery/door/airlock/atmos{
+ dir = 4;
+ name = "Atmospherics Bay"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"gP" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"gR" = (
+/obj/structure/cable/green{
+ icon_state = "2-6"
+ },
+/obj/structure/table,
+/obj/item/storage/toolbox/emergency{
+ pixel_y = 4
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"gW" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10;
+ layer = 2.030
+ },
+/obj/structure/sign/poster/official/wtf_is_co2{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"ha" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"he" = (
+/obj/structure/closet/crate/large,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"hn" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"hz" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"hI" = (
+/obj/machinery/airalarm/directional/east,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"hV" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-6"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"io" = (
+/obj/machinery/conveyor{
+ dir = 9;
+ id = "scarab_conveyor"
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/maintenance/central)
+"ir" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"ix" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"iK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"iT" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"iV" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/light_switch{
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -8
+ },
+/obj/structure/bed/dogbed{
+ name = "Temiti's bed"
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"iZ" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"jc" = (
+/obj/machinery/computer/crew{
+ icon_state = "computer-left";
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/white,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"jd" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"jj" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"jo" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"jt" = (
+/obj/docking_port/stationary{
+ dwidth = 7;
+ height = 15;
+ width = 14
+ },
+/turf/template_noop,
+/area/template_noop)
+"jv" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"jA" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/maintenance/central)
+"jC" = (
+/obj/machinery/conveyor{
+ id = "scarab_conveyor"
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/maintenance/central)
+"jG" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_engines_port"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"jQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"jT" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/structure/curtain/cloth{
+ color = "#ACD1E9"
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/toilet)
+"jV" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/toilet)
+"jX" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/chair/handrail,
+/obj/structure/cable/pink{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/pink{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"jZ" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering/atmospherics)
+"ke" = (
+/obj/machinery/door/airlock/maintenance{
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"kf" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"kk" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"kl" = (
+/obj/structure/cable/green{
+ icon_state = "5-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "6-8"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"kr" = (
+/obj/machinery/light/small/directional/east,
+/obj/machinery/power/port_gen/pacman/super{
+ anchored = 1
+ },
+/obj/structure/cable/pink{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"kt" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/item/cutting_board{
+ pixel_y = 2;
+ anchored = 1
+ },
+/obj/item/melee/knife/kitchen{
+ pixel_y = 3
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"kz" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_engines_port"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"kB" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/item/kirbyplants/random{
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"kL" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"kM" = (
+/obj/structure/cable/green{
+ icon_state = "4-10"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-10"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plasteel,
+/area/ship/hallway/fore)
+"lf" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"lh" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/green{
+ icon_state = "0-8"
+ },
+/obj/item/kirbyplants/random{
+ pixel_x = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = 6
+ },
+/obj/machinery/newscaster/directional/south{
+ pixel_x = -6
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"lm" = (
+/obj/machinery/door/airlock/maintenance{
+ dir = 8;
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"lp" = (
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"lt" = (
+/obj/structure/chair/stool{
+ dir = 8
+ },
+/obj/machinery/computer/cryopod/directional/west,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"lx" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"lz" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/obj/machinery/light/dim/directional/south,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"lF" = (
+/obj/machinery/autolathe,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"lG" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_engines_starboard"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering/atmospherics)
+"lJ" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"lR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"ma" = (
+/obj/effect/spawner/random/salvage_machine,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"mr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"mv" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"mC" = (
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"mG" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"mN" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 10
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"mX" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"nb" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"nn" = (
+/obj/machinery/power/shuttle/engine/fire,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering/atmospherics)
+"nq" = (
+/obj/structure/bed/double/maint,
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"nE" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"nK" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/random/maintenance,
+/obj/item/trash/chips,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"nN" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ req_one_access = list(19,41);
+ name = "Bridge"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"oe" = (
+/obj/structure/cable/green{
+ icon_state = "1-5"
+ },
+/obj/structure/reagent_dispensers/foamtank,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"oi" = (
+/obj/machinery/door/airlock/mining/glass{
+ dir = 4;
+ name = "Cargo Bay"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"on" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/starboard)
+"oJ" = (
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"oK" = (
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/arrows,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"oO" = (
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"oP" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"pc" = (
+/obj/structure/bed{
+ dir = 2
+ },
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"pf" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light_switch{
+ pixel_y = 20
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/cryo)
+"pB" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/closet/crate,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe,
+/obj/item/pickaxe,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/radio/weather_monitor,
+/obj/item/radio/weather_monitor,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"pE" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"pH" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"pQ" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"pU" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ dir = 8;
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"qg" = (
+/obj/effect/turf_decal/box/corners,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/closet/crate/engineering{
+ name = "laser mining drill crate"
+ },
+/obj/machinery/drill,
+/obj/item/pinpointer/mineral,
+/obj/item/paper/guides/drill,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"qh" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"qv" = (
+/obj/machinery/mineral/unloading_machine{
+ output_dir = 2;
+ input_dir = 1
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"qx" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/maintenance/fore)
+"qC" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/item/paper_bin{
+ pixel_y = 8;
+ pixel_x = -6
+ },
+/obj/item/pen,
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_x = 12;
+ pixel_y = 6
+ },
+/obj/item/folder/red{
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"qH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"re" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering)
+"rm" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"rn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate,
+/obj/effect/spawner/random/maintenance/two,
+/obj/structure/sign/poster/random{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"rt" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/closet/crate/secure/engineering{
+ req_one_access = list(11,41)
+ },
+/obj/item/gear_pack/anglegrinder,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
+/obj/item/radio/headset/alt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"rz" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"rC" = (
+/obj/machinery/mineral/processing_unit_console{
+ pixel_y = -18;
+ machinedir = 6;
+ output_dir = 1;
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_techfloor_grid,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"rI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 2
+ },
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"rL" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"sd" = (
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"sk" = (
+/obj/effect/turf_decal/trimline/opaque/orange/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"sl" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"sx" = (
+/obj/structure/closet{
+ name = "engineering wardrobe";
+ anchored = 1;
+ icon_door = "yellow"
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/storage/backpack/industrial,
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/clothing/under/rank/engineering/engineer,
+/obj/item/clothing/under/rank/engineering/engineer,
+/obj/item/clothing/shoes/workboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/workboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/toggle/hazard,
+/obj/item/clothing/suit/toggle/hazard,
+/obj/item/clothing/head/hardhat/dblue,
+/obj/item/clothing/head/hardhat/dblue,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"sy" = (
+/obj/structure/chair/handrail,
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"sF" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 3;
+ pixel_x = -7
+ },
+/obj/item/folder/blue{
+ pixel_x = 6;
+ pixel_y = 14
+ },
+/obj/item/stamp{
+ pixel_x = -8;
+ pixel_y = 19;
+ layer = 3.01
+ },
+/obj/item/pen/fountain,
+/obj/item/reagent_containers/glass/maunamug{
+ pixel_x = 8;
+ pixel_y = 4;
+ list_reagents = list(/datum/reagent/consumable/coffee = 30)
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10;
+ layer = 2.030
+ },
+/obj/structure/railing,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"sG" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/obj/structure/closet/secure_closet/wall/directional/south{
+ icon_state = "sec_wall";
+ name = "armor locker";
+ req_one_access = list(1,41)
+ },
+/obj/item/clothing/suit/armor/vest/alt,
+/obj/item/clothing/suit/armor/vest/alt,
+/obj/item/clothing/head/helmet/sec,
+/obj/item/clothing/head/helmet/sec,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/item/clothing/glasses/sunglasses/ballistic,
+/obj/item/clothing/glasses/sunglasses/ballistic,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"sJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"sM" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable/pink{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"sS" = (
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"sX" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/fragile,
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -21
+ },
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"te" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"tj" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"tx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/crew/cryo)
+"ty" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ dir = 8;
+ req_ship_access = 0
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"tA" = (
+/obj/effect/turf_decal/trimline/opaque/orange/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"tH" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/secure_data/laptop{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/winchester{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"tJ" = (
+/obj/machinery/door/airlock/glass{
+ dir = 8;
+ name = "Crew Quarters"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/crew)
+"tK" = (
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/loading{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/railing/corner,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"tL" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"uk" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"uo" = (
+/turf/closed/wall/rust,
+/area/ship/maintenance/port)
+"ut" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "scarab_security"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"uu" = (
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"uC" = (
+/obj/machinery/door/airlock/maintenance/external{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/ship/maintenance/central)
+"uG" = (
+/obj/machinery/door/airlock/public/glass{
+ req_ship_access = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/hallway/starboard)
+"uZ" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark/airless,
+/area/ship/maintenance/port)
+"vf" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "scarab_holo"
+ },
+/obj/structure/cable/green{
+ icon_state = "0-10"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
+"vr" = (
+/obj/structure/table,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/storage/fancy/donut_box{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"vw" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/engineer,
+/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/clothing/mask/gas,
+/obj/structure/sign/poster/official/build{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"vC" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -12
+ },
+/obj/structure/mirror{
+ pixel_y = 4;
+ layer = 2.89;
+ pixel_x = -20
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"vK" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/bridge)
+"vV" = (
+/obj/structure/table,
+/obj/machinery/jukebox/boombox{
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"wq" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/hallway/starboard)
+"wu" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"wA" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_door = "eng_elec";
+ icon_state = "eng";
+ name = "tool closet";
+ req_one_access = list(11,41)
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green{
+ icon_state = "0-8"
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -3
+ },
+/obj/item/stack/tape/industrial/electrical{
+ pixel_y = -4
+ },
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/geiger_counter,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"wO" = (
+/obj/machinery/atmospherics/components/binary/valve/on/layer4,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/button/door{
+ pixel_x = -20;
+ dir = 4;
+ id = "scarab_engines_starboard";
+ name = "cargo door control"
+ },
+/obj/structure/closet/firecloset/wall/directional/east{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering/atmospherics)
+"wR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/green{
+ icon_state = "1-10"
+ },
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
+ },
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
+ },
+/turf/open/floor/plating,
+/area/ship/crew/cryo)
+"wS" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"wU" = (
+/obj/structure/chair/sofa/brown/right/directional/east,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"wW" = (
+/turf/template_noop,
+/area/template_noop)
+"xm" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/trinary/mixer/flipped{
+ dir = 4;
+ name = "fuel mixer";
+ node1_concentration = 0.33;
+ node2_concentration = 0.67;
+ target_pressure = 500
+ },
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"xz" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -5
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "scarab_security";
+ name = "cargo door control";
+ pixel_y = -20;
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"xI" = (
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"xM" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/engineer,
+/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/item/clothing/mask/gas,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"yi" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"yl" = (
+/obj/structure/cable/green{
+ icon_state = "8-10"
+ },
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"yr" = (
+/obj/machinery/atmospherics/components/binary/valve/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/button/door{
+ pixel_x = -20;
+ dir = 4;
+ id = "scarab_engines_port";
+ name = "cargo door control"
+ },
+/obj/structure/closet/firecloset/wall/directional/east{
+ pixel_y = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"yx" = (
+/obj/structure/closet,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"yF" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"yO" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"yR" = (
+/obj/structure/chair/stool{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"yU" = (
+/obj/structure/closet/wall/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 10;
+ dir = 1;
+ pixel_y = -19
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/item/storage/backpack,
+/obj/item/storage/backpack/satchel,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/under/utility/skirt,
+/obj/item/clothing/shoes/workboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/workboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/sneakers/black{
+ pixel_y = -12
+ },
+/obj/item/clothing/shoes/sneakers/black{
+ pixel_y = -12
+ },
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"yX" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/maintenance/port)
+"zr" = (
+/obj/structure/cable/green{
+ icon_state = "2-10"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"zv" = (
+/obj/effect/spawner/random/maintenance/three,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"zD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb,
+/mob/living/simple_animal/mouse{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"zE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"zS" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/hallway/fore)
+"Ak" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"Am" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ar" = (
+/obj/structure/cable/green{
+ icon_state = "5-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/fore)
+"AD" = (
+/obj/item/kirbyplants/random{
+ pixel_x = -7
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = -12
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"AT" = (
+/obj/effect/spawner/random/salvage_machine,
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "space";
+ pixel_y = 29;
+ pixel_x = 1;
+ paint_colour = "#FF0000"
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"AU" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"AW" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/obj/structure/closet/wall/directional/south{
+ name = "security wardrobe"
+ },
+/obj/item/storage/backpack/security,
+/obj/item/storage/backpack/satchel/sec,
+/obj/item/clothing/under/rank/security/officer,
+/obj/item/clothing/under/rank/security/officer,
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/balaclava,
+/obj/item/clothing/mask/balaclava,
+/obj/item/storage/belt/security,
+/obj/item/storage/belt/security,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"Bd" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_engines_starboard"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering/atmospherics)
+"Bu" = (
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/light_switch{
+ pixel_y = 20;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/fore)
+"Bw" = (
+/obj/machinery/computer/atmos_alert{
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"By" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/number/nine{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"BW" = (
+/obj/machinery/mineral/processing_unit{
+ input_dir = 2;
+ output_dir = 1
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Cg" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_cargo"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
+"Ch" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"CT" = (
+/turf/closed/wall,
+/area/ship/maintenance/fore)
+"CU" = (
+/obj/structure/closet/crate/large,
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Dl" = (
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/white,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Ds" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/spawner/random/bedsheet,
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"Dt" = (
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"Dv" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"DF" = (
+/obj/machinery/computer/cargo{
+ icon_state = "computer-right";
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/white,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"DI" = (
+/obj/structure/catwalk/over,
+/obj/structure/marker_beacon{
+ picked_color = "Cerulean"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"DN" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"DX" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_windows"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew)
+"Ei" = (
+/obj/machinery/power/shuttle/engine/fire,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"Es" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"EE" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/obj/machinery/space_heater,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"EK" = (
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"EL" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/atmospherics)
+"ES" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/closet/crate/radiation{
+ name = "fuel crate";
+ anchored = 1
+ },
+/obj/item/stack/sheet/mineral/uranium/ten,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/turf_decal/radiation,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"ET" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"Ff" = (
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/sign/poster/contraband/cardinal_fore_aft{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"FE" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/layer4{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"FF" = (
+/obj/machinery/light/directional/south,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8;
+ piping_layer = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"FG" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"FH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"FP" = (
+/obj/structure/closet/crate/bin,
+/obj/item/trash/boritos,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"FU" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/cable/green{
+ icon_state = "6-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/chick/holo{
+ dir = 8;
+ name = "Temiti"
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"FW" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 9
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Gg" = (
+/obj/item/radio/intercom/directional/north{
+ pixel_x = -9
+ },
+/obj/structure/chair/office{
+ pixel_y = 0;
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/north{
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Gj" = (
+/obj/machinery/door/airlock/glass{
+ dir = 8;
+ name = "Crew Quarters"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/crew)
+"Gs" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"Gx" = (
+/obj/machinery/computer/monitor{
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"GH" = (
+/obj/structure/marker_beacon{
+ picked_color = "Bronze";
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"GU" = (
+/obj/structure/chair/stool{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"GY" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 4;
+ piping_layer = 2
+ },
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"Hc" = (
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -19
+ },
+/turf/open/floor/plasteel/dark/airless,
+/area/ship/maintenance/port)
+"Hv" = (
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Hw" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/structure/closet/secure_closet{
+ req_access_txt = "41";
+ anchored = 1;
+ icon_state = "qm";
+ name = "\proper foreman's locker"
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/item/storage/guncase/pistol/detective,
+/obj/item/storage/backpack/industrial,
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/clothing/shoes/workboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/under/rank/security/detective,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/storage/belt/utility/full,
+/obj/item/clothing/head/hardhat/orange,
+/obj/item/clothing/head/hardhat/white,
+/obj/effect/turf_decal/box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/megaphone/cargo,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"HC" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible/layer2,
+/obj/machinery/airalarm/directional/south,
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"HG" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"HI" = (
+/obj/machinery/firealarm/directional/west{
+ pixel_y = 7
+ },
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = -6
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"HP" = (
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"HQ" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ia" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green{
+ icon_state = "0-1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ic" = (
+/turf/closed/wall/mineral/iron,
+/area/ship/maintenance/fore)
+"Iu" = (
+/obj/machinery/pipedispenser,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"Iy" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew)
+"IE" = (
+/obj/structure/catwalk/over,
+/obj/structure/marker_beacon{
+ picked_color = "Burgundy"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"IG" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"IL" = (
+/obj/machinery/conveyor_switch/oneway{
+ pixel_y = 1;
+ pixel_x = -8;
+ id = "scarab_conveyor"
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ pixel_x = 20;
+ dir = 8;
+ pixel_y = 6;
+ id = "scarab_cargo";
+ name = "cargo door control"
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = -4;
+ id = "scarab_holo"
+ },
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"IM" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"IN" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"IY" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/crate/secure/loot,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Jc" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/cable/green{
+ icon_state = "4-9"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"Je" = (
+/obj/structure/cable/green{
+ icon_state = "6-10"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Jj" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ dir = 8;
+ req_ship_access = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Jl" = (
+/obj/machinery/door/airlock/public/glass{
+ req_ship_access = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/hallway/starboard)
+"Jm" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable/green{
+ icon_state = "0-5"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"Jo" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/obj/item/caution,
+/obj/item/caution,
+/obj/item/caution,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/storage/bag/trash,
+/obj/item/mop,
+/obj/item/pushbroom,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"JB" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"JD" = (
+/obj/structure/railing,
+/obj/machinery/button/door{
+ pixel_x = 22;
+ dir = 8;
+ pixel_y = 9;
+ id = "scarab_bridge";
+ name = "bridge blast doors"
+ },
+/obj/machinery/button/door{
+ pixel_x = 22;
+ dir = 8;
+ pixel_y = -2;
+ id = "scarab_windows";
+ name = "window lockdown"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10;
+ layer = 2.030
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"JR" = (
+/obj/structure/cable/green{
+ icon_state = "1-10"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"JT" = (
+/obj/docking_port/stationary{
+ width = 5;
+ height = 15;
+ dwidth = 3;
+ dir = 8
+ },
+/turf/template_noop,
+/area/template_noop)
+"JW" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_x = 11;
+ dir = 1;
+ pixel_y = -19
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"Kc" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/handrail,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Ks" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"Kt" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ku" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"KN" = (
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"KP" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"KR" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Lc" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"Lm" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Lp" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"Lt" = (
+/obj/effect/turf_decal/hardline_small/left{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"LA" = (
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "Security";
+ req_one_access = list(1,41)
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"LJ" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"LK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"LS" = (
+/obj/structure/railing,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"LZ" = (
+/obj/structure/cable/green{
+ icon_state = "5-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Md" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Me" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"Mk" = (
+/obj/structure/cable/green{
+ icon_state = "4-5"
+ },
+/obj/effect/spawner/random/salvage_machine,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/catwalk/over,
+/obj/structure/sign/poster/random{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Mr" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/number/eight{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Mw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/item/kirbyplants/random{
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/fore)
+"MD" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/structure/closet/secure_closet/wall/directional/north{
+ name = "Fridge"
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/storage/cans/sixbeer,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/snacks/sosjerky,
+/obj/item/reagent_containers/food/snacks/sosjerky,
+/obj/item/reagent_containers/food/snacks/cornchips,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"MT" = (
+/obj/structure/chair/sofa/brown/left/directional/east,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"MV" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"MZ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/green{
+ icon_state = "5-10"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Nu" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "scarab_conveyor"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/green{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/maintenance/central)
+"NS" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"NU" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/cargo)
+"Oe" = (
+/obj/structure/sign/poster/random{
+ pixel_y = 32
+ },
+/obj/structure/table,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Om" = (
+/obj/structure/cable/green{
+ icon_state = "4-10"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink{
+ pixel_y = 21
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Oo" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/firedoor/window,
+/obj/machinery/door/poddoor{
+ dir = 2;
+ id = "scarab_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"Ox" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"Oy" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable/green{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 10
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"OF" = (
+/obj/structure/catwalk/over,
+/obj/docking_port/mobile{
+ can_move_docking_ports = 1;
+ dir = 2;
+ launch_status = 0;
+ name = "drilling ship";
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"OI" = (
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering Bay"
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"OS" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"OY" = (
+/obj/structure/cable/green{
+ icon_state = "1-6"
+ },
+/obj/structure/rack,
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/metal/twenty,
+/obj/item/stack/sheet/glass/twenty,
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"Pe" = (
+/obj/machinery/door/airlock/maintenance_hatch,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/maintenance/port)
+"Ps" = (
+/obj/effect/turf_decal/hardline_small/right{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"PL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/atmospherics)
+"PV" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/fore)
+"PX" = (
+/obj/structure/table,
+/obj/machinery/fax/indie{
+ pixel_y = 8
+ },
+/obj/item/stamp/denied{
+ pixel_y = -5;
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Qa" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 4;
+ pixel_y = 0;
+ pixel_x = 5
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Qb" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"Qe" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"QE" = (
+/obj/effect/decal/cleanable/oil/streak,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"QJ" = (
+/obj/structure/spider/stickyweb{
+ layer = 2.91
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"QW" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"QZ" = (
+/turf/closed/wall,
+/area/ship/maintenance/port)
+"Re" = (
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/white{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet{
+ icon_state = "cap";
+ name = "\proper captain's locker";
+ req_access_txt = "20";
+ anchored = 1
+ },
+/obj/item/storage/guncase/pistol/detective,
+/obj/item/storage/backpack/captain,
+/obj/item/storage/backpack/satchel/cap,
+/obj/item/clothing/under/rank/command/captain,
+/obj/item/clothing/under/rank/command/captain/skirt,
+/obj/item/clothing/shoes/laceup{
+ pixel_y = -12
+ },
+/obj/item/clothing/gloves/color/white,
+/obj/item/clothing/head/caphat,
+/obj/item/storage/box/ammo/c38,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable/green{
+ icon_state = "0-10"
+ },
+/obj/item/clothing/accessory/holster,
+/obj/item/megaphone/cargo,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Rh" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/toy/cards/deck/kotahi{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"Rs" = (
+/obj/machinery/door/airlock/maintenance{
+ req_ship_access = 0
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ry" = (
+/obj/structure/table,
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/obj/item/toy/crayon/spraycan{
+ pixel_y = 12;
+ pixel_x = 7
+ },
+/obj/item/hand_labeler{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"RB" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 2
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"RN" = (
+/obj/structure/chair/stool{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"RX" = (
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"Sa" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/obj/item/clothing/suit/space/hardsuit/security/independent,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Sh" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/radio/intercom/directional/east,
+/obj/item/cigbutt,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"SV" = (
+/obj/effect/turf_decal/industrial/traffic/corner,
+/obj/machinery/light/directional/north,
+/obj/machinery/firealarm/directional/east{
+ pixel_y = -5
+ },
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"Tq" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"TG" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/effect/turf_decal/number/zero{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"TH" = (
+/obj/item/kirbyplants/random{
+ pixel_x = -7
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"TN" = (
+/obj/structure/guncloset,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/item/gun/ballistic/automatic/smg/cobra/indie/no_mag,
+/obj/item/gun/ballistic/shotgun/hellfire/empty,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"TP" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plating,
+/area/ship/crew/cryo)
+"TU" = (
+/obj/structure/catwalk/over/plated_catwalk/white,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/curtain,
+/obj/structure/window/reinforced/tinted/frosted{
+ dir = 1
+ },
+/obj/item/bikehorn/rubberducky{
+ pixel_x = -9
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/toilet)
+"UB" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"UN" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "scarab_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "scarab_holo";
+ dir = 1
+ },
+/obj/structure/cable/green{
+ icon_state = "0-9"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
+"UQ" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"UR" = (
+/obj/structure/cable/green{
+ icon_state = "4-9"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/greenglow,
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"UZ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Vc" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/effect/turf_decal/siding/thinplating/dark/end,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"VB" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10;
+ layer = 2.030
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"VL" = (
+/obj/effect/turf_decal/corner/opaque/lightgrey/diagonal{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"VN" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"VU" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo)
+"VZ" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/clothing/suit/space/engineer,
+/obj/item/clothing/head/helmet/space/light/engineer,
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"Wo" = (
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Wp" = (
+/obj/structure/ore_box,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Wt" = (
+/obj/structure/closet/wall/directional/south{
+ pixel_x = 3
+ },
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/towel,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -19;
+ pixel_x = -12
+ },
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Wv" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/ore_box,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/ntos{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"WD" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"WK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/item/cigbutt,
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"WN" = (
+/obj/effect/turf_decal/hardline_small{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"WQ" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"WT" = (
+/obj/effect/turf_decal/siding/thinplating/corner,
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"WU" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/structure/rack,
+/obj/item/storage/box/ammo/a12g_buckshot{
+ pixel_y = 2;
+ pixel_x = 4
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/item/ammo_box/magazine/m45_cobra{
+ pixel_y = 4
+ },
+/obj/item/ammo_box/magazine/m45_cobra{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Xd" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 7
+ },
+/turf/open/floor/carpet,
+/area/ship/crew/dorm)
+"Xi" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/starboard)
+"Xy" = (
+/obj/machinery/light/directional/north,
+/obj/structure/chair/handrail,
+/obj/effect/turf_decal/corner/transparent/black/diagonal{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"XA" = (
+/obj/structure/cable/green{
+ icon_state = "2-9"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Yc" = (
+/obj/structure/cable/green{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/wall/directional/east,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"Yi" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew)
+"Yu" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm)
+"Yw" = (
+/obj/machinery/holopad{
+ pixel_x = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/blue,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"YI" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew)
+"YP" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/cryo)
+"Zb" = (
+/obj/machinery/firealarm/directional/west{
+ pixel_y = 7
+ },
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = -6
+ },
+/obj/item/cigbutt,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+"Zc" = (
+/obj/structure/cable/green{
+ icon_state = "4-9"
+ },
+/obj/structure/grille,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"Zj" = (
+/obj/effect/turf_decal/box/corners,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Zp" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/item/clothing/suit/space/hardsuit/security/independent,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Zu" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/maintenance/port)
+"ZA" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
+"ZY" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/green{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/green{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hallway/central)
+
+(1,1,1) = {"
+wW
+wW
+wW
+wW
+wW
+yi
+dY
+dY
+Ei
+LJ
+wW
+wW
+JT
+wW
+wW
+JB
+nn
+jZ
+jZ
+ee
+wW
+wW
+wW
+wW
+wW
+"}
+(2,1,1) = {"
+wW
+wW
+wW
+wW
+re
+yi
+jG
+jG
+kz
+yi
+IE
+xI
+RX
+Ku
+IE
+ee
+lG
+Bd
+Bd
+ee
+EL
+wW
+wW
+wW
+wW
+"}
+(3,1,1) = {"
+re
+yi
+yi
+yi
+yi
+lF
+ha
+ha
+KN
+yi
+ee
+ee
+ir
+ee
+ee
+ee
+sy
+oP
+by
+GY
+ee
+YP
+YP
+YP
+aO
+"}
+(4,1,1) = {"
+yi
+Me
+IM
+LS
+OY
+bA
+Hv
+Wo
+mN
+yr
+fa
+Ox
+WQ
+Vc
+fa
+wO
+HP
+JR
+gp
+HC
+ee
+uk
+fY
+lt
+YP
+"}
+(5,1,1) = {"
+yi
+jX
+sM
+te
+dG
+XA
+uu
+EK
+wA
+yi
+ee
+dX
+FE
+sX
+ee
+ee
+RB
+KR
+PL
+FF
+ee
+VN
+ix
+Jm
+YP
+"}
+(6,1,1) = {"
+yi
+dQ
+kr
+ES
+Gx
+VB
+Lm
+lR
+sx
+yi
+ee
+hz
+hz
+hz
+ee
+ee
+EE
+qH
+xm
+gW
+ee
+tx
+wR
+TP
+YP
+"}
+(7,1,1) = {"
+yi
+yi
+yi
+yi
+Bw
+sl
+Ak
+Dt
+cC
+yi
+vw
+sJ
+RN
+sJ
+xM
+ee
+Iu
+mG
+rL
+ge
+ee
+pf
+YP
+YP
+YP
+"}
+(8,1,1) = {"
+Ku
+wW
+yi
+yi
+yi
+yi
+OI
+yi
+yi
+yi
+VZ
+Ps
+WN
+Lt
+QW
+ee
+ee
+gs
+ee
+ee
+ee
+fx
+YP
+wW
+Ku
+"}
+(9,1,1) = {"
+Ku
+wW
+yX
+aU
+aU
+yX
+Lp
+NS
+ad
+Zb
+jd
+pH
+gP
+pH
+jo
+HI
+kk
+aH
+tL
+Jl
+TH
+bw
+on
+wW
+Ku
+"}
+(10,1,1) = {"
+OF
+yX
+yX
+pQ
+am
+Pe
+HG
+kL
+WT
+Ks
+IN
+kf
+ZY
+kf
+Sh
+hI
+Ff
+Yc
+kL
+uG
+bz
+Xi
+on
+on
+Ku
+"}
+(11,1,1) = {"
+Ku
+yX
+QZ
+Om
+Hc
+DN
+DN
+DN
+LA
+iZ
+iZ
+mv
+oi
+mv
+iZ
+iZ
+jV
+jV
+jV
+jV
+gq
+WK
+nE
+wq
+Ku
+"}
+(12,1,1) = {"
+Ku
+yX
+Oe
+uZ
+lz
+DN
+qC
+AD
+xz
+iZ
+lx
+ca
+yO
+dP
+et
+iZ
+FW
+vC
+Oy
+fW
+bz
+FH
+Rh
+wq
+Ku
+"}
+(13,1,1) = {"
+Ku
+yX
+gR
+hV
+zE
+DN
+tH
+MV
+ct
+ut
+cO
+dJ
+yO
+VU
+Ry
+iZ
+Xy
+rI
+Wt
+jV
+AU
+jQ
+lf
+wq
+Ku
+"}
+(14,1,1) = {"
+yX
+yX
+ma
+eM
+UR
+DN
+bj
+bD
+VL
+ut
+Jo
+Zj
+iK
+aI
+Hw
+iZ
+jT
+TU
+bb
+UB
+Iy
+tJ
+UB
+UB
+UB
+"}
+(15,1,1) = {"
+yX
+uo
+uo
+uo
+ty
+DN
+TN
+iT
+AW
+iZ
+pB
+rt
+Qb
+oJ
+rC
+iZ
+jA
+jA
+UB
+UB
+iV
+Gs
+MT
+wU
+UB
+"}
+(16,1,1) = {"
+yX
+IY
+yx
+uo
+LZ
+DN
+WU
+WD
+sG
+iZ
+Ch
+Wp
+FG
+QE
+tK
+BW
+Nu
+io
+UB
+pE
+hn
+wu
+vr
+vV
+DX
+"}
+(17,1,1) = {"
+rm
+ZA
+LK
+Je
+sd
+DN
+DN
+Zp
+Sa
+iZ
+Wv
+qg
+ag
+oJ
+oK
+qv
+jC
+aK
+UB
+kt
+Yi
+FU
+yR
+GU
+DX
+"}
+(18,1,1) = {"
+yX
+ch
+qh
+QZ
+Zc
+QZ
+DN
+DN
+DN
+iZ
+SV
+Lc
+kl
+jj
+IL
+iZ
+jA
+uC
+UB
+MD
+Yi
+ET
+Jc
+nK
+UB
+"}
+(19,1,1) = {"
+Zu
+yX
+QZ
+QZ
+sS
+cr
+yX
+wW
+wW
+NU
+iZ
+vf
+Cg
+UN
+iZ
+NU
+wW
+wW
+UB
+jv
+Qe
+kB
+JW
+UB
+YI
+"}
+(20,1,1) = {"
+wW
+yX
+zv
+QZ
+QJ
+mX
+yX
+Zu
+wW
+wW
+GH
+Mr
+TG
+By
+eg
+wW
+wW
+bq
+Yu
+Yu
+Yu
+Iy
+Gj
+UB
+wW
+"}
+(21,1,1) = {"
+wW
+yX
+QZ
+QZ
+QZ
+pU
+uo
+yX
+wW
+wW
+wW
+sk
+Dv
+tA
+wW
+wW
+wW
+Yu
+eB
+yU
+Yu
+Bu
+Ar
+OS
+wW
+"}
+(22,1,1) = {"
+wW
+qx
+he
+Md
+CT
+HQ
+Mk
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+dV
+pc
+mC
+aL
+kM
+Mw
+zS
+wW
+"}
+(23,1,1) = {"
+jt
+gj
+Kt
+UZ
+Rs
+yl
+lp
+lJ
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+dV
+Xd
+nb
+Yu
+Kc
+rz
+zS
+Ku
+"}
+(24,1,1) = {"
+wW
+qx
+AT
+rn
+Ic
+KP
+cx
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+dV
+Ds
+lh
+Yu
+IG
+dC
+OS
+Ku
+"}
+(25,1,1) = {"
+wW
+PV
+qx
+Ic
+Ic
+Jj
+CT
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+UQ
+UQ
+UQ
+UQ
+nN
+UQ
+UQ
+Ku
+"}
+(26,1,1) = {"
+wW
+wW
+qx
+CU
+Ic
+ex
+oe
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+UQ
+PX
+sF
+cD
+mr
+UQ
+wW
+Ku
+"}
+(27,1,1) = {"
+wW
+wW
+lJ
+Kt
+ke
+zr
+Ia
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+UQ
+Gg
+MZ
+Es
+FP
+Oo
+wW
+Ku
+"}
+(28,1,1) = {"
+wW
+wW
+qx
+tj
+bP
+bP
+lm
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+UQ
+Re
+Yw
+wS
+DF
+UQ
+wW
+DI
+"}
+(29,1,1) = {"
+wW
+wW
+qx
+bP
+bP
+zD
+Am
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+vK
+yF
+JD
+oO
+jc
+UQ
+wW
+wW
+"}
+(30,1,1) = {"
+wW
+wW
+PV
+qx
+bP
+nq
+as
+qx
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+vK
+gg
+Qa
+Dl
+UQ
+Tq
+wW
+wW
+"}
+(31,1,1) = {"
+wW
+wW
+wW
+PV
+qx
+qx
+qx
+PV
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+wW
+Tq
+eH
+eH
+UQ
+Tq
+wW
+wW
+wW
+"}
diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm
index 3ae3915db4d3..46be023773e0 100644
--- a/_maps/shuttles/independent/independent_schmiedeberg.dmm
+++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm
@@ -167,7 +167,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -279,10 +279,6 @@
dir = 1
},
/area/ship/engineering)
-"de" = (
-/obj/machinery/mineral/ore_redemption,
-/turf/open/floor/plating,
-/area/ship/security)
"dr" = (
/obj/effect/turf_decal/siding/blue{
dir = 1
@@ -440,7 +436,7 @@
/area/ship/cargo)
"fq" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/greenglow/filled,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
@@ -462,7 +458,7 @@
/area/ship/engineering)
"fM" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
},
@@ -1176,8 +1172,8 @@
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/mineral/titanium,
/area/ship/cargo)
"qj" = (
@@ -1222,7 +1218,7 @@
/area/ship/medical)
"qU" = (
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 9
@@ -2360,7 +2356,7 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
@@ -2728,14 +2724,14 @@
/obj/structure/rack,
/obj/structure/window/reinforced/spawner/east,
/obj/structure/window/reinforced/spawner/north,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/door/window/brigdoor/northright{
dir = 8
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/wood/walnut,
/area/ship/cargo)
"OO" = (
@@ -2977,7 +2973,7 @@
pixel_y = -32
},
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/bounty,
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
@@ -3050,7 +3046,7 @@
/obj/item/flashlight/glowstick/blue,
/obj/item/flashlight/glowstick/cyan,
/obj/item/storage/pill_bottle/floorpill,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
color = "#543C30";
dir = 1
@@ -3097,7 +3093,7 @@
dir = 8
},
/obj/item/storage/pill_bottle/zoom,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/door/poddoor/shutters/preopen{
id = "pharmlobby"
},
@@ -3205,7 +3201,7 @@
/obj/machinery/door/window/brigdoor/northright{
dir = 2
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
@@ -3634,7 +3630,7 @@ hN
OO
GY
rH
-de
+OO
OK
Td
wh
diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm
index 3bf95ea99b6f..e0c5b441b95a 100644
--- a/_maps/shuttles/independent/independent_shetland.dmm
+++ b/_maps/shuttles/independent/independent_shetland.dmm
@@ -735,7 +735,7 @@
/turf/open/floor/plasteel/patterned,
/area/ship/crew/janitor)
"gd" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/opaque/neutral/half{
dir = 4
},
@@ -2092,7 +2092,7 @@
/turf/open/floor/plating,
/area/ship/hallway/starboard)
"ru" = (
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/clothing/suit/apron/surgical,
/obj/structure/table/chem,
/obj/structure/sink/chem{
@@ -3100,7 +3100,7 @@
/turf/open/floor/plating,
/area/ship/hallway/port)
"zr" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/opaque/neutral/three_quarters{
dir = 8
},
@@ -3475,10 +3475,10 @@
req_access_txt = "1";
req_ship_access = 1
},
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
/obj/effect/turf_decal/box,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/gun/ballistic/revolver/detective,
/turf/open/floor/plasteel/dark,
/area/ship/security)
@@ -4361,7 +4361,7 @@
"Li" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/random{
pixel_x = -32;
@@ -4647,7 +4647,7 @@
"MS" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/plasteel/grimy,
/area/ship/crew/dorm)
"MT" = (
@@ -4676,7 +4676,7 @@
"Ni" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/random{
pixel_y = 32
@@ -4768,7 +4768,7 @@
"Ok" = (
/obj/structure/bed,
/obj/structure/curtain/bounty,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
@@ -4852,8 +4852,10 @@
/obj/item/multitool,
/obj/item/clothing/glasses/welding,
/obj/item/clothing/glasses/welding,
-/obj/item/gun/energy/plasmacutter,
-/obj/item/gun/energy/plasmacutter,
+/obj/item/radio/headset/alt,
+/obj/item/radio/headset/alt,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/gear_pack/anglegrinder,
/turf/open/floor/plasteel/dark,
/area/ship/engineering/electrical)
"OU" = (
@@ -5423,9 +5425,9 @@
pixel_x = -5;
pixel_y = 3
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/drinks/waterbottle/large{
pixel_x = 1;
diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm
index 3edffc72acbc..12f34a8991ac 100644
--- a/_maps/shuttles/independent/independent_sunskipper.dmm
+++ b/_maps/shuttles/independent/independent_sunskipper.dmm
@@ -1182,9 +1182,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/dorms{
- dir = 1
- },
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/obj/structure/cable/green{
icon_state = "1-2"
diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm
index 020de62890e7..0ecbfbe09e90 100644
--- a/_maps/shuttles/independent/independent_tranquility.dmm
+++ b/_maps/shuttles/independent/independent_tranquility.dmm
@@ -1326,7 +1326,7 @@
/obj/item/clothing/head/beret,
/obj/item/clothing/under/color/jumpskirt/random,
/obj/item/clothing/under/color/random,
-/obj/item/clothing/under/dress/skirt/red,
+/obj/item/clothing/under/dress/skirt/color/red,
/obj/item/clothing/suit/longcoat,
/obj/item/clothing/suit/jacket/letterman_red,
/obj/item/clothing/head/soft/mime,
@@ -1721,7 +1721,7 @@
/area/ship/hallway/starboard)
"nr" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/east,
/obj/structure/sign/poster/contraband/gec{
@@ -4731,7 +4731,7 @@
"LT" = (
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 4
},
@@ -5755,7 +5755,7 @@
/area/ship/crew/hydroponics)
"Tl" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/east,
/obj/structure/sign/poster/contraband/hacking_guide{
@@ -5891,7 +5891,7 @@
/obj/structure/bed,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light/dim/directional/north,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet/black,
/area/ship/crew/dorm/dormthree)
"Up" = (
@@ -6197,10 +6197,10 @@
"WS" = (
/obj/machinery/light/dim/directional/north,
/obj/structure/closet/crate/hydroponics,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
-/obj/effect/spawner/lootdrop/seeded,
+/obj/effect/spawner/random/food_or_drink/seed,
+/obj/effect/spawner/random/food_or_drink/seed,
+/obj/effect/spawner/random/food_or_drink/seed,
+/obj/effect/spawner/random/food_or_drink/seed,
/obj/item/seeds/random,
/turf/open/floor/grass,
/area/ship/crew/hydroponics)
diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm
index 2a743bd86207..c56840d2d23f 100644
--- a/_maps/shuttles/inteq/inteq_colossus.dmm
+++ b/_maps/shuttles/inteq/inteq_colossus.dmm
@@ -228,8 +228,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
@@ -732,7 +732,7 @@
/area/ship/security)
"hx" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -856,7 +856,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"iT" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/structure/cable,
@@ -1188,6 +1188,7 @@
dir = 4
},
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"mY" = (
@@ -1341,6 +1342,7 @@
pixel_x = 32
},
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"pa" = (
@@ -1632,16 +1634,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -2224,9 +2226,7 @@
name = "folder"
},
/obj/item/pen/fourcolor,
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/item/reagent_containers/food/drinks/coffee{
pixel_y = 20
},
@@ -2489,6 +2489,7 @@
},
/obj/machinery/airalarm/directional/west,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"BA" = (
@@ -2539,7 +2540,7 @@
},
/obj/structure/closet/cardboard,
/obj/item/radio/intercom/directional/south,
-/obj/effect/spawner/lootdrop/maintenance/seven,
+/obj/effect/spawner/random/maintenance/seven,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -2662,6 +2663,7 @@
},
/obj/machinery/light/directional/west,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"Da" = (
@@ -2673,7 +2675,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -2957,6 +2959,7 @@
/obj/item/clothing/head/soft/inteq,
/obj/item/clothing/head/hardhat,
/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plating,
/area/ship/engineering)
"GR" = (
@@ -3155,6 +3158,7 @@
/obj/effect/turf_decal/corner/opaque/brown{
dir = 8
},
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"It" = (
@@ -3361,8 +3365,7 @@
/area/ship/maintenance/port)
"Lx" = (
/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/sheet/glass/fifty,
+/obj/effect/spawner/random/maintenance/two,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Lz" = (
@@ -3550,11 +3553,10 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"NX" = (
-/obj/machinery/mineral/ore_redemption{
- dir = 1;
- output_dir = 1
- },
/obj/effect/turf_decal/borderfloorblack,
+/obj/structure/rack,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/metal/fifty,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Oa" = (
@@ -3654,7 +3656,7 @@
/obj/structure/closet/crate/trashcart,
/obj/machinery/airalarm/directional/east,
/obj/machinery/firealarm/directional/south,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/turf_decal/corner_techfloor_gray{
dir = 4
},
@@ -4212,9 +4214,7 @@
desc = "A slick black folder stamped 'Property of Inteq Risk Management Group.'";
name = "folder"
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp"
- },
+/obj/item/stamp/inteq/maa,
/obj/item/table_bell{
pixel_y = 13
},
@@ -4308,9 +4308,9 @@
name = "equipment locker";
req_access_txt = "1"
},
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq,
@@ -4344,6 +4344,10 @@
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"WG" = (
@@ -4498,7 +4502,7 @@
/turf/open/floor/carpet/black,
/area/ship/crew)
"XS" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/trimline/opaque/yellow/line,
/obj/effect/turf_decal/siding/thinplating,
/obj/machinery/airalarm/directional/south,
diff --git a/_maps/shuttles/inteq/inteq_hound.dmm b/_maps/shuttles/inteq/inteq_hound.dmm
index da82ccbf26b7..686b357fb669 100644
--- a/_maps/shuttles/inteq/inteq_hound.dmm
+++ b/_maps/shuttles/inteq/inteq_hound.dmm
@@ -27,8 +27,8 @@
locked = 0;
name = "fridge"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/icecreamsandwich,
/obj/machinery/light/directional/south,
@@ -50,10 +50,7 @@
pixel_x = -11;
pixel_y = 5
},
-/obj/item/ammo_box/a762_40/inteq{
- pixel_x = 5;
- pixel_y = 12
- },
+/obj/item/storage/box/ammo/a762_40/inteq,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
pixel_x = -7;
pixel_y = 6
@@ -364,6 +361,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/tank/jetpack/oxygen,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"hY" = (
@@ -492,6 +490,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/tank/jetpack/oxygen,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"mw" = (
@@ -575,6 +574,7 @@
dir = 8
},
/obj/item/tank/jetpack/oxygen,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"nL" = (
@@ -971,7 +971,7 @@
req_access_txt = "58"
},
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -1393,6 +1393,10 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
},
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"EC" = (
@@ -2046,11 +2050,11 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/turf/open/floor/plasteel/patterned/cargo_one,
@@ -2231,6 +2235,7 @@
dir = 8
},
/obj/item/tank/jetpack/oxygen,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage/eva)
"Wf" = (
@@ -2346,9 +2351,7 @@
/obj/item/gps{
pixel_x = 12
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/item/pen/fountain,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm
index 2ab9a9405507..2bd113ca646a 100644
--- a/_maps/shuttles/inteq/inteq_talos.dmm
+++ b/_maps/shuttles/inteq/inteq_talos.dmm
@@ -217,6 +217,36 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
+"br" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/item/radio/intercom/directional/east,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/mask/gas/inteq,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"bx" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -661,34 +691,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engine)
-"es" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/item/radio/intercom/directional/east,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/obj/item/gun/energy/plasmacutter,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"eu" = (
/obj/machinery/cryopod{
dir = 4
@@ -888,12 +890,12 @@
/area/ship/maintenance/starboard)
"fN" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"fU" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"fX" = (
@@ -948,7 +950,7 @@
"gm" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"go" = (
@@ -1262,7 +1264,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/item/cigbutt,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"im" = (
@@ -1640,7 +1642,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"kD" = (
@@ -1866,7 +1868,7 @@
/area/ship/hallway/central)
"ml" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -2132,7 +2134,7 @@
/area/ship/storage)
"nF" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"nH" = (
@@ -2345,7 +2347,7 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"oR" = (
@@ -2434,6 +2436,7 @@
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm/directional/south,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"pk" = (
@@ -2484,8 +2487,8 @@
name = "fridge"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/snacks/popsicle/creamsicle_orange,
/obj/item/reagent_containers/food/snacks/popsicle/creamsicle_orange,
/obj/item/radio/intercom/directional/north,
@@ -2529,9 +2532,7 @@
/obj/effect/turf_decal/corner/opaque/yellow{
dir = 1
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -2638,7 +2639,7 @@
"qp" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"qr" = (
@@ -2881,7 +2882,7 @@
/area/ship/security)
"rN" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"rP" = (
@@ -3030,7 +3031,7 @@
/area/ship/maintenance/port)
"sD" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
@@ -3043,7 +3044,7 @@
/obj/effect/turf_decal/corner/opaque/brown{
dir = 4
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/camera/autoname,
/obj/machinery/status_display/shuttle{
pixel_y = 32
@@ -4083,7 +4084,7 @@
/area/ship/maintenance/port)
"zg" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"zh" = (
@@ -4161,7 +4162,7 @@
"zB" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/trashcart,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"zE" = (
@@ -4239,7 +4240,7 @@
"Aa" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"Ag" = (
@@ -4501,7 +4502,7 @@
/area/ship/crew/canteen)
"BN" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"BP" = (
@@ -4547,7 +4548,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"Cp" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/structure/sign/poster/contraband/inteq{
pixel_x = 32
},
@@ -4868,43 +4869,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
-"EQ" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/light/directional/north,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 20;
- pixel_y = 11
- },
-/obj/item/gun/energy/plasmacutter,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"Fe" = (
/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
dir = 8
@@ -5214,7 +5178,7 @@
icon_state = "1-8"
},
/obj/effect/decal/cleanable/blood/old,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"GR" = (
@@ -5226,6 +5190,23 @@
},
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
+"GU" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8;
+ filter_types = list("n2","co2","bz","water_vapor","miasma","freon","tritium","n20");
+ id_tag = null
+ },
+/obj/machinery/atmospherics/pipe/simple/purple/hidden{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer1{
+ dir = 10
+ },
+/turf/open/floor/engine/vacuum,
+/area/ship/engineering/engine)
"GY" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -5288,7 +5269,7 @@
"Ho" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
"Hp" = (
@@ -5311,12 +5292,21 @@
/obj/structure/sign/poster/retro/lasergun_new{
pixel_x = -32
},
-/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag{
- pixel_x = -8;
- pixel_y = 8
+/obj/item/storage/guncase/inherit{
+ pixel_x = 2;
+ pixel_y = -2
},
-/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag{
- pixel_x = -12
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag,
+/obj/item/ammo_box/magazine/m12g_bulldog,
+/obj/item/ammo_box/magazine/m12g_bulldog,
+/obj/item/storage/guncase/inherit{
+ pixel_y = 2;
+ pixel_x = -2
+ },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq/no_mag,
+/obj/item/ammo_box/magazine/m12g_bulldog,
+/obj/item/ammo_box/magazine/m12g_bulldog{
+ pixel_y = -1
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
@@ -5497,25 +5487,8 @@
/obj/effect/turf_decal/siding/thinplating,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/port)
-"Je" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 8;
- filter_types = list("n2","co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
- id_tag = null
- },
-/obj/machinery/atmospherics/pipe/simple/purple/hidden{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer1{
- dir = 10
- },
-/turf/open/floor/engine/vacuum,
-/area/ship/engineering/engine)
"Jk" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"Jo" = (
@@ -5764,6 +5737,45 @@
},
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
+"KW" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/light/directional/north,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
+ },
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/mask/gas/inteq,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"KY" = (
/obj/effect/turf_decal/borderfloor,
/obj/machinery/door/airlock/public/glass{
@@ -5797,9 +5809,7 @@
desc = "A slick black folder stamped 'Property of Inteq Risk Management Group.'";
name = "folder"
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp"
- },
+/obj/item/stamp/inteq/maa,
/obj/item/table_bell{
pixel_x = -15
},
@@ -6004,6 +6014,7 @@
pixel_x = -12;
pixel_y = 23
},
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"My" = (
@@ -6156,7 +6167,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"NK" = (
@@ -6249,34 +6260,6 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
-"OJ" = (
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/gloves/color/yellow,
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/hardhat,
-/obj/item/clothing/shoes/combat,
-/obj/structure/railing,
-/obj/item/storage/belt/utility/full,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/obj/item/clothing/glasses/meson,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "artificer's locker";
- req_access_txt = "11";
- req_one_access = null
- },
-/obj/item/gun/energy/plasmacutter,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering)
"OK" = (
/obj/machinery/cryopod{
dir = 8
@@ -6303,7 +6286,7 @@
"OP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Pf" = (
@@ -6355,7 +6338,7 @@
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/crate,
/turf/open/floor/plating/airless,
/area/ship/storage/starboard)
@@ -6528,38 +6511,6 @@
},
/turf/open/floor/engine/air,
/area/ship/engineering/engine)
-"QP" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/official/ion_carbine{
- pixel_x = -32
- },
-/obj/item/ammo_box/magazine/m12g_bulldog{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/ammo_box/magazine/m12g_bulldog{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/ammo_box/magazine/m12g_bulldog{
- pixel_x = -5
- },
-/obj/item/ammo_box/magazine/m12g_bulldog{
- pixel_x = -5
- },
-/obj/item/ammo_box/magazine/co9mm{
- pixel_x = 5
- },
-/obj/item/ammo_box/magazine/co9mm{
- pixel_x = -5
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
"QR" = (
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/effect/turf_decal/corner/opaque/brown{
@@ -6646,7 +6597,7 @@
/area/ship/hallway/central)
"Ri" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/port)
"Rp" = (
@@ -6728,7 +6679,7 @@
/obj/machinery/light/small/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/plasma,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"RY" = (
@@ -6899,7 +6850,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"SS" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -7116,11 +7067,11 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -7157,7 +7108,7 @@
/area/ship/storage/starboard)
"Uy" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"UD" = (
@@ -7238,6 +7189,7 @@
},
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
/obj/item/tank/jetpack/oxygen,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"Vg" = (
@@ -7290,6 +7242,38 @@
/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
/turf/open/floor/plating,
/area/ship/crew)
+"VD" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "ce";
+ name = "honorable artificer's locker";
+ req_access_txt = "56"
+ },
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/toggle/industrial,
+/obj/item/clothing/head/hardhat/white,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/gloves/combat,
+/obj/item/megaphone/cargo{
+ name = "engineering megaphone"
+ },
+/obj/item/stamp/inteq/artificer,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/welding,
+/obj/item/pipe_dispenser,
+/obj/item/storage/belt/utility/chief{
+ name = "honorable artificer's toolbelt"
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/item/gear_pack/anglegrinder/energy,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/mask/gas/inteq,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/communications)
"VG" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -7419,9 +7403,10 @@
/obj/structure/rack,
/obj/effect/turf_decal/siding/thinplating/dark,
/obj/effect/decal/cleanable/dirt,
-/obj/item/gun/ballistic/automatic/pistol/commander/inteq{
- pixel_y = 5
- },
+/obj/item/storage/guncase/pistol/inherit,
+/obj/item/gun/ballistic/automatic/pistol/commander/inteq,
+/obj/item/ammo_box/magazine/co9mm,
+/obj/item/ammo_box/magazine/co9mm,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"Wr" = (
@@ -7446,6 +7431,36 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
+"WE" = (
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/structure/railing,
+/obj/item/storage/belt/utility/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/clothing/glasses/meson,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ icon_state = "eng_secure";
+ name = "artificer's locker";
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/mask/gas/inteq,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
"WF" = (
/obj/effect/turf_decal/corner/opaque/yellow,
/obj/effect/turf_decal/corner/opaque/brown{
@@ -7509,6 +7524,21 @@
"Xg" = (
/turf/open/floor/carpet/black,
/area/ship/crew/dorm)
+"Xk" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/official/ion_carbine{
+ pixel_x = -32
+ },
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
"Xl" = (
/obj/machinery/power/shuttle/engine/fueled/plasma{
dir = 4
@@ -7571,7 +7601,7 @@
name = "equipment locker";
req_access_txt = "1"
},
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/storage/box/handcuffs,
@@ -7625,7 +7655,7 @@
/area/ship/crew/canteen)
"Yz" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/military/assault,
@@ -7694,7 +7724,7 @@
/area/ship/maintenance/starboard)
"YZ" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance/starboard)
"Zb" = (
@@ -7811,38 +7841,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/communications)
-"ZA" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "ce";
- name = "honorable artificer's locker";
- req_access_txt = "56"
- },
-/obj/item/clothing/under/syndicate/inteq/artificer,
-/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
-/obj/item/storage/backpack/industrial,
-/obj/item/clothing/suit/toggle/industrial,
-/obj/item/clothing/head/hardhat/white,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/gloves/combat,
-/obj/item/megaphone/cargo{
- name = "engineering megaphone"
- },
-/obj/item/stamp/ce{
- name = "honorable artificer's rubber stamp"
- },
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/welding,
-/obj/item/pipe_dispenser,
-/obj/item/storage/belt/utility/chief{
- name = "honorable artificer's toolbelt"
- },
-/obj/machinery/airalarm/directional/west,
-/obj/item/gun/energy/plasmacutter,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/engineering/communications)
"ZB" = (
/obj/machinery/firealarm/directional/west,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
@@ -7895,7 +7893,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plating/airless,
/area/ship/storage/port)
"ZY" = (
@@ -8024,7 +8022,7 @@ iD
Lo
dw
ge
-Je
+GU
Yp
ZE
rV
@@ -8083,7 +8081,7 @@ ZU
eC
Zu
SK
-ZA
+VD
vp
HB
MS
@@ -8187,9 +8185,9 @@ aD
MC
zR
vp
-EQ
-es
-OJ
+KW
+br
+WE
Xn
gP
qh
@@ -8610,7 +8608,7 @@ hT
sq
Rg
Hq
-QP
+Xk
bI
Hv
Hq
diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm
index 3f709a261b15..78821ad9c0b9 100644
--- a/_maps/shuttles/inteq/inteq_valor.dmm
+++ b/_maps/shuttles/inteq/inteq_valor.dmm
@@ -92,7 +92,7 @@
},
/obj/effect/turf_decal/box/corners,
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bv" = (
@@ -100,6 +100,8 @@
/obj/machinery/suit_storage_unit/inherit,
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/machinery/light/small/directional/north,
+/obj/item/clothing/suit/space/inteq,
+/obj/item/clothing/head/helmet/space/inteq,
/turf/open/floor/plasteel,
/area/ship/crew/office)
"bx" = (
@@ -175,6 +177,7 @@
"bS" = (
/obj/machinery/suit_storage_unit/inherit,
/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"cj" = (
@@ -454,9 +457,6 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -515,8 +515,11 @@
pixel_x = -16;
pixel_y = 5
},
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"ey" = (
@@ -538,13 +541,13 @@
/area/ship/medical)
"eU" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -7;
- pixel_y = 10
+/obj/item/storage/case/surgery{
+ pixel_x = -4;
+ pixel_y = 1
},
/obj/item/reagent_containers/medigel/sterilizine{
- pixel_x = -1;
- pixel_y = 3
+ pixel_x = 8;
+ pixel_y = 2
},
/obj/effect/turf_decal/borderfloorwhite,
/obj/machinery/button/door{
@@ -584,9 +587,9 @@
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/ration/crayons,
/obj/effect/turf_decal/box/corners{
dir = 8
@@ -662,7 +665,8 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/head/helmet/swat/inteq,
-/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/gas/inteq,
+/obj/item/radio/intercom/directional/north,
/turf/open/floor/plasteel,
/area/ship/crew/office)
"gb" = (
@@ -746,8 +750,8 @@
"gq" = (
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -20;
- pixel_x = -3
+ pixel_x = -3;
+ pixel_y = -20
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/cargo)
@@ -1042,14 +1046,32 @@
/turf/open/floor/plating,
/area/ship/medical/surgery)
"jN" = (
-/obj/structure/chair/office,
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
},
-/obj/effect/turf_decal/corner/transparent/inteqbrown/half,
-/turf/open/floor/plasteel,
-/area/ship/crew/office)
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/structure/rack,
+/obj/item/storage/belt/security/webbing/inteq{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/storage/belt/security/webbing/inteq{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/helmet/inteq{
+ pixel_x = -9;
+ pixel_y = 6
+ },
+/obj/item/clothing/head/helmet/inteq{
+ pixel_x = -7
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
"jQ" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/machinery/light/directional/east,
@@ -1087,8 +1109,8 @@
},
/obj/machinery/light_switch{
dir = 1;
- pixel_y = -20;
- pixel_x = 4
+ pixel_x = 4;
+ pixel_y = -20
},
/turf/open/floor/plasteel/patterned/ridged,
/area/ship/medical)
@@ -1178,22 +1200,9 @@
/obj/structure/reagent_dispensers/peppertank{
pixel_y = 28
},
-/obj/structure/rack,
-/obj/item/storage/belt/security/webbing/inteq{
- pixel_x = 6;
- pixel_y = 8
- },
-/obj/item/storage/belt/security/webbing/inteq{
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/clothing/head/helmet/inteq{
- pixel_x = -9;
- pixel_y = 6
- },
-/obj/item/clothing/head/helmet/inteq{
- pixel_x = -7
- },
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"kL" = (
@@ -1296,15 +1305,18 @@
/area/ship/crew/canteen)
"lN" = (
/obj/structure/table,
-/obj/machinery/door/window/southleft,
+/obj/item/paper_bin,
+/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
- dir = 8
+ dir = 4
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
/obj/effect/turf_decal/corner/transparent/inteqbrown/full,
+/obj/item/folder/yellow,
+/obj/item/pen,
/turf/open/floor/plasteel/patterned,
/area/ship/crew/office)
"lW" = (
@@ -1481,7 +1493,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 5
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
@@ -1987,17 +1999,14 @@
pixel_y = 32
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/machinery/power/ship_gravity,
+/obj/machinery/power/port_gen/pacman/super,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"rY" = (
/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 4
- },
/obj/effect/turf_decal/corner/opaque/brown{
dir = 8
},
@@ -2008,7 +2017,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
},
-/obj/machinery/airalarm/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"sb" = (
@@ -2598,11 +2606,9 @@
/area/ship/medical)
"xr" = (
/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/structure/window/reinforced,
+/obj/machinery/door/window/southleft,
/obj/structure/window/reinforced{
- dir = 4
+ dir = 8
},
/obj/machinery/door/firedoor/border_only,
/obj/machinery/door/firedoor/border_only{
@@ -2687,8 +2693,8 @@
dir = 1
},
/obj/item/reagent_containers/food/snacks/hotdog,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"yu" = (
@@ -2938,7 +2944,6 @@
dir = 1
},
/obj/effect/turf_decal/steeldecal/steel_decals_central7,
-/obj/machinery/airalarm/directional/north,
/obj/structure/cable{
icon_state = "4-8"
},
@@ -2971,18 +2976,18 @@
pixel_x = -6;
pixel_y = 4
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
+/obj/item/storage/case/surgery{
pixel_x = 4;
- pixel_y = 14
+ pixel_y = 1
},
/obj/effect/turf_decal/borderfloorblack,
/obj/item/reagent_containers/glass/bottle/formaldehyde{
pixel_x = 9;
- pixel_y = 4
+ pixel_y = 13
},
/obj/item/reagent_containers/syringe{
- pixel_x = -7;
- pixel_y = -4
+ pixel_x = -6;
+ pixel_y = 4
},
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical/surgery)
@@ -3092,14 +3097,10 @@
/turf/template_noop,
/area/template_noop)
"BC" = (
-/obj/structure/filingcabinet/double,
/obj/structure/sign/poster/official/help_others{
pixel_y = 32
},
-/obj/effect/turf_decal/corner/transparent/inteqbrown/border{
- dir = 1
- },
-/turf/open/floor/plasteel,
+/turf/closed/wall/mineral/plastitanium,
/area/ship/crew/office)
"BL" = (
/obj/effect/turf_decal/corner/opaque/brown{
@@ -3258,6 +3259,9 @@
/obj/structure/cable/yellow,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/corner_techfloor_gray/diagonal,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Dm" = (
@@ -3271,11 +3275,21 @@
/turf/open/floor/plasteel/tech,
/area/ship/crew/cryo)
"Dw" = (
-/obj/structure/cable/yellow,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/airalarm/directional/east,
-/obj/machinery/power/port_gen/pacman/super,
-/obj/item/stack/sheet/mineral/uranium/twenty,
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/suit/toggle/industrial,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/storage/belt/utility,
+/obj/item/clothing/under/syndicate/inteq/artificer,
+/obj/item/clothing/under/syndicate/inteq/skirt/artificer,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/hardhat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/mask/gas/inteq,
+/obj/structure/closet/wall/directional/south{
+ name = "engineering closet";
+ icon_door = "yellow_door"
+ },
+/obj/structure/table,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Dx" = (
@@ -3592,10 +3606,11 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Gm" = (
+/obj/effect/turf_decal/corner/transparent/inteqbrown/half,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-4"
},
-/obj/effect/turf_decal/corner/transparent/inteqbrown/half,
+/obj/machinery/power/apc/auto_name/directional/west,
/turf/open/floor/plasteel,
/area/ship/crew/office)
"Go" = (
@@ -3702,6 +3717,9 @@
/obj/structure/cable{
icon_state = "1-10"
},
+/obj/structure/chair{
+ dir = 4
+ },
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"HB" = (
@@ -4412,7 +4430,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/medical)
"Oc" = (
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/backpack/messenger/inteq,
@@ -4430,6 +4448,7 @@
/obj/item/storage/lockbox/medal/sec,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
/obj/item/clothing/head/inteq_peaked,
+/obj/item/stamp/inteq/vanguard,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
"Od" = (
@@ -4646,7 +4665,7 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Qn" = (
@@ -4670,8 +4689,8 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/corner/transparent/inteqbrown/half,
+/obj/structure/chair/office,
/turf/open/floor/plasteel,
/area/ship/crew/office)
"Qw" = (
@@ -4753,7 +4772,26 @@
/turf/open/floor/plasteel/dark,
/area/ship/medical/surgery)
"Rh" = (
-/turf/closed/wall/mineral/plastitanium,
+/obj/structure/sign/poster/official/safety_report{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/yellow{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/storage/box/ammo/c9mm_rubber{
+ pixel_x = 5;
+ pixel_y = 10
+ },
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/security)
"RA" = (
/obj/item/storage/backpack/messenger/inteq,
@@ -4805,6 +4843,7 @@
/obj/item/clothing/glasses/hud/health/sunglasses,
/obj/item/storage/box/hypospray/CMO,
/obj/item/clothing/gloves/color/latex/nitrile,
+/obj/item/stamp/inteq/corpsman,
/turf/open/floor/carpet/blue,
/area/ship/bridge)
"RT" = (
@@ -4832,6 +4871,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/port)
"Sh" = (
@@ -4876,13 +4916,15 @@
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/medical/surgery)
"SX" = (
-/obj/machinery/power/terminal{
- dir = 1
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 7;
+ pixel_y = 8
},
-/obj/structure/cable/yellow{
- icon_state = "0-2"
+/obj/item/clothing/glasses/welding{
+ pixel_x = 8;
+ pixel_y = -1
},
-/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Td" = (
@@ -5007,18 +5049,13 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"Uz" = (
-/obj/machinery/power/smes/engineering{
- charge = 1e+006
- },
-/obj/effect/turf_decal/borderfloorblack/full,
-/obj/structure/cable{
- icon_state = "0-8"
- },
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 20
},
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/power/ship_gravity,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"UC" = (
@@ -5071,21 +5108,11 @@
/obj/effect/turf_decal/corner/opaque/brown{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/structure/rack,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/ammo_box/c9mm/rubbershot{
- pixel_x = 5;
- pixel_y = 10
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = -2;
- pixel_y = 2
- },
/obj/machinery/light/small/directional/north,
-/obj/structure/sign/poster/official/safety_report{
- pixel_x = 32
- },
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"Vy" = (
@@ -5205,8 +5232,8 @@
/obj/structure/cable{
icon_state = "2-10"
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
},
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -5382,7 +5409,7 @@
/obj/effect/turf_decal/trimline/opaque/yellow/line{
dir = 4
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/patterned/grid,
@@ -5901,7 +5928,7 @@ SL
(11,1,1) = {"
Zu
Rh
-Rh
+jN
Zu
uB
ua
@@ -5934,8 +5961,8 @@ SL
(12,1,1) = {"
tZ
BC
-jN
-lN
+oO
+oO
gh
zs
fN
@@ -6001,7 +6028,7 @@ SL
tZ
mG
Qo
-tZ
+lN
An
Sd
HC
diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm
index 92e024ba7bf6..aa5426c9512f 100644
--- a/_maps/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/shuttles/inteq/inteq_vaquero.dmm
@@ -51,12 +51,13 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"bg" = (
-/obj/structure/railing{
- dir = 8
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/stairs,
+/obj/structure/weightmachine/weightlifter,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"bi" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -72,6 +73,19 @@
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
+"bl" = (
+/obj/structure/closet/crate/freezer/blood,
+/obj/machinery/iv_drip,
+/obj/machinery/light/small/directional/south,
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/medical)
"bn" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
@@ -87,14 +101,13 @@
/turf/open/floor/engine/hull/reinforced,
/area/ship/maintenance/port)
"bq" = (
-/obj/effect/turf_decal/box/corners,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
/obj/item/trash/energybar,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bt" = (
@@ -110,7 +123,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/computer/helm/viewscreen/directional/south,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"bz" = (
@@ -136,12 +148,15 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"bL" = (
-/obj/structure/bed,
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/brown,
/obj/structure/sign/poster/clip/lanchester{
pixel_y = -32
},
+/obj/machinery/light/small/directional/east,
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
/turf/open/floor/carpet/black,
/area/ship/crew)
"ce" = (
@@ -173,12 +188,17 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/dark,
/area/ship/security)
-"dq" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
+"cH" = (
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"dq" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
},
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
@@ -268,9 +288,6 @@
/obj/item/gun/ballistic/automatic/pistol/commander/inteq{
pixel_y = -5
},
-/obj/structure/sign/poster/contraband/peacemaker{
- pixel_x = 32
- },
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
@@ -323,6 +340,7 @@
dir = 10
},
/obj/effect/decal/cleanable/oil/streak,
+/obj/effect/turf_decal/box/corners,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"fI" = (
@@ -344,7 +362,7 @@
/area/ship/security)
"fJ" = (
/turf/closed/wall/mineral/plastitanium,
-/area/ship/security)
+/area/ship/medical)
"fV" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/structure/cable{
@@ -362,6 +380,13 @@
/obj/structure/railing/corner,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
+"fZ" = (
+/obj/structure/marker_beacon{
+ picked_color = "Yellow"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
"gh" = (
/obj/machinery/photocopier,
/obj/effect/turf_decal/corner/opaque/brown{
@@ -385,27 +410,11 @@
/obj/effect/turf_decal/industrial/traffic{
dir = 1
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/button/shieldwallgen{
- dir = 1;
- id = "vaquero_cargo";
- pixel_x = 5;
- pixel_y = -19
- },
-/obj/machinery/button/door{
- dir = 1;
- id = "vaquero_cargo";
- name = "Cargo Door Control";
- pixel_x = -4;
- pixel_y = -20
+ dir = 4
},
-/obj/effect/turf_decal/industrial/caution{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
@@ -425,17 +434,9 @@
/obj/item/pickaxe/mini,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/structure/extinguisher_cabinet/directional/north,
+/obj/item/radio/intercom/directional/north,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
-"gO" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning,
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine/hull/reinforced,
-/area/ship/external/dark)
"gY" = (
/obj/structure/table/reinforced,
/obj/item/spacecash/bundle/c500,
@@ -568,13 +569,12 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"if" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/patterned,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/inteq,
+/obj/item/clothing/head/helmet/space/inteq,
+/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"iu" = (
/obj/structure/cable{
@@ -658,6 +658,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"jg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
/turf/open/floor/carpet/black,
/area/ship/crew)
"jw" = (
@@ -684,9 +687,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/item/stamp/hos{
- name = "vanguard's rubber stamp"
- },
+/obj/item/stamp/inteq/vanguard,
/obj/structure/cable{
icon_state = "1-8"
},
@@ -704,12 +705,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"jE" = (
-/obj/structure/bed,
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/brown,
-/obj/machinery/light/small/directional/east,
-/obj/machinery/airalarm/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
/turf/open/floor/carpet/black,
/area/ship/crew)
"jI" = (
@@ -816,7 +814,7 @@
/obj/item/clothing/suit/space/inteq,
/obj/item/clothing/head/helmet/space/inteq,
/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/item/radio/intercom/directional/north,
+/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"lm" = (
@@ -864,16 +862,23 @@
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"lL" = (
-/obj/structure/closet/crate/freezer/blood,
-/obj/machinery/iv_drip,
-/obj/machinery/light/small/directional/south,
-/obj/item/radio/intercom/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/storage/case/surgery,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 10
+ },
+/obj/machinery/firealarm/directional/west,
/obj/effect/turf_decal/steeldecal/steel_decals10{
dir = 5
},
/obj/effect/turf_decal/steeldecal/steel_decals10{
dir = 6
},
+/obj/structure/bed,
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"lU" = (
@@ -899,6 +904,7 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
},
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"mu" = (
@@ -909,7 +915,7 @@
req_access_txt = "20"
},
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -936,7 +942,6 @@
/obj/machinery/suit_storage_unit/inherit,
/obj/item/clothing/suit/space/inteq,
/obj/item/clothing/head/helmet/space/inteq,
-/obj/machinery/airalarm/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel/tech,
@@ -959,10 +964,22 @@
/obj/effect/turf_decal/trimline/opaque/yellow/warning{
dir = 1
},
-/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"nm" = (
+/obj/docking_port/mobile{
+ dir = 2;
+ launch_status = 0;
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 5;
+ id = "vaquero_grid"
+ },
/turf/closed/wall/mineral/plastitanium,
/area/ship/medical)
"ox" = (
@@ -1075,12 +1092,21 @@
/turf/closed/wall/mineral/plastitanium,
/area/ship/crew/office)
"qE" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine/hull/reinforced,
-/area/ship/external/dark)
+/obj/machinery/power/shieldwallgen/atmos{
+ anchored = 1;
+ id = "vaquero_cargo";
+ locked = 1
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "vaquero_cargo"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
"qQ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1132,6 +1158,11 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/machinery/light/small/directional/east,
/obj/item/trash/chips,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -10
+ },
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"rD" = (
@@ -1145,6 +1176,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/carpet/orange,
/area/ship/bridge)
+"rP" = (
+/obj/effect/turf_decal/trimline/opaque/yellow/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
"sm" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1272,11 +1310,29 @@
},
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/security)
+"vs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/box/corners,
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/metal/twenty,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"vw" = (
+/obj/structure/marker_beacon{
+ picked_color = "Yellow"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
"vN" = (
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"vT" = (
/obj/effect/turf_decal/trimline/opaque/yellow/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"vU" = (
@@ -1309,20 +1365,17 @@
/turf/template_noop,
/area/template_noop)
"wy" = (
-/obj/effect/turf_decal/box/corners,
-/obj/structure/closet/crate,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/stack/sheet/metal/twenty,
-/obj/item/stack/sheet/glass/twenty,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"wI" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
/obj/structure/weightmachine/weightlifter,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"wU" = (
@@ -1468,16 +1521,16 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
/obj/item/reagent_containers/food/drinks/waterbottle/large,
@@ -1487,27 +1540,23 @@
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"zr" = (
-/obj/effect/turf_decal/industrial/traffic{
- dir = 8
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+ dir = 5
},
-/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/box/corners,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"zG" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "vaquero_cargo"
},
-/turf/open/floor/engine/hull/reinforced,
-/area/ship/external/dark)
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
"zM" = (
/obj/machinery/power/terminal{
dir = 8
@@ -1588,13 +1637,12 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/obj/machinery/newscaster/directional/south,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Am" = (
@@ -1668,22 +1716,33 @@
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/port)
"Bj" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/turf/open/floor/engine/hull/reinforced,
-/area/ship/external/dark)
-"Bl" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/yellow,
-/obj/effect/turf_decal/corner/opaque/brown{
- dir = 8
+ icon_state = "0-8"
},
-/obj/machinery/newscaster/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/security)
+/obj/machinery/power/shieldwallgen/atmos{
+ anchored = 1;
+ dir = 1;
+ id = "vaquero_cargo";
+ locked = 1
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "vaquero_cargo"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/cargo)
+"Bl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/yellow,
+/obj/effect/turf_decal/corner/opaque/brown{
+ dir = 8
+ },
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
"Bu" = (
/obj/structure/closet/wall/directional/north{
icon_door = "grey_wall"
@@ -1758,6 +1817,19 @@
/obj/item/radio/intercom/directional/west,
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
+"Ch" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
"Ci" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
@@ -1773,12 +1845,13 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"Cl" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "vaquero_cargo"
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
},
-/turf/open/floor/engine/hull/reinforced/interior,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Cq" = (
/turf/closed/wall/mineral/plastitanium,
@@ -1876,7 +1949,6 @@
},
/obj/effect/turf_decal/siding/thinplating/dark,
/obj/machinery/firealarm/directional/south,
-/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"Dh" = (
@@ -1897,7 +1969,7 @@
/area/ship/maintenance/starboard)
"DP" = (
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/item/clothing/shoes/combat,
/obj/item/storage/belt/security/webbing/inteq/alt,
@@ -1955,33 +2027,21 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"Ex" = (
+/obj/structure/catwalk/over/plated_catwalk,
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/door/airlock/medical/glass{
- dir = 4;
- name = "Infirmary"
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
},
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 8
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/machinery/door/firedoor/border_only{
+/obj/structure/railing/corner{
dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ship/medical)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
"EB" = (
/obj/machinery/door/window/northleft{
dir = 8;
@@ -2073,51 +2133,31 @@
/obj/machinery/computer/helm/viewscreen/directional/south,
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
+"FO" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
"Gq" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/crew)
"GB" = (
-/obj/machinery/door/airlock{
- name = "Dormitory"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
+/obj/structure/table,
+/obj/item/flashlight/lamp/green,
+/obj/machinery/newscaster/directional/west,
+/obj/structure/window/reinforced{
+ dir = 1
},
-/turf/open/floor/plasteel/grimy,
+/turf/open/floor/carpet/black,
/area/ship/crew)
"GI" = (
-/obj/structure/weightmachine/weightlifter,
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"GQ" = (
-/obj/item/clothing/under/syndicate/inteq,
-/obj/item/clothing/under/syndicate/inteq,
-/obj/item/clothing/under/syndicate/inteq,
-/obj/item/clothing/under/syndicate/inteq/skirt,
-/obj/item/clothing/under/syndicate/inteq/skirt,
-/obj/item/clothing/under/syndicate/inteq/skirt,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/sneakers/black,
-/obj/item/clothing/shoes/sneakers/black,
-/obj/item/clothing/shoes/sneakers/black,
-/obj/structure/closet/wall/directional/north{
- icon_door = "orange_wall";
- name = "uniform closet"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/carpet/black,
/area/ship/crew)
"Ha" = (
@@ -2165,7 +2205,7 @@
/obj/item/clothing/head/helmet/swat/inteq,
/obj/item/clothing/gloves/combat,
/obj/item/clothing/glasses/hud/security/sunglasses/inteq,
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq,
+/obj/item/clothing/mask/balaclava/inteq,
/obj/item/storage/belt/security/webbing/inteq,
/obj/item/storage/belt/security/webbing/inteq/alt,
/obj/item/melee/baton/loaded,
@@ -2178,39 +2218,21 @@
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
/obj/item/melee/knife/survival,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
"HN" = (
-/obj/structure/closet/secure_closet/wall/directional/north{
- icon_door = "med_wall";
- name = "medical locker";
- req_access_txt = "5"
- },
-/obj/item/storage/firstaid/regular{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/item/storage/firstaid/toxin{
- pixel_x = 2;
- pixel_y = 1
- },
-/obj/item/storage/firstaid/fire{
- pixel_x = -2;
- pixel_y = -1
- },
-/obj/item/storage/firstaid/advanced{
- pixel_x = -6;
- pixel_y = -3
- },
-/obj/structure/sink{
- dir = 8;
- pixel_x = 12
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/sign/poster/official/cleanliness{
- pixel_x = 32
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
@@ -2232,7 +2254,7 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"In" = (
@@ -2427,23 +2449,17 @@
dir = 8
},
/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/box/corners,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"LW" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/power/shieldwallgen/atmos{
- anchored = 1;
- id = "vaquero_cargo";
- locked = 1
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 8
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "vaquero_cargo"
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/turf/open/floor/engine/hull/reinforced/interior,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Me" = (
/obj/structure/railing{
@@ -2523,12 +2539,19 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"NO" = (
-/obj/machinery/porta_turret/ship/inteq{
- dir = 6;
- id = "vaquero_grid"
+/obj/structure/railing,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/security)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
"NR" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -2644,21 +2667,20 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Pn" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/turf_decal/industrial/traffic/corner{
+ dir = 1
+ },
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "1-8"
},
-/obj/machinery/power/shieldwallgen/atmos{
- anchored = 1;
- dir = 1;
- id = "vaquero_cargo";
- locked = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "vaquero_cargo"
+/obj/structure/sign/warning/incident{
+ pixel_y = -30
},
-/turf/open/floor/engine/hull/reinforced/interior,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Pp" = (
/obj/machinery/power/smes/engineering,
@@ -2674,23 +2696,40 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"PD" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
+/obj/structure/closet/secure_closet/wall/directional/north{
+ icon_door = "med_wall";
+ name = "medical locker";
+ req_access_txt = "5"
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -20;
- pixel_y = 10
+/obj/item/storage/firstaid/regular{
+ pixel_x = 6;
+ pixel_y = 3
},
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 2;
+ pixel_y = 1
},
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
+/obj/item/storage/firstaid/fire{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/storage/firstaid/advanced{
+ pixel_x = -6;
+ pixel_y = -3
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/cleanliness{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/obj/structure/bed,
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical)
"Qy" = (
@@ -2793,26 +2832,45 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"RU" = (
-/obj/structure/dresser,
-/obj/machinery/firealarm/directional/west,
/obj/item/radio/intercom/directional/south,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/west,
+/obj/structure/closet/wardrobe/orange{
+ name = "uniform wardrobe";
+ populate = 0
+ },
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/storage/backpack/messenger/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/beret/sec/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/head/soft/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
/turf/open/floor/carpet/black,
/area/ship/crew)
"RX" = (
/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
+/obj/structure/railing,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"Sc" = (
@@ -2832,6 +2890,9 @@
/area/ship/hallway/central)
"Tc" = (
/obj/structure/ore_box,
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Ti" = (
@@ -2845,11 +2906,9 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"Tn" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/suit/space/inteq,
-/obj/item/clothing/head/helmet/space/inteq,
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/rack,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"TC" = (
@@ -2861,8 +2920,8 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/turretid/ship{
- pixel_y = 26;
- id = "vaquero_grid"
+ id = "vaquero_grid";
+ pixel_y = 26
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
@@ -2907,62 +2966,58 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"TX" = (
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/storage/backpack/messenger/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/beret/sec/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/item/clothing/head/soft/inteq,
-/obj/structure/closet/wall/directional/north{
- icon_door = "orange_wall";
- name = "uniform closet"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq,
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
-/obj/item/clothing/suit/hooded/wintercoat/security/inteq/alt,
/turf/open/floor/carpet/black,
/area/ship/crew)
"Uf" = (
-/obj/structure/table,
-/obj/item/flashlight/lamp/green,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
/turf/open/floor/carpet/black,
/area/ship/crew)
"Ul" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ship/bridge)
"Ur" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
+/obj/structure/closet/wardrobe/orange{
+ name = "uniform wardrobe";
+ populate = 0
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
+/obj/item/clothing/under/syndicate/inteq,
+/obj/item/clothing/under/syndicate/inteq,
+/obj/item/clothing/under/syndicate/inteq,
+/obj/item/clothing/under/syndicate/inteq/skirt,
+/obj/item/clothing/under/syndicate/inteq/skirt,
+/obj/item/clothing/under/syndicate/inteq/skirt,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/shoes/sneakers/black,
+/obj/item/clothing/shoes/sneakers/black,
+/obj/item/clothing/shoes/sneakers/black,
+/turf/open/floor/carpet/black,
+/area/ship/crew)
+"Uy" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/dresser{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
},
-/obj/machinery/light/small/directional/west,
/turf/open/floor/carpet/black,
/area/ship/crew)
"UO" = (
-/obj/docking_port/mobile{
- dir = 2;
- launch_status = 0;
- port_direction = 8;
- preferred_direction = 4
- },
-/obj/machinery/porta_turret/ship/inteq{
- dir = 5;
- id = "vaquero_grid"
+/obj/structure/railing{
+ dir = 8
},
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/medical)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs,
+/area/ship/cargo)
"UV" = (
/obj/machinery/door/airlock/public/glass{
dir = 4;
@@ -3024,6 +3079,7 @@
/obj/machinery/suit_storage_unit/inherit{
req_access_txt = "20"
},
+/obj/item/clothing/mask/gas/inteq,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"VN" = (
@@ -3044,13 +3100,24 @@
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
+"VZ" = (
+/obj/machinery/porta_turret/ship/inteq{
+ dir = 6;
+ id = "vaquero_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security)
"Wd" = (
-/obj/structure/marker_beacon{
- picked_color = "Yellow"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
+"Wl" = (
+/obj/effect/turf_decal/trimline/opaque/yellow/warning,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
"WH" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
name = "exhaust injector"
@@ -3059,9 +3126,6 @@
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"WM" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
/obj/structure/closet/crate,
/obj/item/target/syndicate{
pixel_x = -5;
@@ -3078,12 +3142,15 @@
pixel_y = 5
},
/obj/item/clothing/ears/earmuffs,
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"Xb" = (
/obj/machinery/door/airlock/command/glass{
name = "Bridge";
- req_one_access = list(19, 3)
+ req_one_access = list(19,3)
},
/obj/structure/cable{
icon_state = "1-2"
@@ -3112,26 +3179,38 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Xi" = (
-/obj/structure/marker_beacon{
- picked_color = "Yellow"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
},
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"Xo" = (
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/power/apc/auto_name/directional/north,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
+/obj/machinery/door/airlock/medical/glass{
+ dir = 4;
+ name = "Infirmary"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/steeldecal/steel_decals10{
dir = 1
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
/area/ship/medical)
"XD" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
@@ -3143,7 +3222,7 @@
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
"XG" = (
@@ -3156,6 +3235,22 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
+"XL" = (
+/obj/structure/sign/poster/contraband/peacemaker{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line{
+ dir = 1
+ },
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/hardsuit/security/independent/inteq,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/mask/gas/inteq,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
"XO" = (
/obj/structure/closet/secure_closet/freezer{
anchored = 1;
@@ -3163,8 +3258,8 @@
name = "fridge"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/storage/cans/sixbeer,
/obj/item/reagent_containers/food/snacks/carneburrito,
/obj/effect/turf_decal/corner/opaque/yellow{
@@ -3250,19 +3345,31 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"Zh" = (
-/obj/effect/turf_decal/industrial/traffic/corner{
+/obj/effect/turf_decal/industrial/traffic{
dir = 1
},
-/obj/structure/cable{
- icon_state = "1-8"
- },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/structure/sign/warning/incident{
- pixel_y = -30
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 1;
+ id = "vaquero_cargo";
+ pixel_x = 5;
+ pixel_y = -19
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "vaquero_cargo";
+ name = "Cargo Door Control";
+ pixel_x = -4;
+ pixel_y = -20
+ },
+/obj/effect/turf_decal/industrial/caution{
+ dir = 1
},
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
"Zi" = (
@@ -3349,14 +3456,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 5;
- pixel_y = -20
- },
-/obj/structure/extinguisher_cabinet/directional/south{
- pixel_x = -6
- },
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
@@ -3367,9 +3466,8 @@
name = "folder";
pixel_x = 5
},
-/obj/item/stamp/law{
- name = "master at arms' rubber stamp";
- pixel_x = 5
+/obj/item/stamp/inteq/maa{
+ pixel_x = 6
},
/obj/item/table_bell{
pixel_x = -4;
@@ -3659,7 +3757,7 @@ VI
Ul
VD
Ag
-Gq
+GQ
GQ
Uf
LB
@@ -3679,7 +3777,7 @@ jB
Ul
sS
bu
-Gq
+TX
TX
jg
LB
@@ -3699,7 +3797,7 @@ TQ
Ul
rA
ZA
-Gq
+Uy
jE
bL
Gq
@@ -3789,7 +3887,7 @@ ww
ww
QJ
kW
-mR
+NO
wI
bq
vN
@@ -3812,9 +3910,9 @@ mE
RX
bg
zr
-if
-dq
+vN
dq
+vs
Zh
te
Ci
@@ -3827,11 +3925,11 @@ ww
(23,1,1) = {"
ww
ww
-nm
-lo
+Eh
+if
Ex
-lo
-lo
+UO
+Ch
LW
Cl
Cl
@@ -3840,27 +3938,27 @@ te
te
OK
te
-fJ
+te
ww
ww
"}
(24,1,1) = {"
ww
ww
-ww
+fJ
lo
Xo
-PD
+lo
lo
qE
zG
-gO
+zG
Bj
te
Hw
fI
te
-ww
+FO
ww
ww
"}
@@ -3888,7 +3986,27 @@ ww
ww
ww
ww
-UO
+lo
+PD
+bl
+lo
+fZ
+rP
+Wl
+vw
+te
+XL
+cH
+te
+ww
+ww
+ww
+"}
+(27,1,1) = {"
+ww
+ww
+ww
+nm
lo
lo
lo
@@ -3899,7 +4017,7 @@ ww
te
te
te
-NO
+VZ
ww
ww
ww
diff --git a/_maps/shuttles/minutemen/minutemen_atlas.dmm b/_maps/shuttles/minutemen/minutemen_atlas.dmm
new file mode 100644
index 000000000000..3828409fe94c
--- /dev/null
+++ b/_maps/shuttles/minutemen/minutemen_atlas.dmm
@@ -0,0 +1,6015 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/turf_decal/corner/transparent/blue{
+ dir = 9
+ },
+/obj/structure/table/chem,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 6
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = 6
+ },
+/obj/item/folder/white{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/item/folder/white{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"af" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"am" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"aw" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"aC" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"aI" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"aS" = (
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"aX" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"bF" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
+/turf/open/floor/plating/airless,
+/area/ship/engineering)
+"bK" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"bQ" = (
+/obj/structure/sign/poster/clip/bard{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"bS" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"cc" = (
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"cm" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"ct" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/line{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"cN" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central3{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"cV" = (
+/obj/structure/sign/poster/clip/random{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"cY" = (
+/obj/effect/turf_decal/corner/transparent/blue/border{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/curtain/cloth,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"da" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"di" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_dorms"
+ },
+/turf/open/floor/plating,
+/area/ship/crew)
+"dw" = (
+/obj/effect/turf_decal/minutemen/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"dM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"dV" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"ec" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"em" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"ev" = (
+/obj/effect/decal/fakelattice,
+/obj/structure/railing,
+/turf/open/floor/plasteel/elevatorshaft,
+/area/ship/hallway/central)
+"eB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/grunge{
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"eH" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "cap";
+ name = "captain's locker";
+ req_access_txt = "20"
+ },
+/obj/item/storage/guncase/pistol/cm23,
+/obj/item/clothing/suit/armor/clip_capcoat{
+ pixel_x = -14
+ },
+/obj/item/clothing/under/clip/officer{
+ pixel_x = 13
+ },
+/obj/item/clothing/under/clip/officer/alt{
+ pixel_x = 13
+ },
+/obj/item/radio/headset/clip/captain{
+ pixel_x = 7
+ },
+/obj/item/clothing/head/clip/slouch/officer{
+ pixel_y = 13
+ },
+/obj/item/storage/backpack/satchel/sec/clip{
+ pixel_y = -15
+ },
+/obj/item/storage/backpack/security/clip{
+ pixel_y = -15
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"eJ" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"eK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"eU" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"eW" = (
+/obj/effect/decal/cleanable/confetti,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"fd" = (
+/obj/structure/railing{
+ layer = 3.31
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"fg" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_y = 20;
+ pixel_x = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"fi" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"fj" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ layer = 2.456;
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"fp" = (
+/obj/structure/table,
+/obj/machinery/jukebox/boombox,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"fs" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"fF" = (
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/machinery/light/small/directional/east,
+/obj/structure/sink{
+ pixel_y = 19;
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"fL" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"fM" = (
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"fR" = (
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"gk" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/structure/janitorialcart{
+ dir = 8
+ },
+/obj/item/mop{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"gu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"gw" = (
+/obj/effect/turf_decal/corner/transparent/blue{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/medical{
+ name = "Medical Bay"
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"gy" = (
+/obj/structure/closet/crate/freezer/blood,
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"gA" = (
+/obj/machinery/holopad/emergency/command,
+/obj/effect/turf_decal/minutemen/middle,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"gE" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"gF" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/minutemen/edge{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"gH" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ layer = 2.456
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"gR" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_fo"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewtwo)
+"gT" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"gU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"hg" = (
+/obj/effect/turf_decal/trimline/transparent/blue/line,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -23
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"hq" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"hL" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"hQ" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/chair,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"hR" = (
+/obj/structure/table/wood,
+/obj/structure/sign/poster/official/moth/smokey{
+ pixel_x = -32
+ },
+/obj/item/modular_computer/laptop/preset/civilian{
+ pixel_y = 5;
+ pixel_x = 2
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"ia" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"is" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"iw" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"ix" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.456
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"iN" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/railing/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"iO" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/clip{
+ pixel_y = 7
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"iQ" = (
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"iS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"iW" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "cap";
+ name = "first officer's locker";
+ req_access_txt = "19"
+ },
+/obj/item/storage/guncase/pistol/cm23{
+ pixel_y = -4
+ },
+/obj/item/clothing/head/clip/slouch/officer{
+ pixel_y = 13
+ },
+/obj/item/radio/headset/clip/captain{
+ pixel_x = 7
+ },
+/obj/item/clothing/under/clip/officer/alt{
+ pixel_x = 13
+ },
+/obj/item/clothing/under/clip/officer{
+ pixel_x = 13
+ },
+/obj/item/clothing/suit/toggle/lawyer/clip/fo{
+ pixel_x = -13
+ },
+/obj/item/storage/backpack/satchel/sec/clip{
+ pixel_y = -15
+ },
+/obj/item/storage/backpack/security/clip{
+ pixel_y = -15
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"jc" = (
+/obj/machinery/door/window/brigdoor/southright{
+ req_access = list(3);
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"jp" = (
+/obj/structure/sign/number/random,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"js" = (
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"jG" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/line{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"jI" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"jL" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"jQ" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 7;
+ pixel_x = 12
+ },
+/obj/item/melee/chainofcommand{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"jR" = (
+/obj/effect/landmark/start/station_engineer,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"jY" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"jZ" = (
+/obj/item/chair{
+ dir = 8;
+ pixel_y = -10;
+ pixel_x = 5
+ },
+/obj/item/cigbutt{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/obj/item/cigbutt{
+ pixel_x = -10;
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"kd" = (
+/obj/structure/table,
+/obj/item/storage/box/evidence{
+ pixel_y = 19;
+ pixel_x = -7
+ },
+/obj/item/storage/box/flares{
+ pixel_y = 18;
+ pixel_x = 7
+ },
+/obj/item/storage/box/zipties{
+ pixel_x = 2;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/recharger{
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"kt" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4;
+ pixel_y = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"kv" = (
+/obj/effect/turf_decal/trimline/transparent/blue/line,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"kE" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/obj/structure/closet/crate/bin{
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"kG" = (
+/obj/structure/table,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/sign/poster/clip/gold{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"kL" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"kS" = (
+/obj/machinery/door/poddoor{
+ id = "atlas_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "atlas_holo"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"kX" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"lc" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"le" = (
+/obj/effect/turf_decal/industrial/loading{
+ icon_state = "loadingarea_stripes"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"lw" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/landmark/start/head_of_personnel,
+/obj/item/radio/intercom/wideband/directional/south,
+/obj/machinery/firealarm/directional/west{
+ pixel_x = -33;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"lJ" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew)
+"lY" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"mf" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/structure/closet/wall/directional/east,
+/obj/item/radio{
+ pixel_y = 15;
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_y = 9;
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_y = 9;
+ pixel_x = 4
+ },
+/obj/item/radio{
+ pixel_y = 9
+ },
+/obj/item/radio{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/obj/item/radio{
+ pixel_y = 9;
+ pixel_x = -9
+ },
+/obj/item/radio{
+ pixel_y = 15;
+ pixel_x = 4
+ },
+/obj/item/radio{
+ pixel_y = 15
+ },
+/obj/item/radio{
+ pixel_y = 15;
+ pixel_x = -4
+ },
+/obj/item/radio{
+ pixel_y = 15;
+ pixel_x = -9
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"mh" = (
+/obj/structure/dresser,
+/obj/machinery/button/door{
+ pixel_y = 23;
+ id = "atlas_fo";
+ name = "private windows button"
+ },
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"ms" = (
+/obj/docking_port/mobile{
+ dir = 2;
+ launch_status = 0;
+ port_direction = 8;
+ preferred_direction = 4;
+ name = "atlas dock"
+ },
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 9
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"mw" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"mK" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"mN" = (
+/obj/structure/sign/clip,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"mS" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"nl" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"nm" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"ny" = (
+/obj/item/gun/ballistic/automatic/smg/cm5/no_mag{
+ pixel_y = -4;
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/structure/guncloset,
+/obj/item/gun/ballistic/automatic/assault/cm82{
+ default_ammo_type = 0;
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/obj/item/gun/ballistic/automatic/pistol/cm23/no_mag{
+ pixel_x = -4;
+ pixel_y = -8
+ },
+/obj/item/gun/ballistic/automatic/pistol/cm23/no_mag{
+ pixel_x = -4;
+ pixel_y = -8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"nO" = (
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"nP" = (
+/obj/machinery/door/airlock/mining{
+ name = "Cargo Bay"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"nQ" = (
+/obj/structure/table,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/trimline/transparent/blue/corner,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/obj/machinery/microwave{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"nS" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"nU" = (
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"nW" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"nX" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"nY" = (
+/obj/effect/turf_decal/trimline/transparent/blue/line,
+/obj/structure/table,
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 2
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 4
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 6
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 8
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 10
+ },
+/obj/item/storage/bag/tray/cafeteria{
+ pixel_y = 12
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"oa" = (
+/obj/structure/table,
+/obj/item/trash/plate{
+ pixel_x = 4;
+ pixel_y = 1
+ },
+/obj/item/trash/plate{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"of" = (
+/obj/machinery/firealarm/directional/north,
+/obj/item/paperplane{
+ pixel_y = 5
+ },
+/obj/structure/fluff/paper/stack{
+ name = "stack of papers";
+ desc = "Seems like someone needs to work on their aim.";
+ pixel_x = 4;
+ pixel_y = -4;
+ dir = 4
+ },
+/obj/structure/closet/crate/bin{
+ pixel_y = 12;
+ pixel_x = 5
+ },
+/obj/item/paperplane{
+ pixel_x = 9;
+ pixel_y = 10
+ },
+/obj/item/paperplane{
+ pixel_x = 2;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"ov" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"oJ" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 5;
+ pixel_y = -1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"oX" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ name = "Captain's Quarters";
+ req_one_access = list(20)
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"oY" = (
+/obj/structure/toilet{
+ dir = 1;
+ pixel_x = 9;
+ pixel_y = 1
+ },
+/obj/machinery/light/small/directional/south,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"pi" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"pn" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/structure/rack,
+/obj/item/storage/lockbox/medal{
+ pixel_x = 3;
+ pixel_y = 6
+ },
+/obj/item/storage/lockbox/medal/sec{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"pp" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_engi_lockdown"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"pq" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"ps" = (
+/turf/template_noop,
+/area/template_noop)
+"pE" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ layer = 2.456
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"qb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"qc" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"qn" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"qr" = (
+/obj/effect/turf_decal/minutemen/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"qA" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"qG" = (
+/obj/machinery/power/terminal,
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 32
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"qP" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/minutemen/edge{
+ dir = 8
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/landmark/start/captain,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"qR" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/landmark/start/warden,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"qS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"rk" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"rr" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"ry" = (
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"rz" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 5
+ },
+/obj/item/pen{
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"rO" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/closet/cabinet{
+ name = "formal uniform cabinet"
+ },
+/obj/item/clothing/under/clip/formal/with_shirt{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/clothing/under/clip/formal/with_shirt{
+ pixel_y = 10
+ },
+/obj/item/clothing/under/clip/formal/with_shirt{
+ pixel_x = -5;
+ pixel_y = 10
+ },
+/obj/item/clothing/under/clip/formal/with_shirt{
+ pixel_x = -10;
+ pixel_y = 9
+ },
+/obj/item/clothing/under/clip/formal/with_shirt/alt{
+ pixel_x = 8;
+ pixel_y = -3
+ },
+/obj/item/clothing/under/clip/formal/with_shirt/alt{
+ pixel_x = 2;
+ pixel_y = -4
+ },
+/obj/item/clothing/under/clip/formal/with_shirt/alt{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/item/clothing/under/clip/formal/with_shirt/alt{
+ pixel_x = -10;
+ pixel_y = -4
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"rR" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_y = 23
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"sh" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/engineering)
+"si" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"sl" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_y = -20;
+ dir = 1
+ },
+/obj/structure/closet/secure_closet{
+ icon_state = "hop";
+ name = "sergeant's locker";
+ req_access_txt = "3"
+ },
+/obj/item/storage/guncase/doublebarrel{
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_y = -8
+ },
+/obj/item/clothing/head/clip/slouch{
+ pixel_y = 12
+ },
+/obj/item/clothing/under/clip/minutemen{
+ pixel_x = -5
+ },
+/obj/item/clothing/suit/armor/vest/alt{
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/box{
+ color = "#75A2BB"
+ },
+/obj/item/storage/backpack/security/clip{
+ pixel_x = 13;
+ pixel_y = -13
+ },
+/obj/item/storage/box/ammo/a12g_buckshot{
+ pixel_x = -7;
+ pixel_y = -12
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"sA" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner,
+/obj/structure/window/reinforced,
+/obj/machinery/suit_storage_unit/minutemen,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/box{
+ color = "#75A2BB"
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"sB" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"sD" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/layer_manifold/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"sF" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/thinplating/dark/end,
+/obj/machinery/blackbox_recorder,
+/obj/machinery/door/window/brigdoor/northleft,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"sI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/machinery/door/airlock/grunge{
+ req_access = list(3);
+ dir = 4;
+ name = "Armory"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"sL" = (
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"sP" = (
+/obj/machinery/computer/cryopod/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew)
+"tc" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_cap"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewthree)
+"tq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"tA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"tF" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"tP" = (
+/obj/structure/table,
+/obj/item/stamp{
+ pixel_x = 9;
+ pixel_y = 13
+ },
+/obj/item/clipboard,
+/obj/item/stamp/denied{
+ pixel_x = 10;
+ pixel_y = 4
+ },
+/obj/item/binoculars{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"tW" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"us" = (
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"ux" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/minutemen/edge{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"uC" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "atlas_bridge_lockdown";
+ dir = 1;
+ pixel_y = 4;
+ name = "bridge lockdown";
+ pixel_x = -6
+ },
+/obj/machinery/button/door{
+ id = "atlas_bridge";
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = 4;
+ name = "bridge shutters"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"uG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"uH" = (
+/obj/structure/table,
+/obj/item/clipboard{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/obj/item/storage/fancy/cigarettes{
+ pixel_x = -1;
+ pixel_y = 3
+ },
+/obj/item/storage/fancy/cigarettes{
+ pixel_x = -5
+ },
+/obj/item/clothing/mask/cigarette{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/obj/item/storage/fancy/cigarettes{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/item/clothing/mask/cigarette{
+ pixel_x = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 5
+ },
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"uO" = (
+/obj/effect/turf_decal/corner/transparent/blue{
+ dir = 6
+ },
+/obj/structure/table/chem,
+/obj/structure/sink/chem,
+/obj/item/roller{
+ pixel_y = 15;
+ pixel_x = -12
+ },
+/obj/item/roller{
+ pixel_y = 6;
+ pixel_x = -14
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"uQ" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"uU" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_y = 9;
+ pixel_x = -5
+ },
+/obj/item/trash/can{
+ pixel_x = 7;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/cola{
+ pixel_y = 4;
+ pixel_x = 1
+ },
+/obj/item/storage/fancy/donut_box{
+ pixel_x = -13;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"uX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"uY" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"vd" = (
+/obj/structure/catwalk/over,
+/obj/machinery/airalarm/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"vo" = (
+/obj/structure/railing,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 9;
+ pixel_x = 2
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/cell_charger,
+/obj/structure/table,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"vw" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"vy" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = -13
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = -13
+ },
+/obj/item/kitchen/fork/plastic{
+ pixel_x = 4;
+ pixel_y = 1
+ },
+/obj/item/kitchen/fork/plastic{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/kitchen/fork/plastic{
+ pixel_x = 8;
+ pixel_y = 1
+ },
+/obj/item/kitchen/fork/plastic{
+ pixel_x = 10;
+ pixel_y = 2
+ },
+/obj/item/melee/knife/plastic,
+/obj/item/melee/knife/plastic{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/melee/knife/plastic{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/item/melee/knife/plastic{
+ pixel_x = -1;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"vS" = (
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 10
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"vT" = (
+/obj/structure/dresser{
+ dir = 1
+ },
+/obj/item/reagent_containers/food/drinks/beaglemug{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"vW" = (
+/obj/structure/sign/poster/clip/random{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"vZ" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_engi_lockdown"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"wc" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-6"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"wd" = (
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = -28
+ },
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"we" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/wall/directional/north{
+ icon_door = "med_wall";
+ req_access = list(5)
+ },
+/obj/item/storage/belt/medical/webbing/clip/prefilled{
+ pixel_x = -6;
+ pixel_y = -7
+ },
+/obj/item/clothing/gloves/color/latex/nitrile/clip{
+ pixel_x = -11;
+ pixel_y = 5
+ },
+/obj/item/clothing/under/clip/medic{
+ pixel_x = 9;
+ pixel_y = -4
+ },
+/obj/item/clothing/head/clip/corpsman{
+ pixel_y = 8;
+ pixel_x = 9
+ },
+/obj/item/defibrillator/loaded{
+ pixel_y = 26
+ },
+/obj/item/storage/belt/medical/surgery{
+ pixel_x = -7;
+ pixel_y = -8
+ },
+/obj/item/storage/backpack/satchel/med{
+ pixel_x = 11;
+ pixel_y = -14
+ },
+/obj/item/storage/backpack/messenger/med{
+ pixel_x = 10;
+ pixel_y = -10
+ },
+/obj/item/storage/backpack/medic{
+ pixel_x = 9;
+ pixel_y = -14
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"wh" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"wi" = (
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/techfloor/orange,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"wk" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"wu" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/turretid/ship{
+ pixel_x = -28;
+ pixel_y = -3;
+ id = "atlas"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"wy" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"wJ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"wU" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/industrial,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"wW" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/chair,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"xi" = (
+/obj/effect/decal/fakelattice{
+ icon_state = "lattice-203"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"xz" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/obj/structure/tank_dispenser/oxygen,
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"xU" = (
+/obj/machinery/light/directional/east,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"yi" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"yn" = (
+/obj/structure/salvageable/computer{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"yo" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"yx" = (
+/obj/structure/bed/double,
+/obj/item/bedsheet/double/grey,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"yB" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.456
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"yC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/holopad/emergency/counselor,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"yI" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/punching_bag,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -20
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"yL" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"yO" = (
+/obj/machinery/computer/helm/viewscreen/directional/north,
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"yR" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/structure/bed/roller,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"yT" = (
+/obj/machinery/door/firedoor,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"yZ" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/obj/item/clothing/under/clip/minutemen{
+ pixel_x = -8;
+ pixel_y = 11
+ },
+/obj/item/clothing/under/clip/minutemen{
+ pixel_x = -1;
+ pixel_y = 9
+ },
+/obj/item/clothing/under/clip/minutemen{
+ pixel_x = 6;
+ pixel_y = 11
+ },
+/obj/item/clothing/under/clip/minutemen{
+ pixel_x = 12;
+ pixel_y = 9
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_x = -11;
+ pixel_y = -6
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_x = -6;
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_y = -6
+ },
+/obj/item/clothing/shoes/combat{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"zc" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 12
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = 12
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -12;
+ pixel_x = 5
+ },
+/obj/item/clothing/mask/breath/medical{
+ pixel_y = -12;
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 8;
+ pixel_x = -8
+ },
+/obj/item/storage/box/gloves{
+ pixel_x = -10;
+ pixel_y = 2
+ },
+/obj/item/storage/box/masks{
+ pixel_y = -5;
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"zf" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{
+ dir = 8
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 26
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/obj/item/clothing/suit/space/fragile{
+ pixel_x = 6;
+ pixel_y = -14
+ },
+/obj/item/clothing/suit/space/fragile{
+ pixel_x = 11;
+ pixel_y = -17
+ },
+/obj/item/clothing/head/helmet/space/fragile{
+ pixel_x = -8;
+ pixel_y = -9
+ },
+/obj/item/clothing/head/helmet/space/fragile{
+ pixel_x = -2;
+ pixel_y = -14
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"zl" = (
+/obj/structure/closet/crate/trashcart/laundry,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"zq" = (
+/obj/machinery/door/poddoor{
+ id = "atlas_cargo"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "atlas_holo"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"zt" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"zx" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"zE" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/blue{
+ dir = 1
+ },
+/obj/structure/curtain/cloth,
+/obj/machinery/button/door{
+ id = "atlas_dorms";
+ name = "private windows button";
+ pixel_x = -23;
+ dir = 4
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"zQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/structure/sign/poster/clip/maxin{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Aa" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/trimline/transparent/blue/filled/arrow_ccw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"An" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/blue{
+ dir = 1
+ },
+/obj/structure/curtain/cloth,
+/obj/machinery/light/directional/west,
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"Av" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp{
+ pixel_y = 6;
+ pixel_x = 1
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"Ay" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/paperplane{
+ pixel_x = 11;
+ pixel_y = 9
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"AH" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"AP" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Bm" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_engi_lockdown"
+ },
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Bx" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 9
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = -28
+ },
+/obj/structure/bed/dogbed{
+ name = "Mushroom's bed";
+ desc = "A comfy-looking dog bed. Despite the name, the owner is a mothroach."
+ },
+/mob/living/simple_animal/pet/mothroach{
+ name = "Mushroom";
+ desc = "Master Sergeant Mushroom is assigned to overwatch C-MM armory officers. Don't let her eat the armor.";
+ gender = "female"
+ },
+/obj/item/storage/fancy/egg_box{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"BH" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"BI" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"BL" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.89
+ },
+/obj/effect/turf_decal/industrial,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"BW" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Cc" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8;
+ piping_layer = 2
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"Cm" = (
+/obj/structure/sign/clip,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewthree)
+"Cn" = (
+/obj/item/cigbutt{
+ anchored = 1;
+ color = "#808080";
+ layer = 2;
+ pixel_x = -4;
+ pixel_y = 8
+ },
+/obj/effect/decal/fakelattice,
+/obj/structure/railing,
+/turf/open/floor/plasteel/elevatorshaft,
+/area/ship/hallway/central)
+"Cq" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/arrow_ccw{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Cr" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/item/stack/sheet/mineral/plasma/twenty,
+/obj/structure/cable/yellow{
+ icon_state = "0-9"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"CM" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 3
+ },
+/obj/item/pen{
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 16;
+ pixel_y = 11
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"CO" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+"CX" = (
+/obj/machinery/light/directional/west,
+/obj/machinery/button/door{
+ pixel_y = -23;
+ id = "atlas_med";
+ dir = 1;
+ name = "medbay shutters"
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"CZ" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/obj/structure/railing,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"Da" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Do" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Dq" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/white,
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"DL" = (
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Ea" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Ej" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Eo" = (
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.89
+ },
+/obj/machinery/autolathe,
+/obj/machinery/light/directional/west,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/metal/twenty,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Es" = (
+/obj/structure/curtain/cloth/grey,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Ey" = (
+/obj/effect/decal/fakelattice{
+ icon_state = "lattice-23"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"EB" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"ED" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-02";
+ pixel_x = -7
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/turf_decal/corner_steel_grid/full,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"EH" = (
+/obj/structure/filingcabinet/double/grey{
+ dir = 1;
+ pixel_y = -3
+ },
+/obj/item/folder,
+/obj/item/folder/blue,
+/obj/item/folder/red,
+/obj/item/folder/white,
+/obj/item/folder/yellow,
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"EJ" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-02"
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"EO" = (
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 5
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"EP" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/arrow_ccw{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"ES" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"EZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/bridge)
+"Fu" = (
+/obj/effect/decal/fakelattice{
+ icon_state = "lattice-21"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Fv" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"FF" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"FI" = (
+/obj/structure/table,
+/obj/item/desk_flag/trans{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/item/toy/cards/deck{
+ pixel_x = 6;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"FN" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewthree)
+"FO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/bridge)
+"FQ" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 4
+ },
+/obj/effect/landmark/start/medical_doctor,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"Gi" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -12;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Gj" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"Gt" = (
+/obj/structure/bed/double,
+/obj/item/bedsheet/double/blue,
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"GU" = (
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 6
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"Hf" = (
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"Hg" = (
+/obj/machinery/airalarm/directional/west,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Hh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "atlas_engi_lockdown";
+ dir = 4;
+ pixel_y = 2;
+ name = "engineering shutters";
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Hl" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"Hu" = (
+/obj/machinery/door/poddoor{
+ id = "atlas_cargo"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plating,
+/area/ship/cargo)
+"HW" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"HX" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"Ig" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/trimline/transparent/blue/corner{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"Ir" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/minutemen/edge,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"IK" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/obj/structure/closet/crate,
+/obj/item/storage/box/emptysandbags,
+/obj/item/storage/box/emptysandbags,
+/obj/item/shovel,
+/obj/item/shovel,
+/obj/item/pickaxe,
+/obj/item/pickaxe,
+/obj/item/storage/bag/ore,
+/obj/item/storage/bag/ore,
+/obj/machinery/light/directional/east,
+/obj/structure/crate_shelf,
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"IP" = (
+/obj/structure/table/wood,
+/obj/item/melee/knife/letter_opener{
+ pixel_x = 9;
+ pixel_y = -6
+ },
+/obj/item/folder/biscuit/unsealed{
+ pixel_x = -4
+ },
+/obj/item/papercutter{
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"IR" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-02"
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"IY" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Jb" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_one_access = list(19,3)
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_bridge_lockdown"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Je" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"JL" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/obj/machinery/holopad/emergency/medical,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"JR" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-5"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"JU" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"JV" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-02";
+ pixel_y = 16;
+ pixel_x = -6
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/obj/structure/railing,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Kc" = (
+/obj/effect/decal/fakelattice{
+ icon_state = "lattice-203"
+ },
+/obj/structure/lattice/catwalk,
+/obj/item/toy/plush/moth/royal{
+ pixel_x = 9;
+ pixel_y = 8;
+ name = "Specialist Aloe";
+ desc = "An adorable mothperson plushy. Judging by a tag attached just beneath its left leg, it is part of the Colonial League's armed forces."
+ },
+/obj/item/clothing/head/clip{
+ pixel_x = 9;
+ pixel_y = 18
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 5;
+ list_reagents = list(/datum/reagent/consumable/ice=30)
+ },
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Kf" = (
+/obj/structure/chair/plastic{
+ dir = 8;
+ pixel_y = 9;
+ pixel_x = 7
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 8
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Km" = (
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/turf/open/floor/carpet/nanoweave/blue,
+/area/ship/crew/crewtwo)
+"KB" = (
+/obj/effect/turf_decal/trimline/transparent/blue/line,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Ld" = (
+/obj/item/caution{
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/oil/slippery{
+ icon_state = "floor5";
+ pixel_x = -12;
+ pixel_y = 1
+ },
+/obj/item/wirecutters{
+ pixel_x = -5;
+ pixel_y = -15
+ },
+/obj/item/crowbar/large{
+ pixel_y = 14
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"Ln" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Lp" = (
+/obj/structure/table/reinforced,
+/obj/item/book/manual/wiki/command{
+ pixel_y = 6;
+ pixel_x = -3
+ },
+/obj/item/book/manual/wiki/piloting{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Lw" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/stand_clear/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ id = "atlas_cargo";
+ dir = 4;
+ pixel_x = -23;
+ pixel_y = 6;
+ name = "cargo bay control"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ pixel_y = -4;
+ pixel_x = -20;
+ id = "atlas_holo"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"LE" = (
+/obj/structure/grille,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"LH" = (
+/obj/structure/filingcabinet/double/grey{
+ pixel_y = 14
+ },
+/obj/item/folder,
+/obj/item/folder/blue,
+/obj/item/folder/red,
+/obj/item/folder/white,
+/obj/item/folder/yellow,
+/obj/item/reagent_containers/food/snacks/grown/tobacco{
+ dry = 1
+ },
+/obj/item/reagent_containers/food/snacks/grown/tobacco{
+ dry = 1
+ },
+/obj/item/reagent_containers/food/snacks/grown/tobacco{
+ dry = 1
+ },
+/obj/item/reagent_containers/food/snacks/grown/tobacco{
+ dry = 1
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"LM" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"Ml" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/stand_clear/white,
+/obj/machinery/light/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Mq" = (
+/obj/structure/closet/crate/bin{
+ pixel_y = 11;
+ pixel_x = -10
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Mu" = (
+/obj/effect/landmark/start/station_engineer,
+/obj/structure/cable/yellow{
+ icon_state = "2-5"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "5-6"
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"My" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"MC" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"MH" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/structure/cable/yellow,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"MO" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"MQ" = (
+/obj/structure/chair/comfy/beige,
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"Ni" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"No" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/hatch/blue,
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"NE" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"NY" = (
+/obj/structure/chair/comfy/blue{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"Ob" = (
+/obj/structure/sign/clip,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"Oj" = (
+/obj/structure/sign/number/random,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewthree)
+"Ot" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"OA" = (
+/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"OQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"OV" = (
+/obj/effect/turf_decal/rechargefloor,
+/obj/item/stack/ore/salvage/scraptitanium{
+ pixel_x = -4;
+ pixel_y = 6
+ },
+/obj/item/stack/ore/salvage/scrapsilver{
+ pixel_x = 4;
+ pixel_y = -8
+ },
+/obj/structure/mecha_wreckage/ripley/clip,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"OW" = (
+/obj/effect/decal/fakelattice,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/elevatorshaft,
+/area/ship/hallway/central)
+"Pd" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4;
+ pixel_y = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Pi" = (
+/obj/machinery/suit_storage_unit/minutemen,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/box{
+ color = "#75A2BB"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"Pk" = (
+/obj/effect/turf_decal/minutemen/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Pn" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Py" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/effect/decal/cleanable/confetti,
+/obj/item/clothing/glasses/meson{
+ pixel_x = -1;
+ pixel_y = -8
+ },
+/obj/item/storage/belt/utility/full,
+/obj/item/storage/backpack/satchel/eng{
+ pixel_y = 10
+ },
+/obj/item/clothing/under/clip{
+ pixel_x = 7
+ },
+/obj/item/clothing/suit/hazardvest{
+ pixel_x = -8;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/space/syndicate/blue,
+/obj/item/clothing/head/helmet/space/syndicate/blue,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"PD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/toilet{
+ dir = 8;
+ pixel_x = 4
+ },
+/obj/structure/curtain,
+/obj/machinery/shower{
+ dir = 1;
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/floordetail/pryhole,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plastic,
+/area/ship/crew)
+"PG" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"PK" = (
+/obj/effect/turf_decal/trimline/transparent/blue/line,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/structure/closet/secure_closet/freezer/fridge/open{
+ populate = 0
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"PT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/suit_storage_unit/minutemen,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/box{
+ color = "#75A2BB"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"PU" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"PV" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"PX" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Qb" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"Qg" = (
+/obj/item/cigbutt{
+ pixel_x = -8;
+ pixel_y = 11
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Qj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = -12;
+ pixel_y = 6
+ },
+/obj/item/lipstick{
+ pixel_x = -11
+ },
+/obj/item/lipstick/black{
+ pixel_x = -11
+ },
+/obj/item/lipstick/jade{
+ pixel_x = -11
+ },
+/obj/item/lipstick/purple{
+ pixel_x = -11
+ },
+/obj/structure/closet/wall/white{
+ dir = 4;
+ pixel_x = 28;
+ pixel_y = 6
+ },
+/obj/structure/mirror{
+ pixel_x = -28;
+ pixel_y = 7
+ },
+/obj/item/dyespray{
+ pixel_x = 10
+ },
+/obj/item/clothing/head/wig/random{
+ pixel_x = 11
+ },
+/turf/open/floor/plastic,
+/area/ship/crew)
+"Qt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Qu" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"Qw" = (
+/obj/effect/turf_decal/minutemen/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Qx" = (
+/obj/structure/bed/pod{
+ dir = 1
+ },
+/obj/item/bedsheet/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Qz" = (
+/obj/structure/sign/clip,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"QC" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"QG" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"QM" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/weather_monitor{
+ pixel_x = -6;
+ pixel_y = 20
+ },
+/obj/item/radio/intercom/table{
+ dir = 4;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"QS" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Rf" = (
+/obj/machinery/door/airlock/grunge{
+ name = "Dormitories"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Rt" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"Rv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Rz" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/trimline/transparent/blue/filled,
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_y = 13;
+ pixel_x = 7
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_y = 10;
+ pixel_x = 6
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_x = 7;
+ pixel_y = 5
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof{
+ pixel_x = 8;
+ pixel_y = 1
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/clip{
+ pixel_y = 12;
+ pixel_x = -9
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/clip{
+ pixel_y = 10;
+ pixel_x = -6
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/clip{
+ pixel_y = 5;
+ pixel_x = -10
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/clip{
+ pixel_y = 1;
+ pixel_x = -7
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"RL" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes/cigars{
+ pixel_y = 6;
+ pixel_x = 2
+ },
+/obj/item/storage/fancy/cigarettes/cigars{
+ pixel_y = 9;
+ pixel_x = 1
+ },
+/obj/item/clothing/mask/cigarette/pipe{
+ pixel_x = 10
+ },
+/obj/item/lighter{
+ pixel_x = -9
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewthree)
+"RM" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"RQ" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"RT" = (
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 6
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"RU" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/computer/monitor{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Sb" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Sp" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_cap"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewthree)
+"Ss" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Sw" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled,
+/obj/item/storage/box/ammo/c10mm{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/box/ammo/a556_42{
+ pixel_x = 1;
+ pixel_y = -6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Sz" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"SB" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"SI" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"SK" = (
+/obj/structure/sign/clip,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+"ST" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/southright{
+ req_access = list(3)
+ },
+/obj/item/radio/intercom/table{
+ pixel_y = -3;
+ pixel_x = 5
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"SW" = (
+/obj/structure/table/wood,
+/obj/item/modular_computer/laptop/preset/civilian{
+ pixel_y = 3
+ },
+/turf/open/floor/wood,
+/area/ship/crew/crewtwo)
+"Ti" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"Tx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"Ty" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"TA" = (
+/obj/item/emptysandbag{
+ pixel_x = -10;
+ pixel_y = -8
+ },
+/obj/item/emptysandbag{
+ pixel_x = 4;
+ pixel_y = -8
+ },
+/obj/item/emptysandbag{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/obj/item/emptysandbag{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/obj/item/emptysandbag{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/emptysandbag{
+ pixel_x = -10;
+ pixel_y = -5
+ },
+/obj/item/emptysandbag{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/emptysandbag{
+ pixel_x = -10
+ },
+/obj/item/shovel{
+ pixel_x = -18;
+ pixel_y = -3
+ },
+/obj/structure/table,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"TE" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"TK" = (
+/obj/structure/dresser{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ pixel_y = -23;
+ id = "atlas_cap";
+ dir = 1;
+ name = "private windows button"
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew/crewthree)
+"TT" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Uh" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/trimline/transparent/blue/filled,
+/obj/item/clothing/head/clip{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/clothing/head/clip{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/clip{
+ pixel_x = -9;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/clip{
+ pixel_x = -7;
+ pixel_y = -8
+ },
+/obj/item/storage/belt/military/clip{
+ pixel_y = 14;
+ pixel_x = 5
+ },
+/obj/item/storage/belt/military/clip{
+ pixel_y = 11;
+ pixel_x = 7
+ },
+/obj/item/storage/belt/military/clip{
+ pixel_y = 2;
+ pixel_x = 4
+ },
+/obj/item/storage/belt/military/clip{
+ pixel_y = -2;
+ pixel_x = 7
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Um" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/obj/machinery/suit_storage_unit/minutemen,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/box{
+ color = "#75A2BB"
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"UC" = (
+/obj/effect/turf_decal/corner/transparent/blue/diagonal,
+/obj/effect/turf_decal/spline/fancy/opaque/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"UG" = (
+/obj/structure/table/optable,
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/item/clothing/suit/apron/surgical{
+ pixel_x = -5;
+ pixel_y = -3
+ },
+/obj/item/book/manual/wiki/surgery{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/obj/structure/sign/poster/clip/serene{
+ pixel_x = 32
+ },
+/obj/machinery/defibrillator_mount{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"UK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"UP" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4;
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/box/corners{
+ color = "#75A2BB"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/structure/weightmachine/weightlifter,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/cargo)
+"US" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/computer/cargo{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"UY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/catwalk/over,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Vk" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 16
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = 16
+ },
+/obj/machinery/door/window/brigdoor/southleft{
+ req_access = list(3)
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -8;
+ pixel_y = 13
+ },
+/obj/item/stamp{
+ pixel_x = -9
+ },
+/obj/item/stamp/denied,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Vl" = (
+/obj/effect/turf_decal/corner/transparent/blue/border{
+ dir = 8
+ },
+/obj/structure/curtain,
+/obj/effect/turf_decal/corner/transparent/blue/mono,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/medical)
+"Vo" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "atlas_med"
+ },
+/turf/open/floor/plating,
+/area/ship/medical)
+"Vq" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 13;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 10;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 8;
+ pixel_x = 9
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled,
+/obj/item/ammo_box/magazine/cm5_9mm{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/ammo_box/magazine/cm5_9mm{
+ pixel_x = -1;
+ pixel_y = -5
+ },
+/obj/item/ammo_box/magazine/p16{
+ pixel_x = -9
+ },
+/obj/item/ammo_box/magazine/p16{
+ pixel_x = -9
+ },
+/obj/machinery/light/directional/north,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 12;
+ pixel_y = -3
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 10;
+ pixel_y = -4
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 11;
+ pixel_y = -4
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 11;
+ pixel_y = -6
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 11;
+ pixel_y = -8
+ },
+/obj/item/ammo_box/magazine/cm23,
+/obj/item/ammo_box/magazine/cm23,
+/obj/item/ammo_box/magazine/cm23,
+/obj/item/ammo_box/magazine/cm23,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Vw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"VG" = (
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"VK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/closet/secure_closet/engineering_welding,
+/turf/open/floor/engine/hull/interior,
+/area/ship/engineering)
+"VQ" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/engineering)
+"VR" = (
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"VT" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"VW" = (
+/obj/effect/decal/fakelattice{
+ icon_state = "lattice-6"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"We" = (
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Wg" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ layer = 2.456
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Wi" = (
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew/canteen)
+"Wk" = (
+/obj/effect/turf_decal/corner/transparent/blue{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/medical{
+ name = "Medical Bay"
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"Wr" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ name = "First Officer's Quarters";
+ req_one_access = list(19)
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"Wx" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_bridge_lockdown"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"WO" = (
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"WQ" = (
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering)
+"WR" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/blue{
+ dir = 1
+ },
+/obj/structure/curtain/cloth,
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"WZ" = (
+/obj/structure/catwalk/over,
+/obj/machinery/firealarm/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Xc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"Xg" = (
+/obj/effect/turf_decal/trimline/transparent/blue/warning{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Xl" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/machinery/firealarm/directional/north,
+/obj/machinery/light_switch{
+ pixel_y = 23;
+ pixel_x = 10
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"Xp" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"XT" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/transparent/blue/corner{
+ dir = 4
+ },
+/obj/structure/chair/plastic{
+ dir = 8;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"XZ" = (
+/obj/machinery/porta_turret/ship/clip{
+ id = "atlas";
+ dir = 5
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/crewthree)
+"Ya" = (
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"Yt" = (
+/obj/docking_port/stationary{
+ width = 30;
+ height = 15;
+ dwidth = 15
+ },
+/turf/template_noop,
+/area/template_noop)
+"Yu" = (
+/obj/item/food/cakeslice/birthday{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Yw" = (
+/obj/machinery/door/airlock/mining{
+ name = "Cargo Bay"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"YG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4;
+ pixel_y = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"YK" = (
+/obj/structure/closet/crate/bin,
+/obj/machinery/firealarm/directional/south,
+/obj/item/broken_bottle,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewthree)
+"YM" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_fo"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewtwo)
+"YO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Zd" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Ze" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1;
+ color = "#75A2BB"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"Zo" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 11
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = 11
+ },
+/obj/item/papercutter{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Zs" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_one_access = list(19,3)
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "atlas_bridge_lockdown"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"ZE" = (
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/crewtwo)
+"ZG" = (
+/obj/structure/sign/poster/clip/enlist{
+ pixel_y = 32
+ },
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/blue,
+/area/ship/crew)
+"ZM" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-5"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"ZU" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"ZZ" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-middle"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+
+(1,1,1) = {"
+ps
+ps
+ps
+ps
+ms
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+ps
+vS
+ps
+ps
+"}
+(2,1,1) = {"
+ps
+ps
+ps
+ps
+PU
+PU
+Bm
+Bm
+PU
+ps
+ps
+PU
+sD
+PU
+ps
+ps
+PU
+Bm
+Bm
+PU
+PU
+ps
+ps
+"}
+(3,1,1) = {"
+ps
+ps
+ps
+ps
+PU
+Ti
+yL
+af
+PU
+Bm
+Bm
+PU
+zf
+PU
+Bm
+Bm
+PU
+cN
+cN
+Hl
+PU
+ps
+ps
+"}
+(4,1,1) = {"
+ps
+ps
+ps
+ps
+pp
+eW
+My
+bK
+PU
+jY
+jY
+PU
+Qu
+PU
+jY
+jY
+PU
+bK
+JR
+TA
+pp
+ps
+ps
+"}
+(5,1,1) = {"
+ps
+ps
+ps
+ps
+pp
+Py
+Yu
+fM
+vo
+wc
+mw
+Hh
+Qg
+wd
+mw
+ZM
+Eo
+Rv
+Mu
+MH
+pp
+ps
+ps
+"}
+(6,1,1) = {"
+ps
+ps
+ps
+bF
+vZ
+VK
+Kf
+jR
+iN
+sh
+vw
+UY
+OA
+vd
+WZ
+VQ
+PX
+mK
+Xp
+Cr
+pp
+ps
+ps
+"}
+(7,1,1) = {"
+ps
+ps
+ps
+ps
+mN
+PU
+Cc
+qS
+fd
+PU
+WQ
+PU
+PU
+PU
+PU
+PU
+BL
+qG
+wU
+PU
+mN
+ps
+ps
+"}
+(8,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+PU
+PU
+PU
+PU
+tW
+eK
+tW
+Ze
+fL
+Gj
+tW
+PU
+PU
+PU
+PU
+ps
+ps
+ps
+"}
+(9,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+gT
+Qx
+Gi
+oY
+tW
+em
+tW
+zl
+Ya
+gk
+tW
+LE
+LE
+LE
+ps
+ps
+ps
+ps
+"}
+(10,1,1) = {"
+ps
+ps
+ps
+ps
+gT
+gT
+jc
+XT
+gT
+tW
+VT
+Pd
+kt
+YG
+gU
+tW
+HW
+HW
+HW
+HW
+HW
+ps
+ps
+"}
+(11,1,1) = {"
+ps
+ps
+ps
+gT
+gT
+kd
+gE
+Bx
+gT
+kE
+nS
+jI
+fp
+Do
+Sb
+nQ
+HW
+WR
+us
+An
+HW
+HW
+ps
+"}
+(12,1,1) = {"
+ps
+ps
+ps
+gT
+Vq
+Sw
+QS
+SB
+Vk
+jG
+IY
+jI
+vy
+nW
+FF
+PK
+HW
+ZG
+fR
+fR
+zE
+di
+ps
+"}
+(13,1,1) = {"
+ps
+ps
+ps
+gT
+ny
+VR
+aX
+qR
+ST
+ct
+Aa
+nl
+oa
+nW
+FF
+nY
+HW
+fg
+wJ
+UK
+vT
+di
+ps
+"}
+(14,1,1) = {"
+ps
+ps
+ps
+gT
+Rz
+Uh
+dV
+uH
+gT
+Ig
+Aa
+Wi
+am
+dM
+BI
+cm
+Rf
+Ej
+yi
+aI
+Qb
+di
+ps
+"}
+(15,1,1) = {"
+ps
+ps
+ps
+gT
+yo
+fs
+QC
+sl
+gT
+Xl
+Aa
+wh
+Qt
+OQ
+iS
+hg
+HW
+HW
+Es
+HW
+HW
+HW
+ps
+"}
+(16,1,1) = {"
+ps
+ps
+ps
+gT
+bQ
+gT
+sI
+gT
+gT
+CZ
+EP
+eU
+FI
+Do
+FF
+kv
+NE
+HW
+lJ
+sP
+wi
+HW
+ps
+"}
+(17,1,1) = {"
+ps
+ps
+ps
+gT
+yZ
+gT
+zQ
+PT
+Um
+Cq
+wk
+jI
+Pn
+rr
+FF
+kv
+nU
+HW
+WO
+mf
+nO
+HW
+ps
+"}
+(18,1,1) = {"
+ps
+ps
+ps
+EO
+gT
+gT
+Zd
+sL
+We
+sL
+IY
+jI
+uU
+rr
+FF
+KB
+HW
+HW
+HW
+HW
+HW
+RT
+ps
+"}
+(19,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+gT
+MC
+Pi
+sA
+eJ
+RM
+gu
+ES
+bS
+Ss
+wy
+eB
+Qj
+PD
+HW
+ps
+ps
+ps
+"}
+(20,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+TE
+TE
+TE
+TE
+TE
+HX
+PV
+HX
+PV
+HX
+CO
+CO
+CO
+CO
+HW
+ps
+ps
+ps
+"}
+(21,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+ps
+TE
+OV
+No
+TE
+ev
+sB
+Ot
+ia
+OW
+CO
+gy
+zc
+CO
+ps
+ps
+ps
+ps
+"}
+(22,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+Qz
+TE
+Ld
+yn
+TE
+TE
+zt
+tF
+Ty
+CO
+CO
+cY
+cY
+CO
+SK
+ps
+ps
+ps
+"}
+(23,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+zq
+Lw
+le
+YO
+Hg
+Yw
+TT
+hL
+TT
+gw
+aC
+FQ
+mS
+CX
+CO
+ps
+ps
+ps
+"}
+(24,1,1) = {"
+ps
+ps
+ps
+ps
+Yt
+Hu
+nX
+tA
+jZ
+yI
+TE
+hQ
+rk
+Ln
+CO
+Dq
+aa
+JL
+yR
+Vo
+ps
+ps
+ps
+"}
+(25,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+Hu
+nX
+tA
+tA
+UP
+TE
+wW
+rk
+JU
+CO
+we
+uO
+UC
+yR
+Vo
+ps
+ps
+ps
+"}
+(26,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+kS
+Ml
+le
+Da
+SI
+nP
+yB
+ix
+yB
+Wk
+zx
+AH
+qA
+xU
+CO
+ps
+ps
+ps
+"}
+(27,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+Qz
+TE
+nm
+ov
+TE
+TE
+yT
+ec
+uY
+CO
+CO
+Vl
+Vl
+CO
+SK
+ps
+ps
+ps
+"}
+(28,1,1) = {"
+ps
+ps
+ps
+ps
+ps
+ps
+TE
+IK
+xz
+TE
+MO
+Fv
+pE
+uQ
+si
+CO
+fF
+UG
+CO
+ps
+ps
+ps
+ps
+"}
+(29,1,1) = {"
+ps
+ps
+jp
+VW
+Ey
+Fu
+TE
+TE
+TE
+TE
+kG
+kL
+pi
+BW
+si
+CO
+CO
+CO
+CO
+VW
+Ey
+Fu
+da
+"}
+(30,1,1) = {"
+ps
+ps
+Oj
+FN
+xi
+HX
+HX
+EJ
+aS
+uY
+is
+Xg
+lY
+oJ
+Sz
+uY
+iQ
+IR
+HX
+HX
+Kc
+da
+da
+"}
+(31,1,1) = {"
+ps
+ps
+Oj
+FN
+FN
+FN
+Cn
+lc
+gH
+QG
+Wg
+fi
+jL
+AP
+gH
+QG
+fj
+RQ
+OW
+da
+da
+da
+da
+"}
+(32,1,1) = {"
+ps
+ps
+Sp
+jQ
+hR
+FN
+FN
+oX
+FN
+FN
+rR
+BH
+kX
+pq
+ZU
+da
+da
+Wr
+da
+da
+SW
+Av
+gR
+"}
+(33,1,1) = {"
+ps
+ps
+Sp
+rz
+NY
+hq
+Xc
+uX
+sF
+LM
+LM
+Jb
+Wx
+Zs
+LM
+LM
+rO
+Ni
+Tx
+iw
+MQ
+CM
+gR
+"}
+(34,1,1) = {"
+ps
+ps
+Sp
+RL
+cc
+yC
+Vw
+YK
+LM
+LM
+JV
+FO
+tq
+EZ
+ED
+LM
+LM
+of
+Ay
+aw
+Hf
+IP
+gR
+"}
+(35,1,1) = {"
+ps
+ps
+XZ
+FN
+LH
+uG
+ry
+LM
+LM
+Mq
+qn
+Qw
+ux
+Pk
+qb
+pn
+LM
+LM
+ZE
+Rt
+EH
+da
+GU
+"}
+(36,1,1) = {"
+ps
+ps
+ps
+FN
+FN
+vW
+TK
+LM
+wu
+js
+js
+Ir
+gA
+gF
+Ea
+Ea
+lw
+LM
+mh
+cV
+da
+da
+ps
+"}
+(37,1,1) = {"
+ps
+ps
+ps
+Je
+FN
+yO
+PG
+LM
+tP
+DL
+Zo
+qr
+qP
+dw
+uC
+QM
+VG
+LM
+EB
+Km
+da
+Je
+ps
+"}
+(38,1,1) = {"
+ps
+ps
+ps
+Je
+FN
+Gt
+eH
+LM
+qc
+LM
+iO
+RU
+ZZ
+US
+Lp
+LM
+qc
+LM
+iW
+yx
+da
+Je
+ps
+"}
+(39,1,1) = {"
+ps
+ps
+ps
+ps
+Cm
+tc
+tc
+LM
+ps
+LM
+qc
+qc
+qc
+qc
+qc
+LM
+ps
+LM
+YM
+YM
+Ob
+ps
+ps
+"}
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
index 351e8e2df037..b5ab7d6f650d 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm
@@ -91,12 +91,6 @@
/area/ship/engineering)
"aF" = (
/obj/structure/rack,
-/obj/item/aiModule/core/full/corp{
- pixel_y = -3
- },
-/obj/item/aiModule/core/freeformcore{
- pixel_y = 1
- },
/obj/item/aiModule/reset/purge{
pixel_y = 5
},
@@ -104,6 +98,7 @@
name = "AI Module Storage";
req_access_txt = "16"
},
+/obj/item/borg/upgrade/ai,
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/port)
"aG" = (
@@ -252,11 +247,11 @@
},
/obj/structure/closet/crate,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
"bd" = (
@@ -497,7 +492,7 @@
/turf/open/floor/plating,
/area/ship/engineering)
"cm" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/small/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
@@ -983,9 +978,7 @@
dir = 8
},
/obj/machinery/power/ship_gravity,
-/obj/structure/cable{
- icon_state = "0-1"
- },
+/obj/structure/cable,
/turf/open/floor/plating,
/area/ship/engineering)
"dE" = (
@@ -1039,14 +1032,28 @@
/area/ship/crew)
"dI" = (
/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/folder/yellow,
+/obj/item/spacecash/bundle/c1000{
+ pixel_x = -5;
+ pixel_y = 9
+ },
+/obj/item/spacecash/bundle/c1000,
+/obj/item/paper_bin{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/folder/yellow{
+ pixel_x = 5;
+ pixel_y = 7
+ },
/obj/item/pen/fountain/captain,
-/obj/item/stamp/qm,
/obj/effect/turf_decal/corner/opaque/nsorange,
/obj/effect/turf_decal/corner/opaque/nsorange{
dir = 4
},
+/obj/item/stamp/nanotrasen/ns/captain{
+ pixel_x = -7;
+ pixel_y = 4
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"dK" = (
@@ -1089,8 +1096,8 @@
dir = 1;
pixel_y = -32
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/turf/open/floor/plasteel,
/area/ship/crew)
@@ -1114,9 +1121,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/science/robotics)
"em" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/fueled/plasma,
/turf/open/floor/plating/airless,
/area/ship/engineering)
"ev" = (
@@ -1205,10 +1210,14 @@
/area/ship/engineering)
"fU" = (
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 4
+/obj/item/storage/case/surgery{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/storage/firstaid/medical{
+ pixel_x = 5;
+ pixel_y = 3
},
-/obj/item/storage/firstaid/medical,
/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable,
/turf/open/floor/plasteel/white,
@@ -1324,6 +1333,7 @@
pixel_y = 4
},
/obj/effect/turf_decal/trimline/transparent/white/filled/warning,
+/obj/item/stamp/nanotrasen/ns,
/turf/open/floor/plasteel,
/area/ship/cargo)
"jr" = (
@@ -1413,6 +1423,7 @@
/obj/effect/turf_decal/borderfloor{
dir = 1
},
+/obj/item/stamp/nanotrasen,
/turf/open/floor/plasteel,
/area/ship/medical)
"lp" = (
@@ -1840,9 +1851,7 @@
dir = 4;
name = "Engine Access"
},
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/heater,
/obj/machinery/door/poddoor{
dir = 4;
id = "whiteship_windows"
@@ -1874,9 +1883,6 @@
/obj/structure/rack,
/obj/item/weldingtool/hugetank/empty,
/obj/item/clothing/mask/gas/welding,
-/obj/item/slimepotion/slime/sentience/mining,
-/obj/item/slimepotion/slime/sentience/mining,
-/obj/item/slimepotion/slime/sentience/mining,
/obj/machinery/light/small/directional/east,
/obj/machinery/button/door{
dir = 4;
@@ -2060,12 +2066,12 @@
},
/obj/structure/table,
/obj/machinery/recharger,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/areaeditor/shuttle,
/obj/machinery/turretid/ship{
pixel_y = -24
},
+/obj/machinery/fax/nanotrasen{
+ pixel_y = 6
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"Aw" = (
@@ -2151,9 +2157,7 @@
/turf/open/floor/plating,
/area/ship/hallway/central)
"Bw" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/electric,
/obj/structure/cable{
icon_state = "0-4"
},
@@ -2208,7 +2212,6 @@
"BY" = (
/obj/item/phone,
/obj/structure/table,
-/obj/item/borg/upgrade/ai,
/turf/open/floor/plasteel/tech/grid,
/area/ship/hallway/port)
"Cg" = (
@@ -2380,9 +2383,7 @@
dir = 4;
name = "Engine Access"
},
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -2668,9 +2669,7 @@
dir = 4;
name = "Engine Access"
},
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -2831,9 +2830,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/science/robotics)
"TO" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/electric,
/obj/structure/cable{
icon_state = "0-4"
},
@@ -2971,9 +2968,7 @@
dir = 4;
name = "Engine Access"
},
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/heater,
/obj/machinery/door/poddoor{
dir = 4;
id = "whiteship_windows"
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
index 2cb4e641cd53..16a6af573698 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm
@@ -1,4 +1,12 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ad" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/starboard)
"ae" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/turf_decal/number/one{
@@ -37,7 +45,7 @@
},
/obj/structure/table/reinforced,
/obj/item/folder/blue,
-/obj/item/stamp/captain,
+/obj/item/stamp/nanotrasen/captain,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"an" = (
@@ -79,6 +87,16 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"aE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel,
+/area/ship/hallway/aft)
"aK" = (
/obj/machinery/atmospherics/pipe/simple/green/hidden,
/obj/machinery/atmospherics/pipe/manifold/purple/hidden/layer1{
@@ -129,11 +147,15 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/aft)
-"bh" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
+"be" = (
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/spawner/random/salvage/half,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/starboard)
"bk" = (
/obj/structure/sign/number/nine{
color = "#00000F";
@@ -166,6 +188,12 @@
},
/turf/open/floor/plating,
/area/ship/bridge)
+"bt" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"bw" = (
/obj/machinery/light/directional/north,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -189,6 +217,18 @@
/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo/starboard)
+"bD" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"bH" = (
/turf/closed/wall,
/area/ship/maintenance/port)
@@ -224,6 +264,13 @@
/obj/item/spacecash/bundle/c100,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"bP" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo/starboard)
"bQ" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -234,6 +281,12 @@
/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
+"bR" = (
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
"bU" = (
/turf/closed/wall,
/area/ship/bridge)
@@ -242,13 +295,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/external)
-"ch" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"cj" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -262,6 +308,16 @@
dir = 1
},
/area/ship/maintenance/starboard)
+"cs" = (
+/obj/effect/spawner/random/maintenance,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/button/ignition/incinerator/atmos{
+ dir = 4;
+ pixel_x = -23;
+ pixel_y = -3
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engine)
"cv" = (
/obj/machinery/igniter/incinerator_atmos,
/obj/effect/decal/cleanable/dirt,
@@ -295,6 +351,7 @@
/obj/item/pen/fourcolor,
/obj/item/folder/blue,
/obj/item/megaphone,
+/obj/item/stamp/nanotrasen,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
"cG" = (
@@ -318,12 +375,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
-"cP" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"cX" = (
/obj/machinery/door/airlock/mining{
name = "Starboard Cargo Bay"
@@ -356,11 +407,6 @@
"dl" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/fore)
-"dp" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"dq" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -434,13 +480,11 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
-"ej" = (
-/obj/effect/spawner/lootdrop/salvage_50,
+"eg" = (
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/borderfloor,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/plasteel,
-/area/ship/hallway/aft)
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/engineering/engine)
"ek" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -558,11 +602,12 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull,
/area/ship/external)
-"eQ" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt,
+"eZ" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 6
+ },
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"fb" = (
@@ -656,15 +701,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/atmospherics)
-"ga" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/structure/curtain/bounty,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
"ge" = (
/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{
dir = 9
@@ -675,16 +711,6 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
-"gf" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/port)
"gg" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -695,30 +721,19 @@
},
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/port)
-"gh" = (
-/obj/effect/spawner/lootdrop/salvage_50,
+"gi" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-4"
},
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
"gr" = (
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
-"gw" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
"gB" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -769,18 +784,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/engine/hull,
/area/ship/external)
-"gQ" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"gS" = (
/turf/closed/wall/mineral/titanium,
/area/ship/bridge)
@@ -795,6 +798,14 @@
/obj/effect/decal/fakelattice,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/engineering/engine)
+"ho" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"hs" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
name = "Engine Oxygen Input 1"
@@ -813,11 +824,11 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
-"hA" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/port)
+"hI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
"hL" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -827,6 +838,26 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
+"hP" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
+"hQ" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"hT" = (
/obj/effect/decal/fakelattice,
/obj/machinery/power/smes/engineering,
@@ -855,6 +886,11 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"ia" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"if" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/industrial/warning{
@@ -891,25 +927,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
-"iH" = (
-/obj/machinery/air_sensor/atmos/incinerator_tank{
- id_tag = "gecko_burn_sensor"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
- dir = 4;
- filter_types = list("n2","co2","bz","water_vapor","miasma","freon","pluox","tritium","n20","no2","nob");
- id_tag = "incinerator_out"
- },
-/turf/open/floor/engine/airless,
-/area/ship/engineering/engine)
-"iJ" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/starboard)
"iK" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -927,14 +944,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
-"iT" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
"iZ" = (
/obj/item/radio/intercom/wideband/directional/south,
/obj/structure/table/reinforced,
@@ -942,14 +951,6 @@
/obj/item/megaphone/command,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
-"jc" = (
-/obj/structure/table/reinforced,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
"jd" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -1142,17 +1143,21 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
-"lb" = (
-/obj/structure/bed,
-/obj/item/bedsheet/dorms,
-/obj/structure/curtain/bounty,
-/turf/open/floor/plasteel/grimy,
-/area/ship/crew)
-"lE" = (
-/obj/effect/turf_decal/box/corners,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
+"lg" = (
+/obj/machinery/air_sensor/atmos/incinerator_tank{
+ id_tag = "gecko_burn_sensor"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{
+ dir = 4;
+ filter_types = list("n2","co2","bz","water_vapor","miasma","freon","tritium","n20");
+ id_tag = "incinerator_out"
+ },
+/turf/open/floor/engine/airless,
+/area/ship/engineering/engine)
"lM" = (
/obj/effect/turf_decal/box/corners{
dir = 4
@@ -1161,6 +1166,12 @@
/obj/structure/ore_box,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
+"lN" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel,
+/area/ship/cargo/starboard)
"lS" = (
/obj/structure/tank_dispenser/oxygen,
/obj/structure/sign/warning/vacuum/external{
@@ -1174,14 +1185,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
-"lT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
"lU" = (
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable{
@@ -1217,11 +1220,6 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/port)
-"mb" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
"mm" = (
/obj/machinery/door/poddoor/shutters{
id = "gecko_port"
@@ -1289,6 +1287,10 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
+"mP" = (
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"mS" = (
/obj/machinery/atmospherics/pipe/simple/green/hidden{
dir = 10
@@ -1327,6 +1329,15 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
+"nn" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/structure/curtain/bounty,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"nq" = (
/obj/machinery/atmospherics/components/unary/portables_connector/layer2{
dir = 8
@@ -1398,32 +1409,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/central)
-"oJ" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"oM" = (
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 5;
- pixel_y = -25
- },
-/obj/item/reagent_containers/food/snacks/canned/beans,
-/obj/item/reagent_containers/food/snacks/canned/beans,
-/obj/item/reagent_containers/food/snacks/canned/beans,
-/obj/item/reagent_containers/food/snacks/canned/beans,
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/turf/open/floor/plasteel/patterned,
-/area/ship/storage)
"oR" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -1469,6 +1454,17 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"po" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/port)
"pr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
@@ -1484,6 +1480,14 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
+"pv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
"pD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
@@ -1510,6 +1514,15 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"pL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/airalarm/directional/south,
+/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/cargo/port)
"pO" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
@@ -1554,6 +1567,14 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"pY" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"qb" = (
/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{
dir = 8
@@ -1577,20 +1598,14 @@
/obj/machinery/firealarm/directional/west,
/turf/open/floor/plasteel/patterned,
/area/ship/storage)
-"qn" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/light_switch{
- dir = 4;
- pixel_y = 12;
- pixel_x = -20
+"qe" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"qp" = (
/obj/machinery/door/airlock/maintenance_hatch,
/obj/structure/cable{
@@ -1603,11 +1618,6 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/port)
-"qu" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"qv" = (
/obj/effect/turf_decal/borderfloor,
/obj/machinery/status_display/shuttle{
@@ -1618,6 +1628,18 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
+"qx" = (
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/starboard)
"qB" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -1673,28 +1695,12 @@
/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/head/hardhat/white,
/obj/item/clothing/suit/hazardvest,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
-"qO" = (
-/turf/closed/wall/mineral/titanium,
-/area/ship/maintenance/fore)
-"qT" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
-"qY" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
- dir = 6
- },
-/turf/open/floor/plating,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"qO" = (
+/turf/closed/wall/mineral/titanium,
/area/ship/maintenance/fore)
"rd" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -1814,6 +1820,25 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
+"rQ" = (
+/obj/machinery/atmospherics/pipe/simple/green/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{
+ dir = 9
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/engineering/engine)
"rU" = (
/obj/effect/turf_decal/industrial/warning/fulltile,
/obj/effect/decal/cleanable/dirt,
@@ -1822,6 +1847,16 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/central)
+"rY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plasteel/stairs{
+ dir = 1
+ },
+/area/ship/maintenance/starboard)
"sg" = (
/obj/machinery/door/airlock/mining{
frequency = 1331;
@@ -1871,6 +1906,20 @@
/obj/effect/turf_decal/industrial/warning/fulltile,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo/port)
+"sB" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = 12;
+ pixel_x = -20
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"sJ" = (
/obj/machinery/atmospherics/pipe/simple/green/visible,
/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5{
@@ -1942,6 +1991,14 @@
},
/turf/open/floor/plating,
/area/ship/bridge)
+"tf" = (
+/obj/machinery/light/directional/north,
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/hallway/aft)
"tB" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/port)
@@ -1950,20 +2007,6 @@
/obj/machinery/recharger,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
-"tN" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
"tQ" = (
/obj/machinery/light/directional/west,
/obj/effect/turf_decal/industrial/warning,
@@ -2073,15 +2116,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/fore)
-"uP" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/light/small/directional/south,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"uW" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt,
@@ -2112,10 +2146,11 @@
/obj/item/storage/box/bodybags,
/turf/open/floor/plasteel/patterned,
/area/ship/storage)
-"vi" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
+"vd" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel,
+/area/ship/cargo/port)
"vl" = (
/obj/effect/turf_decal/number/five{
dir = 4
@@ -2157,14 +2192,6 @@
},
/turf/open/floor/plastic,
/area/ship/crew/toilet)
-"vG" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel,
-/area/ship/hallway/aft)
"vJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -2266,11 +2293,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/communications)
-"wP" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel,
-/area/ship/cargo/port)
"wR" = (
/obj/machinery/light/directional/north,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
@@ -2293,12 +2315,6 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
-"xd" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
"xh" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -2334,12 +2350,34 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/port)
-"xG" = (
-/obj/item/radio/intercom/directional/north,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/turf/open/floor/plasteel,
-/area/ship/cargo/port)
+"xw" = (
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 5;
+ pixel_y = -25
+ },
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/structure/closet/crate,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"xy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/ship/maintenance/port)
"xJ" = (
/obj/effect/spawner/structure/window/shutters,
/turf/open/floor/plating,
@@ -2392,16 +2430,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/fore)
-"ye" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plasteel/stairs{
- dir = 1
- },
-/area/ship/maintenance/starboard)
"yj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -2430,6 +2458,18 @@
dir = 4
},
/area/ship/storage)
+"yr" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"yw" = (
/obj/machinery/door/airlock/maintenance_hatch{
dir = 4
@@ -2449,13 +2489,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/maintenance/fore)
-"yD" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plasteel/stairs,
-/area/ship/maintenance/port)
"yG" = (
/obj/effect/turf_decal/siding/white,
/obj/effect/turf_decal/siding/white{
@@ -2466,6 +2499,13 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew)
+"yI" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"yM" = (
/obj/machinery/light/small/directional/south,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -2474,6 +2514,15 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plastic,
/area/ship/crew/toilet)
+"yO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/maintenance/starboard)
"yQ" = (
/obj/effect/turf_decal/industrial/warning,
/obj/effect/decal/cleanable/dirt,
@@ -2523,12 +2572,8 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/engineering/communications)
-"zv" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/ntspaceworks_big/six{
- dir = 4
- },
+"zs" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating,
/area/ship/engineering/engine)
"zE" = (
@@ -2600,6 +2645,19 @@
/obj/machinery/atmospherics/pipe/simple/green/hidden,
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"Af" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"Ar" = (
+/obj/item/radio/intercom/directional/north,
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel,
+/area/ship/cargo/port)
"As" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -2636,11 +2694,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
-"AD" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"AG" = (
/obj/machinery/atmospherics/pipe/manifold/cyan{
dir = 4
@@ -2681,12 +2734,6 @@
},
/turf/open/floor/plasteel/patterned,
/area/ship/cargo/starboard)
-"AN" = (
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel,
-/area/ship/cargo/starboard)
"AW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -2709,6 +2756,13 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"Bk" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"BB" = (
/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
@@ -2728,13 +2782,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
-"BM" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/ship/cargo/starboard)
"BP" = (
/obj/effect/turf_decal/industrial/loading{
dir = 1
@@ -2747,29 +2794,6 @@
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/fore)
-"BV" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/port)
-"Cc" = (
-/obj/machinery/light/directional/west,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/starboard)
"Ce" = (
/obj/effect/turf_decal/industrial/fire{
dir = 8
@@ -2835,6 +2859,11 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"CC" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"CE" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
@@ -2930,6 +2959,11 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"Di" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/starboard)
"Du" = (
/obj/machinery/firealarm/directional/south,
/obj/effect/decal/cleanable/dirt,
@@ -2948,6 +2982,14 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
+"DI" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel,
+/area/ship/hallway/aft)
"DQ" = (
/obj/machinery/door/poddoor/shutters{
id = "gecko_starboard"
@@ -3029,6 +3071,12 @@
},
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/fore)
+"Ex" = (
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel,
+/area/ship/cargo/starboard)
"EA" = (
/obj/machinery/light/directional/south,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -3076,12 +3124,18 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/aft)
-"EK" = (
+"EL" = (
/obj/effect/turf_decal/box/corners{
- dir = 8
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
},
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/starboard)
"EM" = (
@@ -3224,6 +3278,14 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"GK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"GM" = (
/obj/machinery/atmospherics/components/unary/tank/toxins{
dir = 4
@@ -3343,18 +3405,18 @@
/obj/machinery/modular_computer/console/preset/id,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
-"HK" = (
-/obj/machinery/light/directional/north,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/effect/turf_decal/borderfloor{
- dir = 1
+"HA" = (
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/starboard)
+"HQ" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/ntspaceworks_big/six{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/ship/hallway/aft)
-"HN" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
+/turf/open/floor/plating,
+/area/ship/engineering/engine)
"HT" = (
/obj/machinery/light/small/directional/north,
/obj/structure/cable{
@@ -3378,6 +3440,13 @@
},
/turf/open/floor/plasteel,
/area/ship/hallway/central)
+"Ie" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/floor/plasteel/stairs,
+/area/ship/maintenance/port)
"Ig" = (
/obj/machinery/light/directional/north,
/obj/structure/closet/secure_closet{
@@ -3431,15 +3500,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/aft)
-"In" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"Is" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -3527,6 +3587,19 @@
"Jc" = (
/turf/closed/wall,
/area/ship/maintenance/fore)
+"Ji" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"Jj" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -3540,12 +3613,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
-"Jk" = (
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel,
-/area/ship/cargo/starboard)
"Jn" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/siding/white{
@@ -3564,13 +3631,6 @@
/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/floor/plasteel,
/area/ship/hallway/fore)
-"JD" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"JL" = (
/obj/structure/closet/firecloset/full,
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -3627,6 +3687,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/port)
+"Km" = (
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/ship/maintenance/starboard)
"Ko" = (
/obj/structure/table/reinforced,
/obj/machinery/microwave,
@@ -3698,6 +3763,24 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"Le" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/port)
+"Ln" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Lo" = (
/turf/closed/wall,
/area/ship/cargo/starboard)
@@ -3723,25 +3806,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
-"LH" = (
-/obj/machinery/atmospherics/pipe/simple/green/hidden{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{
- dir = 9
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
"LK" = (
/obj/machinery/cryopod{
dir = 4
@@ -3755,6 +3819,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/starboard)
+"LP" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"LU" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -3767,17 +3839,6 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
-"LY" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"LZ" = (
/obj/effect/turf_decal/borderfloor,
/turf/open/floor/plasteel,
@@ -3852,6 +3913,32 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/aft)
+"MJ" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/borderfloor,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/hallway/aft)
+"MR" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
+"MW" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/starboard)
+"MY" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/starboard)
"Nq" = (
/obj/machinery/firealarm/directional/north,
/obj/effect/turf_decal/borderfloor{
@@ -3873,11 +3960,6 @@
/obj/effect/turf_decal/borderfloor,
/turf/open/floor/plasteel,
/area/ship/hallway/aft)
-"Nz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
"NC" = (
/obj/machinery/door/poddoor/shutters{
id = "gecko_starboard"
@@ -3899,6 +3981,11 @@
"NP" = (
/turf/open/floor/plating,
/area/ship/maintenance/fore)
+"NX" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/port)
"Oe" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/industrial/outline/yellow,
@@ -3908,6 +3995,13 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/port)
+"Oh" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Om" = (
/obj/machinery/atmospherics/components/unary/tank/oxygen{
dir = 8
@@ -3926,6 +4020,15 @@
/obj/machinery/atmospherics/pipe/simple/supplymain/visible/layer2,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
+"Os" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Ov" = (
/obj/machinery/door/airlock/maintenance_hatch,
/obj/structure/cable{
@@ -3938,18 +4041,6 @@
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/maintenance/fore)
-"Ow" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/starboard)
"OB" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
@@ -3968,11 +4059,14 @@
},
/turf/open/floor/engine/hull/reinforced,
/area/ship/external)
-"OZ" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
+"OV" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/spawner/random/salvage/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/port)
"Pc" = (
/obj/effect/spawner/structure/window/shutters,
/turf/open/floor/plating,
@@ -4076,14 +4170,17 @@
"PF" = (
/turf/closed/wall,
/area/ship/engineering/engine)
-"PG" = (
+"PM" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/fore)
+/area/ship/maintenance/starboard)
"PQ" = (
/obj/machinery/light/directional/east,
/obj/structure/chair/comfy/shuttle{
@@ -4156,13 +4253,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
-"Qv" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
"Qz" = (
/obj/machinery/door/airlock/command{
name = "Communications"
@@ -4211,6 +4301,13 @@
},
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"QM" = (
+/obj/effect/spawner/random/salvage/half,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"QY" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -4239,14 +4336,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/storage)
-"Rc" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/starboard)
"Rh" = (
/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{
dir = 8
@@ -4315,15 +4404,6 @@
},
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
-"Sa" = (
-/obj/machinery/light/directional/east,
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/starboard)
"Se" = (
/obj/structure/chair/comfy/shuttle,
/obj/effect/landmark/start/assistant,
@@ -4333,16 +4413,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
-"Sj" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel,
-/area/ship/hallway/aft)
"Sl" = (
/obj/structure/cable/yellow{
icon_state = "0-8"
@@ -4378,14 +4448,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
-"Sy" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
"SE" = (
/obj/machinery/door/airlock/mining{
frequency = 1331;
@@ -4399,15 +4461,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo/port)
-"SK" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/airalarm/directional/south,
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/ship/cargo/port)
"SM" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -4415,10 +4468,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
-"SQ" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
"SV" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
@@ -4477,18 +4526,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
-"Th" = (
-/obj/effect/turf_decal/box/corners{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
"Tl" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -4502,6 +4539,10 @@
/obj/effect/turf_decal/industrial/warning,
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/aft)
+"Tn" = (
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Tq" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -4523,14 +4564,6 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/hallway/central)
-"TF" = (
-/obj/effect/turf_decal/box/corners{
- dir = 1
- },
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
"TK" = (
/obj/machinery/atmospherics/components/unary/tank/toxins{
dir = 4
@@ -4541,6 +4574,11 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/plating,
/area/ship/engineering/engine)
+"TU" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Ug" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/engineering/engine)
@@ -4570,19 +4608,6 @@
/obj/structure/sign/nanotrasen,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/central)
-"UC" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
"UI" = (
/obj/machinery/door/poddoor/shutters{
id = "gecko_starboard"
@@ -4638,14 +4663,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/central)
-"UV" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
"UW" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
dir = 4
@@ -4699,14 +4716,12 @@
},
/turf/open/floor/plasteel,
/area/ship/cargo/starboard)
-"Vw" = (
-/obj/effect/turf_decal/box/corners{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/lootdrop/salvage_50,
-/turf/open/floor/plasteel/patterned/cargo_one,
-/area/ship/cargo/port)
+"Vv" = (
+/obj/structure/bed,
+/obj/effect/spawner/random/bedsheet,
+/obj/structure/curtain/bounty,
+/turf/open/floor/plasteel/grimy,
+/area/ship/crew)
"Vz" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
@@ -4843,11 +4858,6 @@
},
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo/port)
-"Wo" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
"Wq" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -4931,6 +4941,11 @@
/obj/machinery/atmospherics/pipe/simple/supplymain/visible/layer2,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/atmospherics)
+"WY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/salvage/half,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo/starboard)
"Xh" = (
/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{
dir = 8
@@ -5001,6 +5016,18 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering/engine)
+"XG" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/effect/spawner/random/salvage/half,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/starboard)
"XN" = (
/obj/structure/sign/number/four{
color = "#00000F";
@@ -5102,17 +5129,6 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/fore)
-"YG" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/sign/warning/electricshock{
- pixel_y = -32
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
"YH" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -5247,16 +5263,6 @@
},
/turf/open/floor/plasteel/patterned/grid,
/area/ship/hallway/fore)
-"ZS" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/machinery/button/ignition/incinerator/atmos{
- dir = 4;
- pixel_x = -23;
- pixel_y = -3
- },
-/turf/open/floor/plating,
-/area/ship/engineering/engine)
"ZX" = (
/obj/structure/table,
/obj/effect/turf_decal/techfloor{
@@ -5264,11 +5270,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew)
-"ZY" = (
-/obj/effect/spawner/lootdrop/salvage_50,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plasteel/patterned,
-/area/ship/cargo/starboard)
(1,1,1) = {"
hu
@@ -5341,7 +5342,7 @@ Ug
Iv
Ug
Ug
-iH
+lg
cv
VT
Ug
@@ -5394,11 +5395,11 @@ hu
hu
hu
Ug
-OZ
+eg
Ml
Tb
Tb
-ZS
+cs
WN
Sv
uz
@@ -5455,13 +5456,13 @@ Ug
Iz
DS
sS
-zv
+HQ
yc
nH
UP
hX
Cj
-SQ
+zs
QD
kL
Hg
@@ -5520,7 +5521,7 @@ kZ
aK
oT
zZ
-LH
+rQ
wV
wB
wB
@@ -5534,11 +5535,11 @@ wB
(10,1,1) = {"
tB
dq
-YG
+xy
tB
tB
tB
-UV
+gi
qp
jd
zM
@@ -5552,11 +5553,11 @@ YH
CN
pH
Ze
-In
+yO
wB
wB
wB
-LY
+PM
iK
wB
"}
@@ -5566,7 +5567,7 @@ hL
qB
fK
fK
-yD
+Ie
As
bH
re
@@ -5583,15 +5584,15 @@ re
Au
HT
cr
-ye
+rY
cr
CQ
-uP
+MY
wB
"}
(12,1,1) = {"
tB
-Wo
+hI
VC
tB
tB
@@ -5620,12 +5621,12 @@ wB
"}
(13,1,1) = {"
tB
-xd
+bR
Sx
tB
hu
tB
-iT
+pv
bH
Oe
zI
@@ -5639,12 +5640,12 @@ xm
QY
ef
Au
-Sy
+ad
wB
hu
wB
-AD
-dp
+Km
+Di
wB
"}
(14,1,1) = {"
@@ -5656,17 +5657,17 @@ hu
Vq
GN
Lo
-xG
+Ar
lZ
-wP
+vd
re
Im
Rh
aq
re
-Jk
+lN
Vr
-AN
+Ex
Lo
vy
Vq
@@ -5687,7 +5688,7 @@ Lo
Lo
xr
Zb
-SK
+pL
PF
Iy
Yf
@@ -5695,7 +5696,7 @@ PF
PF
Dw
LU
-BM
+bP
Lo
Lo
Vq
@@ -5714,18 +5715,18 @@ hu
tQ
zS
gF
-qT
-Th
+qe
+hQ
Gj
Kc
fn
EE
-ej
+MJ
yX
cj
-gw
-EK
-Cc
+bD
+LP
+qx
DQ
eI
hu
@@ -5743,8 +5744,8 @@ hu
IQ
dC
kr
-lT
-UC
+GK
+Ji
Qg
sg
Vm
@@ -5753,7 +5754,7 @@ QC
cX
fD
XY
-gh
+QM
AM
UI
oR
@@ -5771,18 +5772,18 @@ hu
hu
uW
dC
-BV
-Vw
+po
+ho
Wj
Du
kq
-Sj
+aE
bb
ov
uv
-ZY
+MW
oW
-lE
+CC
eE
NC
oR
@@ -5802,7 +5803,7 @@ ae
dC
gg
jO
-gf
+Le
df
EB
Is
@@ -5812,7 +5813,7 @@ Pg
BP
Vn
vL
-Ow
+XG
NC
vS
zQ
@@ -5830,17 +5831,17 @@ hu
uW
sy
Eh
-TF
+OV
mX
Iu
VE
-HK
+tf
bb
mN
Lo
wR
-tN
-Rc
+EL
+pY
ih
UI
Xs
@@ -5859,8 +5860,8 @@ hu
IQ
mm
gg
-HN
-Nz
+mP
+ia
sj
SE
Ct
@@ -5868,8 +5869,8 @@ VU
Tl
GZ
Ek
-mb
-mb
+WY
+WY
yQ
NC
Xs
@@ -5890,16 +5891,16 @@ up
if
lM
oi
-hA
+NX
Kc
-vG
+DI
IK
Nu
yX
-iJ
-Qv
+HA
+yI
tU
-Sa
+be
bB
Qp
hu
@@ -5987,7 +5988,7 @@ GR
Ba
hy
Jc
-cP
+bt
dl
hu
hu
@@ -6014,7 +6015,7 @@ KA
jC
Gm
zE
-lb
+Vv
Jc
CE
dl
@@ -6043,7 +6044,7 @@ KH
jC
wh
yG
-lb
+Vv
jC
lU
eC
@@ -6060,11 +6061,11 @@ hu
hu
dl
aD
-gQ
+yr
Ov
vc
qc
-oM
+xw
WT
pu
yd
@@ -6072,10 +6073,10 @@ WJ
jC
Se
YR
-ga
+nn
Jc
Ho
-qu
+TU
dl
hu
hu
@@ -6103,7 +6104,7 @@ rF
Hc
Ru
Jc
-PG
+Ln
dl
qO
hu
@@ -6129,7 +6130,7 @@ rd
LZ
jC
Ko
-jc
+hP
ro
Jc
ms
@@ -6161,7 +6162,7 @@ vv
vv
vv
Jc
-PG
+Ln
dl
hu
hu
@@ -6190,7 +6191,7 @@ vz
Kv
eD
Jc
-PG
+Ln
dl
hu
hu
@@ -6205,7 +6206,7 @@ hu
hu
qO
dl
-ch
+Bk
Jc
XR
pD
@@ -6262,7 +6263,7 @@ hu
hu
hu
dl
-bh
+MR
nP
Jc
ZB
@@ -6278,7 +6279,7 @@ fS
fS
Jc
Yv
-oJ
+Os
dl
hu
hu
@@ -6321,7 +6322,7 @@ hu
KQ
hu
ze
-PG
+Ln
Jc
qL
ku
@@ -6393,7 +6394,7 @@ gB
yw
Jc
Jc
-PG
+Ln
EO
hu
hu
@@ -6408,7 +6409,7 @@ hu
Qc
hu
bk
-eQ
+Oh
bU
rM
Zr
@@ -6420,7 +6421,7 @@ Mn
dd
Dv
gE
-qn
+sB
cL
GT
ez
@@ -6450,7 +6451,7 @@ ek
FQ
Wq
rs
-JD
+Af
qO
qO
hu
@@ -6473,7 +6474,7 @@ EQ
qv
bU
bs
-vi
+Tn
NP
UK
NP
@@ -6530,7 +6531,7 @@ YM
JX
iZ
bU
-qY
+eZ
AG
kC
Vz
@@ -6562,7 +6563,7 @@ rh
CL
gr
Om
-vi
+Tn
Cv
gr
Om
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
index 9e5d93f7af77..9d173ba8dbc2 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
@@ -598,12 +598,12 @@
/obj/item/paper_bin{
pixel_x = -6
},
-/obj/item/stamp/captain{
- pixel_x = 6
- },
/obj/item/pen/fountain/captain{
pixel_x = -6
},
+/obj/item/stamp/nanotrasen/captain{
+ pixel_x = 6
+ },
/turf/open/floor/carpet/royalblue,
/area/ship/bridge)
"dA" = (
@@ -1370,11 +1370,11 @@
/obj/structure/closet/crate{
name = "food crate"
},
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/storage/cans/sixbeer,
/obj/machinery/light/directional/west,
/turf/open/floor/plasteel/patterned,
@@ -1916,6 +1916,8 @@
dir = 8
},
/obj/machinery/light/small/directional/south,
+/obj/item/clothing/mask/gas/vigilitas,
+/obj/item/clothing/mask/gas/vigilitas,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"kn" = (
@@ -2124,7 +2126,7 @@
/obj/structure/disposalpipe/sorting/mail{
dir = 2;
sortType = 1;
- sortTypes = list(1, 22);
+ sortTypes = list(1,22);
tag = "Disposals"
},
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{
@@ -2151,7 +2153,7 @@
/obj/structure/extinguisher_cabinet/directional/north,
/obj/structure/disposalpipe/sorting/mail/flip{
dir = 8;
- sortTypes = list(4, 5);
+ sortTypes = list(4,5);
tag = "Engineering"
},
/turf/open/floor/plasteel,
@@ -2295,9 +2297,9 @@
/area/ship/engineering/engine)
"mG" = (
/obj/structure/table/glass,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -3;
- pixel_y = 13
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 2
},
/obj/machinery/defibrillator_mount/loaded{
pixel_y = -25
@@ -3098,7 +3100,7 @@
/obj/machinery/door/airlock/command{
dir = 4;
name = "Bridge";
- req_access = list(19, 41)
+ req_access = list(19,41)
},
/obj/structure/cable{
icon_state = "4-8"
@@ -3172,7 +3174,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/disposalpipe/sorting/mail/flip{
dir = 8;
- sortTypes = list(7, 8);
+ sortTypes = list(7,8);
tag = "Security"
},
/obj/effect/turf_decal/trimline/opaque/vired/line,
@@ -3297,9 +3299,6 @@
/obj/structure/table,
/obj/item/paper_bin,
/obj/item/folder/yellow,
-/obj/item/stamp/denied{
- pixel_x = 4
- },
/obj/item/stamp{
pixel_x = -5;
pixel_y = 9
@@ -3321,6 +3320,13 @@
/obj/effect/turf_decal/trimline/opaque/nsorange/line{
dir = 8
},
+/obj/item/stamp/nanotrasen/ns{
+ pixel_y = 8;
+ pixel_x = 8
+ },
+/obj/item/stamp/denied{
+ pixel_x = 4
+ },
/turf/open/floor/plasteel,
/area/ship/cargo)
"tI" = (
@@ -4933,6 +4939,10 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
+/obj/item/stamp/nanotrasen{
+ pixel_x = -12;
+ pixel_y = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Bs" = (
@@ -5012,7 +5022,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"BO" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line,
/turf/open/floor/plasteel,
/area/ship/hallway/central)
@@ -5189,9 +5199,9 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/ammo_box/magazine/co9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm/rubbershot,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
/obj/effect/turf_decal/trimline/opaque/vired/line,
/obj/item/storage/belt/security,
/obj/item/melee/knife/survival,
@@ -5865,6 +5875,7 @@
populate = 0
},
/obj/item/stack/tape,
+/obj/item/stamp/nanotrasen/ns/supply,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"Gy" = (
@@ -5997,6 +6008,7 @@
/obj/effect/turf_decal/trimline/opaque/vired/line{
dir = 1
},
+/obj/item/folder/red,
/turf/open/floor/plasteel/dark,
/area/ship/security)
"Hq" = (
@@ -6190,6 +6202,10 @@
pixel_x = -8;
pixel_y = 8
},
+/obj/item/stamp/nanotrasen{
+ pixel_x = 6;
+ pixel_y = 2
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"IM" = (
@@ -7448,7 +7464,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/hallway/central)
"OD" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line,
/turf/open/floor/plasteel,
@@ -8867,7 +8883,10 @@
/area/ship/bridge)
"VY" = (
/obj/structure/table/wood/reinforced,
-/obj/item/paper_bin,
+/obj/item/paper_bin{
+ pixel_x = -5;
+ pixel_y = 5
+ },
/obj/item/pen/fountain,
/obj/machinery/light_switch{
dir = 1;
@@ -8877,7 +8896,14 @@
/obj/machinery/camera{
dir = 10
},
-/obj/item/stamp/centcom,
+/obj/item/stamp/nanotrasen{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/stamp/nanotrasen/central{
+ pixel_x = 8;
+ pixel_y = 4
+ },
/turf/open/floor/carpet/executive,
/area/ship/crew/law_office)
"VZ" = (
@@ -8885,13 +8911,12 @@
/obj/item/paper_bin{
pixel_x = -6
},
-/obj/item/stamp/head_of_personnel{
- name = "first officer's rubber stamp";
- pixel_x = 6
- },
/obj/item/pen/fourcolor{
pixel_x = -6
},
+/obj/item/stamp/nanotrasen/officer{
+ pixel_x = 6
+ },
/turf/open/floor/carpet/blue,
/area/ship/bridge)
"Wa" = (
@@ -9377,8 +9402,9 @@
/obj/item/paper_bin{
pixel_x = 8
},
-/obj/item/folder/red{
- pixel_x = 8
+/obj/item/stamp/nanotrasen/vigilitas{
+ pixel_x = 8;
+ pixel_y = 3
},
/obj/machinery/recharger{
pixel_x = -6
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
index a5673c22d7bc..9c552619a45b 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm
@@ -1,6 +1,6 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
-/obj/effect/spawner/lootdrop/salvage_50,
+/obj/effect/spawner/random/salvage/half,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
@@ -807,7 +807,7 @@
/area/ship/science/robotics)
"dq" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 10
},
@@ -1037,7 +1037,7 @@
/obj/item/gun/energy/e_gun/smg{
pixel_y = 2
},
-/obj/item/gun/ballistic/shotgun/automatic/combat{
+/obj/item/gun/ballistic/shotgun/automatic/m11{
pixel_y = -3
},
/obj/structure/rack,
@@ -1527,7 +1527,7 @@
pixel_x = 10;
pixel_y = 5
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/clothing/gloves/color/latex,
/obj/structure/railing{
dir = 2;
@@ -1547,6 +1547,10 @@
pixel_y = -1
},
/obj/machinery/firealarm/directional/south,
+/obj/item/stamp/nanotrasen{
+ pixel_y = 11;
+ pixel_x = -6
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"gz" = (
@@ -1740,10 +1744,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"hn" = (
-/obj/effect/spawner/lootdrop/glowstick{
- pixel_x = 5;
- pixel_y = 9
- },
+/obj/effect/spawner/random/decoration/glowstick,
/obj/effect/decal/cleanable/plastic,
/obj/machinery/atmospherics/pipe/simple/purple/hidden,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -1889,7 +1890,7 @@
/area/ship/crew/dorm/dormtwo)
"hM" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 6
},
@@ -2452,7 +2453,7 @@
/obj/effect/turf_decal/trimline/opaque/blue/line{
dir = 9
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/west,
/obj/machinery/light_switch{
pixel_y = 22;
@@ -2586,7 +2587,7 @@
/obj/item/clothing/accessory/medal/gold/heroism,
/obj/item/clothing/accessory/holster/detective,
/obj/item/clothing/mask/bandana/skull,
-/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/gas/vigilitas,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/steeldecal/steel_decals10,
/obj/effect/turf_decal/steeldecal/steel_decals10{
@@ -3061,9 +3062,9 @@
pixel_x = -5;
pixel_y = 3
},
-/obj/item/stamp/qm{
- pixel_x = 8;
- pixel_y = 9
+/obj/item/stamp/nanotrasen{
+ pixel_y = 9;
+ pixel_x = 8
},
/obj/item/stamp{
pixel_x = 8;
@@ -3375,13 +3376,13 @@
"mt" = (
/obj/structure/window/reinforced/spawner,
/obj/structure/rack,
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
pixel_y = 3
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
pixel_y = -2
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto{
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
pixel_y = -7
},
/turf/open/floor/plasteel/tech,
@@ -4835,7 +4836,7 @@
/area/ship/medical)
"sr" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 9
},
@@ -6163,14 +6164,14 @@
/area/ship/bridge)
"wq" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/corner_techfloor_gray/diagonal{
dir = 8
},
/obj/effect/turf_decal/industrial/warning{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/spawner/random/maintenance/five,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -6916,9 +6917,9 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/effect/spawner/lootdrop/gloves,
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
+/obj/effect/spawner/random/maintenance,
+/obj/effect/spawner/random/clothing/gloves,
+/obj/effect/spawner/random/clothing/beret_or_rabbitears,
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -7722,7 +7723,7 @@
/area/ship/crew/canteen)
"CP" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 4
},
@@ -8902,7 +8903,7 @@
pixel_x = 6;
pixel_y = 4
},
-/obj/item/stamp/hos{
+/obj/item/stamp/nanotrasen/vigilitas/security{
pixel_y = 9;
pixel_x = -6
},
@@ -8993,7 +8994,7 @@
/obj/effect/turf_decal/trimline/opaque/beige/filled/line{
dir = 10
},
-/obj/effect/spawner/lootdrop/salvage_50,
+/obj/effect/spawner/random/salvage/half,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -9159,11 +9160,11 @@
pixel_x = -6;
pixel_y = 4
},
-/obj/item/stamp/head_of_personnel{
+/obj/item/stamp/nanotrasen/officer{
pixel_x = -6;
pixel_y = 10
},
-/obj/item/stamp/captain{
+/obj/item/stamp/nanotrasen/captain{
pixel_x = -7;
pixel_y = 4
},
@@ -9188,6 +9189,10 @@
pixel_x = -5
},
/obj/machinery/airalarm/directional/west,
+/obj/item/stamp/nanotrasen/central{
+ pixel_x = 6;
+ pixel_y = 10
+ },
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
"HP" = (
@@ -10464,7 +10469,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/official/get_your_legs{
@@ -10963,7 +10968,7 @@
/area/ship/engineering/atmospherics)
"OR" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 8
},
@@ -11575,8 +11580,8 @@
dir = 9
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ship/storage)
@@ -11813,7 +11818,7 @@
/area/ship/hangar)
"Sz" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/turf_decal/siding/wood{
dir = 5
},
@@ -11889,7 +11894,7 @@
dir = 5
},
/obj/item/toy/plush/beeplushie,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
icon_state = "0-8"
@@ -12435,7 +12440,7 @@
/obj/item/pen{
pixel_x = -6
},
-/obj/item/stamp/qm{
+/obj/item/stamp/nanotrasen/ns{
pixel_x = 6;
pixel_y = 9
},
@@ -12698,9 +12703,6 @@
/obj/item/clothing/suit/armor/vest/marine/heavy,
/obj/item/clothing/suit/armor/vest/marine/medium,
/obj/item/clothing/suit/armor/vest/marine/medium,
-/obj/item/clothing/head/helmet/marine/security,
-/obj/item/clothing/head/helmet/marine,
-/obj/item/clothing/head/helmet/marine,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/suit/armor/vest/bulletproof,
/obj/item/clothing/head/helmet/plate,
@@ -13072,22 +13074,10 @@
pixel_x = 5;
pixel_y = 4
},
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = -6
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = 1
- },
-/obj/item/ammo_box/c9mm{
- pixel_x = 4;
- pixel_y = 9
- },
-/obj/item/ammo_box/c9mm/ap{
- pixel_y = 17;
- pixel_x = 4
- },
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_ap,
/obj/item/stock_parts/cell/gun{
pixel_x = -3;
pixel_y = -5
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
index 95b61c204b54..b3f02ffdec42 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm
@@ -156,9 +156,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"ax" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/electric,
/obj/structure/cable{
icon_state = "0-4"
},
@@ -240,9 +238,9 @@
icon_state = "crateopen";
opened = 1
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/random/clothing/gloves,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"aF" = (
@@ -274,15 +272,11 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"aL" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/fueled/plasma,
/turf/open/floor/plating,
/area/ship/engineering)
"aM" = (
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/heater,
/obj/structure/window/reinforced{
dir = 8
},
@@ -576,9 +570,9 @@
dir = 4
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"bX" = (
@@ -631,9 +625,11 @@
/area/ship/crew/canteen)
"ce" = (
/obj/structure/table,
-/obj/machinery/fax,
/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/fax/nanotrasen{
+ pixel_y = 6
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"cf" = (
@@ -667,7 +663,7 @@
pixel_x = -2;
pixel_y = 6
},
-/obj/item/stamp/qm{
+/obj/item/stamp/nanotrasen/ns/captain{
pixel_x = -6
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -807,6 +803,7 @@
pixel_x = 21;
pixel_y = 12
},
+/obj/item/stamp/nanotrasen/ns,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"cz" = (
@@ -1527,9 +1524,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"fb" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/window/reinforced{
dir = 8
},
@@ -1682,7 +1677,6 @@
"jo" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 4
},
/turf/closed/wall/mineral/titanium,
@@ -1792,9 +1786,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"lC" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/window/reinforced{
dir = 8
},
@@ -2000,7 +1992,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen/kitchen)
"pF" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -2172,8 +2164,8 @@
/obj/effect/turf_decal/ntspaceworks_big/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/tool_surgery_common,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/medical/surgery_tool/common,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"uk" = (
@@ -2209,7 +2201,6 @@
"uT" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 4
},
/turf/closed/wall/mineral/titanium,
@@ -2403,7 +2394,6 @@
"yF" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 5
},
/turf/closed/wall/mineral/titanium,
@@ -2520,8 +2510,8 @@
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/effect/spawner/lootdrop/random_prosthetic,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/spawner/random/medical/prosthetic,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"Ai" = (
@@ -2683,8 +2673,9 @@
/obj/structure/rack,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/radio/intercom/directional/east,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/item/extinguisher/mini,
+/obj/item/stamp/nanotrasen/ns,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"DJ" = (
@@ -2802,6 +2793,7 @@
},
/obj/machinery/light/small/broken/directional/north,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stamp/nanotrasen/ns,
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"FR" = (
@@ -2846,7 +2838,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/spacecash/bundle/pocketchange,
/turf/open/floor/plasteel/dark,
@@ -3064,7 +3056,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/cargo)
"La" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/machinery/light/broken/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -3084,7 +3076,6 @@
"Lo" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 6
},
/turf/closed/wall/mineral/titanium,
@@ -3264,7 +3255,6 @@
dir = 4
},
/obj/docking_port/mobile{
- can_move_docking_ports = 1;
name = "Salvage Ship";
port_direction = 2;
preferred_direction = 4;
@@ -3486,7 +3476,6 @@
"TR" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 10
},
/turf/closed/wall/mineral/titanium,
@@ -3494,7 +3483,6 @@
"TV" = (
/obj/machinery/porta_turret/ship/nt/light{
id = "meta_grid";
- pixel_y = 0;
dir = 9
},
/turf/closed/wall/mineral/titanium,
@@ -3701,11 +3689,11 @@
"Zf" = (
/obj/effect/turf_decal/corner/transparent/bar/diagonal,
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 7
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = -8
},
/obj/machinery/button/door{
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
index 716d68f653a9..e3f351a29bbf 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm
@@ -50,7 +50,7 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
/turf/open/floor/plasteel/tech/grid,
@@ -876,7 +876,7 @@
/area/ship/engineering)
"fd" = (
/obj/structure/table/wood/reinforced,
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 5;
pixel_y = 5
},
@@ -908,7 +908,7 @@
pixel_x = -5;
pixel_y = -7
},
-/obj/effect/spawner/lootdrop/ration{
+/obj/effect/spawner/random/food_or_drink/ration{
pixel_x = 6;
pixel_y = 11
},
@@ -1035,7 +1035,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -1412,7 +1412,7 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"hZ" = (
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -1441,7 +1441,7 @@
/obj/structure/railing/corner{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -1931,7 +1931,7 @@
/turf/open/floor/plasteel,
/area/ship/security/prison)
"kE" = (
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/storage/belt/medical/paramedic{
pixel_y = 4
},
@@ -2092,7 +2092,7 @@
dir = 6
},
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
@@ -2117,7 +2117,7 @@
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
"lW" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -2314,20 +2314,6 @@
/obj/item/reagent_containers/food/snacks/urinalcake,
/turf/open/floor/plasteel/white,
/area/ship/crew/toilet)
-"nb" = (
-/obj/structure/table/wood,
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 8
- },
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 4
- },
-/obj/item/flashlight/lamp{
- pixel_y = 13
- },
-/obj/item/book/codex_gigas,
-/turf/open/floor/wood,
-/area/ship/crew/dorm)
"nh" = (
/turf/closed/wall/r_wall,
/area/ship/crew/dorm/dormtwo)
@@ -2344,7 +2330,7 @@
/area/ship/security/prison)
"nk" = (
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -2759,12 +2745,12 @@
/area/ship/engineering/electrical)
"pV" = (
/obj/structure/railing,
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"pY" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -2804,32 +2790,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/ship/crew/hydroponics)
-"qe" = (
-/obj/structure/closet/secure_closet/freezer{
- name = "Refrigerator";
- desc = "A refrigerated cabinet for food."
- },
-/obj/effect/turf_decal/siding/wideplating/light/end{
- dir = 4
- },
-/obj/item/storage/fancy/egg_box,
-/obj/item/storage/fancy/egg_box,
-/obj/item/reagent_containers/condiment/milk,
-/obj/item/reagent_containers/condiment/milk,
-/obj/item/reagent_containers/condiment/milk,
-/obj/item/reagent_containers/condiment/soymilk,
-/obj/item/reagent_containers/condiment/soymilk,
-/obj/item/reagent_containers/condiment/soymilk,
-/obj/item/reagent_containers/condiment/flour,
-/obj/item/reagent_containers/condiment/flour,
-/obj/item/reagent_containers/condiment/flour,
-/obj/item/reagent_containers/condiment/sugar,
-/obj/item/reagent_containers/condiment/sugar,
-/obj/item/reagent_containers/condiment/rice,
-/obj/item/reagent_containers/food/snacks/tofu,
-/obj/item/reagent_containers/food/snacks/tofu,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/crew/canteen/kitchen)
"qh" = (
/obj/machinery/hydroponics/constructable{
pixel_y = 8
@@ -2996,7 +2956,7 @@
/obj/structure/railing{
dir = 9
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -3298,7 +3258,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
@@ -3361,7 +3321,7 @@
icon_state = "5-8"
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange,
@@ -3876,27 +3836,6 @@
/obj/structure/table,
/turf/open/floor/plasteel,
/area/ship/crew/canteen/kitchen)
-"xb" = (
-/obj/structure/table,
-/obj/item/reagent_containers/condiment/sugar{
- pixel_y = 4
- },
-/obj/item/reagent_containers/condiment/rice{
- pixel_y = 10;
- pixel_x = 3
- },
-/obj/item/reagent_containers/condiment/enzyme{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/turf/open/floor/plasteel/mono/white,
-/area/ship/crew/canteen/kitchen)
"xc" = (
/obj/effect/turf_decal/siding/wood/end{
dir = 8
@@ -4100,10 +4039,6 @@
"ys" = (
/turf/closed/wall/r_wall,
/area/ship/crew/dorm)
-"yu" = (
-/obj/item/clothing/mask/gas/monkeymask,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"yw" = (
/obj/effect/decal/cleanable/food/tomato_smudge,
/obj/effect/turf_decal/siding/wood{
@@ -4460,21 +4395,6 @@
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
-"AH" = (
-/obj/structure/table,
-/obj/item/toy/figure/chef,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/item/reagent_containers/condiment/saltshaker{
- pixel_y = 10;
- pixel_x = -7
- },
-/obj/item/reagent_containers/condiment/peppermill{
- pixel_x = 8;
- pixel_y = 9
- },
-/turf/open/floor/plasteel/mono/white,
-/area/ship/crew/canteen/kitchen)
"AI" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{
dir = 6
@@ -4567,6 +4487,19 @@
},
/turf/open/floor/plasteel,
/area/ship/security/prison)
+"Bf" = (
+/obj/structure/table/wood,
+/obj/structure/window/reinforced/tinted/frosted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted/frosted{
+ dir = 4
+ },
+/obj/item/flashlight/lamp{
+ pixel_y = 13
+ },
+/turf/open/floor/wood,
+/area/ship/crew/dorm)
"Bi" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -4677,7 +4610,7 @@
/obj/structure/railing/corner{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/techfloor/orange{
@@ -4793,7 +4726,7 @@
/obj/structure/window/reinforced/tinted/frosted{
dir = 8
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/curtain/cloth/grey,
/obj/machinery/light_switch{
dir = 8;
@@ -4918,9 +4851,30 @@
/area/ship/crew/canteen)
"Dh" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/plasteel,
/area/ship/security/prison)
+"Dj" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/sugar{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/condiment/rice{
+ pixel_y = 10;
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/enzyme{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen/kitchen)
"Dm" = (
/obj/structure/window/reinforced/spawner{
dir = 1
@@ -5268,7 +5222,7 @@
/obj/item/canvas/twentythreeXtwentythree,
/obj/structure/closet/crate/trashcart,
/obj/item/paint/anycolor,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/sprayweb,
/turf/open/floor/plating,
@@ -5690,7 +5644,7 @@
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/hallway/central)
"GZ" = (
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/turf/open/floor/plating,
/area/ship/maintenance/fore)
"Ha" = (
@@ -5703,7 +5657,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/engineering)
@@ -5798,7 +5752,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -5863,6 +5817,21 @@
/obj/effect/turf_decal/siding/yellow,
/turf/open/floor/plasteel,
/area/ship/security/prison)
+"Ie" = (
+/obj/structure/table,
+/obj/item/toy/figure/chef,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_y = 10;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen/kitchen)
"Ig" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "quickpoint_shut";
@@ -6210,6 +6179,10 @@
},
/turf/open/floor/plasteel,
/area/ship/security)
+"Kc" = (
+/obj/item/clothing/mask/gas/monkeymask,
+/turf/open/floor/plating,
+/area/ship/maintenance/fore)
"Kg" = (
/obj/effect/turf_decal/siding/red{
dir = 8
@@ -6461,7 +6434,7 @@
dir = 4
},
/obj/structure/curtain/cloth/grey,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/ship/crew/dorm)
"Lt" = (
@@ -6897,7 +6870,7 @@
/obj/structure/railing{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
@@ -7129,7 +7102,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
"PC" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/siding/red{
dir = 4
},
@@ -7494,7 +7467,7 @@
/obj/structure/railing{
dir = 6
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -7740,7 +7713,7 @@
/turf/open/floor/plasteel/patterned/grid,
/area/ship/crew/dorm/dormthree)
"Ti" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/railing{
dir = 9
@@ -7764,7 +7737,7 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/ship/maintenance/port)
@@ -8249,10 +8222,6 @@
},
/turf/open/floor/plasteel,
/area/ship/security/prison)
-"Wi" = (
-/obj/structure/statue/sandstone/assistant,
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
"Wj" = (
/obj/effect/decal/cleanable/food/salt,
/obj/effect/turf_decal/siding/wideplating/light,
@@ -8459,6 +8428,32 @@
},
/turf/open/floor/wood,
/area/ship/crew/dorm/dormfour)
+"Xf" = (
+/obj/structure/closet/secure_closet/freezer{
+ name = "Refrigerator";
+ desc = "A refrigerated cabinet for food."
+ },
+/obj/effect/turf_decal/siding/wideplating/light/end{
+ dir = 4
+ },
+/obj/item/storage/fancy/egg_box,
+/obj/item/storage/fancy/egg_box,
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/milk,
+/obj/item/reagent_containers/condiment/soymilk,
+/obj/item/reagent_containers/condiment/soymilk,
+/obj/item/reagent_containers/condiment/soymilk,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/sugar,
+/obj/item/reagent_containers/condiment/sugar,
+/obj/item/reagent_containers/condiment/rice,
+/obj/item/reagent_containers/food/snacks/tofu,
+/obj/item/reagent_containers/food/snacks/tofu,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/canteen/kitchen)
"Xg" = (
/obj/machinery/door/window{
dir = 4
@@ -8537,7 +8532,7 @@
/area/ship/engineering/atmospherics)
"XY" = (
/obj/structure/table/wood,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/spline/plain/opaque/blue,
/turf/open/floor/plasteel,
/area/ship/security/prison)
@@ -9144,7 +9139,7 @@ Mv
Lu
rq
Hm
-nb
+Bf
dJ
VG
oM
@@ -9550,8 +9545,8 @@ PP
td
VK
Fg
-AH
-xb
+Ie
+Dj
nR
zq
mU
@@ -9674,7 +9669,7 @@ pe
Rr
KQ
wa
-qe
+Xf
Ad
gZ
eF
@@ -10036,7 +10031,7 @@ rc
bb
yI
yI
-Wi
+yI
CP
nK
jY
@@ -10116,7 +10111,7 @@ rW
bb
yI
yI
-Wi
+yI
CP
nK
jY
@@ -10356,7 +10351,7 @@ oI
VU
Dy
nh
-yu
+Kc
nK
jY
jY
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 07b8722e5e7b..c14594f0946d 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
@@ -2,23 +2,30 @@
"ab" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
+ layer = 4.2;
pixel_x = 5;
- pixel_y = 11;
- layer = 4.2
+ pixel_y = 11
},
/obj/item/toy/plush/moth/redish{
pixel_x = -4
},
-/obj/structure/window/reinforced/tinted{
- dir = 4
- },
/obj/item/folder/red{
- pixel_x = -4;
layer = 3.01;
+ pixel_x = -4;
pixel_y = -8
},
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
+ },
/turf/open/floor/wood,
-/area/ship/security)
+/area/ship/crew/specialized/security)
"ad" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -34,8 +41,11 @@
pixel_y = 22
},
/obj/effect/decal/cleanable/plasma,
+/obj/structure/railing/corner{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"am" = (
/obj/structure/urinal{
pixel_y = 29
@@ -52,23 +62,18 @@
icon_state = "5-8"
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"az" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/light/floor,
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs{
+ color = "#a8b2b6";
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
+/area/ship/bridge)
"aD" = (
/obj/machinery/light/dim/directional/north,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -79,27 +84,12 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"aG" = (
-/obj/structure/closet/cabinet,
-/obj/item/clothing/suit/hooded/wintercoat/engineering,
-/obj/item/clothing/head/beret/eng/hazard,
-/obj/item/storage/backpack/satchel/eng,
-/obj/item/storage/backpack/messenger/engi,
-/obj/item/storage/backpack/industrial,
-/obj/item/storage/backpack/duffelbag/engineering,
-/obj/item/clothing/under/rank/engineering/engineer/nt/lp,
-/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp,
-/obj/item/storage/backpack/ert/engineer,
-/obj/item/clothing/suit/nanotrasen/vest,
-/obj/structure/window/reinforced/tinted{
- dir = 1
- },
-/obj/structure/window/reinforced/tinted{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 9
+/obj/structure/table/reinforced,
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/wood,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/engineering)
"aI" = (
/obj/structure/cable{
@@ -117,10 +107,12 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/red{
dir = 8
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/siding{
+ color = "#730622";
dir = 4
},
/obj/machinery/door/poddoor/shutters{
@@ -128,54 +120,37 @@
id = "Ranger_FireFighting_Shut";
name = "Ready Room"
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/pod/light,
/area/ship/storage/equip)
"aK" = (
-/obj/machinery/light/dim/directional/north,
-/obj/effect/turf_decal/industrial/fire/corner{
- dir = 1
+/obj/structure/sign/poster/official/ion_carbine{
+ pixel_x = 32
+ },
+/obj/structure/window/reinforced/spawner,
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/industrial/fire{
+ dir = 8
},
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/clothing/suit/space/hardsuit/ancient/lp,
-/obj/item/clothing/mask/breath,
/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
+ dir = 5
},
-/turf/open/floor/plasteel/lightgrey,
+/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
"aO" = (
-/obj/structure/closet/secure_closet/lp/medical,
-/obj/item/storage/box/gloves,
-/obj/item/storage/box/masks,
-/obj/item/storage/belt/medical,
-/obj/item/flashlight/seclite,
-/obj/item/roller,
-/obj/item/holosign_creator/medical,
-/obj/item/pinpointer/crew,
-/obj/item/storage/box/bodybags,
-/obj/item/storage/firstaid/regular,
-/obj/structure/window/reinforced/tinted{
- dir = 4
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
},
-/obj/structure/window/reinforced/tinted{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/item/defibrillator/loaded,
-/obj/item/roller{
- pixel_x = -3;
- pixel_y = 7
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/item/roller{
- pixel_x = 5;
- pixel_y = 12
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/item/clothing/neck/stethoscope,
-/obj/item/gps,
-/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/glasses/hud/health/prescription,
/turf/open/floor/wood,
-/area/ship/medical)
+/area/ship/crew/specialized/medical)
"aP" = (
/turf/open/floor/plating,
/area/ship/engineering)
@@ -185,8 +160,11 @@
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt/corner{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"bf" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -224,7 +202,7 @@
name = "Engine Shutters"
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"bu" = (
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel/lightgrey,
@@ -238,22 +216,30 @@
/obj/item/storage/box/handcuffs,
/obj/item/restraints/legcuffs/bola/energy,
/obj/item/holosign_creator/security,
-/obj/item/clothing/suit/armor/vest/security,
-/obj/item/clothing/mask/gas/sechailer,
/obj/item/gps,
/obj/item/ammo_box/magazine/co9mm,
/obj/item/storage/belt/security/webbing,
-/obj/item/storage/pistolcase/commander,
/obj/item/clothing/glasses/hud/security/sunglasses,
-/obj/structure/window/reinforced/tinted{
- dir = 4
+/obj/effect/turf_decal/techfloor{
+ dir = 1
},
-/turf/open/floor/wood,
-/area/ship/security)
+/obj/effect/turf_decal/techfloor,
+/obj/item/reagent_containers/spray/pepper,
+/obj/item/restraints/legcuffs/bola/energy,
+/obj/item/restraints/legcuffs/bola/energy,
+/obj/item/restraints/legcuffs/bola/energy,
+/obj/machinery/light/small/directional/north,
+/obj/item/storage/box/evidence,
+/obj/item/storage/guncase/pistol/commander,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/specialized/security)
"bD" = (
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 1
},
+/obj/structure/sign/poster/official/safety_report{
+ pixel_y = 32
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"bK" = (
@@ -267,55 +253,44 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"bN" = (
-/obj/item/flashlight/lamp{
- pixel_x = -6;
- pixel_y = 4
- },
-/obj/item/paper_bin{
- pixel_x = 8;
- pixel_y = 2
- },
-/obj/item/pen/red{
- pixel_x = 6
+/obj/effect/turf_decal/siding/red{
+ dir = 4
},
-/obj/structure/table/reinforced{
- color = "#8A9397"
+/obj/effect/turf_decal/siding/red{
+ dir = 8
},
-/turf/open/floor/mineral/plastitanium/red/brig,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/tech,
/area/ship/security)
"bX" = (
-/obj/machinery/telecomms/bus/preset_four{
- autolinkers = list("hub","processor4","bus");
- network = "nt_commnet";
- id = "Nanotrasen Communications Bus";
- freq_listening = list(1353,1447,1459)
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/obj/machinery/camera/autoname{
+ dir = 6
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"ci" = (
/obj/effect/turf_decal/industrial/outline/orange,
-/obj/machinery/portable_atmospherics/pump,
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"cj" = (
-/obj/structure/closet/cabinet,
-/obj/item/clothing/under/rank/medical/paramedic/skirt/lp,
-/obj/item/clothing/under/rank/medical/paramedic/lp,
-/obj/item/clothing/suit/hooded/wintercoat/medical,
-/obj/item/clothing/head/beret/med,
-/obj/item/storage/backpack/satchel/med,
-/obj/item/storage/backpack/messenger/med,
-/obj/item/storage/backpack/medic,
-/obj/item/storage/backpack/duffelbag/med,
-/obj/structure/window/reinforced/tinted{
- dir = 1
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
},
-/obj/item/storage/backpack/ert/medical,
/turf/open/floor/wood,
-/area/ship/medical)
+/area/ship/crew/specialized/medical)
"cv" = (
/obj/structure/chair/comfy/shuttle{
dir = 4;
@@ -361,20 +336,21 @@
pixel_y = 10
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"cI" = (
-/obj/structure/chair/handrail{
- dir = 8;
- pixel_x = 2
- },
-/obj/machinery/light/dim/directional/north,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/machinery/blackbox_recorder,
/obj/effect/turf_decal/techfloor{
- dir = 4
+ dir = 1
},
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
+/obj/item/radio/weather_monitor{
+ anchored = 1;
+ name = "barometric monitor";
+ pixel_x = 25
},
-/area/ship/hallway/central)
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
"cN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -405,14 +381,16 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"cW" = (
-/obj/effect/turf_decal/techfloor{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/lightgrey{
- dir = 10
+/obj/docking_port/mobile{
+ dir = 2;
+ port_direction = 8;
+ preferred_direction = 4
},
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/cryo)
+/obj/machinery/camera/autoname,
+/obj/machinery/light/floor,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"dd" = (
/obj/machinery/light/dim/directional/north,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{
@@ -422,78 +400,45 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"df" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 10
+/obj/structure/table/reinforced{
+ color = "#8A9397"
},
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 4
+/turf/open/floor/mineral/plastitanium/red/brig,
+/area/ship/security)
+"dl" = (
+/obj/structure/bed,
+/obj/item/bedsheet/qm,
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = 8
},
-/obj/machinery/firealarm/directional/south,
-/obj/structure/table/wood,
-/obj/item/toy/plush/moth/deadhead{
- pixel_x = -7;
- layer = 4.3
+/turf/open/floor/carpet/orange,
+/area/ship/crew/specialized/cargo)
+"dm" = (
+/obj/machinery/camera/autoname{
+ dir = 5
},
-/obj/item/flashlight/lamp/green{
- pixel_x = 5;
- pixel_y = 13;
- layer = 4.2
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
+ dir = 10
},
-/obj/item/folder/yellow{
- pixel_y = -4;
- pixel_x = 4
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
+"dn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/item/pen/survival{
- pixel_x = 5;
- pixel_y = -5
+/obj/effect/turf_decal/steeldecal/steel_decals7{
+ dir = 1
},
-/obj/effect/turf_decal/siding/wood{
- dir = 10
+/obj/effect/turf_decal/steeldecal/steel_decals7{
+ dir = 4
},
-/turf/open/floor/wood,
-/area/ship/engineering)
-"dl" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "Ranger_FireFighting_Shut";
- name = "Ready Room"
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/storage/equip)
-"dm" = (
-/obj/machinery/camera/autoname{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
-"dn" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/steeldecal/steel_decals7{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals7{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/tech/tcomms,
/area/ship/engineering/communications)
"dq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -514,13 +459,17 @@
/turf/open/floor/plating,
/area/ship/engineering)
"dx" = (
-/obj/structure/chair/handrail{
+/obj/machinery/atmospherics/pipe/layer_manifold/visible{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/light/floor,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#a8b2b6";
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw,
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"dC" = (
/obj/effect/turf_decal/ntspaceworks_small/right,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -535,7 +484,8 @@
dir = 4
},
/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 4
+ dir = 4;
+ name = "Input to Air"
},
/turf/open/floor/plating,
/area/ship/hallway/central)
@@ -557,13 +507,20 @@
icon_state = "6-8"
},
/obj/effect/decal/cleanable/glass,
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 1;
+ name = "Air to Port"
+ },
+/obj/machinery/atmospherics/components/binary/pump/layer4{
+ name = "Port to Scrubbers Network"
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"dN" = (
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/effect/turf_decal/trimline/transparent/white/filled/corner{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"dP" = (
@@ -577,44 +534,34 @@
/turf/open/floor/plating,
/area/ship/engineering)
"ec" = (
-/obj/effect/turf_decal/ntspaceworks_small/left,
-/obj/structure/cable{
- icon_state = "5-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/camera/autoname{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/blue,
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
},
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/hallway/central)
"ef" = (
/obj/docking_port/stationary{
- width = 30;
+ dwidth = 15;
height = 15;
- dwidth = 15
+ width = 30
},
/turf/template_noop,
/area/template_noop)
"eo" = (
-/obj/machinery/camera/autoname{
- dir = 5
- },
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
+/obj/structure/bed,
+/obj/item/bedsheet/orange,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
},
-/obj/structure/closet/emcloset/wall/directional/west,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/hallway/central)
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/wood,
+/area/ship/crew/specialized/engineering)
"er" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -631,35 +578,71 @@
/obj/effect/turf_decal/corner/opaque/vired,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
-"eE" = (
-/obj/machinery/computer/cargo{
+"ex" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#a8b2b6";
dir = 1
},
-/obj/structure/railing{
- dir = 8
+/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw,
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 24
},
/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
+/area/ship/hallway/central)
+"eD" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 12
+ },
+/obj/machinery/photocopier,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/bridge)
+"eE" = (
+/obj/effect/turf_decal/ntspaceworks_small/left,
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/blue,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
"eN" = (
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
+/obj/structure/platform/industrial_alt/corner{
+ dir = 1
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"eT" = (
/obj/machinery/button/door{
dir = 1;
- pixel_y = -21;
id = "Rangar_Starboard_Blasts";
name = "Blast Doors";
+ pixel_y = -21;
req_ship_access = 1
},
/obj/machinery/button/shieldwallgen{
dir = 1;
+ id = "Ranger_Starboard_holofield";
pixel_x = 9;
- pixel_y = -20;
- id = "Ranger_Starboard_holofield"
+ pixel_y = -20
},
/obj/structure/cable{
icon_state = "4-8"
@@ -668,39 +651,27 @@
icon_state = "4-9"
},
/obj/effect/turf_decal/trimline/transparent/white/filled/corner,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"eU" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
- dir = 5
- },
-/obj/item/stack/tape{
- pixel_y = 10;
- pixel_x = 6
- },
-/obj/item/stack/tape{
- pixel_y = 24;
- pixel_x = 6;
- layer = 3.02
- },
-/obj/item/stack/tape{
- pixel_y = 17;
- pixel_x = 7;
- layer = 3.01
- },
-/obj/item/hand_labeler{
- pixel_x = -7;
- pixel_y = 8
- },
-/obj/item/folder/yellow{
- pixel_x = 6
+/obj/machinery/computer/helm/viewscreen/directional/north,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "Ranger_Supply_Specialist_Quarters";
+ name = "Supply Quarters Windows";
+ pixel_x = 12;
+ pixel_y = 4;
+ req_ship_access = 1
},
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
},
-/obj/machinery/computer/helm/viewscreen/directional/east,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
+/obj/structure/table/reinforced,
+/turf/open/floor/wood/ebony,
+/area/ship/crew/specialized/cargo)
"eY" = (
/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
dir = 1
@@ -711,38 +682,41 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"fd" = (
-/obj/structure/cable{
- icon_state = "6-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"ff" = (
-/obj/structure/railing{
- dir = 1
- },
/obj/effect/turf_decal/techfloor/hole/right,
/obj/effect/turf_decal/spline/fancy/opaque/blue/corner{
dir = 8
},
/obj/structure/closet/crate/bin,
+/obj/structure/platform/industrial{
+ dir = 1
+ },
+/obj/structure/platform/industrial{
+ dir = 4
+ },
+/obj/structure/platform/industrial/corner{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"fo" = (
-/obj/structure/girder/reinforced,
-/obj/machinery/camera/autoname{
- dir = 10
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
+ dir = 1
},
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/platform/military/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/engineering/communications)
"fy" = (
/obj/item/newspaper,
/obj/structure/table/reinforced{
@@ -754,29 +728,33 @@
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"fz" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
- dir = 10
+/obj/effect/turf_decal/siding{
+ color = "#474747"
},
-/obj/machinery/door/poddoor/shutters{
- dir = 8;
- name = "Cargo Bay";
- id = "Ranger_Cargo_Door"
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{
+ dir = 1
},
-/turf/open/floor/plasteel/lightgrey,
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"fU" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/suit_storage_unit/inherit{
+ name = "Emergency EVA Suit"
+ },
+/obj/item/clothing/suit/space/fragile,
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/clothing/mask/breath,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/door/window/brigdoor/northright{
+ name = "Secure Lockup";
+ req_access_txt = "1";
+ req_ship_access = 1
},
-/obj/effect/turf_decal/techfloor/hole/right,
/turf/open/floor/plasteel/tech,
-/area/ship/engineering/communications)
+/area/ship/engineering/engines/starboard)
"fV" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/security)
@@ -788,54 +766,43 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/toilet)
"gh" = (
-/obj/item/radio/intercom/directional/north,
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/obj/effect/turf_decal/siding/blue{
+ dir = 9
},
-/obj/structure/table/reinforced{
- color = "#8A9397"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
-/obj/item/wrench,
-/obj/item/screwdriver,
-/obj/item/stack/cable_coil/cyan,
-/obj/item/stack/sheet/rglass{
- amount = 25
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
-/obj/item/aicard,
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
-"gi" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"gi" = (
/obj/effect/turf_decal/siding/red{
- dir = 1
+ dir = 9
},
-/obj/effect/decal/cleanable/confetti,
+/obj/structure/closet/crate/bin,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/west,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"gk" = (
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor/preopen{
- dir = 4;
- name = "Intelligence Core";
- id = "AiCore"
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 6
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 4
},
-/obj/machinery/door/airlock/engineering/glass{
- dir = 4;
- name = "Intelligence Core";
- req_access_txt = "10"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/engineering/communications)
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
"gr" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -846,25 +813,23 @@
name = "Cryogenic Storage"
},
/obj/machinery/button/door{
- pixel_x = -21;
dir = 4;
- pixel_y = 3;
+ id = "RangerCryoShutters";
name = "Cryogenics Access";
- id = "RangerCryoShutters"
+ pixel_x = -21;
+ pixel_y = 3
},
/turf/open/floor/plasteel/stairs{
color = "#8A9397"
},
/area/ship/crew/cryo)
"gz" = (
-/obj/machinery/camera/autoname{
- dir = 9
- },
/obj/effect/turf_decal/industrial/outline/blue,
/obj/structure/closet/crate/trashcart,
/obj/item/storage/bag/trash,
+/obj/machinery/airalarm/directional/north,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"gD" = (
/obj/structure/cable/cyan{
icon_state = "4-10"
@@ -880,9 +845,8 @@
pixel_x = -10
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"gG" = (
-/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -895,12 +859,18 @@
/obj/machinery/door/airlock/medical{
name = "Medical Bay"
},
-/turf/open/floor/plasteel/white,
+/obj/effect/turf_decal/siding/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/blue,
+/turf/open/floor/pod/light,
/area/ship/medical)
"gL" = (
-/obj/structure/crate_shelf,
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
+/obj/machinery/camera/autoname{
+ dir = 9
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"gN" = (
/obj/machinery/light/dim/directional/north,
/obj/machinery/power/terminal,
@@ -925,6 +895,9 @@
/obj/effect/turf_decal/siding/blue{
dir = 6
},
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"gW" = (
@@ -950,34 +923,38 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/security)
"hk" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/holopad,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/structure/cable{
icon_state = "1-10"
},
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"hl" = (
/obj/structure/cable/cyan{
icon_state = "4-9"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
/obj/effect/decal/cleanable/plasma,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"hn" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -992,9 +969,11 @@
"hp" = (
/obj/effect/turf_decal/industrial/outline/orange,
/obj/effect/decal/cleanable/plasma,
-/obj/machinery/portable_atmospherics/pump,
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"hx" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp,
@@ -1009,21 +988,78 @@
/obj/machinery/airalarm/directional/south,
/obj/item/clothing/head/nanotrasen/beret/security/command,
/obj/item/clothing/suit/armor/nanotrasen/sec_director,
+/obj/item/clothing/under/nanotrasen/security/director,
/turf/open/floor/wood,
/area/ship/crew/dorm/captain)
"hz" = (
-/obj/docking_port/mobile{
- dir = 2;
- preferred_direction = 4;
- port_direction = 8
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "Ranger_Engineering_Specialist_Quarters";
+ name = "Engineering Specialist's Quarters"
},
-/obj/machinery/camera/autoname,
-/obj/machinery/light/floor,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/turf/open/floor/plating,
+/area/ship/crew/specialized/engineering)
"hF" = (
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
+/obj/machinery/light/dim/directional/north,
+/obj/structure/closet/secure_closet/armorycage{
+ req_access = list(1)
+ },
+/obj/effect/turf_decal/industrial/fire,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/item/storage/guncase/pistol/commander{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber{
+ pixel_x = 4;
+ pixel_y = 9
+ },
+/obj/item/storage/guncase/pistol{
+ pixel_x = -7;
+ pixel_y = -4
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 7;
+ pixel_y = -8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/equip)
+"hG" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding{
+ color = "#474747";
+ dir = 8
+ },
+/obj/effect/turf_decal/siding{
+ color = "#474747";
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ship/engineering/engines/starboard)
"hJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -1043,76 +1079,66 @@
/obj/structure/grille,
/obj/machinery/door/firedoor/window,
/obj/machinery/door/poddoor/shutters{
- id = "Engineering_Specialist_Shutters";
dir = 4;
+ id = "Engineering_Specialist_Shutters";
name = "Communications Shutters"
},
/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/engineering)
-"hN" = (
-/obj/machinery/camera/autoname{
- dir = 1
- },
-/obj/machinery/light/floor,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
"hQ" = (
-/obj/machinery/door/window/survival_pod{
- dir = 4;
- opacity = 1;
- req_access_txt = "1";
- name = "Security Specialist Quarters";
- req_ship_access = 1
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
},
-/turf/open/floor/plasteel/stairs/wood{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/area/ship/security)
-"hZ" = (
-/obj/machinery/camera/autoname{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/hallway/central)
+/turf/open/floor/wood,
+/area/ship/crew/specialized/security)
+"hZ" = (
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = -10
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/cell_charger,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
"ib" = (
/obj/structure/cable/cyan{
icon_state = "5-10"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/oil,
+/obj/structure/platform/industrial_alt/corner{
+ dir = 8
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"id" = (
-/obj/machinery/door/airlock/maintenance_hatch{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
"ih" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1129,43 +1155,49 @@
pixel_x = 7;
pixel_y = -20
},
+/obj/structure/railing/corner{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"iq" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/firealarm/directional/east,
-/obj/effect/spawner/lootdrop/waste/trash,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt/corner{
+ dir = 8
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"iv" = (
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"ix" = (
-/obj/machinery/camera/autoname,
-/obj/effect/turf_decal/siding/blue{
- dir = 5
+/obj/item/storage/box/syringes{
+ pixel_x = -5;
+ pixel_y = 10
},
-/obj/item/storage/firstaid/toxin{
- pixel_x = 4;
- pixel_y = -3
+/obj/item/reagent_containers/glass/bottle/mannitol{
+ pixel_x = 8;
+ pixel_y = 8
},
-/obj/item/storage/firstaid/o2{
- pixel_x = 1;
- pixel_y = 2
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = 5
},
-/obj/item/storage/firstaid/medical{
- pixel_y = 7;
- pixel_x = -2
+/obj/machinery/light/dim/directional/north,
+/obj/structure/table/reinforced,
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 9
},
-/obj/structure/table/reinforced,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"iC" = (
@@ -1175,7 +1207,7 @@
/obj/effect/decal/cleanable/robot_debris/old,
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"iD" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -1214,8 +1246,8 @@
dir = 10
},
/obj/item/clipboard{
- pixel_y = -2;
- pixel_x = -7
+ pixel_x = -7;
+ pixel_y = -2
},
/obj/item/pen{
pixel_x = -7;
@@ -1231,6 +1263,7 @@
name = "Brig Cell Window Shutters"
},
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/security)
"iI" = (
@@ -1244,8 +1277,16 @@
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 1
},
+/obj/item/crowbar,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
+"iN" = (
+/obj/machinery/light/floor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"iS" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 9
@@ -1278,7 +1319,7 @@
dir = 4
},
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"jd" = (
/obj/structure/grille,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -1286,6 +1327,7 @@
name = "Holding Cell Hall Shutters"
},
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/security)
"ji" = (
@@ -1312,30 +1354,37 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"jk" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/turf_decal/siding/blue/corner{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/siding/blue/corner{
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/industrial/warning{
dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"jr" = (
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/light{
dir = 8
},
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "4-8"
},
-/obj/structure/rack,
-/obj/item/storage/toolbox/mechanical,
-/obj/item/storage/toolbox/electrical{
- pixel_x = 3;
- pixel_y = 7
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"jr" = (
+/obj/item/radio/intercom/directional/south,
+/obj/structure/chair/handrail{
+ dir = 4
},
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/engineering)
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"js" = (
/obj/machinery/cryopod,
/turf/open/floor/plasteel/telecomms_floor,
@@ -1350,27 +1399,48 @@
icon_state = "computer-right"
},
/obj/machinery/light_switch{
- pixel_y = 23;
- name = "External Lighting Switch";
color = "#efbc43";
- pixel_x = 6
+ name = "External Lighting Switch";
+ pixel_x = 6;
+ pixel_y = 23
+ },
+/obj/item/paper{
+ default_raw_text = "Dear engineer, please bring your attention to the advanced control mechanisms present on and around this console. There is an external lighting switch to toggle the vessel's exterior lighting, highlighted in yellow, an air alarm connected to this console which controls external atmospherics fittings, and the console itself, which can read external atmosphere from a main sensor affixed to the fore of the vessel. -NT Spaceworks";
+ name = "NT Spaceworks Notice"
},
/turf/open/floor/plasteel/mono/dark,
/area/ship/external/dark)
"jv" = (
-/obj/structure/closet/cabinet,
-/obj/item/clothing/shoes/jackboots,
-/obj/item/clothing/suit/hooded/wintercoat/security,
-/obj/item/clothing/gloves/color/black,
-/obj/item/clothing/head/beret/sec,
-/obj/item/clothing/under/rank/security/head_of_security/nt/lp,
-/obj/item/clothing/under/rank/security/head_of_security/nt/skirt/lp,
-/obj/item/clothing/suit/armor/vest/security/officer,
-/obj/item/clothing/under/rank/security/head_of_security/alt/lp,
-/obj/machinery/light/dim/directional/west,
-/obj/item/storage/backpack/ert/security,
-/turf/open/floor/wood,
-/area/ship/security)
+/obj/machinery/camera/autoname,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/storage/firstaid/o2{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/storage/firstaid/medical{
+ pixel_x = -2;
+ pixel_y = 7
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
"jA" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/port)
@@ -1419,26 +1489,14 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
-"jQ" = (
-/obj/structure/sign/nanotrasen/vigilitas,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/hallway/starboard)
"jZ" = (
-/obj/structure/cable{
- icon_state = "6-8"
- },
+/obj/effect/turf_decal/siding/blue,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/tech,
-/area/ship/storage/equip)
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
"kh" = (
/obj/machinery/light_switch{
dir = 1;
@@ -1457,12 +1515,26 @@
/obj/machinery/computer/cryopod/directional/west,
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
+"ki" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"ks" = (
/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/camera/autoname,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ name = "Air to Port"
+ },
+/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"kt" = (
/obj/machinery/light/dim/directional/south,
/obj/machinery/airalarm/directional/east,
@@ -1474,8 +1546,8 @@
pixel_y = 10
},
/obj/item/folder/red{
- pixel_x = -4;
layer = 3.01;
+ pixel_x = -4;
pixel_y = -8
},
/obj/item/folder,
@@ -1491,21 +1563,17 @@
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"kw" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
},
-/obj/structure/grille,
-/obj/machinery/door/poddoor/preopen{
- dir = 4;
- name = "Intelligence Core";
- id = "AiCore"
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
+ dir = 4
},
-/obj/structure/window/reinforced/fulltile/shuttle,
-/turf/open/floor/plating,
-/area/ship/engineering/communications)
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
+"kF" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/engines/starboard)
"kK" = (
/obj/machinery/light/dim/directional/south,
/obj/structure/table/reinforced{
@@ -1527,20 +1595,21 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"kQ" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "Ranger_AI_Core_Ext_Blasts"
+/obj/effect/turf_decal/corner/opaque/syndiered/half,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/obj/machinery/door/firedoor/window,
-/turf/open/floor/plating,
-/area/ship/engineering/communications)
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/equip)
"kS" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/effect/turf_decal/siding/blue{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
/turf/open/floor/plasteel/white,
/area/ship/medical)
"lc" = (
@@ -1556,33 +1625,37 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
"lj" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/button/door{
- dir = 4;
- pixel_x = -22;
- pixel_y = 8;
- id = "Ranger_Cycler_Shutters";
- name = "Air Cycler Shutters"
+/obj/structure/fluff/hedge/opaque,
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 6
},
-/obj/structure/chair/handrail{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/window/reinforced/survival_pod,
+/obj/structure/window/reinforced/survival_pod{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 8
+/obj/structure/window/reinforced/survival_pod{
+ density = 0;
+ dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
+/obj/structure/window/reinforced/survival_pod{
+ density = 0;
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/specialized/cargo)
"lp" = (
/obj/machinery/button/door{
dir = 8;
- pixel_y = 6;
- pixel_x = 22;
id = "Ranger_FireFighting_Shut";
name = "Ready Room";
- req_ship_access = 1;
+ pixel_x = 22;
+ pixel_y = 6;
+ req_one_access = list(50, 10, 5, 1, 20);
req_one_access_txt = "50,10,5,1,20";
- req_one_access = list(50, 10, 5, 1, 20)
+ req_ship_access = 1
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -1597,47 +1670,67 @@
/obj/effect/turf_decal/corner/opaque/vired/half,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
-"lv" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
- dir = 1
+"lu" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
},
-/obj/effect/turf_decal/siding{
- color = "#474747";
- dir = 1
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/plasteel/lightgrey,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/preopen{
+ dir = 4;
+ id = "AiCore";
+ name = "Intelligence Core"
+ },
+/obj/structure/window/reinforced/fulltile/shuttle,
+/turf/open/floor/plating,
+/area/ship/science/ai_chamber)
+"lv" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"lw" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
- dir = 9
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/fluff/hedge/opaque,
-/obj/structure/railing{
- dir = 8
+/obj/machinery/door/poddoor/preopen{
+ dir = 4;
+ id = "AiCore";
+ name = "Intelligence Core"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
+/obj/machinery/door/airlock/engineering/glass{
+ dir = 4;
+ name = "Intelligence Core";
+ req_access_txt = "10"
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
+/turf/open/floor/plasteel/tech/tcomms,
+/area/ship/science/ai_chamber)
"lB" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning{
- dir = 1
+/obj/effect/turf_decal/trimline/transparent/white/filled/corner{
+ dir = 4
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"lD" = (
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/computer/apc_control{
+ dir = 4;
+ icon_state = "computer-left"
},
-/turf/open/floor/plasteel/stairs{
- dir = 1;
- color = "#a8b2b6"
+/obj/effect/turf_decal/techfloor,
+/obj/structure/sign/warning/coldtemp{
+ layer = 2.8;
+ pixel_y = -29
},
-/area/ship/bridge)
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
"lL" = (
/obj/structure/cable{
icon_state = "2-9"
@@ -1648,12 +1741,12 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"lU" = (
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -21;
- pixel_y = 7
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/structure/crate_shelf,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"lW" = (
@@ -1662,17 +1755,16 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"lX" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
+/obj/item/toy/plush/spider,
+/obj/machinery/camera/autoname{
+ dir = 9
},
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
+/obj/structure/table/reinforced{
+ color = "#8A9397"
},
+/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/tech,
-/area/ship/engineering)
+/area/ship/security)
"mh" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -1710,11 +1802,17 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"mv" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 8
+/obj/machinery/light/dim/directional/east,
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#a8b2b6";
+ dir = 1
},
-/turf/open/floor/wood,
-/area/ship/crew/dorm/captain)
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/chair/handrail,
+/turf/open/floor/noslip,
+/area/ship/crew/toilet)
"mw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -1732,35 +1830,28 @@
/turf/open/floor/plasteel/tech,
/area/ship/security)
"mJ" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -21;
- pixel_y = -8
- },
-/obj/machinery/camera/autoname{
- dir = 4
+/obj/structure/table/reinforced,
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -4
},
-/obj/effect/turf_decal/industrial/fire{
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/closet/crate/secure/gear{
- name = "Ammunition Crate"
- },
-/obj/structure/chair/handrail{
- dir = 4
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 1
},
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm/rubbershot,
-/obj/item/ammo_box/c9mm,
-/obj/item/ammo_box/c9mm,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 10
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"mK" = (
+/obj/machinery/camera/autoname{
+ dir = 9
},
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/storage/equip)
+/obj/effect/turf_decal/industrial/outline/blue,
+/obj/machinery/space_heater,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
"mQ" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -1774,6 +1865,50 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
+"na" = (
+/obj/machinery/firealarm/directional/east,
+/obj/machinery/recharger{
+ dir = 4;
+ pixel_x = -8
+ },
+/obj/machinery/cell_charger{
+ dir = 4;
+ pixel_x = 5
+ },
+/obj/structure/table/reinforced,
+/obj/item/stack/marker_beacon/thirty{
+ amount = 100;
+ icon_state = "markerrandom";
+ pixel_x = -9;
+ pixel_y = 13
+ },
+/obj/item/stack/marker_beacon/thirty{
+ amount = 100;
+ icon_state = "markerrandom";
+ pixel_x = 11;
+ pixel_y = 13
+ },
+/obj/item/stack/marker_beacon/thirty{
+ amount = 100;
+ icon_state = "markerrandom";
+ pixel_x = 5;
+ pixel_y = 13
+ },
+/obj/item/stack/marker_beacon/thirty{
+ amount = 100;
+ icon_state = "markerrandom";
+ pixel_x = -2;
+ pixel_y = 13
+ },
+/obj/item/stock_parts/cell/gun,
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/equip)
"nh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -1806,22 +1941,24 @@
"nA" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/holopad,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"nE" = (
/obj/machinery/button/door{
dir = 2;
- pixel_x = -2;
- name = "Access Blast Doors";
id = "Ranger_AI_Core_Blasts";
+ name = "Access Blast Doors";
+ pixel_x = -2;
pixel_y = 22;
- req_access_txt = "10"
+ req_access_txt = "10";
+ req_ship_access = 1
},
/obj/machinery/button/shieldwallgen{
dir = 2;
+ id = "AI_Core_Field_Engi";
pixel_x = 6;
- pixel_y = 20;
- id = "AI_Core_Field_Engi"
+ pixel_y = 20
},
/obj/effect/turf_decal/techfloor{
dir = 8
@@ -1830,7 +1967,7 @@
dir = 4
},
/obj/machinery/recharge_station,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/tech/tcomms,
/area/ship/engineering/communications)
"nJ" = (
/obj/structure/cable/cyan{
@@ -1840,7 +1977,7 @@
dir = 8
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"ob" = (
/obj/structure/cable/cyan{
icon_state = "0-4"
@@ -1850,7 +1987,7 @@
},
/obj/machinery/light/dim/directional/south,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"of" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -1875,15 +2012,12 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"oi" = (
-/obj/effect/turf_decal/siding/blue{
+/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/obj/structure/chair/office{
- dir = 4;
- name = "tactical swivel chair"
- },
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
"ok" = (
/obj/machinery/door/airlock/external{
dir = 4
@@ -1905,41 +2039,33 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
- },
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"oq" = (
/obj/structure/cable/cyan{
icon_state = "5-8"
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"or" = (
-/obj/item/bodypart/leg/right/robot,
-/obj/item/bodypart/r_arm/robot,
-/obj/item/bodypart/leg/left/robot,
-/obj/item/bodypart/l_arm/robot,
-/obj/item/bodypart/chest/robot,
-/obj/item/bodypart/head/robot,
-/obj/item/borg/upgrade/ai,
-/obj/item/robot_suit,
-/obj/structure/closet/crate/engineering{
- name = "Robotics Crate"
+/obj/effect/turf_decal/siding/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/obj/item/stock_parts/cell/high,
-/obj/item/assembly/flash/handheld,
-/obj/item/assembly/flash/handheld,
-/obj/item/borg/upgrade/restart,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plating,
-/area/ship/engineering)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
"ox" = (
/obj/structure/chair/sofa/brown/corner/directional/south,
/obj/machinery/light/dim/directional/east,
/obj/item/ammo_casing/spent{
- pixel_x = 13;
- desc = "A spent bullet-casing that someone hid behind the couch, likely to avoid the Lieutenant's ire."
+ desc = "A spent bullet-casing that someone hid behind the couch, likely to avoid the Lieutenant's ire.";
+ pixel_x = 13
},
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
@@ -1965,14 +2091,43 @@
name = "Engine Shutters"
},
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"oQ" = (
-/obj/item/radio/intercom/directional/west,
-/obj/machinery/camera/autoname{
- dir = 4
+/obj/item/storage/box/gloves,
+/obj/item/storage/box/masks,
+/obj/item/storage/belt/medical,
+/obj/item/flashlight/seclite,
+/obj/item/roller,
+/obj/item/holosign_creator/medical,
+/obj/item/pinpointer/crew,
+/obj/item/storage/box/bodybags,
+/obj/item/storage/firstaid/regular,
+/obj/item/defibrillator/loaded,
+/obj/item/roller{
+ pixel_x = -3;
+ pixel_y = 7
},
-/turf/open/floor/wood,
-/area/ship/medical)
+/obj/item/roller{
+ pixel_x = 5;
+ pixel_y = 12
+ },
+/obj/item/clothing/neck/stethoscope,
+/obj/item/gps,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health/prescription,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/lp/medical,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/melee/knife/survival,
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/specialized/medical)
"pa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -1994,26 +2149,34 @@
icon_state = "4-8"
},
/obj/effect/turf_decal/corner/opaque/vired/half,
+/obj/item/crowbar,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"pi" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters{
- dir = 8
+/obj/machinery/camera/autoname{
+ dir = 9
},
-/obj/structure/table/rolling,
-/obj/item/chair/plastic,
-/obj/item/chair/plastic{
- pixel_y = 4
+/obj/machinery/button/door{
+ dir = 8;
+ id = "AiCore";
+ name = "Core Access";
+ pixel_x = 26;
+ pixel_y = 8;
+ req_access_txt = "20";
+ req_ship_access = 1
},
-/obj/item/chair/plastic{
- pixel_y = 6
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 5
},
-/obj/item/chair/plastic{
- pixel_y = 10
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 25
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
"pn" = (
/obj/structure/chair/wood,
/obj/item/toy/figure/assistant{
@@ -2056,85 +2219,67 @@
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"ps" = (
-/obj/machinery/light/dim/directional/north,
-/obj/item/clothing/gloves/color/yellow{
- pixel_y = -9
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/item/crowbar/power{
- pixel_y = 3
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 5
},
-/obj/item/clothing/shoes/magboots{
- pixel_x = -6;
- pixel_y = -8
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 3;
+ pixel_y = 7
},
-/obj/item/holosign_creator/engineering{
- pixel_y = 6;
- pixel_x = -5
+/obj/item/gear_pack/anglegrinder{
+ pixel_x = -10;
+ pixel_y = 5
},
-/obj/item/holosign_creator/atmos{
- pixel_y = 6;
- pixel_x = 6
- },
-/obj/item/flashlight/seclite{
- pixel_x = 2;
- pixel_y = 15
- },
-/obj/item/gps{
- pixel_y = 9;
- pixel_x = -12
- },
-/obj/item/melee/knife/survival{
- pixel_y = 6;
- pixel_x = 5
- },
-/obj/item/clothing/head/welding{
- pixel_y = -9
+/obj/item/inducer{
+ pixel_y = -10
},
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/hud/diagnostic,
-/obj/item/pipe_dispenser,
+/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/structure/closet/secure_closet/lp/engineer,
-/obj/item/gun/energy/plasmacutter,
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 19;
- pixel_y = -10
+ dir = 1
},
+/obj/item/stock_parts/cell/super,
/turf/open/floor/plasteel/mono/dark,
/area/ship/engineering)
"pA" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/stairs{
- dir = 1;
- color = "#a8b2b6"
- },
-/area/ship/bridge)
+/obj/machinery/vending/snack,
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/hallway/central)
"pD" = (
-/obj/structure/closet/crate/secure/loot,
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+ dir = 1
+ },
+/obj/structure/crate_shelf,
+/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
-"pL" = (
-/obj/structure/chair/comfy/blue/directional/east,
-/obj/item/toy/plush/moth/royal{
- layer = 3.05;
- pixel_x = -6;
- pixel_y = 11
+"pG" = (
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/item/radio/intercom/wideband/directional/south,
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
},
-/obj/item/toy/plush/moth/lovers{
- layer = 3.05;
- pixel_x = 4
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"pL" = (
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"pU" = (
/obj/machinery/camera/autoname{
dir = 1
@@ -2146,19 +2291,54 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"qb" = (
-/obj/item/radio/intercom/directional/south,
/obj/effect/turf_decal/industrial/outline/blue,
/obj/structure/reagent_dispensers/foamtank,
-/obj/item/extinguisher/advanced,
+/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"qe" = (
-/obj/structure/girder/reinforced,
-/obj/machinery/camera/autoname{
- dir = 6
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
},
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/structure/table/wood,
+/obj/item/toy/plush/moth/deadhead{
+ layer = 4.3;
+ pixel_x = -7
+ },
+/obj/item/folder/yellow{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/pen/survival{
+ pixel_x = 5;
+ pixel_y = -5
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "Ranger_Engineering_Specialist_Quarters";
+ name = "Engineering Quarters Windows";
+ pixel_x = 22;
+ pixel_y = -2;
+ req_ship_access = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -12;
+ pixel_y = 21
+ },
+/obj/item/flashlight/lamp/green{
+ layer = 4.2;
+ pixel_x = 12;
+ pixel_y = 13
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/turf/open/floor/wood,
+/area/ship/crew/specialized/engineering)
"qn" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -2173,13 +2353,26 @@
},
/obj/machinery/power/shuttle/engine/electric/premium,
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
+"qJ" = (
+/obj/structure/sign/nanotrasen{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/structure/table/reinforced{
+ color = "#8A9397"
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
"qQ" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{
dir = 8
},
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"qR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -2187,7 +2380,6 @@
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/obj/effect/turf_decal/corner/opaque/red/full,
/obj/machinery/door/airlock/security{
name = "Security Specialist's Office";
req_access_txt = "1"
@@ -2195,7 +2387,11 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/red,
+/turf/open/floor/pod/light,
/area/ship/security)
"qS" = (
/obj/structure/railing{
@@ -2204,24 +2400,48 @@
/obj/effect/decal/cleanable/oil/streak,
/obj/machinery/light/dim/directional/north,
/obj/machinery/portable_atmospherics/scrubber,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{
+ name = "Port to Scrubbers Network"
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"qZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 1
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/holopad,
-/turf/open/floor/plasteel/tech,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding{
+ color = "#730622";
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "Ranger_FireFighting_Shut";
+ name = "Ready Room"
+ },
+/turf/open/floor/pod/light,
/area/ship/storage/equip)
"rg" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/industrial/fire{
+/obj/effect/turf_decal/siding/red{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/storage/equip)
+/obj/effect/decal/cleanable/confetti,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
"rq" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -2276,17 +2496,15 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"rM" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
- dir = 8
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "Ranger_Supply_Specialist_Quarters";
+ name = "Supply Specialist's Quarters"
},
-/turf/open/floor/plasteel/tech/techmaint,
-/area/ship/hallway/starboard)
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew/specialized/cargo)
"rT" = (
/obj/machinery/light_switch{
dir = 1;
@@ -2315,18 +2533,16 @@
icon_state = "0-8"
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"rX" = (
-/obj/structure/railing{
- dir = 5;
- layer = 4.1
+/obj/effect/turf_decal/spline/fancy/opaque/orange{
+ dir = 6
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
},
-/obj/structure/closet/firecloset/wall/directional/west,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
"rZ" = (
/obj/effect/turf_decal/atmos/air,
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
@@ -2350,27 +2566,33 @@
dir = 9
},
/obj/machinery/button/door{
- pixel_y = 21;
id = "BridgeAtrium";
name = "Atrium Shutters";
- pixel_x = 9
+ pixel_x = 9;
+ pixel_y = 21;
+ req_ship_access = 1
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"sl" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 1
+/obj/machinery/telecomms/processor/preset_four{
+ autolinkers = list("processor4","bus");
+ id = "Nanotrasen Communications Processor";
+ layer = 3.09;
+ network = "nt_commnet"
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 9
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
+/obj/structure/platform/military{
+ dir = 1
+ },
+/turf/open/floor/circuit/telecomms,
/area/ship/engineering/communications)
"sm" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/airalarm/directional/north,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -2379,12 +2601,15 @@
},
/obj/effect/decal/cleanable/plasma,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"sp" = (
/obj/machinery/camera/autoname,
/obj/machinery/light/floor,
/turf/open/floor/engine/hull,
/area/ship/external/dark)
+"su" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/specialized/medical)
"sw" = (
/obj/structure/cable{
icon_state = "6-8"
@@ -2398,68 +2623,58 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"sF" = (
-/obj/item/storage/box/syringes{
- pixel_y = 10;
- pixel_x = -5
- },
-/obj/effect/turf_decal/siding/blue{
- dir = 9
+/obj/effect/turf_decal/techfloor{
+ dir = 8
},
-/obj/item/reagent_containers/glass/bottle/mannitol{
- pixel_y = 8;
- pixel_x = 8
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/machinery/suit_storage_unit/inherit{
+ name = "Emergency EVA Suit"
},
-/obj/item/reagent_containers/glass/bottle/morphine{
- pixel_x = 5
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/clothing/suit/space/fragile,
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 10
},
-/obj/machinery/light/dim/directional/north,
-/obj/structure/table/reinforced,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"sJ" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/central)
"sR" = (
-/obj/machinery/light/dim/directional/south,
-/obj/effect/turf_decal/siding/red/end,
-/obj/machinery/computer/security/telescreen{
- dir = 1;
- pixel_y = -32;
- network = list("ss13")
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 10
},
-/obj/machinery/airalarm/directional/west,
-/obj/effect/decal/cleanable/confetti,
-/turf/open/floor/plasteel/tech,
-/area/ship/security)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/engineering/communications)
"sU" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 9
+/obj/machinery/button/door{
+ dir = 4;
+ id = "Ranger_Cycler_Shutters";
+ name = "Air Cycler Shutters";
+ pixel_x = -22;
+ pixel_y = 8;
+ req_ship_access = 1
},
-/obj/effect/turf_decal/siding/thinplating/light{
- dir = 9
+/obj/structure/chair/handrail{
+ dir = 4
},
-/obj/effect/turf_decal/borderfloorwhite/corner,
-/obj/structure/sink{
- dir = 8;
- pixel_x = 12;
- pixel_y = 4
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 8
},
-/obj/machinery/button/door{
- pixel_x = 26;
- dir = 8;
- name = "Medical Shutters";
- id = "MedShutters";
- req_ship_access = 1;
- req_access_txt = "5"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
},
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 25;
- pixel_y = -9
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"tb" = (
/obj/structure/table/wood,
/obj/machinery/light/dim/directional/north,
@@ -2496,7 +2711,7 @@
},
/obj/machinery/power/shuttle/engine/electric/premium,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"tj" = (
/obj/machinery/door/airlock/command{
dir = 4;
@@ -2518,26 +2733,34 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/pod/light,
/area/ship/bridge)
"tk" = (
-/obj/machinery/light/dim/directional/east,
-/obj/effect/turf_decal/spline/fancy/opaque/orange{
- dir = 6
- },
+/obj/effect/turf_decal/spline/fancy/opaque/orange,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"tq" = (
-/obj/structure/bed,
-/obj/item/bedsheet/medical,
-/turf/open/floor/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/siding/blue{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"tr" = (
/obj/machinery/power/shuttle/engine/fueled/plasma{
dir = 4
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"tK" = (
/obj/structure/railing{
dir = 4
@@ -2552,23 +2775,16 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"tQ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
/obj/effect/turf_decal/siding/red{
dir = 1
},
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/effect/turf_decal/siding/red{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
},
-/obj/machinery/light_switch{
- pixel_x = 20;
- pixel_y = 11;
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
},
+/obj/machinery/holopad,
/turf/open/floor/plasteel/tech,
/area/ship/security)
"tR" = (
@@ -2585,87 +2801,109 @@
"tT" = (
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/telecomms_floor,
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
/area/ship/engineering/communications)
"tZ" = (
/obj/machinery/button/door{
dir = 4;
- pixel_x = -21;
- name = "Shutters";
id = "Ranger_SB_maint_shut";
- req_ship_access = 1;
- pixel_y = 5
+ name = "Shutters";
+ pixel_x = -21;
+ pixel_y = 5;
+ req_ship_access = 1
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"uk" = (
-/obj/item/clothing/mask/breath,
-/obj/item/tank/internals/emergency_oxygen,
-/obj/effect/turf_decal/siding/yellow{
- dir = 5
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
+/obj/machinery/light/dim/directional/west{
+ pixel_x = -27
},
-/obj/machinery/suit_storage_unit/inherit{
- name = "Emergency EVA Suit"
+/obj/effect/turf_decal/techfloor{
+ dir = 8
},
-/obj/item/clothing/suit/space/fragile,
-/obj/item/clothing/head/helmet/space/fragile,
/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"up" = (
-/obj/machinery/airalarm/directional/north,
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/structure/table/reinforced,
+/obj/item/screwdriver{
+ pixel_x = -7;
+ pixel_y = 7
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/screwdriver{
+ pixel_x = -7
},
-/obj/machinery/holopad,
-/obj/effect/turf_decal/spline/fancy/opaque/orange{
- dir = 1
+/obj/item/hand_labeler{
+ pixel_x = 8;
+ pixel_y = 13
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
},
/turf/open/floor/plasteel/tech,
-/area/ship/engineering)
+/area/ship/storage/equip)
"us" = (
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
- dir = 4
+/obj/machinery/light/dim/directional/north,
+/obj/item/clothing/gloves/color/yellow{
+ pixel_y = -9
},
-/obj/machinery/camera/autoname{
- dir = 10
+/obj/item/crowbar/power{
+ pixel_y = 3
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/clothing/shoes/magboots{
+ pixel_x = -6;
+ pixel_y = -8
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1;
- color = "#a8b2b6"
+/obj/item/holosign_creator/engineering{
+ pixel_x = -5;
+ pixel_y = 6
},
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw,
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
+/obj/item/holosign_creator/atmos{
+ pixel_x = 6;
+ pixel_y = 6
},
-/area/ship/hallway/central)
+/obj/item/flashlight/seclite{
+ pixel_x = 2;
+ pixel_y = 15
+ },
+/obj/item/gps{
+ pixel_x = -12;
+ pixel_y = 9
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/clothing/head/welding{
+ pixel_y = -9
+ },
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/hud/diagnostic,
+/obj/item/pipe_dispenser,
+/obj/structure/closet/secure_closet/lp/engineer,
+/obj/item/clothing/glasses/meson/prescription,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
"ux" = (
-/obj/machinery/light/dim/directional/south,
-/obj/machinery/telecomms/relay{
- freq_listening = list(1353,1447,1459);
- id = "Nanotrasen Relay";
- name = "Nanotrasen relay";
+/obj/machinery/telecomms/hub{
+ autolinkers = list("hub","bus","relay","messaging","nanotrasen","broadcasterB","receiverB");
+ id = "Nanotrasen Communications Hub";
network = "nt_commnet"
},
/obj/effect/turf_decal/techfloor{
dir = 1
},
-/obj/machinery/camera/autoname{
- dir = 10
- },
-/turf/open/floor/circuit,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/turf/open/floor/circuit/telecomms,
/area/ship/engineering/communications)
"uE" = (
/obj/structure/cable{
@@ -2686,8 +2924,8 @@
dir = 1
},
/obj/machinery/door/poddoor/shutters/preopen{
- name = "Corridor Lockdown Port";
- id = "RangerPortShutters"
+ id = "RangerPortShutters";
+ name = "Corridor Lockdown Port"
},
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 8
@@ -2695,21 +2933,51 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"uW" = (
+/obj/effect/turf_decal/siding/blue{
+ dir = 10
+ },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+ dir = 5
},
-/obj/effect/turf_decal/siding/blue,
-/obj/machinery/holopad,
/turf/open/floor/plasteel/white,
/area/ship/medical)
+"vc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/turf_decal/corner/opaque/vired/three_quarters{
+ dir = 8
+ },
+/obj/structure/table/rolling,
+/obj/item/chair/plastic,
+/obj/item/chair/plastic{
+ pixel_y = 4
+ },
+/obj/item/chair/plastic{
+ pixel_y = 6
+ },
+/obj/item/chair/plastic{
+ pixel_y = 10
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
+"vg" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/lightgrey{
+ dir = 10
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
"vh" = (
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/machinery/door/window{
- req_ship_access = 1;
- name = "Surgical Compartment"
+ name = "Surgical Compartment";
+ req_ship_access = 1
},
/obj/effect/turf_decal/borderfloorwhite{
dir = 1
@@ -2717,16 +2985,16 @@
/turf/open/floor/plasteel/white,
/area/ship/medical)
"vj" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "2-9"
+ icon_state = "0-8"
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
"vk" = (
/obj/structure/sink{
dir = 8;
@@ -2761,15 +3029,12 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/medical)
"vo" = (
-/obj/structure/crate_shelf,
-/obj/structure/sign/nanotrasen/ns{
- pixel_x = 32
- },
-/obj/machinery/camera/autoname{
- dir = 10
+/obj/structure/chair/handrail,
+/obj/structure/sign/nanotrasen/vigilitas{
+ pixel_y = 32
},
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"vp" = (
/obj/effect/turf_decal/steeldecal/steel_decals10{
dir = 5
@@ -2794,58 +3059,77 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/reagent_dispensers/fueltank,
-/obj/structure/railing{
- dir = 1
- },
/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/obj/structure/platform/industrial_alt{
+ dir = 1;
+ layer = 2.89
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
"vz" = (
-/obj/structure/closet/crate/hydroponics{
- name = "Sustenance Crate"
+/obj/structure/crate_shelf,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/camera/autoname{
+ dir = 1
},
-/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/item/reagent_containers/food/drinks/waterbottle/large,
-/obj/item/storage/ration/assorted_salted_offal,
-/obj/item/storage/ration/battered_fish_sticks,
-/obj/item/storage/ration/beef_goulash,
-/obj/item/storage/ration/beef_strips,
-/obj/item/storage/ration/fried_fish,
-/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
"vB" = (
-/obj/machinery/camera/autoname,
-/obj/machinery/cryopod,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/crew/cryo)
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 5;
+ layer = 4.1
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/structure/closet/firecloset/wall/directional/west,
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/hallway/central)
"vF" = (
-/obj/structure/window/reinforced/tinted{
- dir = 1
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12;
+ pixel_y = 4
},
-/obj/machinery/door/window/survival_pod{
- dir = 4;
- opacity = 1;
- name = "Medical Specialist's Quarters";
+/obj/machinery/button/door{
+ dir = 8;
+ id = "MedShutters";
+ name = "Medical Shutters";
+ pixel_x = 26;
req_access_txt = "5";
req_ship_access = 1
},
-/turf/open/floor/plasteel/stairs/wood{
- dir = 8
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 25;
+ pixel_y = -9
+ },
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloorwhite/corner,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 9
},
+/turf/open/floor/plasteel/white,
/area/ship/medical)
+"vJ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/specialized/engineering)
"vO" = (
+/obj/machinery/light/floor,
/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
+ dir = 8
},
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 4
+ dir = 8
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
"vR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -2860,12 +3144,13 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"vS" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/effect/turf_decal/siding/blue{
- dir = 10
- },
+/obj/structure/crate_shelf,
+/obj/structure/closet/crate/freezer/blood,
+/obj/machinery/iv_drip,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/industrial/warning/cee,
+/obj/effect/turf_decal/siding/thinplating/light/end,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"vT" = (
@@ -2893,8 +3178,8 @@
/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
"vV" = (
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/structure/window/reinforced/spawner{
@@ -2922,32 +3207,40 @@
name = "Engine Shutters"
},
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"wf" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable,
/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -20;
- pixel_y = 12
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 8
},
-/obj/machinery/photocopier,
-/turf/open/floor/plasteel/patterned/brushed,
-/area/ship/bridge)
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/east{
+ pixel_y = -6
+ },
+/obj/structure/platform/military{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/tcomms,
+/area/ship/engineering/communications)
"wh" = (
/obj/machinery/power/shieldwallgen/atmos/roundstart{
dir = 4;
id = "Ranger_Starboard_holofield"
},
/obj/machinery/door/poddoor{
- id = "Rangar_Starboard_Blasts"
+ id = "Rangar_Starboard_Blasts";
+ name = "Starboard Access"
},
/obj/structure/cable,
/obj/machinery/door/firedoor/border_only{
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"wp" = (
/obj/item/clothing/mask/breath,
@@ -2970,41 +3263,50 @@
/turf/open/floor/engine/hull,
/area/ship/external/dark)
"wu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
+/obj/machinery/telecomms/server/presets/nanotrasen{
+ autolinkers = list("nanotrasen","hub");
+ freq_listening = list(1353,1447,1459);
+ network = "nt_commnet"
},
-/obj/effect/turf_decal/corner/opaque/vired/half,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/tech,
-/area/ship/storage/equip)
+/obj/item/disk/holodisk/lp/stations,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/engineering/communications)
"ww" = (
/obj/machinery/light/dim/directional/west,
-/obj/structure/chair/handrail,
/turf/open/floor/engine/hull,
/area/ship/external/dark)
"wC" = (
-/obj/effect/turf_decal/steeldecal/steel_decals6,
-/obj/machinery/telecomms/receiver/preset_right{
- autolinkers = list("receiverB","hub");
- freq_listening = list(1353,1447,1459);
- network = "nt_commnet"
+/obj/item/storage/box/donkpockets{
+ pixel_x = -3
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/item/storage/box/donkpockets/donkpocketpizza{
+ pixel_x = 2;
+ pixel_y = 4
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/item/storage/box/donkpockets/donkpocketspicy{
+ pixel_x = 7;
+ pixel_y = 9
+ },
+/obj/structure/table/reinforced{
+ color = "#8A9397"
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/hallway/central)
"wE" = (
/obj/machinery/button/door{
- pixel_y = 21;
- name = "Blast Doors";
id = "Ranger_Port_Blasts";
+ name = "Blast Doors";
+ pixel_y = 21;
req_ship_access = 1
},
/obj/machinery/button/shieldwallgen{
- pixel_y = 20;
+ id = "Ranger_Port_holofields";
pixel_x = 8;
- id = "Ranger_Port_holofields"
+ pixel_y = 20
},
/obj/effect/turf_decal/trimline/transparent/white/filled/corner{
dir = 4
@@ -3078,17 +3380,11 @@
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"xA" = (
-/obj/structure/tank_dispenser/oxygen,
+/obj/structure/crate_shelf,
+/obj/structure/closet/crate/secure/loot,
/obj/machinery/light/dim/directional/west,
-/obj/effect/turf_decal/siding/yellow{
- dir = 4
- },
-/obj/structure/railing{
- dir = 4;
- layer = 4.1
- },
/turf/open/floor/plasteel/tech,
-/area/ship/hallway/starboard)
+/area/ship/cargo)
"xB" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -3099,9 +3395,6 @@
/obj/structure/cable/cyan{
icon_state = "4-9"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
@@ -3112,8 +3405,12 @@
dir = 1
},
/obj/effect/decal/cleanable/plasma,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/railing{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"xK" = (
/obj/structure/table/reinforced{
color = "#c1b6a5"
@@ -3124,21 +3421,41 @@
/obj/item/binoculars,
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
+"xY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"yf" = (
+/obj/machinery/camera/autoname,
+/obj/machinery/cryopod,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
"yi" = (
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/button/shieldwallgen{
dir = 8;
+ id = "AI_Core_Field_Engi";
pixel_x = 20;
- pixel_y = 9;
- id = "AI_Core_Field_Engi"
+ pixel_y = 9
},
/obj/machinery/button/door{
dir = 8;
- pixel_x = 22;
- name = "Access Blast Doors";
id = "Ranger_AI_Core_Blasts";
+ name = "Access Blast Doors";
+ pixel_x = 22;
pixel_y = 1;
- req_access_txt = "10"
+ req_access_txt = "10";
+ req_ship_access = 1
},
/obj/structure/cable{
icon_state = "1-2"
@@ -3166,63 +3483,122 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
"yo" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/item/radio/intercom/directional/north,
-/obj/effect/turf_decal/corner/opaque/vired/half{
+/obj/structure/bodycontainer/morgue,
+/obj/structure/window/reinforced/spawner,
+/obj/effect/turf_decal/techfloor{
dir = 1
},
-/obj/structure/chair/plastic{
- dir = 4
- },
-/obj/effect/decal/cleanable/confetti,
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
"yA" = (
-/obj/machinery/telecomms/hub{
- network = "nt_commnet";
- id = "Nanotrasen Communications Hub";
- autolinkers = list("hub","bus","relay","messaging","nanotrasen","broadcasterB","receiverB")
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/techfloor{
- dir = 1
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/ship/crew/dorm/captain)
"yC" = (
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1;
- color = "#a8b2b6"
+/obj/structure/fluff/hedge/opaque,
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 5
},
-/obj/item/bikehorn/rubberducky,
-/turf/open/floor/noslip,
-/area/ship/crew/toilet)
-"yG" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/chair/handrail{
+/obj/structure/window/reinforced/survival_pod{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 8
+/obj/structure/window/reinforced/survival_pod{
+ dir = 1
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
-"yK" = (
-/obj/machinery/camera/autoname{
+/obj/structure/window/reinforced/survival_pod{
+ density = 0;
+ dir = 5
+ },
+/obj/structure/window/reinforced/survival_pod{
+ density = 0;
dir = 9
},
-/obj/machinery/light/floor,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
-"yU" = (
-/obj/structure/table/reinforced,
-/obj/machinery/computer/helm/viewscreen/directional/south,
-/obj/machinery/cell_charger,
-/obj/effect/turf_decal/techfloor{
+/turf/open/floor/plasteel/white,
+/area/ship/crew/specialized/cargo)
+"yF" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/specialized/security)
+"yG" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "Ranger_Security_Specialist_Quarters";
+ name = "Security Specialist's Quarters"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew/specialized/security)
+"yK" = (
+/obj/machinery/camera/autoname{
+ dir = 9
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"yU" = (
+/obj/machinery/door/window/brigdoor/eastright{
+ dir = 2;
+ name = "Armory";
+ req_access_txt = "1";
+ req_ship_access = 1
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
dir = 4
},
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/engineering)
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/storage/box/ammo/c9mm{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/storage/box/ammo/c9mm_rubber{
+ pixel_x = -9
+ },
+/obj/structure/closet/crate/secure/gear{
+ name = "Ammunition Crate"
+ },
+/obj/effect/decal/cleanable/wrapping,
+/obj/item/ammo_box/magazine/smgm9mm{
+ pixel_x = 11
+ },
+/obj/item/ammo_box/magazine/smgm9mm{
+ pixel_x = 11
+ },
+/obj/item/ammo_box/magazine/smgm9mm{
+ pixel_x = 11
+ },
+/obj/item/ammo_box/magazine/smgm9mm{
+ pixel_x = 11
+ },
+/obj/item/ammo_box/magazine/co9mm,
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/storage/equip)
"yZ" = (
/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable{
@@ -3268,21 +3644,14 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"zB" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/line,
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
- },
-/obj/structure/chair/office{
- dir = 8
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
+/turf/open/floor/wood/ebony,
+/area/ship/crew/specialized/cargo)
"zC" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -3290,27 +3659,31 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
+/obj/structure/filingcabinet/chestdrawer{
+ density = 0;
+ dir = 4;
+ pixel_x = -6
},
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
- dir = 9
+/obj/item/paper/crumpled{
+ pixel_x = 6;
+ pixel_y = -1
},
-/obj/machinery/door/poddoor/shutters{
- dir = 8;
- name = "Cargo Bay";
- id = "Ranger_Cargo_Door"
+/obj/item/paper/crumpled{
+ pixel_x = -4;
+ pixel_y = -6
},
-/obj/machinery/button/door{
- name = "Cargo Bay Shutters";
- id = "Ranger_Cargo_Door";
- pixel_y = 23;
- req_ship_access = 1
+/obj/item/paper/crumpled{
+ pixel_x = -10;
+ pixel_y = 6
},
-/turf/open/floor/plasteel/lightgrey,
+/obj/item/paper/crumpled,
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"zF" = (
/obj/structure/cable{
@@ -3318,6 +3691,34 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
+"zM" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters{
+ id = "Ranger_Security_Specialist_Quarters";
+ name = "Security Specialist's Quarters"
+ },
+/obj/structure/grille,
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew/specialized/security)
+"zO" = (
+/obj/machinery/light/dim/directional/east,
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloorwhite/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
"zW" = (
/turf/template_noop,
/area/template_noop)
@@ -3329,14 +3730,22 @@
/turf/open/floor/plasteel/tech,
/area/ship/security)
"Ao" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
/obj/effect/turf_decal/siding/wood{
- dir = 10
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "Ranger_Medical_Specialist_Quarters";
+ name = "Medical Quarters Windows";
+ pixel_x = -22;
+ pixel_y = 1;
+ req_ship_access = 1
},
/turf/open/floor/wood,
-/area/ship/crew/dorm/captain)
+/area/ship/crew/specialized/medical)
"Av" = (
/obj/item/toy/cards/deck{
pixel_x = -1;
@@ -3351,8 +3760,26 @@
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"Aw" = (
-/turf/open/floor/wood,
-/area/ship/medical)
+/obj/item/clothing/under/rank/medical/paramedic/skirt/lp,
+/obj/item/clothing/under/rank/medical/paramedic/lp,
+/obj/item/clothing/suit/hooded/wintercoat/medical,
+/obj/item/clothing/head/beret/med,
+/obj/item/storage/backpack/satchel/med,
+/obj/item/storage/backpack/messenger/med,
+/obj/item/storage/backpack/medic,
+/obj/item/storage/backpack/duffelbag/med,
+/obj/item/storage/backpack/ert/medical,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/closet/cabinet,
+/obj/machinery/light/small/directional/south,
+/obj/item/clothing/head/nanotrasen/cap/security,
+/obj/item/clothing/under/nanotrasen/science,
+/obj/item/clothing/under/nanotrasen/medical/paramedic,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/specialized/medical)
"AF" = (
/obj/structure/chair/comfy/shuttle{
dir = 4;
@@ -3363,39 +3790,42 @@
dir = 1
},
/obj/machinery/button/door{
- pixel_y = 20;
- pixel_x = -5;
+ id = "RangerStarboardShutters";
name = "Starboard Corridor Shutters";
- id = "RangerStarboardShutters"
+ pixel_x = -5;
+ pixel_y = 20;
+ req_ship_access = 1
},
/obj/machinery/button/door{
- pixel_y = 20;
- pixel_x = 5;
+ id = "RangerPortShutters";
name = "Port Corridor Shutters";
- id = "RangerPortShutters"
+ pixel_x = 5;
+ pixel_y = 20;
+ req_ship_access = 1
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"AH" = (
-/obj/effect/turf_decal/steeldecal/steel_decals7{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 1
},
-/obj/effect/turf_decal/techfloor,
-/obj/effect/turf_decal/techfloor{
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/orange{
dir = 1
},
-/obj/machinery/camera/autoname{
- dir = 5
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
},
-/obj/machinery/button/door{
- dir = 4;
- pixel_x = -26;
- id = "AiCore";
- name = "Core Access";
- req_access_txt = "20"
+/obj/structure/cable{
+ icon_state = "2-4"
},
/turf/open/floor/plasteel/tech,
-/area/ship/engineering/communications)
+/area/ship/engineering)
"AP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -3417,12 +3847,25 @@
/obj/machinery/camera/autoname{
dir = 1
},
+/obj/item/radio/intercom/directional/south,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"AZ" = (
-/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
/turf/open/floor/wood,
-/area/ship/security)
+/area/ship/crew/specialized/security)
"Be" = (
/obj/machinery/light/dim/directional/south,
/obj/machinery/button/door{
@@ -3431,9 +3874,9 @@
name = "Ready Room";
pixel_x = -22;
pixel_y = 6;
+ req_one_access = list(50, 10, 5, 1, 20);
req_one_access_txt = "50,10,5,1,20";
- req_ship_access = 1;
- req_one_access = list(50, 10, 5, 1, 20)
+ req_ship_access = 1
},
/obj/item/clothing/suit/space/hardsuit/ert/lp/sec,
/obj/machinery/suit_storage_unit/inherit{
@@ -3442,6 +3885,11 @@
/obj/item/clothing/mask/breath,
/obj/item/tank/internals/oxygen/red,
/obj/effect/turf_decal/industrial/outline/red,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = -3
+ },
/turf/open/floor/plasteel/lightgrey,
/area/ship/storage/equip)
"Bg" = (
@@ -3450,7 +3898,8 @@
id = "Ranger_Starboard_holofield"
},
/obj/machinery/door/poddoor{
- id = "Rangar_Starboard_Blasts"
+ id = "Rangar_Starboard_Blasts";
+ name = "Starboard Access"
},
/obj/structure/cable{
icon_state = "0-9"
@@ -3459,28 +3908,31 @@
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"Bh" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
+/obj/structure/cable{
+ icon_state = "6-8"
},
-/obj/structure/window/reinforced/tinted{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/wood,
-/area/ship/engineering)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"Bl" = (
/obj/structure/chair/handrail{
dir = 8
},
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"Bo" = (
/obj/effect/turf_decal/steeldecal/steel_decals4,
@@ -3497,16 +3949,19 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 6
},
-/turf/open/floor/plasteel/telecomms_floor,
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
/area/ship/engineering/communications)
+"Bv" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/specialized/cargo)
"BA" = (
/obj/machinery/light/small/directional/east,
/obj/structure/toilet{
dir = 1
},
/obj/effect/turf_decal/siding/thinplating{
- dir = 1;
- color = "#a8b2b6"
+ color = "#a8b2b6";
+ dir = 1
},
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plasteel/showroomfloor,
@@ -3534,7 +3989,7 @@
name = "Engine Shutters"
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"BX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -3575,15 +4030,12 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"Cb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
/obj/machinery/light/dim/directional/west,
-/obj/effect/turf_decal/industrial/hatch/blue,
/obj/structure/bed/roller,
+/obj/effect/turf_decal/industrial/hatch/blue,
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = 32
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"Cg" = (
@@ -3596,48 +4048,71 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
-"Cq" = (
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/obj/machinery/blackbox_recorder,
-/obj/effect/turf_decal/techfloor{
+"Cn" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
dir = 1
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
-"Ct" = (
-/obj/machinery/light/dim/directional/east,
-/obj/effect/turf_decal/industrial/warning{
- dir = 10
+/obj/structure/crate_shelf,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = 8
},
-/obj/effect/turf_decal/siding/thinplating/light{
- dir = 10
+/obj/machinery/button/door{
+ dir = 4;
+ id = "Ranger_Cargo_Privacy";
+ name = "Cargo Privacy Shutters";
+ pixel_x = -22;
+ pixel_y = -1;
+ req_ship_access = 1
},
-/obj/effect/turf_decal/borderfloorwhite/corner{
- dir = 4
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Cq" = (
+/obj/machinery/button/door{
+ dir = 4;
+ id = "Ranger_AI_Core_Ext_Blasts";
+ name = "Outer Window Blast Doors";
+ pixel_x = -21
},
-/obj/machinery/shower{
- dir = 8;
- pixel_y = 2
+/obj/machinery/light/dim/directional/south,
+/obj/machinery/telecomms/message_server/preset{
+ autolinkers = list("messaging","hub");
+ layer = 3.1;
+ network = "nt_commnet"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
+"Ct" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
+/obj/effect/turf_decal/siding/blue,
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"CB" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 10
+/obj/machinery/telecomms/bus/preset_four{
+ autolinkers = list("hub","processor4","bus");
+ freq_listening = list(1353,1447,1459);
+ id = "Nanotrasen Communications Bus";
+ network = "nt_commnet"
},
-/turf/open/floor/plasteel/telecomms_floor,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/circuit/telecomms,
/area/ship/engineering/communications)
"CD" = (
/obj/machinery/computer/helm/viewscreen/directional/east,
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"CG" = (
/obj/machinery/door/airlock/public/glass,
@@ -3657,29 +4132,30 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"CJ" = (
-/obj/machinery/door/firedoor/border_only{
- dir = 4
+/obj/machinery/camera/autoname{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+/obj/structure/railing{
+ dir = 4;
+ layer = 4.1
},
-/obj/machinery/atmospherics/components/binary/pump/on/layer2{
- dir = 8
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
},
-/turf/open/floor/plating,
+/obj/structure/closet/emcloset/wall/directional/west,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"CN" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
- piping_layer = 2;
- dir = 8;
- layer = 2
- },
/obj/structure/window/reinforced{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 10
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
/turf/open/floor/engine/air,
/area/ship/hallway/central)
"CP" = (
@@ -3700,18 +4176,16 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
- },
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/central)
"CW" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/button/door{
- pixel_x = 21;
dir = 8;
- pixel_y = 3;
+ id = "RangerCryoShutters";
name = "Cryogenics Access";
- id = "RangerCryoShutters"
+ pixel_x = 21;
+ pixel_y = 3
},
/obj/machinery/door/poddoor/shutters/preopen{
id = "RangerCryoShutters";
@@ -3723,13 +4197,16 @@
/area/ship/crew/cryo)
"Dd" = (
/obj/effect/turf_decal/industrial/outline/orange,
-/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"Dr" = (
/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "AI_Core_Field_Engi";
- dir = 8
+ dir = 8;
+ id = "AI_Core_Field_Engi"
},
/obj/machinery/door/poddoor{
dir = 2;
@@ -3762,7 +4239,10 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 5
},
-/turf/open/floor/plasteel/telecomms_floor,
+/obj/structure/platform/military{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
/area/ship/engineering/communications)
"Dx" = (
/obj/machinery/recharger{
@@ -3771,84 +4251,53 @@
},
/obj/machinery/button/door{
id = "SecureCell";
+ name = "Cell Bolt Controls";
normaldoorcontrol = 1;
pixel_x = 7;
pixel_y = 10;
- specialfunctions = 4;
req_access_txt = "1";
req_ship_access = 1;
- name = "Cell Bolt Controls"
+ specialfunctions = 4
},
/obj/structure/table/reinforced{
color = "#8A9397"
},
/obj/machinery/button/door{
id = "SecShutters";
- name = "Privacy Shutters";
layer = 2.92;
- req_ship_access = 1;
- req_access_txt = "1";
+ name = "Privacy Shutters";
pixel_x = -5;
- pixel_y = 10
+ pixel_y = 10;
+ req_access_txt = "1";
+ req_ship_access = 1
},
/obj/machinery/button/door{
id = "CellHallShutters";
+ layer = 2.91;
name = "Cell Hall Shutters";
- req_access_txt = "1";
- req_ship_access = 1;
pixel_x = -5;
pixel_y = 2;
- layer = 2.91
+ req_access_txt = "1";
+ req_ship_access = 1
},
/obj/machinery/button/door{
- pixel_y = -6;
- pixel_x = -5;
id = "SecCellWindowShutters";
name = "Cell Window Shutters";
+ pixel_x = -5;
+ pixel_y = -6;
req_access_txt = "1";
req_ship_access = 1
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/ship/security)
"DE" = (
-/obj/machinery/firealarm/directional/east,
-/obj/machinery/recharger{
- dir = 4;
- pixel_x = -8
- },
-/obj/machinery/cell_charger{
- dir = 4;
- pixel_x = 5
- },
-/obj/structure/table/reinforced,
-/obj/item/stack/marker_beacon/thirty{
- icon_state = "markerrandom";
- pixel_x = -9;
- pixel_y = 13;
- amount = 100
- },
-/obj/item/stack/marker_beacon/thirty{
- icon_state = "markerrandom";
- pixel_x = 11;
- pixel_y = 13;
- amount = 100
- },
-/obj/item/stack/marker_beacon/thirty{
- icon_state = "markerrandom";
- pixel_x = 5;
- pixel_y = 13;
- amount = 100
- },
-/obj/item/stack/marker_beacon/thirty{
- icon_state = "markerrandom";
- pixel_x = -2;
- pixel_y = 13;
- amount = 100
+/obj/machinery/holopad,
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 1
},
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters{
- dir = 8
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/obj/item/stock_parts/cell/gun,
/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
"DQ" = (
@@ -3872,11 +4321,43 @@
},
/obj/machinery/light/dim/directional/north,
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"DZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/filingcabinet/double,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 6
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 16
+ },
+/obj/item/paper_bin{
+ pixel_x = 7;
+ pixel_y = -4
+ },
+/obj/item/pen/fountain{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/obj/structure/table/reinforced{
+ color = "#c1b6a5"
+ },
+/obj/item/paper/crumpled{
+ pixel_x = -4;
+ pixel_y = -6
+ },
+/obj/item/paper/crumpled/muddy{
+ name = "coffee-stained paper scrap";
+ pixel_x = -9;
+ pixel_y = 6
+ },
+/obj/item/toy/plush/moth/atlas{
+ pixel_x = 9;
+ pixel_y = 16
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Ek" = (
/obj/machinery/computer/telecomms/server,
@@ -3889,29 +4370,84 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"Ep" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 10
+/obj/structure/chair/comfy/blue/directional/east,
+/obj/item/toy/plush/moth/royal{
+ layer = 3.05;
+ pixel_x = -6;
+ pixel_y = 11
},
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
+/obj/item/radio/intercom/wideband/directional/south,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
+/obj/item/toy/plush/moth/lovers{
+ layer = 3.05;
+ pixel_x = 4
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
"Eq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/turf_decal/trimline/opaque/nsorange/warning,
/obj/effect/turf_decal/siding{
color = "#474747"
},
-/turf/open/floor/plasteel/lightgrey,
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
+"Et" = (
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
"EA" = (
-/obj/structure/crate_shelf,
-/obj/machinery/light/dim/directional/west,
+/obj/structure/closet/crate/hydroponics{
+ name = "Sustenance Crate"
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/storage/ration/assorted_salted_offal,
+/obj/item/storage/ration/battered_fish_sticks,
+/obj/item/storage/ration/beef_goulash,
+/obj/item/storage/ration/beef_strips,
+/obj/item/storage/ration/fried_fish,
+/obj/item/reagent_containers/food/snacks/popcorn{
+ desc = "Dehydrated, salted sunflower seeds, for snacking!";
+ icon = 'icons/obj/hydroponics/seeds.dmi';
+ icon_state = "seed-sunflower";
+ list_reagents = list(/datum/reagent/consumable/nutriment = 4);
+ name = "Snacking Sunflower Seeds"
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/storage/ration/cheese_pizza_slice,
+/obj/item/storage/ration/pepperoni_pizza_slice,
/turf/open/floor/plasteel/tech,
/area/ship/cargo)
+"EE" = (
+/obj/machinery/camera/autoname{
+ dir = 10
+ },
+/obj/item/weldingtool/empty{
+ name = "sand-covered welding tool"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"EL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/firedoor/border_only{
@@ -3923,50 +4459,44 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"EP" = (
-/obj/machinery/vending/snack/random,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/hallway/central)
-"Ff" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/obj/effect/turf_decal/steeldecal/steel_decals6,
+/obj/machinery/telecomms/receiver/preset_right{
+ autolinkers = list("receiverB","hub");
+ freq_listening = list(1353,1447,1459);
+ network = "nt_commnet"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/platform/military{
+ dir = 1
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/engineering/communications)
+"Ff" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 1
},
+/obj/structure/sign/poster/official/work_for_a_future{
+ pixel_y = 32
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Fg" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
- dir = 4
- },
-/obj/item/paper/crumpled,
-/obj/item/paper/crumpled{
- pixel_x = 6;
- pixel_y = -1
- },
-/obj/item/paper/crumpled{
- pixel_x = -10;
- pixel_y = 6
- },
-/obj/item/paper/crumpled{
- pixel_y = -6;
- pixel_x = -4
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
-"Fh" = (
-/obj/machinery/atmospherics/pipe/layer_manifold/visible{
+/obj/structure/chair/office{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1;
- color = "#a8b2b6"
- },
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw,
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
},
-/area/ship/hallway/central)
+/turf/open/floor/wood/ebony,
+/area/ship/crew/specialized/cargo)
"Fw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -3988,12 +4518,12 @@
pixel_y = 4
},
/obj/item/reagent_containers/glass/maunamug{
- pixel_y = 9;
- pixel_x = 8
+ pixel_x = 8;
+ pixel_y = 9
},
/obj/item/clothing/mask/cigarette/cigar/havana{
- pixel_y = 2;
- pixel_x = -5
+ pixel_x = -5;
+ pixel_y = 2
},
/obj/structure/table/reinforced{
color = "#8A9397"
@@ -4023,14 +4553,23 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/siding/yellow{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/siding/yellow{
dir = 8
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/pod/light,
/area/ship/engineering)
+"FM" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "Ranger_Engineering_Specialist_Quarters";
+ name = "Engineering Specialist's Quarters"
+ },
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew/specialized/engineering)
"FQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4041,10 +4580,9 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/airalarm/directional/south,
/obj/effect/decal/cleanable/oil/streak,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"Gc" = (
/obj/machinery/light/dim/directional/north,
/obj/machinery/camera/autoname{
@@ -4094,24 +4632,19 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Gn" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green{
- pixel_x = 9;
- pixel_y = 3
- },
-/obj/item/toy/plush/moth/snow{
- pixel_x = -3
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
},
-/obj/item/folder/blue{
- pixel_x = -3;
- pixel_y = -10
+/obj/machinery/door/window{
+ name = "Toilet";
+ opacity = 1
},
-/obj/item/flashlight/pen{
- pixel_x = -5;
- pixel_y = -9
+/obj/item/soap/nanotrasen,
+/obj/structure/closet/wall/directional/west{
+ name = "Soap Holder"
},
-/turf/open/floor/wood,
-/area/ship/medical)
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
"Gs" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 10
@@ -4128,7 +4661,7 @@
/obj/effect/turf_decal/steeldecal/steel_decals7{
dir = 4
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/tech/tcomms,
/area/ship/engineering/communications)
"GC" = (
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
@@ -4165,39 +4698,24 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"GY" = (
-/obj/effect/turf_decal/siding/wood,
-/obj/item/radio/intercom/directional/south,
-/obj/item/bedsheet/orange,
-/obj/structure/bed,
-/obj/machinery/camera/autoname{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/turf/open/floor/wood,
-/area/ship/engineering)
+/obj/structure/girder/reinforced,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
"Ha" = (
-/obj/item/melee/classic_baton/telescopic,
-/obj/item/melee/knife/survival,
-/obj/item/gps,
-/obj/item/screwdriver,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 7;
- pixel_y = -20
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/item/storage/pistolcase/egun,
-/obj/item/megaphone/command,
-/obj/structure/closet/secure_closet/lp/lieutenant,
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/spline/fancy/opaque/orange{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
/turf/open/floor/plasteel/tech,
-/area/ship/crew/dorm/captain)
+/area/ship/engineering)
"Hd" = (
/obj/structure/grille,
/obj/structure/cable{
@@ -4205,24 +4723,33 @@
},
/obj/machinery/door/firedoor/window,
/obj/machinery/door/poddoor/shutters{
- id = "Engineering_Specialist_Shutters";
dir = 4;
+ id = "Engineering_Specialist_Shutters";
name = "Communications Shutters"
},
/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
/area/ship/engineering)
+"Hp" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 8
+ },
+/obj/structure/curtain/bounty,
+/turf/open/floor/plasteel/stairs{
+ dir = 8
+ },
+/area/ship/crew/specialized/cargo)
"Hs" = (
+/obj/effect/turf_decal/spline/fancy/opaque/orange{
+ dir = 1
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/orange{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/turf/open/floor/plasteel/tech,
@@ -4234,10 +4761,10 @@
/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{
dir = 8
},
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"HA" = (
/obj/machinery/power/shieldwallgen/atmos/roundstart{
@@ -4245,7 +4772,8 @@
id = "Ranger_Port_holofields"
},
/obj/machinery/door/poddoor{
- id = "Ranger_Port_Blasts"
+ id = "Ranger_Port_Blasts";
+ name = "Portside Access"
},
/obj/structure/cable{
icon_state = "0-6"
@@ -4255,7 +4783,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"HZ" = (
/obj/machinery/atmospherics/components/binary/pump{
@@ -4263,18 +4791,23 @@
},
/obj/effect/decal/cleanable/oil/slippery,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Ib" = (
/obj/machinery/button/door{
dir = 4;
- pixel_x = -21;
- name = "Shutters";
id = "Ranger_Port_maint_shut";
+ name = "Shutters";
+ pixel_x = -21;
req_ship_access = 1
},
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Ih" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
@@ -4318,49 +4851,31 @@
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
"Iz" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-10"
- },
-/obj/structure/closet/secure_closet{
- icon_state = "qm";
- name = "Logistics Specialist's Locker";
- req_ship_access = 1;
- req_one_access = list(50)
- },
-/obj/item/clothing/suit/hooded/wintercoat/cargo{
- pixel_x = 14
- },
-/obj/item/clothing/shoes/sneakers/brown{
- pixel_x = -10;
- pixel_y = -12
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/obj/item/storage/backpack/satchel/leather{
- pixel_y = -6
+/obj/effect/turf_decal/siding/red{
+ dir = 1
},
-/obj/item/clothing/under/nanotrasen/supply/qm,
-/obj/item/gps{
- pixel_x = 11;
- pixel_y = 9
+/obj/structure/cable,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/effect/turf_decal/siding/red{
+ dir = 5
},
-/obj/item/stack/packageWrap{
- pixel_x = -10;
- pixel_y = 12
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
},
-/obj/item/stack/packageWrap{
- pixel_x = -10
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
},
-/obj/item/stack/packageWrap{
- pixel_x = -10;
- pixel_y = 6
+/obj/structure/cable{
+ icon_state = "1-10"
},
/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
+/area/ship/security)
"IC" = (
-/obj/effect/turf_decal/corner/opaque/orange/full,
-/obj/machinery/door/airlock/engineering/glass{
- name = "Electrical Bay"
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -4370,22 +4885,24 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/siding/yellow{
dir = 1
},
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/siding/yellow,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Electrical Bay"
+ },
+/turf/open/floor/pod/light,
/area/ship/engineering)
"IE" = (
-/obj/machinery/light/floor,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
+/obj/structure/AIcore,
+/obj/item/mmi/posibrain,
+/obj/item/circuitboard/aicore,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
"IM" = (
/obj/structure/chair/sofa/brown/directional/west,
/obj/item/toy/plush/blahaj{
@@ -4418,12 +4935,33 @@
/turf/open/floor/plasteel/tech,
/area/ship/security)
"Js" = (
-/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/red{
+ dir = 4
+ },
/obj/effect/turf_decal/siding/red{
dir = 8
},
-/obj/effect/turf_decal/siding/red/corner,
-/turf/open/floor/plasteel/tech,
+/obj/machinery/door/airlock/security{
+ dir = 8;
+ name = "Security Specialist's Office";
+ req_access_txt = "1"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/light,
/area/ship/security)
"Jw" = (
/obj/structure/cable/cyan{
@@ -4432,26 +4970,36 @@
/obj/machinery/power/terminal{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"JK" = (
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/ship/engineering)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
"JO" = (
-/obj/machinery/door/airlock/command{
- req_access_txt = "20";
- name = "Lieutenant's Quarters"
+/obj/effect/turf_decal/industrial/outline/blue,
+/obj/structure/rack,
+/obj/item/extinguisher/advanced{
+ pixel_x = 5;
+ pixel_y = 6
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/item/extinguisher/advanced{
+ pixel_x = 12;
+ pixel_y = 10
},
-/obj/machinery/door/firedoor/border_only{
- dir = 1
+/obj/item/extinguisher{
+ pixel_x = -3
},
-/obj/machinery/door/firedoor/border_only,
-/turf/open/floor/wood,
-/area/ship/crew/dorm/captain)
+/obj/item/extinguisher{
+ pixel_x = -9;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
"JP" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4462,6 +5010,7 @@
/obj/machinery/camera/autoname{
dir = 1
},
+/obj/item/radio/intercom/directional/south,
/turf/open/floor/plating,
/area/ship/engineering)
"JR" = (
@@ -4483,8 +5032,11 @@
},
/obj/effect/decal/cleanable/plasma,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Kl" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
@@ -4492,13 +5044,40 @@
/obj/machinery/computer/helm/viewscreen/directional/west,
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
+"Kq" = (
+/obj/machinery/door/airlock/command{
+ name = "Lieutenant's Quarters";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/pod/light,
+/area/ship/crew/dorm/captain)
"Kt" = (
-/obj/effect/turf_decal/siding/blue{
+/obj/machinery/computer/helm/viewscreen/directional/west,
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor/corner{
dir = 4
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 8
},
+/obj/effect/turf_decal/siding/thinplating/light/corner,
/turf/open/floor/plasteel/white,
/area/ship/medical)
"Kw" = (
@@ -4512,12 +5091,20 @@
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"KC" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters{
- dir = 4
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 5
},
-/turf/open/floor/plasteel/tech,
-/area/ship/storage/equip)
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/wood,
+/area/ship/crew/specialized/engineering)
"KQ" = (
/obj/structure/closet,
/obj/item/pickaxe,
@@ -4534,8 +5121,62 @@
dir = 4;
layer = 4.1
},
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_x = -32
+ },
/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
+"KT" = (
+/obj/structure/table/reinforced{
+ color = "#8A9397"
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/pen/red{
+ pixel_x = 6
+ },
+/turf/open/floor/mineral/plastitanium/red/brig,
+/area/ship/security)
+"KU" = (
+/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+ dir = 5
+ },
+/obj/item/stack/tape{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/item/stack/tape{
+ layer = 3.01;
+ pixel_x = 7;
+ pixel_y = 17
+ },
+/obj/item/hand_labeler{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/folder/yellow{
+ pixel_x = 6
+ },
+/obj/structure/table/reinforced{
+ color = "#c1b6a5"
+ },
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/west{
+ pixel_x = -28
+ },
+/obj/structure/sign/nanotrasen/ns{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/cargo)
"KX" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4561,22 +5202,24 @@
dir = 1
},
/obj/effect/turf_decal/siding/red,
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
/turf/open/floor/plasteel/tech,
/area/ship/security)
"Lk" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
"Lt" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/airalarm/directional/west,
-/obj/machinery/door/window{
- opacity = 1;
- name = "Toilet"
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 1
},
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew/toilet)
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
"Lu" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4595,20 +5238,30 @@
"Lw" = (
/obj/effect/turf_decal/industrial/outline/orange,
/obj/effect/decal/cleanable/plasma,
-/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"LM" = (
-/obj/machinery/telecomms/processor/preset_four{
- autolinkers = list("processor4","bus");
- network = "nt_commnet";
- id = "Nanotrasen Communications Processor"
+/obj/effect/turf_decal/siding/red/corner,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 8
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
"LQ" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -4631,37 +5284,38 @@
/area/ship/bridge)
"LV" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Ma" = (
-/obj/effect/turf_decal/siding/red{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 1
},
-/obj/effect/turf_decal/siding/red{
- dir = 8
+/obj/structure/chair/plastic{
+ dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ship/security)
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
"Mc" = (
-/obj/machinery/light/dim/directional/east,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1;
- color = "#a8b2b6"
- },
-/obj/machinery/shower{
- dir = 1
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "Ranger_Medical_Specialist_Quarters";
+ name = "Medical Specialist's Quarters"
},
-/obj/item/soap/nanotrasen,
-/turf/open/floor/noslip,
-/area/ship/crew/toilet)
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/plating,
+/area/ship/crew/specialized/medical)
"Md" = (
-/obj/structure/AIcore,
-/obj/item/mmi/posibrain,
-/obj/item/circuitboard/aicore,
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "Ranger_AI_Core_Ext_Blasts"
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/machinery/door/firedoor/window,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/turf/open/floor/plating,
+/area/ship/science/ai_chamber)
"Mf" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew/dorm/captain)
@@ -4672,30 +5326,27 @@
/obj/structure/cable{
icon_state = "1-6"
},
-/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{
+/obj/structure/chair/handrail{
dir = 4
},
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/structure/chair/handrail{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/starboard)
"Mh" = (
-/obj/machinery/computer/apc_control{
- dir = 4;
- icon_state = "computer-left"
- },
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/engineering)
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/science/ai_chamber)
"Mm" = (
/obj/structure/cable{
icon_state = "5-8"
},
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning,
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/effect/turf_decal/trimline/transparent/white/filled/corner{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Mn" = (
@@ -4708,11 +5359,12 @@
/area/ship/hallway/central)
"Ms" = (
/obj/machinery/button/door{
- pixel_y = -20;
- name = "Ranger Bridge Shutters";
- id = "Ranger_Bridge_Shutters";
dir = 1;
- pixel_x = 6
+ id = "Ranger_Bridge_Shutters";
+ name = "Ranger Bridge Shutters";
+ pixel_x = 6;
+ pixel_y = -20;
+ req_ship_access = 1
},
/obj/effect/turf_decal/steeldecal/steel_decals4,
/obj/effect/turf_decal/techfloor{
@@ -4721,26 +5373,26 @@
/obj/machinery/door/window/survival_pod{
dir = 8;
name = "Captain's Nest";
- req_one_access_txt = list(50, 10, 5, 1, 20)
+ req_one_access_txt = list(50, 10, 5, 1, 20);
+ req_ship_access = 1
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"Mt" = (
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+ icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
+/obj/machinery/holopad,
/obj/effect/turf_decal/spline/fancy/opaque/orange{
dir = 1
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/north,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"Mu" = (
@@ -4753,9 +5405,9 @@
pixel_x = -10
},
/obj/item/flashlight/lamp/green{
+ layer = 4.2;
pixel_x = 5;
- pixel_y = 13;
- layer = 4.2
+ pixel_y = 13
},
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -4763,18 +5415,33 @@
/turf/open/floor/wood,
/area/ship/crew/dorm/captain)
"Mx" = (
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 19;
- pixel_y = 8
+/obj/effect/turf_decal/steeldecal/steel_decals7{
+ dir = 1
},
/obj/effect/turf_decal/techfloor,
/obj/effect/turf_decal/techfloor{
dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ship/engineering/communications)
-"Mz" = (
+/obj/machinery/camera/autoname{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "AiCore";
+ name = "Core Access";
+ pixel_x = -26;
+ req_access_txt = "20";
+ req_ship_access = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/tcomms,
+/area/ship/engineering/communications)
+"Mz" = (
/obj/structure/cable{
icon_state = "1-2"
},
@@ -4783,10 +5450,10 @@
},
/obj/machinery/button/door{
dir = 4;
- pixel_y = 6;
- pixel_x = -22;
id = "Engineering_Specialist_Shutters";
- name = "Comms Shutters"
+ name = "Comms Shutters";
+ pixel_x = -22;
+ pixel_y = 6
},
/obj/machinery/camera/autoname{
dir = 5
@@ -4813,7 +5480,10 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 1
},
-/turf/open/floor/plasteel/telecomms_floor,
+/obj/structure/platform/military/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
/area/ship/engineering/communications)
"MI" = (
/obj/machinery/airalarm/directional/north,
@@ -4829,15 +5499,21 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"MK" = (
-/obj/structure/sign/nanotrasen{
- pixel_x = 32
+/obj/item/aiModule/reset/purge{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/aiModule/reset{
+ pixel_x = 4;
+ pixel_y = -2
},
+/obj/machinery/light/dim/directional/north,
/obj/effect/turf_decal/techfloor,
/obj/structure/table/reinforced{
color = "#8A9397"
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
"ML" = (
/obj/machinery/light/dim/directional/north,
/obj/effect/turf_decal/industrial/outline/blue,
@@ -4851,8 +5527,10 @@
pixel_y = -10
},
/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/storage/backpack/duffelbag,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"MR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
@@ -4902,51 +5580,36 @@
/turf/open/floor/plating,
/area/ship/engineering)
"Nf" = (
-/obj/machinery/button/door{
+/obj/machinery/newscaster/security_unit/directional/south,
+/obj/structure/chair/office{
dir = 4;
- pixel_x = -21;
- name = "Outer Window Blast Doors";
- id = "Ranger_AI_Core_Ext_Blasts"
- },
-/obj/machinery/light/dim/directional/south,
-/obj/machinery/telecomms/message_server/preset{
- autolinkers = list("messaging","hub");
- network = "nt_commnet";
- layer = 3.1
+ name = "tactical swivel chair"
},
-/obj/effect/turf_decal/techfloor{
- dir = 1
+/obj/machinery/computer/security/telescreen{
+ dir = 1;
+ network = list("ss13");
+ pixel_y = -28
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/turf/open/floor/mineral/plastitanium/red/brig,
+/area/ship/security)
"Nn" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 6
+ dir = 10
},
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 4
+ dir = 8
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
"Nu" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"Ny" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/machinery/door/window/survival_pod{
- dir = 1;
- opacity = 1;
- req_one_access_txt = "10";
- name = "Engineering Specialist's Quarters"
- },
-/turf/open/floor/wood,
+/obj/machinery/light/dim/directional/east,
+/obj/structure/frame/machine,
+/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"NC" = (
/obj/machinery/camera/autoname{
@@ -4955,12 +5618,16 @@
/obj/machinery/light/floor{
pixel_y = -9
},
+/obj/structure/flora/driftwood{
+ name = "twigs"
+ },
/turf/open/floor/engine/hull,
/area/ship/external/dark)
"NM" = (
+/obj/structure/railing,
/turf/open/floor/plasteel/stairs{
- dir = 4;
- color = "#a8b2b6"
+ color = "#a8b2b6";
+ dir = 4
},
/area/ship/bridge)
"NR" = (
@@ -4974,187 +5641,296 @@
dir = 9
},
/obj/effect/turf_decal/corner/opaque/vired/half,
-/obj/effect/decal/cleanable/plasma,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"NS" = (
-/obj/structure/crate_shelf,
-/obj/structure/closet/crate/freezer/blood,
-/obj/effect/turf_decal/siding/blue{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/iv_drip,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
-"NZ" = (
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/ship/crew/dorm/captain)
-"Og" = (
-/obj/machinery/camera/autoname{
- dir = 1
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/machinery/air_sensor/external,
-/obj/machinery/light/dim/directional/south,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
-"Om" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/corner{
- dir = 1
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1;
- color = "#474747"
+/obj/effect/turf_decal/siding/blue{
+ dir = 8
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
-"On" = (
-/obj/machinery/light/dim/directional/east,
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
- dir = 6
+/obj/effect/turf_decal/siding/blue{
+ dir = 4
},
-/obj/item/reagent_containers/food/drinks/coffee{
- pixel_y = 16
+/obj/machinery/door/airlock/medical{
+ dir = 8;
+ name = "Medical Specialist's Quarters";
+ req_access_txt = "5"
},
-/obj/item/paper_bin{
- pixel_x = 7;
- pixel_y = -4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/item/pen/fountain{
- pixel_x = 6;
- pixel_y = -5
+/turf/open/floor/pod/light,
+/area/ship/crew/specialized/medical)
+"NV" = (
+/obj/structure/closet/crate/secure/plasma{
+ name = "Relay Parts Crate"
},
-/obj/structure/table/reinforced{
- color = "#c1b6a5"
+/obj/item/storage/box/stockparts/basic,
+/obj/item/circuitboard/machine/telecomms/relay{
+ pixel_x = -5;
+ pixel_y = 9
},
-/obj/item/toy/plush/moth/atlas{
- pixel_x = 9;
- pixel_y = 16
+/obj/item/circuitboard/machine/telecomms/relay{
+ pixel_x = -5;
+ pixel_y = 9
},
-/obj/machinery/camera/autoname{
- dir = 1
+/obj/item/circuitboard/machine/telecomms/relay{
+ pixel_x = -5;
+ pixel_y = 9
},
-/obj/item/paper/crumpled{
- pixel_y = -6;
- pixel_x = -4
+/obj/item/encryptionkey/nanotrasen{
+ pixel_x = -1
},
-/obj/item/paper/crumpled/muddy{
- name = "coffee-stained paper scrap";
- pixel_x = -9;
- pixel_y = 6
+/obj/item/encryptionkey/nanotrasen{
+ pixel_x = 3
},
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/cargo)
-"Ou" = (
-/obj/structure/cable{
- icon_state = "4-9"
+/obj/item/encryptionkey/nanotrasen{
+ pixel_x = 7
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/stack/cable_coil/cyan{
+ pixel_x = 6
},
-/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
- dir = 4
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
-"Ov" = (
-/obj/machinery/light/dim/directional/east,
-/obj/machinery/telecomms/broadcaster/preset_right{
- autolinkers = list("broadcasterB","hub");
- network = "nt_commnet"
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
-"Ox" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 9
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 8
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/obj/item/gps/computer{
- pixel_x = 32;
- pixel_y = 0;
- density = 0
+/obj/item/stock_parts/subspace/filter{
+ pixel_x = -8
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
-"OC" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/structure/cable{
- icon_state = "0-6"
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 1
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
-"OK" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner,
-/obj/machinery/autolathe,
-/obj/item/disk/design_disk/ammo_c9mm,
-/obj/item/stack/sheet/metal/ten,
-/obj/item/stack/sheet/glass{
- amount = 10
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 1
+/obj/item/stock_parts/manipulator{
+ pixel_x = 7;
+ pixel_y = 7
},
-/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner,
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
-"OP" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/crate_shelf,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"NZ" = (
+/obj/item/melee/classic_baton/telescopic,
+/obj/item/melee/knife/survival,
+/obj/item/gps,
+/obj/item/screwdriver,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -20
},
-/obj/effect/turf_decal/corner/opaque/vired/half{
+/obj/item/megaphone/command,
+/obj/structure/closet/secure_closet/lp/lieutenant,
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
-"Pd" = (
-/obj/item/aiModule/core/freeformcore{
- pixel_x = -2;
- pixel_y = 1
+/obj/effect/turf_decal/techfloor{
+ dir = 8
},
-/obj/item/aiModule/reset/purge{
- pixel_y = 6;
- pixel_x = 1
+/obj/item/stock_parts/cell/gun,
+/obj/item/flashlight/seclite,
+/obj/item/storage/guncase/energy/egun,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"Oc" = (
+/obj/machinery/door/window/brigdoor/eastleft{
+ dir = 2;
+ name = "Armory";
+ req_access_txt = "1";
+ req_ship_access = 1
},
-/obj/item/aiModule/reset{
- pixel_x = 4;
- pixel_y = -2
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
+ },
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/turf/open/floor/plasteel/lightgrey,
+/area/ship/storage/equip)
+"Og" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor/hole/right,
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/obj/structure/platform/military/corner,
+/turf/open/floor/plasteel/tech/tcomms,
+/area/ship/engineering/communications)
+"Om" = (
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/mineral/plastitanium/red/brig,
+/area/ship/security)
+"On" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/structure/table/reinforced,
+/obj/item/flashlight/lamp/green{
+ layer = 4.2;
+ pixel_x = 9;
+ pixel_y = 11
+ },
+/turf/open/floor/wood/ebony,
+/area/ship/crew/specialized/cargo)
+"Ou" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "Ranger_Cargo_Privacy";
+ name = "N+S Office Shutters"
+ },
+/obj/structure/grille,
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"Ov" = (
+/obj/machinery/door/window/eastright{
+ dir = 2;
+ name = "Morgue Access";
+ req_access_txt = "5";
+ req_ship_access = 1
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
},
-/obj/machinery/light/dim/directional/north,
/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Ox" = (
+/obj/item/radio/intercom/directional/north,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
/obj/structure/table/reinforced{
color = "#8A9397"
},
-/turf/open/floor/circuit,
-/area/ship/engineering/communications)
+/obj/item/wrench,
+/obj/item/screwdriver,
+/obj/item/stack/cable_coil/cyan,
+/obj/item/stack/sheet/rglass{
+ amount = 25
+ },
+/obj/item/aicard,
+/turf/open/floor/circuit/telecomms,
+/area/ship/science/ai_chamber)
+"OC" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-6"
+ },
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
+"OK" = (
+/obj/effect/turf_decal/siding/thinplating{
+ color = "#a8b2b6";
+ dir = 1
+ },
+/obj/item/bikehorn/rubberducky,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/noslip,
+/area/ship/crew/toilet)
+"OP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/vired/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Pa" = (
+/obj/structure/catwalk/over/plated_catwalk/dark{
+ name = "sensor protection plate"
+ },
+/obj/machinery/air_sensor/external,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/external/dark)
+"Pd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/starboard)
"Ph" = (
/obj/effect/turf_decal/industrial/warning,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
/obj/machinery/firealarm/directional/east,
+/obj/structure/platform/industrial_alt/corner,
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"Po" = (
/obj/structure/tank_dispenser/oxygen,
/obj/effect/turf_decal/siding/yellow{
@@ -5163,16 +5939,19 @@
/obj/structure/railing{
dir = 8
},
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_x = 32
+ },
/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"Pr" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/effect/turf_decal/corner/opaque/vired{
dir = 1
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Pu" = (
@@ -5185,6 +5964,32 @@
},
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
+"PC" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/suit/hooded/wintercoat/engineering,
+/obj/item/clothing/head/beret/eng/hazard,
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/storage/backpack/messenger/engi,
+/obj/item/storage/backpack/industrial,
+/obj/item/storage/backpack/duffelbag/engineering,
+/obj/item/clothing/under/rank/engineering/engineer/nt/lp,
+/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp,
+/obj/item/storage/backpack/ert/engineer,
+/obj/item/clothing/suit/nanotrasen/vest,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/obj/item/clothing/suit/hooded/wintercoat/engineering,
+/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/light/small/directional/west,
+/obj/item/clothing/head/nanotrasen/cap/security,
+/obj/item/clothing/under/nanotrasen/science/robotics,
+/obj/item/clothing/under/nanotrasen/engineering,
+/obj/item/clothing/under/nanotrasen/engineering/atmos,
+/obj/item/clothing/under/nanotrasen/engineering/director,
+/turf/open/floor/wood,
+/area/ship/crew/specialized/engineering)
"PG" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5201,11 +6006,68 @@
},
/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
+"PM" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "qm";
+ name = "Logistics Specialist's Locker";
+ req_one_access = list(50);
+ req_ship_access = 1
+ },
+/obj/item/clothing/suit/hooded/wintercoat/cargo{
+ pixel_x = 14
+ },
+/obj/item/clothing/shoes/sneakers/brown{
+ pixel_x = -10;
+ pixel_y = -12
+ },
+/obj/item/storage/backpack/satchel/leather{
+ pixel_y = -6
+ },
+/obj/item/clothing/under/nanotrasen/supply/qm,
+/obj/item/gps{
+ pixel_x = 11;
+ pixel_y = 9
+ },
+/obj/item/stack/packageWrap{
+ pixel_x = -10;
+ pixel_y = 12
+ },
+/obj/item/stack/packageWrap{
+ pixel_x = -10
+ },
+/obj/item/stack/packageWrap{
+ pixel_x = -10;
+ pixel_y = 6
+ },
+/obj/item/melee/knife/letter_opener{
+ pixel_x = 13;
+ pixel_y = -12
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/obj/item/clothing/under/nanotrasen/supply,
+/obj/item/clothing/under/nanotrasen/supply/miner,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/specialized/cargo)
"PR" = (
/obj/structure/cable{
icon_state = "4-8"
},
/obj/effect/turf_decal/corner/opaque/vired/half,
+/obj/structure/sign/poster/official/help_others{
+ pixel_y = -32
+ },
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"PV" = (
@@ -5215,17 +6077,41 @@
},
/obj/item/stock_parts/micro_laser/high,
/obj/item/stock_parts/micro_laser/high{
- pixel_y = 4;
- pixel_x = -2
+ pixel_x = -2;
+ pixel_y = 4
},
/obj/item/stack/cable_coil/cut/red,
/turf/open/floor/plasteel/mono/dark,
/area/ship/engineering)
"Qf" = (
-/obj/effect/turf_decal/corner/opaque/vired/half,
+/obj/structure/cable{
+ icon_state = "6-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 1
+ },
/obj/effect/turf_decal/siding/thinplating/dark,
/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
+"Qr" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ dir = 8;
+ name = "Valve - Air to External Scrubber"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
"Qt" = (
/obj/effect/turf_decal/industrial/hatch/orange,
/obj/machinery/power/ship_gravity,
@@ -5258,24 +6144,46 @@
/turf/open/floor/engine/hull,
/area/ship/external/dark)
"Rn" = (
-/obj/machinery/light/dim/directional/north,
-/obj/structure/crate_shelf,
-/obj/machinery/door/window/brigdoor/eastleft{
- dir = 2;
- req_access_txt = "1";
- name = "Armory";
- req_ship_access = 1
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
+/obj/structure/closet/secure_closet/armorycage{
+ req_access = list(1)
},
+/obj/effect/turf_decal/industrial/fire,
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 9
},
-/turf/open/floor/plasteel/lightgrey,
+/obj/item/clothing/suit/armor/nanotrasen/slim{
+ pixel_x = -10;
+ pixel_y = -6
+ },
+/obj/item/clothing/suit/armor/nanotrasen/slim{
+ pixel_x = -10;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/helmet/swat{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/clothing/head/helmet/swat{
+ pixel_x = -1;
+ pixel_y = 9
+ },
+/obj/item/flashlight/seclite{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/flashlight/seclite{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/storage/belt/security/webbing,
+/obj/item/storage/belt/security/webbing,
+/obj/item/radio/headset/alt{
+ pixel_x = 5;
+ pixel_y = -11
+ },
+/obj/item/clothing/mask/gas/vigilitas,
+/obj/item/clothing/mask/gas/vigilitas,
+/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
"Ro" = (
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{
@@ -5299,14 +6207,15 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"RB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
+/obj/structure/chair/handrail{
+ dir = 8;
+ pixel_x = 2
},
-/obj/machinery/camera/autoname{
- dir = 10
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
"RM" = (
/obj/structure/chair/sofa/brown/left/directional/west,
/obj/machinery/light/dim/directional/east,
@@ -5316,8 +6225,11 @@
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/turf_decal/industrial/outline/orange,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"Sa" = (
/obj/effect/turf_decal/ntspaceworks_small,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -5329,101 +6241,54 @@
/obj/effect/turf_decal/spline/fancy/opaque/blue,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
-"Sl" = (
-/obj/structure/closet/crate/secure/plasma{
- name = "Relay Parts Crate"
- },
-/obj/item/storage/box/stockparts/basic,
-/obj/item/circuitboard/machine/telecomms/relay{
- pixel_x = -5;
- pixel_y = 9
- },
-/obj/item/circuitboard/machine/telecomms/relay{
- pixel_x = -5;
- pixel_y = 9
- },
-/obj/item/circuitboard/machine/telecomms/relay{
- pixel_x = -5;
- pixel_y = 9
- },
-/obj/item/encryptionkey/nanotrasen{
- pixel_x = -1
- },
-/obj/item/encryptionkey/nanotrasen{
- pixel_x = 3
- },
-/obj/item/encryptionkey/nanotrasen{
- pixel_x = 7
- },
-/obj/item/stack/cable_coil/cyan{
- pixel_x = 6
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/subspace/filter{
- pixel_x = -8
- },
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
- },
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
- },
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
- },
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
- },
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
+"Sd" = (
+/obj/effect/decal/cleanable/shreds,
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/turf_decal/corner/opaque/syndiered/half{
+ dir = 1
},
-/obj/item/stock_parts/manipulator{
- pixel_x = 7;
- pixel_y = 7
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/obj/structure/crate_shelf,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/light/dim/directional/east,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/equip)
+"Sl" = (
+/obj/item/bodypart/leg/right/robot,
+/obj/item/bodypart/r_arm/robot,
+/obj/item/bodypart/leg/left/robot,
+/obj/item/bodypart/l_arm/robot,
+/obj/item/bodypart/chest/robot,
+/obj/item/bodypart/head/robot,
+/obj/item/borg/upgrade/ai,
+/obj/item/robot_suit,
+/obj/structure/closet/crate/engineering{
+ name = "Robotics Crate"
+ },
+/obj/item/stock_parts/cell/high,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/borg/upgrade/restart,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
/turf/open/floor/plating,
/area/ship/engineering)
"So" = (
-/obj/structure/cable{
- icon_state = "5-8"
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/effect/turf_decal/trimline/opaque/nsorange/warning{
+/obj/effect/decal/cleanable/wrapping,
+/obj/structure/chair/office{
dir = 1
},
-/obj/effect/turf_decal/siding{
- color = "#474747";
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plasteel/lightgrey,
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Sv" = (
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -5433,27 +6298,16 @@
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"SC" = (
-/obj/item/storage/box/donkpockets{
- pixel_x = -3
- },
-/obj/item/storage/box/donkpockets/donkpocketpizza{
- pixel_x = 2;
- pixel_y = 4
- },
-/obj/item/storage/box/donkpockets/donkpocketspicy{
- pixel_y = 9;
- pixel_x = 7
- },
-/obj/structure/table/reinforced{
- color = "#8A9397"
- },
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
"SE" = (
/obj/effect/turf_decal/industrial/outline/orange,
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"SG" = (
/obj/structure/toilet{
dir = 1
@@ -5461,12 +6315,27 @@
/turf/open/floor/plating/catwalk_floor,
/area/ship/security)
"SN" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+/obj/machinery/door/airlock/mining{
+ dir = 8;
+ name = "N+S Office"
+ },
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning,
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/starboard)
+/obj/effect/turf_decal/siding{
+ color = "#FF6600";
+ dir = 8
+ },
+/obj/effect/turf_decal/siding{
+ color = "#FF6600";
+ dir = 4
+ },
+/turf/open/floor/pod/light,
+/area/ship/cargo)
"Tb" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/storage/equip)
@@ -5481,35 +6350,66 @@
/obj/structure/cable/cyan{
icon_state = "6-8"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Tl" = (
/obj/structure/sign/nanotrasen/vigilitas,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/central)
"Tz" = (
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/hallway/port)
-"TG" = (
-/obj/item/toy/plush/spider,
-/obj/machinery/camera/autoname{
- dir = 9
+/obj/structure/chair/office{
+ dir = 4;
+ name = "tactical swivel chair"
},
-/obj/structure/table/reinforced{
- color = "#8A9397"
+/obj/effect/turf_decal/corner/opaque/blue/diagonal,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/siding/thinplating/light,
+/turf/open/floor/plasteel/white,
+/area/ship/medical)
+"TC" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/structure/closet/secure_closet/brig{
+ name = "Secure Holding Locker"
+ },
+/obj/machinery/door/window/brigdoor/northleft{
+ name = "Secure Lockup";
+ req_access_txt = "1";
+ req_ship_access = 1
},
/turf/open/floor/plasteel/tech,
-/area/ship/security)
-"TL" = (
-/obj/machinery/light/dim/directional/north,
-/obj/effect/turf_decal/trimline/opaque/nsorange/line{
+/area/ship/engineering/engines/starboard)
+"TG" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
-/obj/item/bedsheet/qm,
-/obj/structure/bed,
-/obj/structure/curtain/bounty,
-/turf/open/floor/plasteel/lightgrey,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ship/crew/specialized/engineering)
+"TL" = (
+/obj/machinery/computer/cargo,
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{
+ dir = 1
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"TR" = (
/obj/machinery/light/dim/directional/north,
@@ -5525,32 +6425,26 @@
/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{
dir = 4
},
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"Ua" = (
-/obj/machinery/camera/autoname{
- dir = 9
- },
-/obj/machinery/button/door{
- dir = 8;
- pixel_x = 26;
- id = "AiCore";
- name = "Core Access";
- req_access_txt = "20";
- pixel_y = 8
- },
/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 5
+ dir = 9
},
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
- dir = 4
+ dir = 8
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ship/engineering/communications)
+/obj/item/gps/computer{
+ density = 0;
+ pixel_x = 32;
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/telecomms_floor/tatmos,
+/area/ship/science/ai_chamber)
"Uj" = (
/obj/structure/table/reinforced{
color = "#c1b6a5"
@@ -5558,11 +6452,11 @@
/obj/effect/turf_decal/techfloor{
dir = 5
},
-/obj/effect/spawner/lootdrop/lpaid{
+/obj/effect/spawner/random/lpaid{
pixel_x = 2;
pixel_y = -2
},
-/obj/effect/spawner/lootdrop/lpretrieval{
+/obj/effect/spawner/random/lpretrieval{
pixel_x = -10;
pixel_y = 10
},
@@ -5581,21 +6475,31 @@
/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{
dir = 8
},
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"Us" = (
-/obj/effect/turf_decal/siding/red{
- dir = 9
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
},
-/obj/structure/closet/crate/bin,
-/obj/machinery/camera/autoname{
- dir = 4
+/obj/machinery/door/firedoor/border_only,
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ship/security)
+/obj/machinery/door/airlock/engineering{
+ name = "Engineering Specialist's Quarters";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/pod/light,
+/area/ship/crew/specialized/engineering)
"Ut" = (
/obj/structure/urinal{
pixel_y = 29
@@ -5604,8 +6508,24 @@
/turf/open/floor/plasteel/showroomfloor,
/area/ship/crew/toilet)
"UQ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
+ dir = 8;
+ layer = 2;
+ piping_layer = 2
+ },
/turf/open/floor/engine/air,
/area/ship/hallway/central)
+"UR" = (
+/obj/machinery/light/dim/directional/east,
+/obj/machinery/telecomms/broadcaster/preset_right{
+ autolinkers = list("broadcasterB","hub");
+ network = "nt_commnet"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/circuit/telecomms,
+/area/ship/engineering/communications)
"UU" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5615,8 +6535,8 @@
dir = 1
},
/obj/machinery/door/poddoor/shutters/preopen{
- name = "Corridor Lockdown Port";
- id = "RangerPortShutters"
+ id = "RangerPortShutters";
+ name = "Corridor Lockdown Port"
},
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 4
@@ -5630,8 +6550,9 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt/corner,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Vg" = (
/obj/machinery/camera/autoname{
dir = 10
@@ -5663,7 +6584,7 @@
dir = 8
},
/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"Vp" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/hallway/starboard)
@@ -5672,18 +6593,21 @@
/obj/effect/decal/cleanable/plasma,
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Vt" = (
/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
icon_state = "0-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/platform/industrial_alt,
/obj/machinery/space_heater,
-/obj/structure/railing,
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"VC" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/stairs{
@@ -5694,8 +6618,8 @@
/obj/structure/grille,
/obj/machinery/door/poddoor/shutters/preopen{
dir = 4;
- name = "Bridge-Atrium Shutters";
- id = "BridgeAtrium"
+ id = "BridgeAtrium";
+ name = "Bridge-Atrium Shutters"
},
/obj/structure/window/reinforced/fulltile/shuttle,
/turf/open/floor/plating,
@@ -5724,16 +6648,15 @@
/obj/item/toy/plush/tali{
pixel_y = 14
},
+/obj/item/radio/intercom/directional/north,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"VP" = (
-/obj/machinery/newscaster/security_unit/directional/south,
-/obj/structure/chair/office{
- dir = 4;
- name = "tactical swivel chair"
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/mineral/plastitanium/red/brig,
+/obj/machinery/light/dim/directional/south,
+/obj/effect/turf_decal/siding/red/end,
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/confetti,
+/turf/open/floor/plasteel/tech,
/area/ship/security)
"VQ" = (
/obj/machinery/camera/autoname{
@@ -5753,15 +6676,33 @@
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 5
},
-/obj/structure/closet/crate/bin,
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/autolathe,
+/obj/item/disk/design_disk/ammo_c9mm,
+/obj/item/stack/sheet/glass{
+ amount = 10
+ },
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"Wj" = (
/obj/structure/bed,
-/obj/item/radio/intercom/directional/south,
/obj/item/bedsheet/red,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "Ranger_Security_Specialist_Quarters";
+ name = "Security Quarters Windows";
+ pixel_x = -22;
+ pixel_y = -2;
+ req_ship_access = 1
+ },
/turf/open/floor/wood,
-/area/ship/security)
+/area/ship/crew/specialized/security)
"Wp" = (
/obj/machinery/door/poddoor{
dir = 2;
@@ -5769,8 +6710,8 @@
name = "Communications Access"
},
/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "AI_Core_Field_Engi";
- dir = 4
+ dir = 4;
+ id = "AI_Core_Field_Engi"
},
/obj/structure/cable{
icon_state = "0-5"
@@ -5791,6 +6732,7 @@
/obj/effect/turf_decal/corner/opaque/vired{
dir = 4
},
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Wv" = (
@@ -5808,9 +6750,16 @@
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"Wz" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
+/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "Ranger_Cargo_Privacy";
+ name = "N+S Office Shutters"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
"WF" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5822,26 +6771,32 @@
dir = 4
},
/obj/machinery/light/dim/directional/south,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/tech/tcomms,
/area/ship/engineering/communications)
"WG" = (
-/obj/machinery/telecomms/server/presets/nanotrasen{
- autolinkers = list("nanotrasen","hub");
- network = "nt_commnet";
- freq_listening = list(1353,1447,1459)
+/obj/machinery/light/dim/directional/south,
+/obj/machinery/telecomms/relay{
+ freq_listening = list(1353,1447,1459);
+ id = "Nanotrasen Relay";
+ name = "Nanotrasen relay";
+ network = "nt_commnet"
},
-/obj/item/disk/holodisk/lp/stations,
/obj/effect/turf_decal/techfloor{
dir = 1
},
-/turf/open/floor/circuit,
+/obj/machinery/camera/autoname{
+ dir = 10
+ },
+/turf/open/floor/circuit/telecomms,
/area/ship/engineering/communications)
"WR" = (
-/obj/effect/turf_decal/corner/opaque/vired/half{
+/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/obj/effect/decal/cleanable/shreds,
-/obj/effect/decal/cleanable/wrapping,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
"WZ" = (
@@ -5893,6 +6848,20 @@
/obj/effect/turf_decal/industrial/outline/yellow,
/turf/open/floor/plasteel/lightgrey,
/area/ship/storage/equip)
+"Xz" = (
+/obj/effect/turf_decal/corner/opaque/vired/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
"XA" = (
/obj/structure/cable{
icon_state = "1-10"
@@ -5926,10 +6895,17 @@
/obj/effect/turf_decal/techfloor{
dir = 1
},
-/obj/structure/closet/wall/directional/south,
+/obj/structure/closet/wall/directional/south{
+ name = "Intern's Locker"
+ },
/obj/effect/turf_decal/corner/opaque/lightgrey{
dir = 10
},
+/obj/item/clothing/under/nanotrasen,
+/obj/item/clothing/shoes/sneakers/black{
+ pixel_y = -10
+ },
+/obj/item/clothing/suit/hooded/wintercoat,
/turf/open/floor/plasteel/dark,
/area/ship/crew/cryo)
"XL" = (
@@ -5941,8 +6917,8 @@
dir = 1
},
/obj/machinery/door/poddoor/shutters/preopen{
- name = "Corridor Lockdown Starboard";
- id = "RangerStarboardShutters"
+ id = "RangerStarboardShutters";
+ name = "Corridor Lockdown Starboard"
},
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 4
@@ -5982,7 +6958,7 @@
"XS" = (
/obj/effect/turf_decal/corner/opaque/blue/diagonal,
/obj/machinery/light/dim/directional/east,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/toy/plush/moth/ragged{
pixel_y = 11
},
@@ -6006,14 +6982,17 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/item/radio/intercom/directional/south,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Yk" = (
-/obj/effect/turf_decal/trimline/opaque/nsorange/warning,
/obj/effect/turf_decal/siding{
color = "#474747"
},
-/turf/open/floor/plasteel/lightgrey,
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/cargo)
"Yw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -6023,8 +7002,8 @@
dir = 1
},
/obj/machinery/door/poddoor/shutters/preopen{
- name = "Corridor Lockdown Starboard";
- id = "RangerStarboardShutters"
+ id = "RangerStarboardShutters";
+ name = "Corridor Lockdown Starboard"
},
/obj/effect/turf_decal/corner/opaque/vired/half{
dir = 8
@@ -6037,7 +7016,8 @@
id = "Ranger_Port_holofields"
},
/obj/machinery/door/poddoor{
- id = "Ranger_Port_Blasts"
+ id = "Ranger_Port_Blasts";
+ name = "Portside Access"
},
/obj/structure/cable{
icon_state = "0-2"
@@ -6046,51 +7026,63 @@
/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"Yz" = (
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
/obj/machinery/door/airlock/security/brig{
dir = 8;
id_tag = "SecureCell";
name = "Holding Cell";
req_access_txt = "1"
},
-/turf/open/floor/plating,
-/area/ship/security)
-"YJ" = (
-/obj/effect/turf_decal/corner/opaque/vired/three_quarters,
-/obj/structure/table/reinforced,
-/obj/item/screwdriver{
- pixel_x = -7;
- pixel_y = 7
- },
-/obj/item/screwdriver{
- pixel_x = -7
+/obj/effect/turf_decal/siding/red{
+ dir = 8
},
-/obj/item/hand_labeler{
- pixel_x = 8;
- pixel_y = 13
+/obj/effect/turf_decal/siding{
+ color = "#474747";
+ dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
+/turf/open/floor/pod/light,
+/area/ship/security)
+"YJ" = (
+/obj/effect/turf_decal/corner/opaque/syndiered/half,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/item/radio/intercom/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/storage/equip)
"YK" = (
-/obj/machinery/firealarm/directional/north{
- pixel_x = -4
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 9;
+ pixel_y = 3
},
-/obj/structure/table/reinforced,
-/obj/machinery/computer/helm/viewscreen/directional/west,
-/turf/open/floor/plasteel/white,
-/area/ship/medical)
+/obj/item/toy/plush/moth/snow{
+ pixel_x = -3
+ },
+/obj/item/folder/blue{
+ pixel_x = -3;
+ pixel_y = -10
+ },
+/obj/item/flashlight/pen{
+ pixel_x = -5;
+ pixel_y = -9
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/wood,
+/area/ship/crew/specialized/medical)
"YP" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -6113,24 +7105,23 @@
/obj/effect/turf_decal/steeldecal/steel_decals10{
dir = 8
},
+/obj/structure/railing,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
+/area/ship/engineering/engines/starboard)
"YW" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/camera/autoname{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
},
-/obj/item/radio/intercom/directional/west,
-/obj/effect/turf_decal/corner/opaque/vired/half{
- dir = 8
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/dark,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
"Zj" = (
/obj/machinery/atmospherics/components/unary/shuttle/heater{
dir = 4
@@ -6144,31 +7135,38 @@
name = "Engine Shutters"
},
/turf/open/floor/plating,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"Zk" = (
-/obj/machinery/advanced_airlock_controller{
- pixel_y = 24
- },
-/obj/effect/turf_decal/techfloor{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/tank/internals/emergency_oxygen,
-/obj/item/clothing/mask/breath,
-/obj/machinery/suit_storage_unit/inherit{
- name = "Emergency EVA Suit"
+/obj/machinery/light/floor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/item/clothing/head/helmet/space/fragile,
-/obj/item/clothing/suit/space/fragile,
-/turf/open/floor/plasteel/tech/techmaint{
- color = "#a8b2b6"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
+/turf/open/floor/plasteel/dark,
/area/ship/hallway/central)
"Zl" = (
/obj/effect/turf_decal/industrial/outline/orange,
/obj/machinery/portable_atmospherics/canister/toxins,
/obj/effect/decal/cleanable/plasma,
+/obj/structure/platform/industrial_alt{
+ dir = 4
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
+"Zn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/port)
"Zs" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/door/firedoor/border_only{
@@ -6186,24 +7184,47 @@
/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{
dir = 4
},
-/obj/effect/turf_decal/trimline/opaque/vired/filled/line{
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
+/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
-/turf/open/floor/plasteel/tech/techmaint,
+/turf/open/floor/plasteel/tech,
/area/ship/hallway/port)
"Zv" = (
-/obj/machinery/firealarm/directional/west,
-/obj/machinery/camera/autoname{
- dir = 4
+/obj/structure/closet/cabinet,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/suit/hooded/wintercoat/security,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/head/beret/sec,
+/obj/item/clothing/under/rank/security/head_of_security/nt/lp,
+/obj/item/clothing/under/rank/security/head_of_security/nt/skirt/lp,
+/obj/item/clothing/under/rank/security/head_of_security/alt/lp,
+/obj/item/storage/backpack/ert/security,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
},
-/turf/open/floor/wood,
-/area/ship/security)
+/obj/effect/turf_decal/techfloor,
+/obj/item/clothing/head/soft/black,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/item/clothing/glasses/hud/security/prescription,
+/obj/item/clothing/mask/gas/vigilitas,
+/obj/item/clothing/suit/armor/nanotrasen,
+/obj/item/clothing/suit/armor/nanotrasen/slim,
+/obj/item/clothing/suit/armor/vest/security/officer,
+/obj/item/clothing/suit/armor/vest/bulletproof,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/firealarm/directional/west,
+/obj/item/clothing/head/nanotrasen/beret/security,
+/obj/item/clothing/head/nanotrasen/cap/security,
+/obj/item/clothing/under/nanotrasen/security,
+/obj/item/clothing/under/nanotrasen/security/director,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/specialized/security)
"Zw" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/trimline/opaque/nsorange/filled/warning{
+ dir = 4
},
-/obj/effect/turf_decal/trimline/transparent/white/filled/warning,
+/obj/effect/turf_decal/trimline/transparent/white/filled/corner,
/turf/open/floor/plasteel/dark,
/area/ship/hallway/starboard)
"Zx" = (
@@ -6217,9 +7238,13 @@
"ZF" = (
/obj/machinery/light/dim/directional/south,
/obj/effect/turf_decal/industrial/outline/blue,
-/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/suit_storage_unit/inherit/industrial{
+ name = "dusty industrial suit storage unit"
+ },
+/obj/item/clothing/suit/space/hardsuit/ancient/lp,
+/obj/item/clothing/mask/breath,
/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
+/area/ship/engineering/engines/port)
"ZI" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -6234,42 +7259,23 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/tech/tcomms,
/area/ship/engineering/communications)
"ZL" = (
/obj/machinery/vending/coffee,
/turf/open/floor/plasteel/lightgrey,
/area/ship/hallway/central)
"ZS" = (
-/obj/structure/closet/syndicate{
- desc = "It's the armory closet. A closet with shelving, in an armory!"
- },
-/obj/machinery/door/window/brigdoor/eastright{
- dir = 2;
- req_access_txt = "1";
- name = "Armory";
- req_ship_access = 1
- },
-/obj/item/storage/pistolcase/commander,
-/obj/item/ammo_box/magazine/co9mm,
-/obj/item/clothing/suit/armor/nanotrasen/slim,
-/obj/item/clothing/suit/armor/nanotrasen/slim,
-/obj/item/ammo_box/magazine/smgm9mm,
-/obj/item/ammo_box/magazine/smgm9mm,
-/obj/item/ammo_box/magazine/smgm9mm,
-/obj/item/storage/pistolcase,
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 5
- },
-/obj/effect/turf_decal/steeldecal/steel_decals10{
- dir = 6
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs{
+ color = "#a8b2b6";
+ dir = 1
},
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
-/turf/open/floor/plasteel/lightgrey,
-/area/ship/storage/equip)
+/area/ship/bridge)
"ZW" = (
/obj/machinery/light/dim/directional/north,
/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{
@@ -6317,7 +7323,7 @@ zW
zW
yK
zW
-QT
+kF
qs
qs
QT
@@ -6352,13 +7358,13 @@ zW
zW
zW
zW
-QT
+kF
tr
-QT
+kF
BO
rW
-QT
-QT
+kF
+kF
zW
zW
zW
@@ -6389,13 +7395,13 @@ zW
zW
zW
zW
-QT
+kF
br
-QT
+kF
DW
nJ
iC
-QT
+kF
zW
zW
zW
@@ -6426,14 +7432,14 @@ zW
zW
zW
zW
-QT
+kF
Vm
tZ
oq
an
cE
-QT
-QT
+kF
+kF
zW
zW
"}
@@ -6463,14 +7469,14 @@ zW
zW
zW
zW
-QT
+kF
qQ
gD
ib
eN
Lw
Dd
-QT
+kF
zW
zW
"}
@@ -6479,7 +7485,7 @@ zW
zW
zW
zW
-vm
+LV
Vq
Zl
iq
@@ -6491,23 +7497,23 @@ zW
zW
zW
zW
-Kg
-kQ
-kQ
-kQ
-Kg
zW
zW
zW
zW
-QT
+zW
+zW
+zW
+zW
+zW
+kF
VM
YP
vv
Ph
RS
SE
-fV
+kF
zW
zW
"}
@@ -6515,11 +7521,11 @@ zW
zW
zW
zW
-vm
-vm
-vm
-vm
-vm
+su
+su
+su
+su
+su
LV
ad
ZF
@@ -6527,124 +7533,161 @@ LV
zW
zW
zW
-Kg
-Kg
-gh
+zW
+Mh
Md
-pL
-Kg
-Kg
+Md
+Md
+Mh
zW
zW
zW
-QT
+zW
+kF
ML
ih
-QT
-QT
-QT
-fV
-fV
-fV
+kF
+yF
+yF
+yF
+yF
+yF
zW
"}
(8,1,1) = {"
zW
zW
-hN
-vm
-vm
+Te
+Mc
+Ao
cj
oQ
-tq
-LV
+su
+yo
sm
qb
LV
zW
zW
zW
-Kg
-Pd
+Mh
+Mh
Ox
IE
Ep
-Nf
-Kg
+Mh
+Mh
zW
zW
zW
-QT
+kF
gz
FQ
-QT
-jv
+TC
+yF
Zv
AZ
Wj
-fV
-sp
+yG
+Te
"}
(9,1,1) = {"
zW
zW
-vm
-vm
+gL
+Mc
YK
aO
Aw
-Gn
-LV
-vT
-LV
+su
+Ov
+xY
+JO
LV
zW
zW
-yK
-Kg
+zW
+Mh
MK
Ua
vO
Nn
Cq
-Kg
-yK
+Mh
zW
zW
-QT
-QT
+zW
+kF
+mK
id
-QT
-fV
+fU
+yF
bw
hQ
ab
-fV
-fV
+zM
+gL
"}
(10,1,1) = {"
zW
zW
vm
-sF
-oi
+su
+su
NS
-vF
+su
+su
+LV
+vT
+LV
+LV
+zW
+zW
+yK
+Mh
+qJ
+pi
+kw
+gk
+cI
+Mh
+yK
+zW
+zW
+kF
+kF
+hG
+kF
+fV
+fV
+Js
+fV
+fV
+fV
+"}
+(11,1,1) = {"
+zW
+zW
vm
-jA
+ix
+Kt
+jk
+vS
+vm
+Cb
zc
jA
zW
zW
wU
wU
-Kg
-Kg
-Kg
-kw
-gk
-Kg
-Kg
+Mh
+Mh
+Mh
+lu
+lw
+Mh
+Mh
Kg
Kg
zW
@@ -6653,87 +7696,124 @@ Vp
cN
vR
nq
-Us
-Js
-Ma
-sR
+gi
+LM
+bN
+VP
fV
"}
-(11,1,1) = {"
+(12,1,1) = {"
zW
zW
vm
-ix
-Kt
-jk
-vS
+mJ
+Tz
+gh
+uW
Qu
-Cb
-NR
+SC
+Xz
jA
-qe
+bX
wU
wU
jt
WZ
-Mh
+lD
wU
nE
WF
Kg
-LM
-bX
+sl
+CB
Kg
Kg
-fo
+EE
Vp
Ff
+Pd
+nq
+tQ
+or
+KT
+Om
+fV
+"}
+(13,1,1) = {"
+zW
+zW
+vm
+jv
+pG
+tq
+jZ
+Qu
+Zn
+NR
+jA
+GY
+wU
+LQ
+aP
+Pu
+xq
+Wp
+Gz
+dn
+Mx
+fo
+sR
+ux
+Kg
+GY
+Vp
+Lt
wT
nq
-gi
+rg
Lg
-bN
-VP
+df
+Nf
fV
"}
-(12,1,1) = {"
+(14,1,1) = {"
zW
zW
vm
vV
GC
kS
-uW
+Ct
Qu
XQ
PR
jA
zW
wU
-LQ
-aP
-Pu
-xq
-Wp
-Gz
-dn
-AH
-sl
-CB
-yA
+gN
+dr
+rC
+yi
+Dr
+ZJ
+Og
+wf
+MD
+tT
+WG
Kg
zW
Vp
no
Vh
qR
-tQ
+Iz
nh
Dx
yk
fV
"}
-(13,1,1) = {"
+(15,1,1) = {"
zW
zW
vm
@@ -6747,17 +7827,17 @@ pU
jA
zW
wU
-gN
-dr
-rC
-yi
-Dr
-ZJ
-fU
-Mx
-MD
-tT
-ux
+Ge
+Sl
+JP
+wU
+wU
+hK
+Hd
+wU
+Ds
+Bo
+wu
Kg
zW
Vp
@@ -6770,31 +7850,31 @@ iH
iH
fV
"}
-(14,1,1) = {"
+(16,1,1) = {"
zW
zW
vm
XS
Xb
-sU
-Ct
+vF
+zO
Qu
bf
tR
jA
zW
wU
-Ge
-or
-JP
-wU
-wU
-hK
-Hd
wU
-Ds
-Bo
-WG
+NV
+Nd
+IC
+Mz
+jF
+PV
+dP
+EP
+UR
+Kg
Kg
zW
Vp
@@ -6807,7 +7887,7 @@ Ji
SG
fV
"}
-(15,1,1) = {"
+(17,1,1) = {"
zW
zW
JR
@@ -6820,31 +7900,31 @@ jH
uE
jA
zW
+zW
wU
wU
-Sl
-Nd
-IC
-Mz
-jF
-PV
-dP
-wC
-Ov
+Qt
+wU
+Ca
+rA
+aG
+wU
+Kg
Kg
Kg
zW
+zW
Vp
-yo
+Ma
Cg
of
jd
-TG
+lX
my
xv
fV
"}
-(16,1,1) = {"
+(18,1,1) = {"
zW
zW
JR
@@ -6858,21 +7938,21 @@ Kf
jA
zW
zW
+Vg
wU
wU
-Qt
-wU
-Ca
-rA
-yU
wU
-Kg
-Kg
-Kg
+Mt
+hn
+Ny
+vJ
+vJ
+vJ
+sp
zW
zW
Vp
-pi
+vc
iZ
ji
gg
@@ -6881,7 +7961,7 @@ gg
gg
gg
"}
-(17,1,1) = {"
+(19,1,1) = {"
zW
zW
JR
@@ -6891,21 +7971,21 @@ VC
CW
EL
ml
-Tz
+jA
jA
zW
zW
-Vg
-wU
+zW
wU
wU
-up
-hn
-aG
-df
-Kg
-Kg
-sp
+ps
+Hs
+tk
+vJ
+vJ
+PC
+hz
+zW
zW
zW
Vp
@@ -6918,12 +7998,12 @@ BI
BA
gg
"}
-(18,1,1) = {"
+(20,1,1) = {"
zW
zW
JR
-vB
-cW
+yf
+vg
lc
JR
Ro
@@ -6933,15 +8013,15 @@ zW
zW
zW
zW
-zW
-wU
-jr
-Mt
-lX
-Ny
-JK
+wq
wU
-zW
+us
+AH
+YW
+Us
+KC
+TG
+hz
zW
zW
zW
@@ -6955,7 +8035,7 @@ gg
gg
gg
"}
-(19,1,1) = {"
+(21,1,1) = {"
zW
zW
JR
@@ -6970,15 +8050,15 @@ zW
zW
zW
zW
-zW
-wU
-ps
-Hs
-tk
-Bh
-GY
+wq
wU
-zW
+hZ
+Ha
+rX
+vJ
+qe
+eo
+FM
zW
zW
zW
@@ -6988,11 +8068,11 @@ iI
xj
Fw
Kw
-Lt
-yC
+Gn
+OK
gg
"}
-(20,1,1) = {"
+(22,1,1) = {"
zW
zW
JR
@@ -7012,10 +8092,10 @@ wU
wU
FB
wU
-wU
-wU
-wU
-wU
+vJ
+vJ
+vJ
+vJ
zW
zW
zW
@@ -7026,10 +8106,10 @@ XV
gg
vk
pp
-Mc
+mv
gg
"}
-(21,1,1) = {"
+(23,1,1) = {"
zW
zW
JR
@@ -7046,12 +8126,12 @@ sJ
sJ
sJ
We
-hZ
+ec
VJ
-rX
+vB
Sv
Kl
-eo
+CJ
sJ
sJ
sJ
@@ -7066,7 +8146,7 @@ gg
gg
gg
"}
-(22,1,1) = {"
+(24,1,1) = {"
zW
zW
zW
@@ -7083,27 +8163,27 @@ ZY
CG
mw
MR
-vj
-fd
-yG
+ki
+Bh
+BX
BX
Gk
bK
mw
zi
-lj
-YW
+sU
+Et
Yw
Zx
nA
Mm
uk
-xA
-jQ
+Mg
+wh
ww
zW
"}
-(23,1,1) = {"
+(25,1,1) = {"
zW
zW
zW
@@ -7128,19 +8208,19 @@ GG
XE
OP
XR
+Zk
mh
-az
XL
Wr
hk
Zw
-rM
-Mg
-wh
+CD
+Bl
+Bg
wq
zW
"}
-(24,1,1) = {"
+(26,1,1) = {"
zW
zW
zW
@@ -7152,7 +8232,7 @@ lB
rL
IR
jA
-CJ
+Qr
dG
sJ
Wv
@@ -7165,23 +8245,23 @@ tf
iS
rT
sJ
-sJ
ok
sJ
-OK
+sJ
+Wz
Ou
SN
-CD
-Bl
-Bg
-wq
+XT
+XT
+XT
+vo
zW
"}
-(25,1,1) = {"
+(27,1,1) = {"
zW
zW
ef
-Og
+pL
jA
Po
iX
@@ -7202,19 +8282,19 @@ AP
Ih
kK
sJ
-Zk
-us
+ex
+sF
sJ
-XT
+KU
zC
fz
+Cn
+xA
XT
-XT
-XT
-hz
+cW
zW
"}
-(26,1,1) = {"
+(28,1,1) = {"
zW
zW
zW
@@ -7222,7 +8302,7 @@ zW
Tb
Tb
Tb
-dl
+qZ
aI
Tb
Tb
@@ -7232,15 +8312,15 @@ Mf
Mf
Mf
sJ
-EP
+pA
ZL
Nu
MY
xw
-SC
+wC
sJ
-cI
-Fh
+dx
+RB
sJ
DZ
So
@@ -7251,23 +8331,23 @@ XT
zW
zW
"}
-(27,1,1) = {"
+(29,1,1) = {"
zW
zW
zW
zW
Tb
Rn
-mJ
-KC
-jZ
+Oc
+WR
+Qf
Be
Tb
sJ
sJ
Mf
Gc
-Ha
+NZ
Lk
VE
VE
@@ -7276,10 +8356,10 @@ tj
Lk
sJ
sJ
-Tl
CP
+Tl
XT
-Iz
+TL
lv
Yk
pD
@@ -7288,44 +8368,44 @@ XT
zW
zW
"}
-(28,1,1) = {"
+(30,1,1) = {"
zW
zW
zW
zW
Tb
-ZS
-rg
-qZ
-wu
+hF
+yU
+DE
+YJ
yZ
Tb
NC
Mf
jC
-mv
-Ao
-JO
-pA
-lD
-hF
-ec
-wf
+oi
+yA
+Kq
+az
+ZS
+JK
+eE
+eD
Lk
-Wz
-dx
-RB
-XT
-lw
-Om
-Yk
-gL
-vo
-XT
+fd
+iN
+jr
+Bv
+yC
+lj
+Hp
+Bv
+Bv
+Bv
zW
zW
"}
-(29,1,1) = {"
+(31,1,1) = {"
zW
zW
zW
@@ -7333,15 +8413,15 @@ zW
Tb
Tb
aK
-WR
-Qf
+Sd
+kQ
Xt
Tb
zW
Mf
Mu
Vk
-NZ
+vj
Lk
sf
iF
@@ -7349,20 +8429,20 @@ XA
Sa
xp
Lk
-wq
+bX
zW
zW
-XT
-TL
+Bv
+PM
Fg
zB
-eE
-XT
-XT
+dl
+Bv
+Bv
zW
zW
"}
-(30,1,1) = {"
+(32,1,1) = {"
zW
zW
zW
@@ -7370,8 +8450,8 @@ zW
zW
Tb
Tb
-DE
-YJ
+na
+up
Tb
Tb
zW
@@ -7389,17 +8469,17 @@ Lk
wq
zW
zW
-XT
-XT
+Bv
+Bv
eU
On
-XT
-XT
+Bv
+Bv
zW
zW
zW
"}
-(31,1,1) = {"
+(33,1,1) = {"
zW
zW
zW
@@ -7427,16 +8507,16 @@ zW
zW
zW
zW
-XT
-XT
-XT
-XT
+Bv
+rM
+rM
+Bv
zW
zW
zW
zW
"}
-(32,1,1) = {"
+(34,1,1) = {"
zW
zW
zW
@@ -7473,7 +8553,7 @@ zW
zW
zW
"}
-(33,1,1) = {"
+(35,1,1) = {"
zW
zW
zW
@@ -7510,7 +8590,7 @@ zW
zW
zW
"}
-(34,1,1) = {"
+(36,1,1) = {"
zW
zW
zW
@@ -7547,7 +8627,7 @@ zW
zW
zW
"}
-(35,1,1) = {"
+(37,1,1) = {"
zW
zW
zW
@@ -7562,7 +8642,7 @@ zW
zW
zW
zW
-wq
+Pa
zW
Lk
LU
@@ -7584,7 +8664,7 @@ zW
zW
zW
"}
-(36,1,1) = {"
+(38,1,1) = {"
zW
zW
zW
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_tegu.dmm b/_maps/shuttles/nanotrasen/nanotrasen_tegu.dmm
new file mode 100644
index 000000000000..db0df25656e0
--- /dev/null
+++ b/_maps/shuttles/nanotrasen/nanotrasen_tegu.dmm
@@ -0,0 +1,7167 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ad" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"ae" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"aj" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 2
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"am" = (
+/obj/structure/chair/sofa/blue/corpo/left/directional/west,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"aw" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -8
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"aA" = (
+/obj/machinery/airalarm/directional/west,
+/obj/structure/table/glass,
+/obj/item/folder/yellow{
+ pixel_x = 4;
+ layer = 2.9;
+ pixel_y = 4
+ },
+/obj/item/folder/biscuit,
+/obj/item/folder/documents,
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"aB" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/hangar)
+"aD" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/closet/crate/medical,
+/obj/item/storage/box/rxglasses,
+/obj/item/storage/box/bodybags,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey,
+/obj/item/storage/firstaid/regular,
+/obj/item/roller,
+/obj/item/storage/pill_bottle/charcoal,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"aM" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"aP" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"aT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"aX" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hangar)
+"aY" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"aZ" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/window/southright{
+ req_access_txt = "61"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/communications)
+"bb" = (
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"bl" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"bn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 4;
+ id = "tegus_cargo_holofield"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_cargo"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"bs" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"bA" = (
+/obj/structure/table/reinforced,
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.7
+ },
+/obj/machinery/computer/helm/viewscreen/directional/north{
+ pixel_y = 0
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"bP" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"bU" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/holopad/emergency/security,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo/office)
+"bV" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"cg" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"ch" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"cp" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"cr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-5"
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"cs" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/engines/port)
+"ct" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/firealarm/directional/north{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"cC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/east{
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_qmwindow";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/orange,
+/area/ship/crew/crewtwo)
+"cE" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"cG" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 8
+ },
+/obj/item/clipboard{
+ pixel_x = 7
+ },
+/obj/item/pen/fountain{
+ pixel_x = 7;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/food/drinks/mug{
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/communications/room)
+"cI" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters";
+ req_access_txt = "20"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/crewfour)
+"cM" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew)
+"cO" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white,
+/obj/item/paper_bin{
+ pixel_x = 10;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = 10;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"cP" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/random{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"cU" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"cX" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"cY" = (
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"de" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/machinery/light/small/directional/west{
+ pixel_y = 16
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"dl" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"do" = (
+/obj/effect/turf_decal/industrial/loading,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"dp" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/computer/cryopod/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"dB" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"dF" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -20
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"dJ" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"dL" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/engineering{
+ dir = 1;
+ name = "Engineering Foyer"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"dU" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security)
+"dW" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/sign/poster/official/build{
+ pixel_x = 32
+ },
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/item/clothing/head/hardhat/nanotrasen,
+/obj/item/clothing/under/nanotrasen/engineering,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/holosign_creator/engineering,
+/obj/item/clothing/glasses/meson/prescription,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/storage/belt/utility/full/engi,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"dZ" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_qmwindow"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewtwo)
+"ek" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"el" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/computer/helm/viewscreen/computer,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -10
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/item/radio/intercom/directional/west{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications/room)
+"em" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "tegus_warehouse"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"eF" = (
+/obj/effect/turf_decal/ntspaceworks_small/right,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"eM" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/airlock{
+ name = "Crew Quarters"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew)
+"eP" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew)
+"eZ" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/random{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"fc" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/engineering/engines/port)
+"fd" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"ff" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"fE" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"fV" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"gf" = (
+/obj/effect/turf_decal/industrial/loading{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"gq" = (
+/obj/effect/landmark/subship{
+ subship_template = /datum/map_template/shuttle/subshuttles/skink
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"gy" = (
+/obj/machinery/power/ship_gravity,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/button/door{
+ pixel_y = -6;
+ pixel_x = 22;
+ name = "Engine Blast Doors";
+ id = "tegus_starboard_engines";
+ dir = 8
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_starboard_window";
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"gJ" = (
+/obj/structure/sign/number/random,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"hc" = (
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"hk" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/item/paper{
+ pixel_x = 3
+ },
+/obj/item/book/manual/wiki/command{
+ pixel_y = 3
+ },
+/obj/item/pen/fountain{
+ pixel_y = 2;
+ pixel_x = -4
+ },
+/turf/open/floor/carpet/orange,
+/area/ship/crew/crewtwo)
+"hp" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white/end,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"hv" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering)
+"hA" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"hF" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"hI" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "tegus_warehouse"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"hM" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"hN" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/hallway/central)
+"id" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"if" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"il" = (
+/obj/structure/railing{
+ dir = 6;
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/platform/ship_four,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"in" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"io" = (
+/obj/machinery/photocopier,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"ip" = (
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/sign/warning/fire{
+ pixel_y = 24;
+ pixel_x = 6
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 24;
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"iG" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 2;
+ id = "comms_window"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/communications/room)
+"iL" = (
+/obj/machinery/atmospherics/components/unary/portables_connector,
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"jb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer4{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Air to Distribution";
+ target_pressure = 200
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"jd" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/communications)
+"jf" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hangar)
+"jh" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"jk" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"jt" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_capwindow"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/crewfour)
+"ju" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"jF" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"jG" = (
+/obj/machinery/door/airlock{
+ name = "Paperwork Storage";
+ req_one_access = list(19, 41)
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage)
+"jL" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"jV" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"jZ" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/item/reagent_containers/food/drinks/mug{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/cigbutt{
+ pixel_x = -3
+ },
+/obj/item/cigbutt{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"kh" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable/yellow,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"ku" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"kM" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/airalarm/directional/east{
+ pixel_y = 10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/engines/starboard)
+"kQ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/communications)
+"kV" = (
+/obj/machinery/door/airlock{
+ name = "Communications";
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"kX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"la" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 2
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"lf" = (
+/obj/structure/railing{
+ dir = 4;
+ layer = 4.1
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"lg" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"lh" = (
+/obj/structure/chair/bench/orange/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ pixel_y = 16;
+ pixel_x = 22;
+ name = "Lounge Window";
+ id = "tegu_lounge_window";
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"lA" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ dir = 4;
+ req_access_txt = "12";
+ name = "Engine Room"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"lB" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"lC" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"lJ" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/dim/directional/east,
+/obj/item/clothing/head/hardhat/nanotrasen,
+/obj/item/clothing/suit/nanotrasen/vest,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/mask/gas/explorer,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/prescription,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/melee/knife/survival,
+/obj/item/storage/belt/utility/full/engi,
+/obj/item/mining_scanner,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe/drill,
+/obj/item/radio/weather_monitor,
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0;
+ req_access = list(48);
+ name = "field technician's locker"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"lU" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"lV" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"lY" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"mb" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"mg" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"mj" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 1;
+ id = "tegus_warehouse_window"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"mt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 2
+ },
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"my" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/random{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"mz" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/caution,
+/obj/item/mop,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"mB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/components/binary/volume_pump/on/layer2{
+ dir = 8;
+ name = "Waste to External"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/engines/starboard)
+"mD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/toilet)
+"mE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/wood,
+/area/ship/cargo/office)
+"mG" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/engineering/engines/port)
+"mH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"mW" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"nc" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "tegus_security_lockdown"
+ },
+/obj/machinery/door/airlock/security{
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"nf" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"ng" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/loading{
+ dir = 4
+ },
+/obj/machinery/mineral/processing_unit_console{
+ output_dir = 1;
+ dir = 1;
+ pixel_y = -20;
+ machinedir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"nl" = (
+/obj/machinery/holopad/emergency/kitchen,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/crew/canteen)
+"nB" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"nG" = (
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/storage/fancy/egg_box,
+/obj/item/reagent_containers/food/snacks/meat/rawcutlet,
+/obj/item/reagent_containers/food/snacks/meat/rawcutlet,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/secure_closet/freezer{
+ anchored = 1;
+ name = "fridge"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"nH" = (
+/obj/machinery/atmospherics/components/binary/valve/layer2,
+/obj/effect/turf_decal/industrial/shutoff{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/valve/layer4,
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"nY" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"oq" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"os" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"ou" = (
+/obj/machinery/door/airlock{
+ name = "Supply Director's Quarters";
+ req_one_access = list(19, 41)
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/crewtwo)
+"oF" = (
+/obj/machinery/vending/coffee,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/bridge)
+"oG" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"oH" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"oJ" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/toilet)
+"oL" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/button/door{
+ pixel_y = -16;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_dorms";
+ dir = 8
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"oO" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/communications/room)
+"oQ" = (
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/industrial/loading{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ pixel_x = 22;
+ name = "Cargo Bay Door";
+ id = "tegus_cargo";
+ dir = 8
+ },
+/obj/machinery/button/shieldwallgen{
+ pixel_y = -3;
+ pixel_x = 21;
+ id = "tegus_cargo_holofield";
+ dir = 8;
+ name = "Cargo Bay Holofield"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"oZ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/engines/port)
+"pg" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"pt" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -8
+ },
+/obj/machinery/firealarm/directional/east{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"pz" = (
+/obj/structure/rack,
+/obj/item/binoculars{
+ pixel_y = 6
+ },
+/obj/item/analyzer{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"pN" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"pR" = (
+/obj/structure/closet/crate/bin,
+/obj/item/trash/can,
+/obj/item/trash/energybar,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/airalarm/directional/south{
+ layer = 3
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"pU" = (
+/obj/machinery/modular_computer/console/preset/id,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"qg" = (
+/obj/machinery/telecomms/server,
+/obj/machinery/light/dim/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/circuit/green,
+/area/ship/engineering/communications)
+"qq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"qu" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/south{
+ layer = 3
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning/corner,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"qB" = (
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"qF" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_cewindow"
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"qK" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/engines/port)
+"qL" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"qP" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/structure/curtain/bounty,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"qQ" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"qR" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/office)
+"qT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/item/gun/energy/disabler,
+/obj/machinery/newscaster/directional/south{
+ pixel_x = -3
+ },
+/obj/structure/closet/wall/orange/directional/west{
+ secure = 1;
+ locked = 1;
+ name = "supply director's locker"
+ },
+/obj/item/storage/backpack/messenger,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/nanotrasen/supply/qm,
+/obj/item/clothing/head/hardhat/orange,
+/obj/item/clothing/head/nanotrasen/cap/supply,
+/obj/item/clipboard,
+/obj/item/hand_labeler,
+/obj/item/megaphone/cargo,
+/obj/item/clothing/glasses/meson/prescription,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 8;
+ pixel_y = -20
+ },
+/turf/open/floor/carpet/orange,
+/area/ship/crew/crewtwo)
+"qW" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/clothing/head/hardhat/nanotrasen,
+/obj/item/clothing/suit/nanotrasen/vest,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/mask/gas/explorer,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/holosign_creator/engineering,
+/obj/item/clothing/glasses/meson/prescription,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/melee/knife/survival,
+/obj/item/storage/belt/utility/full/engi,
+/obj/item/mining_scanner,
+/obj/item/storage/bag/ore,
+/obj/item/pickaxe/drill,
+/obj/item/radio/weather_monitor,
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0;
+ req_access = list(48);
+ name = "field technician's locker"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"qX" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"rd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8
+ },
+/area/ship/hangar)
+"rf" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegu_lounge_window"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"rn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"rB" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"rJ" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -20
+ },
+/obj/item/radio/intercom/directional/south{
+ pixel_x = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"rL" = (
+/obj/machinery/telecomms/server/presets/nanotrasen{
+ freq_listening = list(1351);
+ autolinkers = list("nanotrasen","broadcasterA","hub")
+ },
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"rP" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/window/reinforced/spawner/west,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"rZ" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/hallway/central)
+"sa" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/mining{
+ id_tag = "tegus_office_door";
+ name = "Supply Office";
+ req_one_access = list(19, 41, 2)
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "tegus_office_lockdown"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo/office)
+"sb" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"sh" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/hallway/central)
+"sl" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_port_window"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"so" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
+ },
+/obj/structure/mirror{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/toilet)
+"ss" = (
+/obj/machinery/telecomms/server,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/circuit/green,
+/area/ship/engineering/communications)
+"sB" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white/end,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "tegus_warehouse";
+ name = "Warehouse Door";
+ pixel_x = -6;
+ pixel_y = -22
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "tegus_warehouse_window";
+ name = "Warehouse Door";
+ pixel_x = 8;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"sR" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"sT" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"sU" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"ta" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/cargo)
+"tf" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"tr" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 2
+ },
+/obj/structure/sign/nanotrasen/vigilitas{
+ pixel_y = -32
+ },
+/obj/structure/closet/wall/red/directional/east{
+ secure = 1;
+ locked = 1;
+ name = "security armor locker";
+ req_access = list(2)
+ },
+/obj/item/clothing/mask/gas/vigilitas,
+/obj/item/clothing/suit/armor/nanotrasen,
+/obj/item/clothing/suit/armor/nanotrasen/slim,
+/obj/item/clothing/head/helmet/sec,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/security)
+"tu" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/computer/monitor/retro{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"tz" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/item/clipboard,
+/obj/item/folder/blue,
+/obj/item/folder/yellow,
+/obj/item/folder/blue,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo/office)
+"tC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/east{
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_capwindow";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/crewfour)
+"tD" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/grunge{
+ req_access_txt = "61"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"tH" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"tL" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ship/hangar)
+"tM" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"tO" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"tT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"tX" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"tZ" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "tegus_warehouse_window"
+ },
+/turf/open/floor/plating,
+/area/ship/hangar)
+"uf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/server/presets/common{
+ autolinkers = list("common","broadcasterA","hub")
+ },
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"ut" = (
+/obj/machinery/door/airlock{
+ name = "Restroom";
+ id_tag = "tegu_bathroom"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/toilet)
+"uF" = (
+/turf/template_noop,
+/area/template_noop)
+"uM" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 2
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"uP" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/item/pen/fountain{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stamp/denied{
+ pixel_x = -8;
+ pixel_y = 10
+ },
+/obj/item/stamp{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/turf/open/floor/wood,
+/area/ship/cargo/office)
+"uX" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"vd" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"vo" = (
+/obj/machinery/door/airlock{
+ name = "Cryogenics";
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew)
+"vs" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"vx" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 9
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/bridge)
+"vB" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"vK" = (
+/obj/structure/dresser{
+ dir = 1
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"vS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/hub/preset,
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"vV" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_y = 3
+ },
+/obj/item/pen/fountain{
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/bridge)
+"vW" = (
+/obj/structure/dresser,
+/obj/machinery/firealarm/directional/north,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"wa" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"wt" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/crew/cryo)
+"wB" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_kitchen"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"wI" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"wO" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"wP" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ship/hangar)
+"wQ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/canteen)
+"wR" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small/directional/south,
+/obj/item/radio/intercom/wideband/table{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"wZ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"xf" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Helm"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ pixel_y = 24;
+ name = "Bridge Shutters";
+ id = "tegus_bridge";
+ pixel_x = 6
+ },
+/obj/machinery/button/door{
+ pixel_y = 24;
+ name = "Ship Lockdown";
+ id = "ship_lockdown";
+ pixel_x = -8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"xi" = (
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/message_server/preset,
+/turf/open/floor/circuit/green,
+/area/ship/engineering/communications)
+"xj" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/central)
+"xo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hangar)
+"xu" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/item/storage/fancy/donut_box{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"xy" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"xA" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = -24
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"xI" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/turf/open/floor/engine/hull,
+/area/ship/crew/cryo)
+"xZ" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"yf" = (
+/obj/structure/chair/sofa/blue/corpo/right/directional/west,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"yh" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/item/stack/sheet/glass/fifty{
+ pixel_y = 3
+ },
+/obj/item/disk/design_disk/telecomms{
+ pixel_y = 3;
+ pixel_x = 4
+ },
+/obj/item/stack/sheet/metal/fifty{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"yj" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/wrapping,
+/obj/structure/closet/crate/engineering{
+ name = "Networking Materials"
+ },
+/obj/item/circuitboard/machine/telecomms/relay,
+/obj/item/circuitboard/machine/telecomms/relay,
+/obj/item/circuitboard/machine/telecomms/relay,
+/obj/item/circuitboard/machine/telecomms/relay,
+/obj/item/storage/box/stockparts/basic,
+/obj/item/stack/sheet/mineral/silver/five,
+/obj/item/stack/sheet/mineral/silver/five,
+/obj/item/stack/sheet/metal/ten,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/storage/box/PDAs,
+/obj/item/storage/box/PDAs,
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"yy" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/crewfour)
+"yz" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"yF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-10"
+ },
+/obj/effect/decal/cleanable/plasma,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"yP" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ dir = 4;
+ name = "Engine Access"
+ },
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "tegus_starboard_engines"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"za" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/light_switch{
+ pixel_x = 20;
+ dir = 8;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 1
+ },
+/area/ship/cargo)
+"zc" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 6
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"zh" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"zm" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"zv" = (
+/obj/structure/guncloset{
+ req_access_txt = "2"
+ },
+/obj/item/gun/energy/disabler,
+/obj/effect/turf_decal/industrial/outline/red,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/gun/ballistic/automatic/smg/vector,
+/turf/open/floor/plasteel/patterned,
+/area/ship/security)
+"zy" = (
+/obj/structure/chair/bench/orange/directional/west,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 8
+ },
+/obj/machinery/newscaster/directional/east{
+ pixel_y = -6
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/office)
+"zB" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/communications)
+"zL" = (
+/obj/structure/table,
+/obj/item/cutting_board{
+ pixel_y = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/melee/knife/kitchen{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"zN" = (
+/obj/effect/turf_decal/siding/white,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north{
+ pixel_x = -6
+ },
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"zS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"zW" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow{
+ pixel_x = -6;
+ pixel_y = -12;
+ layer = 2.9
+ },
+/obj/item/folder/yellow{
+ pixel_x = -4;
+ pixel_y = -10;
+ layer = 2.9
+ },
+/obj/item/stamp/qm{
+ pixel_x = -4;
+ pixel_y = -9
+ },
+/obj/machinery/button/door{
+ pixel_y = -4;
+ name = "Hallway Door Control";
+ id = "tegus_office_door";
+ dir = 8;
+ pixel_x = 8;
+ normaldoorcontrol = 1
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ name = "Office Lockdown";
+ id = "tegus_office_lockdown";
+ dir = 8;
+ pixel_x = 8
+ },
+/turf/open/floor/wood,
+/area/ship/cargo/office)
+"Ah" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/cargo)
+"Ak" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"An" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/wall/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/clothing/head/helmet/space/fragile,
+/obj/item/clothing/suit/space/fragile,
+/obj/item/clothing/suit/space/fragile,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Ar" = (
+/obj/effect/turf_decal/ntspaceworks_small,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Ax" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"AC" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"AE" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"AJ" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/hangar)
+"AN" = (
+/obj/machinery/mineral/processing_unit{
+ output_dir = 4;
+ input_dir = 8
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Bj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_cargo"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"BA" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/grunge{
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"BC" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/porta_turret/ship/nt{
+ dir = 5
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/bridge)
+"BE" = (
+/obj/structure/table/wood,
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"BL" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/canteen)
+"BO" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"BS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"BY" = (
+/obj/machinery/mineral/unloading_machine{
+ input_dir = 1
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Cb" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Ck" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/item/storage/bag/construction,
+/obj/item/clothing/suit/space/hardsuit/engine,
+/obj/item/clothing/mask/breath,
+/obj/machinery/suit_storage_unit/inherit,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Cv" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Cw" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Cy" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/newscaster/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"CB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ship/cargo/office)
+"CE" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"CG" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_y = -20
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"CJ" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"CU" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security)
+"CZ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Dc" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Df" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/lights/mixed{
+ pixel_x = -4;
+ pixel_y = 12;
+ layer = 2.9
+ },
+/obj/item/reagent_containers/glass/bucket{
+ pixel_y = 4;
+ pixel_x = 8
+ },
+/obj/item/reagent_containers/glass/rag{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Ds" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/window/westleft,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications)
+"DS" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ dir = 4;
+ name = "Engine Access"
+ },
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "tegus_port_engines"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"DW" = (
+/obj/effect/turf_decal/siding/thinplating/corner,
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Ej" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Ev" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ship/hangar)
+"Ew" = (
+/obj/effect/turf_decal/siding/white/end,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"EE" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"EH" = (
+/obj/structure/chair/bench/orange/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -20
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo/office)
+"ET" = (
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"EV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/west,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"EX" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_cargo"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 8;
+ id = "tegus_cargo_holofield"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"EY" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/bag/construction,
+/obj/item/clothing/suit/space/hardsuit/engine,
+/obj/item/clothing/mask/breath,
+/obj/machinery/suit_storage_unit/inherit,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Fj" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/qm{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet/orange,
+/area/ship/crew/crewtwo)
+"Fn" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Fw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/hangar)
+"FA" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 6
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/item/radio/intercom/wideband/directional/south{
+ pixel_y = -32;
+ pixel_x = -5
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -22;
+ pixel_x = 10;
+ id = "comms_window";
+ name = "Window Shutters"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/engineering/communications/room)
+"FG" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"FK" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"FL" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"FM" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/structure/chair/handrail{
+ dir = 2
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"FY" = (
+/obj/structure/table,
+/obj/item/storage/box/drinkingglasses{
+ pixel_x = 3;
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -6
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Ga" = (
+/obj/machinery/door/window/northright,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Gc" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/engine/hull,
+/area/ship/crew/cryo)
+"Gm" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Gq" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Gv" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"GD" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"GL" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/structure/platform/ship_four,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"GM" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hangar)
+"GN" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"GU" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"GV" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/drill,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Ha" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"Hg" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/light/small/directional/east{
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ pixel_y = 8;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_cewindow";
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/siding/white/end,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/storage)
+"Hi" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/suit_storage_unit/engine,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"Hk" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 8;
+ id = "ship_lockdown"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Hn" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"HE" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/mining{
+ name = "Hangar"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"HO" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{
+ dir = 4;
+ id = "tegus_shuttle_bay_holofield"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"HQ" = (
+/obj/structure/chair/sofa/blue/corpo/left/directional/east,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"HX" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 10;
+ layer = 3.3;
+ pixel_x = 6
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/crewfour)
+"Ie" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"Ij" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/cargo/office)
+"It" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"Ix" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"IN" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/command{
+ req_one_access = list(19, 41, 2);
+ name = "Bridge"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"IR" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"IV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Jd" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Ji" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Jp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8
+ },
+/area/ship/hangar)
+"Jt" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"JQ" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/hangar)
+"JV" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"JW" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/engineering/engines/starboard)
+"JY" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"Ke" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Kl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"Ky" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/machinery/firealarm/directional/north{
+ pixel_x = 3
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"KH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 8
+ },
+/obj/structure/closet/wall/red/directional/south{
+ secure = 1;
+ locked = 1;
+ name = "security equipment locker";
+ req_access = list(2)
+ },
+/obj/machinery/firealarm/directional/west{
+ pixel_y = -4
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/under/nanotrasen/security,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/head/nanotrasen/cap/security,
+/obj/item/clothing/glasses/sunglasses,
+/obj/item/storage/box/handcuffs,
+/obj/item/storage/box/bodybags,
+/obj/item/ammo_box/magazine/co9mm,
+/obj/item/ammo_box/magazine/co9mm,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c9mm_rubber,
+/obj/item/storage/belt/security,
+/obj/item/melee/knife/survival,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/reagent_containers/spray/pepper,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/item/gun/ballistic/automatic/pistol/commander,
+/obj/item/ammo_box/magazine/smgm9mm,
+/obj/item/ammo_box/magazine/smgm9mm,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"KK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken6"
+ },
+/area/ship/crew/canteen)
+"KV" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/loading,
+/obj/structure/railing/corner,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hangar)
+"KZ" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"Lg" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"Lt" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Lw" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"LB" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/storage)
+"LF" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 5
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/bridge)
+"LI" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/obj/docking_port/mobile{
+ can_move_docking_ports = 1;
+ dir = 2;
+ launch_status = 0;
+ name = "tegu";
+ port_direction = 8;
+ preferred_direction = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"LK" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/engines/starboard)
+"LL" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white,
+/obj/item/paicard{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"LN" = (
+/obj/docking_port/stationary{
+ dwidth = 10;
+ width = 20;
+ height = 15
+ },
+/turf/template_noop,
+/area/template_noop)
+"LS" = (
+/obj/machinery/door/airlock{
+ name = "Canteen";
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Mb" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/item/weldingtool/largetank,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Mm" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"Mn" = (
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Mo" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/shieldwallgen/atmos/strong/roundstart{
+ dir = 8;
+ id = "tegus_shuttle_bay_holofield"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"Mq" = (
+/obj/machinery/telecomms/server,
+/turf/open/floor/circuit/green,
+/area/ship/engineering/communications)
+"Mv" = (
+/obj/machinery/fax/nanotrasen{
+ pixel_y = 6
+ },
+/obj/structure/table,
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo/office)
+"MA" = (
+/obj/structure/railing{
+ dir = 4;
+ layer = 4.1
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/table/reinforced,
+/obj/item/stack/marker_beacon/thirty{
+ pixel_x = 3
+ },
+/obj/item/stack/packageWrap{
+ pixel_y = 7;
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"MH" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"MW" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Nb" = (
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 8;
+ pixel_y = -20
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -3
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/conveyor_switch/oneway{
+ pixel_y = -3;
+ id = "tegus_smelter";
+ pixel_x = -16
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Ni" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"Nj" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 6
+ },
+/obj/machinery/vending/snack/green,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/report_crimes{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Nm" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/window/eastright,
+/obj/machinery/door/window/westleft,
+/obj/machinery/firealarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/communications)
+"No" = (
+/obj/structure/table/reinforced,
+/obj/structure/railing{
+ dir = 1;
+ layer = 2.7
+ },
+/obj/machinery/button/door{
+ pixel_y = 4;
+ pixel_x = -6;
+ name = "Shuttle Bay Door";
+ id = "tegus_shuttle_bay"
+ },
+/obj/machinery/button/shieldwallgen{
+ pixel_y = 3;
+ pixel_x = 7;
+ id = "tegus_shuttle_bay_holofield";
+ name = "Shuttle Bay Holofield"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"Np" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/machinery/light_switch{
+ pixel_x = 20;
+ dir = 8;
+ pixel_y = -10
+ },
+/obj/machinery/vending/cola,
+/turf/open/floor/wood,
+/area/ship/crew/canteen)
+"NL" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"NO" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_starboard_window"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"NS" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"NU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 4
+ },
+/obj/item/gun/energy/laser,
+/obj/item/stock_parts/cell/gun,
+/obj/item/storage/belt/sabre,
+/obj/item/gun/energy/disabler/e60,
+/obj/structure/closet/wall/blue/directional/west{
+ locked = 1;
+ secure = 1;
+ name = "captain's locker"
+ },
+/obj/item/storage/box/handcuffs,
+/obj/item/clothing/suit/armor/nanotrasen/captain,
+/obj/item/clothing/suit/armor/nanotrasen/captain/parade,
+/obj/item/clothing/head/nanotrasen/captain/peaked,
+/obj/item/clothing/head/nanotrasen/captain,
+/obj/item/clothing/gloves/color/captain/nt,
+/obj/item/clothing/under/nanotrasen/captain/skirt,
+/obj/item/clothing/under/nanotrasen/captain,
+/obj/machinery/newscaster/directional/south{
+ pixel_x = -3
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 8;
+ pixel_y = -20
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/crewfour)
+"NW" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/closet/wall/orange/directional/north{
+ name = "Lead-Lined Fuel Closet"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/sheet/mineral/uranium/twenty,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Oj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Oq" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/airless,
+/area/ship/engineering/engines/starboard)
+"Ox" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/bus/preset_two{
+ freq_listening = list();
+ autolinkers = list("processor2","nanotrasen","receiverB","messaging","hub")
+ },
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"OB" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/light/dim/directional/north,
+/obj/machinery/button/door{
+ pixel_y = 6;
+ pixel_x = 22;
+ name = "Engine Blast Doors";
+ id = "tegus_port_engines";
+ dir = 8
+ },
+/obj/machinery/button/door{
+ pixel_y = -8;
+ pixel_x = 22;
+ name = "Window Shutters";
+ id = "tegus_port_window";
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"OC" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"OJ" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor/preopen{
+ dir = 2;
+ id = "ship_lockdown"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"OO" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/machinery/light/floor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/engineering/engines/starboard)
+"OP" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"OQ" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "tegus_smelter"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"OV" = (
+/turf/open/floor/plasteel/dark,
+/area/ship/hangar)
+"Pf" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/item/radio/intercom/directional/south,
+/obj/item/kirbyplants{
+ icon_state = "plant-21"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Pl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"Pr" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 4
+ },
+/area/ship/bridge)
+"Pu" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Pv" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_cargo"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Px" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 2
+ },
+/obj/machinery/computer/telecomms/server/retro{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/communications/room)
+"Pz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/machinery/turretid/ship{
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"PF" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/crewfour)
+"PM" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 5
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"PQ" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"PX" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hangar)
+"Qi" = (
+/obj/machinery/light/dim/directional/south,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "tegus_smelter"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Qs" = (
+/obj/structure/window/reinforced/spawner/east,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/machinery/telecomms/server,
+/turf/open/floor/circuit/green,
+/area/ship/engineering/communications)
+"Qt" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"QM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/structure/filingcabinet{
+ density = 0;
+ pixel_y = 16;
+ layer = 3.5;
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 5
+ },
+/obj/item/folder/red,
+/obj/machinery/light/small/directional/north{
+ pixel_x = 15
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"QN" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Rc" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
+"Rw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door{
+ dir = 1;
+ id = "tegus_warehouse";
+ name = "Warehouse Door";
+ pixel_x = 6;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Ry" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"Rz" = (
+/obj/effect/turf_decal/box/corners,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/packageWrap{
+ pixel_y = 7;
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"RA" = (
+/obj/machinery/holopad/emergency/command,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/railing{
+ dir = 4;
+ layer = 4.1
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -8;
+ pixel_y = -20
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/bridge)
+"RC" = (
+/obj/structure/chair/bench/orange/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"RG" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/rack,
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/item/clothing/head/welding{
+ pixel_x = -4
+ },
+/obj/item/storage/toolbox/mechanical,
+/obj/item/stack/tape/industrial,
+/obj/item/clothing/head/welding{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"RI" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/toilet)
+"RM" = (
+/obj/structure/bed{
+ dir = 4
+ },
+/obj/item/bedsheet/nanotrasen{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet/royalblue,
+/area/ship/crew/crewfour)
+"Sa" = (
+/obj/structure/chair/sofa/blue/corpo/right/directional/east,
+/obj/effect/turf_decal/corner/opaque/white/diagonal,
+/obj/effect/turf_decal/siding/white{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -8
+ },
+/obj/machinery/light/small/directional/west{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Se" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ship/crew/canteen)
+"Sf" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_shuttle_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hangar)
+"Sl" = (
+/obj/machinery/autolathe,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"So" = (
+/obj/effect/turf_decal/industrial/loading,
+/turf/open/floor/plasteel/patterned/grid,
+/area/ship/cargo)
+"Sy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"SK" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"SL" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"SN" = (
+/obj/effect/turf_decal/siding/white,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/get_your_legs{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Td" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/ore_box,
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"Tg" = (
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Tk" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ dir = 8;
+ id = "comms_window"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/communications/room)
+"Tp" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_dorms"
+ },
+/turf/open/floor/plating,
+/area/ship/crew)
+"Tu" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = 28
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Ty" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Tz" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"TF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"TH" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"TL" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/platform/ship_four,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"TO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"TP" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ dir = 4;
+ name = "Engine Access"
+ },
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "tegus_starboard_engines"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"TV" = (
+/obj/structure/railing/corner{
+ layer = 4.1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"TX" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 1;
+ layer = 3
+ },
+/obj/structure/curtain,
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -3
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "tegu_bathroom";
+ name = "Bathroom Door Bolts";
+ pixel_x = 6;
+ pixel_y = -22;
+ normaldoorcontrol = 1;
+ specialfunctions = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Ui" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/stamp/nanotrasen/vigilitas{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -3
+ },
+/obj/structure/sign/poster/retro/lasergun_new{
+ pixel_y = -32
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "ship_lockdown";
+ name = "Ship Lockdown";
+ pixel_x = -22;
+ pixel_y = 12;
+ layer = 3
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "tegus_security_lockdown";
+ name = "Security Shutter Control";
+ pixel_x = -22;
+ pixel_y = 23;
+ layer = 3
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/security)
+"Up" = (
+/obj/effect/turf_decal/siding/thinplating/corner,
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Ur" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Us" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"UA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/receiver/preset_left,
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"UF" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"UH" = (
+/obj/effect/turf_decal/siding/thinplating/corner,
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"UL" = (
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/structure/closet/crate,
+/obj/effect/decal/cleanable/wrapping,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"UM" = (
+/obj/structure/railing{
+ dir = 4;
+ layer = 4.1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hangar)
+"UO" = (
+/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"US" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/item/radio/intercom/directional/west{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/bridge)
+"UT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south{
+ pixel_x = 6
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Vm" = (
+/obj/machinery/newscaster/directional/south{
+ pixel_x = -3
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 8;
+ pixel_y = -20
+ },
+/obj/structure/filingcabinet/double/grey{
+ dir = 4;
+ pixel_x = -6;
+ density = 0
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"Vr" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"VM" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"VW" = (
+/obj/machinery/porta_turret/ship/nt{
+ dir = 6
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/bridge)
+"Wa" = (
+/obj/effect/turf_decal/ntspaceworks_small/left,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"Wd" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering/engines/starboard)
+"Wq" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"Wr" = (
+/obj/structure/curtain,
+/obj/machinery/light/small/directional/east,
+/obj/machinery/shower{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Wx" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/engineering/engines/port)
+"WC" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/storage)
+"WI" = (
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -22;
+ id = "tegus_kitchen";
+ name = "Window Shutters"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/directional/east{
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/canteen)
+"WQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/turf/open/floor/plasteel/stairs,
+/area/ship/crew)
+"WT" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{
+ dir = 1
+ },
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters{
+ id = "tegus_starboard_window"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"WV" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Xi" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering/communications/room)
+"Xn" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/telecomms/processor/preset_two{
+ autolinkers = list("processor2","hub")
+ },
+/turf/open/floor/circuit,
+/area/ship/engineering/communications)
+"Xo" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"Xr" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/machinery/blackbox_recorder,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering/communications/room)
+"Xt" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 8;
+ id = "ship_lockdown"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Xv" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/drinks/mug{
+ pixel_x = -14;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/recharger{
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/bridge)
+"XA" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"XM" = (
+/obj/machinery/washing_machine,
+/obj/machinery/light/small/directional/west{
+ pixel_y = -9
+ },
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/toilet)
+"XS" = (
+/obj/structure/railing{
+ layer = 4.1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 4
+ },
+/area/ship/crew/canteen)
+"XY" = (
+/obj/machinery/computer/med_data,
+/obj/effect/turf_decal/siding/white/end{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Ya" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/crewtwo)
+"Yb" = (
+/obj/structure/dresser,
+/obj/machinery/light_switch{
+ pixel_y = 22;
+ pixel_x = -8
+ },
+/obj/machinery/light/small/directional/north,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Yh" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 26
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/port_gen/pacman/super,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Yk" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/white/corner,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo/office)
+"Yp" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/cryo)
+"Yy" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/carpet/cyan,
+/area/ship/crew)
+"YQ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/cryo)
+"YY" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/structure/curtain/bounty,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"YZ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Za" = (
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Zb" = (
+/obj/effect/turf_decal/siding/white/end{
+ dir = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/crew{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Zf" = (
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/hallway/central)
+"Zi" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/yellow,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer4,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ship/engineering)
+"Zl" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = 4
+ },
+/obj/item/clipboard{
+ pixel_x = -7;
+ pixel_y = 9
+ },
+/obj/item/hand_labeler{
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Zm" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Officer's Lounge";
+ req_one_access = list(19, 41, 2)
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"Zt" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/hallway/central)
+"Zz" = (
+/obj/effect/turf_decal/siding/white,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/hangar)
+"ZH" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"ZK" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/airlock/mining{
+ dir = 4;
+ name = "Supply Office";
+ req_one_access = list(19, 41, 2)
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ dir = 8;
+ id = "tegus_office_lockdown"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo/office)
+"ZP" = (
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4,
+/obj/machinery/door/airlock/mining{
+ name = "Hangar"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+"ZQ" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ dir = 4;
+ name = "Engine Room";
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hangar)
+
+(1,1,1) = {"
+uF
+uF
+uF
+uF
+uF
+oZ
+mG
+mG
+mG
+oZ
+uF
+uF
+uF
+uF
+uF
+LK
+Oq
+Oq
+Oq
+LK
+uF
+uF
+uF
+uF
+"}
+(2,1,1) = {"
+uF
+uF
+uF
+uF
+oZ
+oZ
+DS
+DS
+DS
+oZ
+Wx
+uF
+uF
+uF
+JW
+LK
+TP
+yP
+TP
+LK
+LK
+uF
+uF
+uF
+"}
+(3,1,1) = {"
+uF
+uF
+uF
+uF
+oZ
+ip
+FK
+It
+FK
+sl
+fc
+uF
+uF
+uF
+OO
+WT
+iL
+oH
+jb
+SL
+LK
+uF
+uF
+uF
+"}
+(4,1,1) = {"
+uF
+uF
+uF
+vx
+oZ
+OB
+qK
+cs
+GU
+sl
+SK
+OP
+tf
+OP
+wa
+NO
+Wd
+kM
+mB
+gy
+LK
+kQ
+kQ
+uF
+"}
+(5,1,1) = {"
+uF
+uF
+uF
+GM
+GM
+GM
+GM
+ZQ
+GM
+GM
+GM
+GM
+GM
+xj
+Hk
+hv
+hv
+hv
+lA
+hv
+kQ
+xi
+kQ
+kQ
+"}
+(6,1,1) = {"
+uF
+GM
+GM
+GM
+XA
+EV
+sb
+TH
+sR
+Tz
+KV
+BY
+GM
+tM
+CG
+hv
+Yh
+kh
+JY
+CE
+ss
+aY
+ss
+kQ
+"}
+(7,1,1) = {"
+uF
+HO
+xZ
+cr
+mH
+tL
+jf
+AJ
+nH
+wP
+Fw
+OQ
+GM
+UO
+GN
+hv
+NW
+yz
+ZH
+CE
+Qs
+vd
+qg
+kQ
+"}
+(8,1,1) = {"
+uF
+LI
+yF
+hc
+hc
+hc
+hc
+hc
+gq
+Ev
+xo
+Qi
+GM
+uX
+xA
+hv
+Gm
+zc
+Zi
+tD
+aZ
+oq
+Mq
+kQ
+"}
+(9,1,1) = {"
+uF
+Ax
+aT
+hc
+hc
+hc
+hc
+hc
+hc
+aB
+PX
+AN
+GM
+xj
+Xt
+hv
+hv
+hv
+qQ
+hv
+hv
+Ds
+rP
+kQ
+"}
+(10,1,1) = {"
+uF
+Sf
+aT
+hc
+hc
+hc
+hc
+hc
+hc
+aB
+wZ
+ng
+GM
+rB
+qX
+wI
+hv
+Df
+TF
+RG
+hv
+ad
+rL
+kQ
+"}
+(11,1,1) = {"
+uF
+Sf
+Kl
+hc
+hc
+hc
+hc
+hc
+hc
+aB
+Ke
+Nb
+GM
+Us
+id
+cP
+hv
+mz
+IV
+KZ
+CE
+vd
+uf
+kQ
+"}
+(12,1,1) = {"
+uF
+Sf
+Kl
+hc
+hc
+hc
+hc
+hc
+hc
+GL
+Hn
+Ur
+ZP
+Gq
+Cb
+FL
+hv
+Mb
+lU
+Hi
+CE
+vd
+Ox
+kQ
+"}
+(13,1,1) = {"
+uF
+Sf
+Kl
+hc
+hc
+hc
+hc
+hc
+hc
+TL
+rn
+UT
+GM
+Ky
+Ie
+Za
+hv
+BO
+Sy
+yh
+CE
+vd
+vS
+kQ
+"}
+(14,1,1) = {"
+uF
+cp
+Kl
+hc
+hc
+hc
+hc
+hc
+hc
+il
+rd
+bl
+JQ
+Cw
+jk
+Jd
+dL
+Ty
+Ej
+Sl
+CE
+vd
+Xn
+kQ
+"}
+(15,1,1) = {"
+uF
+Sf
+Kl
+hc
+hc
+hc
+hc
+hc
+hc
+bA
+bs
+GV
+JQ
+Lg
+hN
+rJ
+hv
+ct
+TO
+tu
+hv
+sU
+UA
+kQ
+"}
+(16,1,1) = {"
+uF
+Mo
+UF
+qq
+hc
+hc
+ET
+UM
+lf
+No
+AE
+yj
+JQ
+GD
+zh
+mW
+hv
+aP
+IR
+hM
+hv
+Nm
+kQ
+jd
+"}
+(17,1,1) = {"
+uF
+aX
+GM
+GM
+GM
+GM
+GM
+Ck
+pz
+EY
+CZ
+Td
+JQ
+GD
+lC
+MW
+hv
+dW
+cE
+lY
+BA
+zB
+kQ
+VW
+"}
+(18,1,1) = {"
+uF
+pN
+tH
+bb
+An
+CJ
+SN
+hA
+OV
+hA
+cY
+MA
+GM
+Zt
+vB
+my
+hv
+hv
+hv
+hv
+hv
+kQ
+kQ
+uF
+"}
+(19,1,1) = {"
+LN
+Lt
+OJ
+Tg
+Tu
+if
+qB
+cX
+ju
+ju
+VM
+dl
+HE
+Zf
+rZ
+mb
+YQ
+Ry
+Yp
+Vr
+YQ
+Gc
+uF
+uF
+"}
+(20,1,1) = {"
+uF
+uF
+GM
+GM
+GM
+GM
+zN
+hA
+hA
+OV
+Wq
+Jp
+GM
+uM
+hF
+WV
+YQ
+aw
+wt
+dp
+YQ
+xI
+uF
+uF
+"}
+(21,1,1) = {"
+uF
+uF
+uF
+BC
+GM
+PQ
+Zz
+qW
+Ak
+lJ
+Cv
+Rw
+GM
+Pu
+zh
+eZ
+cM
+cM
+vo
+cM
+cM
+uF
+uF
+uF
+"}
+(22,1,1) = {"
+uF
+uF
+uF
+uF
+GM
+GM
+tZ
+tZ
+tZ
+GM
+em
+hI
+GM
+Ji
+MH
+jV
+cM
+YY
+Ix
+vs
+cM
+uF
+uF
+uF
+"}
+(23,1,1) = {"
+uF
+uF
+uF
+uF
+Ah
+bn
+do
+QN
+UL
+dB
+fV
+sB
+ta
+FM
+hN
+OC
+cM
+vW
+tT
+vK
+Tp
+uF
+uF
+uF
+"}
+(24,1,1) = {"
+uF
+uF
+uF
+uF
+pN
+Pv
+kX
+EE
+Rz
+Ni
+So
+aM
+mj
+Pu
+os
+DW
+eM
+WQ
+Yy
+BE
+Tp
+uF
+uF
+uF
+"}
+(25,1,1) = {"
+uF
+uF
+uF
+uF
+lV
+Bj
+tO
+ff
+Lw
+nB
+Fn
+fE
+mj
+GD
+zh
+dF
+cM
+Yb
+Pl
+vK
+Tp
+uF
+uF
+uF
+"}
+(26,1,1) = {"
+uF
+uF
+uF
+uF
+Ah
+EX
+oQ
+aD
+Zl
+Ni
+gf
+mg
+mj
+GD
+zh
+FL
+cM
+qP
+oL
+Xo
+cM
+uF
+uF
+uF
+"}
+(27,1,1) = {"
+uF
+uF
+uF
+Ya
+NL
+NL
+NL
+bP
+za
+jh
+Mm
+hp
+ta
+zm
+Gv
+zm
+cM
+cM
+cM
+cM
+cM
+eP
+uF
+uF
+"}
+(28,1,1) = {"
+uF
+uF
+uF
+dZ
+Fj
+qT
+NL
+ZK
+Ij
+Ij
+Ij
+Ij
+Ij
+lB
+sh
+pg
+Pf
+RI
+XM
+mD
+TX
+RI
+uF
+uF
+"}
+(29,1,1) = {"
+uF
+uF
+uF
+dZ
+hk
+cC
+ou
+NS
+oG
+lg
+mE
+CB
+Ij
+Dc
+Wa
+Qt
+Up
+ut
+so
+oJ
+Ga
+RI
+uF
+uF
+"}
+(30,1,1) = {"
+uF
+uF
+uF
+NL
+NL
+NL
+NL
+Mv
+bU
+la
+zW
+uP
+Ij
+Cy
+Ar
+nf
+qu
+CU
+dU
+CU
+Wr
+RI
+uF
+uF
+"}
+(31,1,1) = {"
+uF
+uF
+uF
+qF
+aA
+Vm
+WC
+tz
+qR
+Yk
+Ha
+Ew
+sa
+ae
+eF
+YZ
+Oj
+nc
+KH
+CU
+CU
+CU
+uF
+uF
+"}
+(32,1,1) = {"
+uF
+uF
+uF
+qF
+LB
+Hg
+jG
+dJ
+JV
+aj
+zy
+EH
+Ij
+PM
+pt
+UH
+Nj
+CU
+QM
+mt
+Ui
+CU
+uF
+uF
+"}
+(33,1,1) = {"
+uF
+uF
+uF
+WC
+PF
+PF
+PF
+PF
+Rc
+Zm
+Rc
+Rc
+Rc
+xj
+xj
+LS
+xj
+CU
+zv
+tr
+CU
+CU
+uF
+uF
+"}
+(34,1,1) = {"
+uF
+uF
+uF
+uF
+jt
+RM
+NU
+PF
+oF
+cg
+io
+vV
+rf
+HQ
+Sa
+ch
+pR
+CU
+CU
+CU
+CU
+uF
+uF
+uF
+"}
+(35,1,1) = {"
+uF
+uF
+uF
+uF
+jt
+HX
+tC
+cI
+Jt
+jF
+ku
+Xv
+rf
+jZ
+cO
+zS
+Se
+FG
+de
+tX
+wB
+uF
+uF
+uF
+"}
+(36,1,1) = {"
+uF
+uF
+uF
+uF
+yy
+PF
+PF
+PF
+Rc
+Rc
+bV
+RC
+rf
+xu
+LL
+BS
+cU
+nl
+fd
+FY
+wB
+uF
+uF
+uF
+"}
+(37,1,1) = {"
+uF
+uF
+uF
+uF
+sT
+pU
+in
+nY
+US
+IN
+ek
+lh
+rf
+yf
+am
+KK
+AC
+Mn
+jL
+nG
+wB
+uF
+uF
+uF
+"}
+(38,1,1) = {"
+uF
+uF
+uF
+uF
+sT
+XY
+qL
+TV
+RA
+Rc
+Rc
+Rc
+Rc
+wQ
+wQ
+Np
+XS
+zL
+WI
+wQ
+BL
+uF
+uF
+uF
+"}
+(39,1,1) = {"
+uF
+uF
+uF
+uF
+Rc
+Rc
+Rc
+Pr
+wR
+Rc
+uF
+uF
+uF
+uF
+wQ
+wQ
+kV
+wQ
+wQ
+wQ
+gJ
+uF
+uF
+uF
+"}
+(40,1,1) = {"
+uF
+uF
+uF
+uF
+uF
+LF
+Rc
+xf
+Pz
+Rc
+uF
+uF
+uF
+uF
+Xi
+el
+oO
+FA
+Xi
+gJ
+uF
+uF
+uF
+uF
+"}
+(41,1,1) = {"
+uF
+uF
+uF
+uF
+uF
+uF
+sT
+xy
+Zb
+sT
+uF
+uF
+uF
+uF
+iG
+Xr
+cG
+Px
+iG
+uF
+uF
+uF
+uF
+uF
+"}
+(42,1,1) = {"
+uF
+uF
+uF
+uF
+uF
+uF
+wO
+wO
+wO
+wO
+uF
+uF
+uF
+uF
+Tk
+Tk
+Tk
+Tk
+Tk
+uF
+uF
+uF
+uF
+uF
+"}
diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm
index 0c740842e5d9..5af2fca45919 100644
--- a/_maps/shuttles/pgf/pgf_crying_sun.dmm
+++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm
@@ -225,16 +225,13 @@
/turf/open/floor/plating,
/area/ship/engineering)
"bT" = (
-/obj/item/storage/box/flashbangs{
- pixel_x = -7;
- pixel_y = 7
- },
/obj/item/storage/box/zipties{
pixel_y = 7;
- pixel_x = 8
+ pixel_x = 4
},
/obj/item/storage/box/flashes{
- pixel_y = -1
+ pixel_y = -1;
+ pixel_x = -7
},
/obj/item/screwdriver{
pixel_x = -5;
@@ -1117,9 +1114,6 @@
/obj/item/trash/sosjerky{
pixel_x = 4
},
-/obj/item/trash/popcorn{
- pixel_y = -7
- },
/obj/item/trash/raisins{
pixel_x = 5;
pixel_y = 3
@@ -1196,8 +1190,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 5;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -1465,15 +1459,13 @@
/turf/open/floor/plasteel/mono/dark,
/area/ship/hallway/port)
"lZ" = (
-/obj/machinery/fax{
- pixel_y = 3
- },
/obj/structure/table/reinforced,
/obj/effect/turf_decal/corner/opaque/lime/mono,
/obj/machinery/camera/autoname{
dir = 10
},
/obj/machinery/light/directional/south,
+/obj/machinery/fax/pgf,
/turf/open/floor/plasteel/mono/dark,
/area/ship/bridge)
"md" = (
@@ -1492,32 +1484,33 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 8;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull/reinforced,
/area/ship/external/dark)
"mk" = (
/obj/structure/table/wood,
-/obj/item/toy/plush/sharai{
- pixel_y = 3;
- pixel_x = -7
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/megaphone/command{
+ pixel_x = -5;
+ pixel_y = 7
},
/obj/item/flashlight/lamp/green{
pixel_y = 3;
pixel_x = 7
},
-/obj/effect/turf_decal/siding/wood{
- dir = 5
+/obj/item/toy/plush/sharai{
+ pixel_x = -3;
+ pixel_y = 1
},
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm/dormthree)
"mG" = (
/obj/structure/table/optable,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = 4;
- pixel_y = 4
- },
+/obj/item/storage/case/surgery,
/obj/machinery/light/directional/north,
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
pixel_x = -10;
@@ -2373,36 +2366,39 @@
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
"uo" = (
+/obj/structure/closet/secure_closet/wall/directional/west{
+ icon_state = "sec_wall";
+ name = "ordnance locker"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/purple{
+ dir = 10
+ },
+/obj/item/storage/box/flashbangs{
+ pixel_y = 6
+ },
/obj/item/grenade/frag{
- pixel_x = -8;
+ pixel_x = -10;
pixel_y = -1
},
/obj/item/grenade/frag{
- pixel_x = -3;
- pixel_y = -8
+ pixel_x = -5;
+ pixel_y = -6
},
/obj/item/grenade/smokebomb{
- pixel_y = 3;
+ pixel_y = 2;
pixel_x = 13
},
/obj/item/grenade/smokebomb{
- pixel_y = 1;
- pixel_x = 7
+ pixel_x = 7;
+ pixel_y = -2
},
/obj/item/grenade/smokebomb{
pixel_x = 11;
pixel_y = -5
},
-/obj/structure/closet/secure_closet/wall/directional/west{
- icon_state = "sec_wall";
- name = "equipment locker"
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/purple{
- dir = 10
- },
/turf/open/floor/vault,
/area/ship/security/armory)
"uq" = (
@@ -2661,13 +2657,17 @@
"wu" = (
/obj/effect/turf_decal/corner/opaque/lime/mono,
/obj/machinery/telecomms/relay/preset/pgf,
+/obj/machinery/door/window/survival_pod{
+ dir = 1
+ },
+/obj/structure/window/reinforced/survival_pod/spawner/west,
/turf/open/floor/plasteel/tech,
/area/ship/crew/office)
"ww" = (
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/corner{
dir = 8
},
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/machinery/light/directional/east,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
@@ -2935,7 +2935,7 @@
/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
dir = 1
},
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/plasteel/dark,
/area/ship/crew/canteen)
"zc" = (
@@ -3015,6 +3015,9 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/port)
"zz" = (
@@ -3171,8 +3174,8 @@
/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/machinery/porta_turret/ship/pgf/light{
dir = 4;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/plating/airless,
/area/ship/external/dark)
@@ -3426,6 +3429,9 @@
dir = 6
},
/obj/machinery/light/directional/west,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/port)
"Cz" = (
@@ -3612,17 +3618,6 @@
/obj/item/clothing/head/helmet/space/gezena,
/turf/open/floor/plating,
/area/ship/engineering)
-"DG" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/porta_turret/ship/pgf/light{
- dir = 5;
- mode = 1;
- id = "crying_sun_grid"
- },
-/turf/open/floor/engine/hull,
-/area/ship/external/dark)
"DJ" = (
/obj/effect/turf_decal/industrial/traffic,
/obj/structure/sign/flag/gezena{
@@ -4243,8 +4238,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 4;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/plating/airless,
/area/ship/external/dark)
@@ -4766,7 +4761,11 @@
/area/ship/bridge)
"Mu" = (
/obj/effect/turf_decal/corner/opaque/lime/mono,
-/obj/machinery/vending/modularpc,
+/obj/machinery/blackbox_recorder,
+/obj/machinery/door/window/survival_pod{
+ dir = 1
+ },
+/obj/structure/window/reinforced/survival_pod/spawner/west,
/turf/open/floor/plasteel/tech,
/area/ship/crew/office)
"Mw" = (
@@ -5001,11 +5000,12 @@
"Ny" = (
/obj/machinery/autolathe,
/obj/machinery/light/directional/east,
+/obj/item/radio/intercom/directional/south,
/obj/item/stack/sheet/glass/twenty{
pixel_x = 6;
pixel_y = 2
},
-/obj/item/radio/intercom/directional/south,
+/obj/item/stack/sheet/metal/ten,
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"Nz" = (
@@ -5194,18 +5194,6 @@
pixel_y = 1;
pixel_x = 1
},
-/obj/item/storage/belt/military/gezena{
- pixel_y = -1;
- pixel_x = 1
- },
-/obj/item/storage/belt/military/gezena{
- pixel_y = -1;
- pixel_x = 1
- },
-/obj/item/storage/belt/military/gezena{
- pixel_y = -1;
- pixel_x = 1
- },
/obj/item/clothing/head/helmet/gezena{
pixel_y = -11
},
@@ -5215,6 +5203,18 @@
/obj/item/clothing/head/helmet/gezena{
pixel_y = -11
},
+/obj/item/storage/belt/military/gezena{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/storage/belt/military/gezena{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/storage/belt/military/gezena{
+ pixel_x = 1;
+ pixel_y = -1
+ },
/turf/open/floor/vault,
/area/ship/security/armory)
"OY" = (
@@ -5641,9 +5641,11 @@
/turf/open/floor/mineral/titanium,
/area/ship/medical)
"RN" = (
-/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/corner/opaque/lime/mono,
/obj/machinery/light/directional/north,
+/obj/machinery/vending/modularpc{
+ pixel_x = -1
+ },
/turf/open/floor/plasteel/dark,
/area/ship/crew/office)
"RP" = (
@@ -5841,8 +5843,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 10;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -5957,45 +5959,58 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/item/clothing/neck/cloak/gezena/captain{
- pixel_y = -5;
- pixel_x = 1
+/obj/structure/closet/secure_closet{
+ icon_state = "blueshield";
+ req_access = list(20);
+ name = "captain's locker"
},
-/obj/item/clothing/gloves/gezena/captain{
- pixel_y = 4
+/obj/item/storage/lockbox/medal{
+ pixel_y = -20;
+ pixel_x = null
},
-/obj/item/clothing/under/gezena/captain{
+/obj/item/storage/backpack/satchel/cap{
+ pixel_y = -18;
+ pixel_x = -8
+ },
+/obj/item/storage/backpack/duffelbag/captain{
+ pixel_x = 6;
+ pixel_y = -17
+ },
+/obj/item/storage/guncase/pistol/kalixpistol{
+ pixel_y = -13;
+ pixel_x = -1
+ },
+/obj/item/clothing/neck/cloak/gezena/captain{
pixel_y = -4;
- pixel_x = -10
+ pixel_x = -8
},
/obj/item/clothing/suit/armor/gezena/captain{
- pixel_y = -3;
- pixel_x = 9
+ pixel_y = -2;
+ pixel_x = 8
},
-/obj/item/clothing/head/gezena/captain{
- pixel_y = 6
+/obj/item/storage/belt/sabre{
+ pixel_y = -9;
+ pixel_x = -4
},
-/obj/item/storage/backpack/duffelbag/captain{
- pixel_x = 6;
- pixel_y = -14
+/obj/item/screwdriver{
+ pixel_y = -12
},
-/obj/item/storage/backpack/satchel/cap{
- pixel_y = -18;
- pixel_x = -8
+/obj/item/clothing/under/gezena/captain{
+ pixel_y = 3
},
-/obj/item/storage/belt/sabre,
-/obj/item/storage/lockbox/medal,
-/obj/item/radio/headset/pgf/captain,
-/obj/item/radio/headset/pgf/alt/captain,
-/obj/structure/closet/secure_closet{
- icon_state = "blueshield";
- req_access = list(20);
- name = "captain's locker"
+/obj/item/radio/headset/pgf/alt/captain{
+ pixel_x = 10;
+ pixel_y = 4
},
-/obj/item/gun/energy/kalix/pistol{
- pixel_y = -16
+/obj/item/radio/headset/pgf/captain{
+ pixel_x = -10
+ },
+/obj/item/clothing/gloves/gezena/captain{
+ pixel_y = 11
+ },
+/obj/item/clothing/head/gezena/captain{
+ pixel_y = 12
},
-/obj/item/screwdriver,
/turf/open/floor/plasteel/sepia,
/area/ship/crew/dorm/dormthree)
"UH" = (
@@ -6193,10 +6208,17 @@
dir = 1
},
/obj/machinery/light/directional/north,
-/obj/item/clothing/gloves/gezena/marine{
- pixel_y = -2;
+/obj/item/storage/backpack/satchel/sec{
+ pixel_x = -8;
+ pixel_y = -17
+ },
+/obj/item/storage/backpack/duffelbag/sec{
+ pixel_y = -16;
pixel_x = 3
},
+/obj/item/storage/guncase/pistol/kalixpistol{
+ pixel_y = -13
+ },
/obj/item/clothing/shoes/combat/gezena{
pixel_x = 3;
pixel_y = -7
@@ -6216,37 +6238,31 @@
/obj/item/clothing/suit/armor/gezena/marinecoat{
pixel_y = 8
},
+/obj/item/radio/headset/pgf/captain{
+ pixel_x = -5;
+ pixel_y = 7
+ },
/obj/item/radio/headset/pgf/alt/captain{
pixel_y = 11;
pixel_x = 5
},
-/obj/item/storage/belt/military/gezena{
- pixel_y = 1
- },
-/obj/item/storage/backpack/satchel/sec{
- pixel_x = -8;
- pixel_y = -17
- },
-/obj/item/radio/headset/pgf/captain{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/backpack/duffelbag/sec{
- pixel_y = -13
+/obj/item/clothing/suit/armor/gezena/marine{
+ pixel_y = 8
},
-/obj/item/gun/energy/kalix/pistol{
- pixel_y = -9;
- pixel_x = -3
+/obj/item/storage/belt/military/gezena{
+ pixel_y = 6
},
/obj/item/clothing/head/helmet/gezena{
- pixel_x = -11
- },
-/obj/item/clothing/suit/armor/gezena/marine{
- pixel_y = 8
+ pixel_y = 14;
+ pixel_x = -1
},
/obj/item/clothing/head/gezena/flap/marine/lead{
- pixel_y = 10;
- pixel_x = -10
+ pixel_y = 1;
+ pixel_x = 10
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_x = 3;
+ pixel_y = -6
},
/turf/open/floor/plasteel/tech,
/area/ship/crew/dorm/dormtwo)
@@ -6293,8 +6309,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 6;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -6341,11 +6357,16 @@
/obj/item/storage/ration/vegan_chili,
/obj/item/storage/ration/beef_strips,
/obj/item/storage/ration/beef_strips,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/item/storage/cans/sixbeer,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"WQ" = (
@@ -6374,8 +6395,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 5;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -6702,8 +6723,8 @@
/obj/structure/cable,
/obj/machinery/porta_turret/ship/pgf/light{
dir = 5;
- mode = 1;
- id = "crying_sun_grid"
+ id = "crying_sun_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull,
/area/ship/external/dark)
@@ -7431,7 +7452,7 @@ xz
xz
xz
Si
-DG
+KB
KM
Te
EM
diff --git a/_maps/shuttles/pgf/pgf_elated_bolide.dmm b/_maps/shuttles/pgf/pgf_elated_bolide.dmm
new file mode 100644
index 000000000000..1239ee22bbbd
--- /dev/null
+++ b/_maps/shuttles/pgf/pgf_elated_bolide.dmm
@@ -0,0 +1,9871 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aq" = (
+/obj/effect/turf_decal/atmos/air{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"ar" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/ccommons)
+"au" = (
+/obj/machinery/computer/atmos_control/ship/bolide{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"aw" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bombs";
+ dir = 4;
+ name = "High Explosives Storage"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/port)
+"ay" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/structure/closet/crate/engineering/electrical,
+/obj/item/electronics/advanced_airlock_controller,
+/obj/item/electronics/advanced_airlock_controller,
+/obj/item/electronics/advanced_airlock_controller,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airalarm,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/apc,
+/obj/item/electronics/apc,
+/obj/item/electronics/apc,
+/obj/item/electronics/apc,
+/obj/item/electronics/firealarm,
+/obj/item/electronics/firealarm,
+/obj/item/electronics/firealarm,
+/obj/item/electronics/firealarm,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"az" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"aD" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"aE" = (
+/obj/machinery/shower{
+ pixel_y = 18
+ },
+/obj/effect/turf_decal/borderfloor,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"aI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"aK" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"aO" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"aT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"be" = (
+/obj/machinery/door/airlock/engineering{
+ req_one_access = list(1, 10);
+ name = "Port Engines"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/orange,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"bf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"bh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ name = "privacy lock";
+ dir = 1;
+ pixel_y = -21;
+ pixel_x = -10;
+ id = "bol_priv";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -2;
+ pixel_y = -20
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"bl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"bm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"bx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"bH" = (
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/iv_drip,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"bL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"bO" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/floor,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"bR" = (
+/obj/structure/rack,
+/obj/machinery/light/small/directional/south,
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = 5
+ },
+/obj/item/stack/sheet/metal/fifty{
+ pixel_x = -9
+ },
+/obj/item/pipe_dispenser,
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"bT" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"cc" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters";
+ id_tag = "bol_priv";
+ req_access = list(20)
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm/captain)
+"ce" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"ch" = (
+/obj/structure/sign/number/random{
+ dir = 1;
+ layer = 2.9
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"cn" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"co" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom/directional/north,
+/obj/item/clothing/head/gezena/marine/lead{
+ pixel_y = 5;
+ pixel_x = 7
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_y = 12;
+ pixel_x = -7
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -11;
+ pixel_y = 5
+ },
+/obj/item/storage/briefcase{
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"cr" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/closet/firecloset/wall/directional/east,
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"cH" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"cM" = (
+/obj/item/radio/intercom/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"cT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"cZ" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security)
+"dg" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/ccommons)
+"dk" = (
+/obj/machinery/airalarm/directional/west,
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"dn" = (
+/obj/structure/sign/warning/incident{
+ pixel_y = 30
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"dp" = (
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 4
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"dq" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"dt" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_2";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"du" = (
+/obj/structure/rack,
+/obj/machinery/light/directional/east,
+/obj/item/stack/sheet/metal/five{
+ pixel_x = 7
+ },
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"dw" = (
+/obj/structure/chair/handrail,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"dx" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central6,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -11
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"dE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"dF" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"eb" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/docking{
+ pixel_x = 23;
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"em" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"eq" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"er" = (
+/obj/effect/decal/cleanable/food/flour,
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_y = 7
+ },
+/obj/structure/sign/poster/contraband/pgf{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"eC" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"eE" = (
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"eH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"eI" = (
+/obj/structure/grille,
+/obj/docking_port/mobile{
+ name = "bolide docking port";
+ port_direction = 4;
+ preferred_direction = 4
+ },
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"eM" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 8;
+ pixel_x = -5;
+ pixel_y = -1
+ },
+/obj/item/radio/intercom/directional/north{
+ pixel_x = -3
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -10;
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"eX" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 7
+ },
+/obj/item/clipboard{
+ pixel_x = -1;
+ pixel_y = -7
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = -2;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/ccommons)
+"eZ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/camera/autoname,
+/obj/item/kirbyplants{
+ icon_state = "plant-14";
+ pixel_y = 10;
+ pixel_x = 3
+ },
+/obj/machinery/firealarm/directional/north,
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"fg" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/sign/warning{
+ pixel_y = -22
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"fl" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm)
+"fo" = (
+/obj/machinery/atmospherics/pipe/manifold4w/orange/visible,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/corner_techfloor_gray,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"fp" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/clothing/mask/gas,
+/obj/machinery/light/small/directional/north,
+/obj/structure/sign/warning/vacuum{
+ pixel_x = 3;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage/starboard)
+"fr" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 11;
+ pixel_y = -16
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"ft" = (
+/obj/machinery/door/airlock/medical{
+ name = "Medical"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"fy" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm/captain)
+"fG" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"fO" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/structure/closet/crate/engineering/electrical,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/electronics/firelock,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"fR" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"fU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"fW" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge";
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
+"fY" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/obj/machinery/camera/autoname{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"ge" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"gf" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/structure/sign/warning{
+ pixel_x = -10;
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"gg" = (
+/obj/machinery/light/directional/south,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"gj" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"gA" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/item/radio/intercom/directional/north{
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/machinery/button/door{
+ pixel_y = 21;
+ pixel_x = -12;
+ id = "bolide_engine_3";
+ name = "engine access"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"gB" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/structure/floodlight_frame,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"gC" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/cryo)
+"gE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/light/small/directional/west{
+ pixel_y = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"gI" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/modular_computer/laptop/preset,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 16;
+ pixel_x = 16
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -12;
+ pixel_y = 12
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 2;
+ pixel_x = -22;
+ name = "internal window shutters";
+ id = "bolide_win_2"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 13;
+ pixel_x = -22;
+ name = "external window shutters";
+ id = "bolide_win_1"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"gP" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/structure/sign/warning{
+ pixel_x = -10;
+ pixel_y = -21
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"gU" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_2"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/dorm/captain)
+"gV" = (
+/obj/machinery/newscaster/directional/east,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"ha" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/etherbor/center,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"hd" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"hi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/hallway/central)
+"hj" = (
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"hk" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm)
+"hw" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/rack,
+/obj/item/clothing/suit/bomb_suit{
+ pixel_x = -3;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/bomb_hood{
+ pixel_y = 9;
+ pixel_x = -3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -10;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/explosives{
+ pixel_x = -7;
+ pixel_y = -8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/item/clothing/gloves/gezena/engi,
+/obj/item/radio/headset/pgf/alt,
+/obj/machinery/light/small/directional/east,
+/obj/item/gps,
+/obj/item/clothing/under/gezena/marine{
+ pixel_y = 8;
+ pixel_x = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"hO" = (
+/obj/structure/closet/wall/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/item/radio{
+ pixel_x = 7
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"hP" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 7;
+ pixel_x = -9;
+ name = "bay window shutters";
+ id = "bolide_bay_win_2"
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 7;
+ name = "external window shutters";
+ id = "bolide_bay_win_1";
+ pixel_x = 1
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -4;
+ name = "cargo bay controls";
+ id = "bolide_bay";
+ pixel_x = -9
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ pixel_y = -4;
+ pixel_x = 3;
+ id = "elated_bolide_bay";
+ name = "cargobay holofield switch"
+ },
+/obj/machinery/turretid/ship{
+ pixel_y = 24;
+ id = "bolide_grid"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"id" = (
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 8
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"ih" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/item/folder/pgf/empty_sheets{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/machinery/fax/pgf{
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"ij" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 1;
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -12
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"in" = (
+/obj/effect/decal/cleanable/food/flour,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"iq" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = 7;
+ pixel_x = -9
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = 7;
+ pixel_x = -2
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = 7;
+ pixel_x = 6
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = 7;
+ pixel_x = 13
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = -5;
+ pixel_x = 13
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = -5;
+ pixel_x = 6
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = -5;
+ pixel_x = -2
+ },
+/obj/item/grenade/c4/x4{
+ pixel_y = -5;
+ pixel_x = -8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/storage/port)
+"it" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"iu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"iv" = (
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"iz" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_airlock";
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"iE" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_2"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/dorm/captain)
+"iN" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/dorm)
+"iO" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_engine_1";
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"iS" = (
+/obj/structure/table/reinforced,
+/obj/item/screwdriver{
+ pixel_y = 3
+ },
+/obj/item/screwdriver{
+ pixel_y = 3;
+ pixel_x = -7
+ },
+/obj/item/screwdriver{
+ pixel_y = 3;
+ pixel_x = 8
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"iW" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"iY" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 3;
+ pixel_x = -6
+ },
+/obj/item/pen{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"jc" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/sign/flag/gezena{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"jf" = (
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ can_be_unanchored = 1;
+ icon_state = "sec";
+ name = "uniforms locker";
+ req_access_txt = "1"
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/item/storage/backpack/industrial{
+ pixel_x = 7
+ },
+/obj/item/storage/backpack/industrial{
+ pixel_x = 7
+ },
+/obj/item/storage/backpack/industrial{
+ pixel_x = 7
+ },
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"jg" = (
+/obj/structure/closet/wall/red/directional/east,
+/obj/item/megaphone{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/clothing/mask/whistle{
+ name = "marine whistle"
+ },
+/obj/item/clothing/mask/whistle/trench{
+ pixel_x = 9;
+ pixel_y = -4
+ },
+/obj/item/clipboard{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/clipboard{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/clipboard{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/storage/box/holodisc{
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"ji" = (
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/floordetail/traction,
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 1
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"jm" = (
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ can_be_unanchored = 1;
+ icon_state = "warden";
+ name = "Lieutenant's locker";
+ req_access_txt = "3";
+ req_access = list(3)
+ },
+/obj/item/radio/headset/pgf/alt/captain{
+ pixel_y = 11;
+ pixel_x = 5
+ },
+/obj/item/clothing/neck/cloak/gezena/lead{
+ pixel_y = 3;
+ pixel_x = -3
+ },
+/obj/item/clothing/suit/armor/gezena/marine{
+ pixel_y = 8
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -6;
+ pixel_y = -7
+ },
+/obj/item/clothing/gloves/gezena/marine{
+ pixel_x = 3;
+ pixel_y = -6
+ },
+/obj/item/storage/belt/military/gezena{
+ pixel_y = 1
+ },
+/obj/item/storage/backpack/security{
+ pixel_y = -6
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/item/clothing/accessory/medal/silver/valor,
+/obj/item/clothing/mask/whistle{
+ name = "marine whistle"
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/gezena/flap/marine/lead{
+ pixel_x = -4
+ },
+/obj/item/storage/guncase/pistol/kalixpistol,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"jn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering{
+ req_one_access = list(1, 10);
+ name = "Engineering"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/starboard)
+"js" = (
+/obj/structure/bed/roller,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/industrial/hatch/blue,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"jA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"jB" = (
+/obj/structure/sink{
+ pixel_y = 18
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"jE" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/office)
+"jF" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_armory";
+ dir = 4;
+ name = "Armory"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"jI" = (
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"jJ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 1
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/box,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"jN" = (
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "Engineering Storage";
+ req_one_access_txt = "1"
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/port)
+"jR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"jT" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -13;
+ pixel_y = -16;
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/medical)
+"jZ" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin{
+ pixel_y = 3;
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/dorm)
+"ka" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/pgf/heavy{
+ id = "bolide_grid"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"kc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/floordetail/traction,
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"kg" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_2";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"kh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/airlock/security{
+ dir = 8;
+ req_access = list(3)
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_armory";
+ dir = 4;
+ name = "Armory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"km" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"ks" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security/armory)
+"kG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"kI" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/airlock/mining{
+ name = "Cargo Bay"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"kM" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"kQ" = (
+/obj/machinery/airalarm/directional/north,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/item/paper/guides/jobs/engi/combustion_thruster{
+ pixel_y = 10
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"kS" = (
+/obj/structure/sign/number/random{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"kT" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/fire{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"kU" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge_1";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"kZ" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/storage/starboard)
+"le" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/storage/port)
+"lf" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm/captain)
+"lg" = (
+/obj/item/radio/intercom/directional/north,
+/obj/item/kirbyplants{
+ icon_state = "plant-08";
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"lj" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/obj/machinery/telecomms/relay/preset/pgf,
+/obj/effect/turf_decal/techfloor{
+ dir = 6
+ },
+/obj/structure/window/reinforced,
+/obj/machinery/door/window/brigdoor/westleft{
+ req_one_access = list(20, 57, 58)
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"lo" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"lq" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"lu" = (
+/obj/machinery/door/window/brigdoor{
+ dir = 8;
+ req_access = list(3)
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"lx" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"ly" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"mh" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 5
+ },
+/obj/structure/rack,
+/obj/item/multitool,
+/obj/item/screwdriver,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"mo" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/storage/starboard)
+"mp" = (
+/obj/docking_port/stationary{
+ height = 15;
+ width = 15;
+ dwidth = 7;
+ name = "bolide exterior dock"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"ms" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"mz" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/machinery/computer/cargo{
+ dir = 4;
+ icon_state = "computer-left"
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/computer/helm/viewscreen/directional/west,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"mA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"mC" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"mF" = (
+/obj/structure/bed/dogbed{
+ name = "Saperzy's bed";
+ desc = "A comfy-looking fox bed. You can even strap your pet in, in case the gravity turns off."
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/mob/living/simple_animal/pet/fox/bolide,
+/obj/machinery/light/directional/south,
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"mJ" = (
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"mR" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"mW" = (
+/obj/structure/mirror{
+ pixel_x = -24;
+ pixel_y = 4
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_y = 4;
+ pixel_x = -13
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4,
+/obj/machinery/button/door{
+ name = "privacy lock";
+ pixel_y = 22;
+ pixel_x = 10;
+ id = "bol_priv2";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/ccommons)
+"mZ" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/borderfloorblack/corner{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/ccommons)
+"nb" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"ne" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"ng" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 7;
+ pixel_y = -7
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = 7;
+ pixel_y = -5
+ },
+/obj/item/pen{
+ pixel_x = 7;
+ pixel_y = 9
+ },
+/obj/item/pen/fountain{
+ pixel_x = 3;
+ pixel_y = 6
+ },
+/obj/item/clipboard{
+ pixel_x = -7;
+ pixel_y = -5
+ },
+/obj/item/folder/pgf/blue/bolide{
+ pixel_x = -9;
+ pixel_y = 5
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"nk" = (
+/obj/structure/table/chem,
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/bottle/formaldehyde,
+/obj/item/reagent_containers/glass/bottle/formaldehyde{
+ pixel_x = 7
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"nq" = (
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 8
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/ccommons)
+"nz" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"nC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = -12;
+ pixel_x = -21
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"nJ" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/flashlight/seclite{
+ pixel_y = -1;
+ pixel_x = 5
+ },
+/obj/item/flashlight/seclite{
+ pixel_y = -7;
+ pixel_x = 5
+ },
+/obj/item/flashlight/seclite{
+ pixel_y = -1
+ },
+/obj/item/flashlight/seclite{
+ pixel_y = -7
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 6;
+ pixel_x = 1
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 6;
+ pixel_x = 13
+ },
+/obj/item/melee/sword/mass{
+ pixel_y = 6;
+ pixel_x = -3
+ },
+/obj/item/melee/sword/mass{
+ pixel_y = 6;
+ pixel_x = -9
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 6;
+ pixel_x = 8
+ },
+/obj/item/melee/knife/survival{
+ pixel_y = 6;
+ pixel_x = 13
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"nL" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"nM" = (
+/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"nS" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -8;
+ pixel_y = -21
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"nT" = (
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = -22
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/industrial/warning/cee{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage/starboard)
+"nV" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"ob" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/sign/warning{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"oc" = (
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/box/corners,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"og" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 11;
+ pixel_y = -16
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"oj" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"ol" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"om" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/newscaster/directional/east,
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_y = 7;
+ pixel_x = -5;
+ name = "fore airlock shutters";
+ id = "bolide_airlock"
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_y = -5;
+ id = "bolide_win_bridge";
+ name = "window shutters";
+ pixel_x = -5
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"oD" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"oE" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"oJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"oK" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/closet/firecloset/wall/directional/east,
+/obj/effect/turf_decal/industrial/stand_clear,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"oO" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/central)
+"oV" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/hallway/central)
+"oY" = (
+/turf/template_noop,
+/area/template_noop)
+"pf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/cargo)
+"pl" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_engine_3";
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"po" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/machinery/newscaster/directional/east,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"ps" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"pu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/sign/poster/contraband/pgf{
+ pixel_x = 28;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"pB" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"pG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner_steel_grid,
+/obj/effect/turf_decal/spline/fancy/opaque/green/corner,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"pI" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/storage/starboard)
+"pM" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 13;
+ pixel_y = 5
+ },
+/obj/structure/mirror{
+ pixel_x = 26;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/dorm)
+"qa" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-08";
+ pixel_y = 19;
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"qd" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 8;
+ id = "bolide_grid"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"qe" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/east,
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 11;
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 7;
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"ql" = (
+/obj/effect/turf_decal/box,
+/obj/machinery/light/floor,
+/obj/machinery/porta_turret/ship/pgf/heavy{
+ dir = 1;
+ id = "bolide_grid"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"qm" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"qq" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"qr" = (
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 9
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"qH" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"qJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"qQ" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"qW" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"qX" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"rb" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"rc" = (
+/obj/machinery/firealarm/directional/north,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"rn" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/caution,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"ro" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"ru" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"rw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"rB" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/structure/sign/warning{
+ pixel_x = -10;
+ pixel_y = -21
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"rJ" = (
+/obj/machinery/door/airlock{
+ name = "Cryo Head"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"rN" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner,
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"rP" = (
+/obj/machinery/atmospherics/components/unary/portables_connector,
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/molten_object{
+ pixel_x = 10;
+ pixel_y = -12
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"rR" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners,
+/obj/structure/closet/crate/engineering,
+/obj/item/stack/sheet/glass/twenty{
+ pixel_x = -3
+ },
+/obj/item/stack/sheet/metal/twenty{
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"rU" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/storage/box/metalfoam{
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/storage/box/metalfoam{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/storage/box/smokebombs{
+ pixel_x = -9;
+ pixel_y = -3
+ },
+/obj/item/storage/box/smokebombs{
+ pixel_x = -4;
+ pixel_y = -3
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 28
+ },
+/obj/item/storage/box/flares{
+ pixel_x = 11;
+ pixel_y = -5
+ },
+/obj/item/storage/box/flares{
+ pixel_x = -11;
+ pixel_y = -5
+ },
+/obj/item/storage/box/flares{
+ pixel_x = -3;
+ pixel_y = -5
+ },
+/obj/item/storage/box/flares{
+ pixel_x = 2;
+ pixel_y = -5
+ },
+/obj/item/gun/grenadelauncher{
+ pixel_y = 6
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"rV" = (
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"rZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"sb" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"si" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -17;
+ name = "cargo bay controls";
+ id = "bolide_bay";
+ pixel_x = -15
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 1;
+ pixel_y = -16;
+ pixel_x = 12;
+ id = "elated_bolide_bay";
+ name = "cargobay holofield switch"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"su" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"sw" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/item/reagent_containers/glass/chem_jug/thermite{
+ pixel_y = 5;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/glass/chem_jug/thermite{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/structure/closet/crate/chem,
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/storage/port)
+"sy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"sE" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/storage/port)
+"sG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"sO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/crew/ccommons)
+"sT" = (
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 1
+ },
+/obj/structure/sign/poster/rilena/timeline{
+ pixel_x = 28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"te" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"th" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"tm" = (
+/obj/effect/turf_decal/borderfloorblack,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"tq" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 28
+ },
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"tr" = (
+/obj/structure/bed,
+/obj/item/bedsheet/hos{
+ name = "Lieutenant's Bedsheet";
+ desc = "It is decorated with a shield emblem."
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/structure/sign/flag/gezena{
+ pixel_y = 32;
+ pixel_x = 5
+ },
+/obj/item/toy/plush/spider{
+ pixel_y = -4
+ },
+/obj/machinery/button/door{
+ name = "privacy lock";
+ pixel_y = 22;
+ pixel_x = -10;
+ id = "bol_priv3";
+ specialfunctions = 4;
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"tv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"tB" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/item/kirbyplants{
+ icon_state = "plant-05";
+ pixel_y = 7;
+ pixel_x = -11
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"tI" = (
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Cryogenic Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"tL" = (
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 4
+ },
+/obj/effect/turf_decal/box,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/structure/sign/poster/contraband/tools{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"tU" = (
+/obj/machinery/computer/station_alert{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/structure/sign/poster/contraband/cardinal_port_starboard{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"ud" = (
+/obj/structure/cable{
+ icon_state = "5-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"ul" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"up" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"uq" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"ur" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"uu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"ux" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"uC" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/noticeboard{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"uD" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"uE" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/sign/warning/docking{
+ pixel_x = 7;
+ pixel_y = 25
+ },
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"uN" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/etherbor/right,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"uR" = (
+/obj/structure/railing,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"uW" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-middle"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"vc" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid/full,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"vf" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/item/grenade/c4{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/grenade/c4{
+ pixel_y = 6
+ },
+/obj/item/grenade/c4{
+ pixel_y = 6;
+ pixel_x = 6
+ },
+/obj/item/grenade/c4{
+ pixel_y = 6;
+ pixel_x = 12
+ },
+/obj/item/grenade/c4{
+ pixel_y = -4;
+ pixel_x = 12
+ },
+/obj/item/grenade/c4{
+ pixel_y = -4;
+ pixel_x = 6
+ },
+/obj/item/grenade/c4{
+ pixel_y = -4
+ },
+/obj/item/grenade/c4{
+ pixel_y = -4;
+ pixel_x = -7
+ },
+/obj/item/grenade/c4{
+ pixel_y = 2;
+ pixel_x = 14
+ },
+/obj/item/grenade/c4{
+ pixel_y = 2;
+ pixel_x = -7
+ },
+/obj/item/grenade/c4{
+ pixel_y = 2
+ },
+/obj/item/grenade/c4{
+ pixel_y = 2;
+ pixel_x = 7
+ },
+/obj/item/grenade/c4{
+ pixel_y = 2;
+ pixel_x = 14
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/storage/port)
+"vl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/borderfloorblack,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"vm" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"vo" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"vp" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/item/radio/intercom/directional/south{
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -20;
+ pixel_x = -12;
+ id = "bolide_engine_2";
+ name = "engine access"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"vt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/binary/valve/layer2,
+/obj/effect/turf_decal/corner_techfloor_grid,
+/obj/effect/turf_decal/techfloor/corner,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"vx" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"vJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"vS" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/binoculars,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"we" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"wk" = (
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"wt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"ww" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/medical)
+"wx" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera/autoname{
+ dir = 10
+ },
+/obj/effect/turf_decal/borderfloorblack/corner{
+ dir = 1
+ },
+/obj/machinery/fax/indie,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"wy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"wC" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/closet/cabinet,
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"wD" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_engineering";
+ dir = 4;
+ name = "Secure Storage"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/starboard)
+"wP" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"wT" = (
+/obj/structure/filingcabinet/double/grey,
+/obj/item/taperecorder,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/structure/sign/warning/securearea{
+ pixel_x = -9;
+ pixel_y = -21
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"xe" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_engine_2";
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"xl" = (
+/obj/machinery/atmospherics/components/binary/valve/layer4,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"xq" = (
+/obj/structure/railing,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/ccommons)
+"xs" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/structure/rack,
+/obj/item/screwdriver,
+/obj/item/multitool{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"xu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"xw" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"xA" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm)
+"xC" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -10;
+ pixel_y = -20
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -20;
+ id = "bolide_engineering";
+ req_one_access = list(1, 10)
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"xE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{
+ dir = 1
+ },
+/turf/open/floor/engine/hydrogen_fuel,
+/area/ship/engineering/engines/starboard)
+"xG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/closet/firecloset/wall/directional/south,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"xM" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/storage/starboard)
+"xQ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"xX" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/crew/dorm)
+"yi" = (
+/obj/machinery/recharge_station,
+/obj/structure/curtain/cloth/grey,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"ym" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"yq" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = 5;
+ pixel_y = -2
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 6;
+ pixel_x = 5
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 6;
+ pixel_x = -8
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = -8;
+ pixel_y = -2
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = -8
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = 4
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 11;
+ pixel_x = -8
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 10;
+ pixel_x = 2
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_x = 5;
+ pixel_y = -2
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 6;
+ pixel_x = -8
+ },
+/obj/item/stock_parts/cell/gun/pgf{
+ pixel_y = 10;
+ pixel_x = 2
+ },
+/obj/structure/sign/poster/contraband/eoehoma{
+ pixel_x = -32
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"yu" = (
+/obj/structure/sign/warning/fire{
+ pixel_x = 10;
+ pixel_y = -21
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -21
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -11
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"yv" = (
+/obj/structure/railing/corner,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner_steel_grid,
+/obj/effect/turf_decal/spline/fancy/opaque/green/corner,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"yy" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/hallway/fore)
+"yD" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/clothing/mask/gas,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"yJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"yK" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"yN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"yR" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/port)
+"yT" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_x = 21;
+ dir = 8;
+ pixel_y = 13
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"yZ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"za" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"zc" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"zd" = (
+/obj/item/mop,
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/glass/rag,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/item/storage/bag/trash{
+ pixel_x = 10;
+ pixel_y = -3
+ },
+/obj/item/storage/bag/trash{
+ pixel_x = 10;
+ pixel_y = -3
+ },
+/obj/structure/closet/crate/trashcart,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"zi" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"zj" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/computer/security{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"zs" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"zw" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"zM" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"zS" = (
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/hand_labeler{
+ pixel_y = 15
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 8
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 9;
+ pixel_x = -6
+ },
+/obj/item/folder/pgf{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_armory";
+ dir = 4;
+ name = "Armory"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"zX" = (
+/obj/structure/chair/comfy/grey/directional/north,
+/obj/item/storage/secure/safe{
+ dir = 8;
+ pixel_x = -32
+ },
+/obj/item/radio/intercom/directional/west{
+ pixel_y = 20
+ },
+/obj/effect/landmark/start/captain,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"zY" = (
+/obj/structure/sign/number/random{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Ae" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ship/medical)
+"Ag" = (
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8
+ },
+/obj/structure/sign/warning/explosives/alt{
+ pixel_x = -30;
+ pixel_y = -5
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/item/storage/toolbox/explosives{
+ pixel_y = 9
+ },
+/obj/effect/turf_decal/techfloor/orange,
+/obj/machinery/light_switch{
+ pixel_x = -12;
+ pixel_y = 21
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Ao" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"As" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Az" = (
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ can_be_unanchored = 1;
+ icon_state = "sec";
+ name = "uniforms locker";
+ req_access_txt = "1"
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = -7
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3
+ },
+/obj/item/storage/backpack/security{
+ pixel_y = -6
+ },
+/obj/item/storage/backpack/security{
+ pixel_y = -6
+ },
+/obj/item/radio/headset/pgf/alt,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/radio/headset/pgf/alt,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 12
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "bolide_armory";
+ name = "armory access";
+ pixel_x = 19;
+ pixel_y = 1;
+ req_access = list(3)
+ },
+/obj/item/clothing/head/gezena/marine{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/storage/backpack/security{
+ pixel_y = -6
+ },
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/clothing/head/gezena/flap/marine,
+/obj/item/clothing/head/gezena/flap/marine,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"AC" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"AE" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "bolide_armory";
+ name = "armory access";
+ pixel_x = -5;
+ pixel_y = -5;
+ req_access = list(3)
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "bolide_bomb_suit";
+ name = "specialist equipment access";
+ pixel_x = -5;
+ pixel_y = 6;
+ req_access = list(3)
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"AH" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"AI" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-12";
+ pixel_x = 10;
+ pixel_y = 17
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-11";
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"AJ" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = -4
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding{
+ pixel_y = -5;
+ pixel_x = 8
+ },
+/obj/item/clothing/glasses/welding{
+ pixel_y = 5;
+ pixel_x = 1
+ },
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"AS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"AY" = (
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/structure/closet{
+ name = "spare uniforms"
+ },
+/obj/item/clothing/head/gezena,
+/obj/item/clothing/head/gezena,
+/obj/item/clothing/head/gezena,
+/obj/item/clothing/head/gezena,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/structure/noticeboard{
+ pixel_y = 25
+ },
+/obj/item/clothing/head/gezena/flap,
+/obj/item/clothing/head/gezena/flap,
+/obj/item/clothing/head/gezena/flap,
+/obj/item/clothing/head/gezena/flap,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/dorm)
+"Ba" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Bm" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/starboard)
+"Bq" = (
+/obj/machinery/light/directional/north,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Br" = (
+/obj/structure/table/reinforced,
+/obj/item/table_bell{
+ pixel_y = 9;
+ pixel_x = -6
+ },
+/obj/item/folder/pgf{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/item/folder/pgf{
+ pixel_x = 3;
+ pixel_y = 1
+ },
+/obj/item/folder/pgf{
+ pixel_x = 9;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Bs" = (
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Bv" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Bz" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"BA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume,
+/turf/open/floor/engine/hydrogen_fuel,
+/area/ship/engineering/engines/port)
+"BC" = (
+/obj/machinery/door/airlock{
+ dir = 8;
+ name = "Showers"
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"BF" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"BG" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6,
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"BJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"BQ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"Cg" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Cn" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Cp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/floordetail/pryhole,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Cr" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Cu" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Cv" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"CA" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_y = 8;
+ pixel_x = -5
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"CE" = (
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 8
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"CL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"CM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"CV" = (
+/obj/machinery/door/airlock/external,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/starboard)
+"CY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"CZ" = (
+/obj/machinery/power/smes/engineering{
+ charge = 1e+006
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Da" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_y = 1;
+ pixel_x = -15
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"Dd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"De" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Dk" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Dp" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ship/crew/cryo)
+"Ds" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Dt" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Dx" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Dy" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/machinery/light_switch{
+ pixel_y = 21;
+ pixel_x = 11
+ },
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"DO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"DP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/sign/warning{
+ pixel_y = -22;
+ pixel_x = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Ea" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Ee" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Eh" = (
+/obj/machinery/holopad/secure,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"En" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Eo" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_2"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/dorm/captain)
+"Et" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 1
+ },
+/obj/machinery/air_sensor/ship/bolide/fuel_2{
+ pixel_x = 16;
+ pixel_y = -10
+ },
+/obj/structure/sign/warning/fire{
+ pixel_y = -22;
+ pixel_x = 16
+ },
+/turf/open/floor/engine/hydrogen_fuel,
+/area/ship/engineering/engines/starboard)
+"Eu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Ey" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/railing,
+/obj/structure/pitgrate,
+/turf/open/floor/plasteel/elevatorshaft,
+/area/ship/hallway/central)
+"EC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"ED" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"EE" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge";
+ dir = 4
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"EM" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/machinery/light/directional/north,
+/obj/item/wrench{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"EO" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"EP" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"ER" = (
+/obj/machinery/photocopier,
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/light_switch{
+ pixel_y = 21;
+ pixel_x = -11
+ },
+/obj/machinery/computer/helm/viewscreen/directional/north{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"ES" = (
+/obj/machinery/door/window/brigdoor{
+ dir = 1;
+ req_access = list(3)
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"EX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Fa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/item/kirbyplants{
+ icon_state = "plant-18";
+ pixel_x = 11;
+ pixel_y = 21
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Fg" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -28
+ },
+/obj/structure/rack,
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_x = -12;
+ dir = 1;
+ pixel_y = -20
+ },
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/glass/concrete_bag,
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Fl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Fm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"Fr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Fs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Ft" = (
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/borderfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"FB" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/hallway/fore)
+"FC" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_y = 4;
+ pixel_x = -18
+ },
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_x = 18;
+ pixel_y = 4
+ },
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_y = 4
+ },
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_y = 4;
+ pixel_x = -18
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"FJ" = (
+/obj/machinery/power/smes/engineering{
+ charge = 1e+006
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"FN" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_y = 26;
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"FO" = (
+/obj/structure/bed/double{
+ dir = 4
+ },
+/obj/item/bedsheet/double{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"FP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/mining{
+ name = "Cargo Bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"FR" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/fore)
+"FS" = (
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Gh" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Gi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/corner_steel_grid/full,
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Gm" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Gv" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/landmark/start/head_of_security,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"Gw" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/towel{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/towel{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/towel{
+ pixel_x = -5;
+ pixel_y = 10
+ },
+/obj/item/towel{
+ pixel_x = 8;
+ pixel_y = -1
+ },
+/obj/item/soap/deluxe,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"GD" = (
+/obj/machinery/atmospherics/components/trinary/mixer/flipped,
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"GG" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"GM" = (
+/obj/machinery/holopad/secure,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"GN" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/structure/rack,
+/obj/item/multitool{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/screwdriver{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/obj/item/wrench{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/wirecutters,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"GP" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -10;
+ pixel_y = -20
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -21;
+ pixel_x = -1;
+ name = "privacy shutter";
+ id = "bolide_win_bridge_1"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"GS" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"GT" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 4
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/structure/floodlight_frame,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"GY" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/sign/flag/gezena{
+ dir = 1;
+ pixel_y = -28
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"Hj" = (
+/obj/machinery/blackbox_recorder,
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/door/window/brigdoor/westright{
+ req_one_access = list(20, 57, 58)
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Ho" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/clothing/mask/gas,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/obj/structure/noticeboard{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"Hr" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_y = 8;
+ pixel_x = 8
+ },
+/obj/machinery/recharger{
+ pixel_y = 8;
+ pixel_x = -8
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"Hv" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/floordetail/pryhole,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"HB" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"HD" = (
+/obj/structure/railing/corner{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 8
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"HU" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/external/dark)
+"HW" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ship/storage/starboard)
+"Ia" = (
+/obj/structure/closet/crate/internals,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"If" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"Im" = (
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"In" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Iu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Iw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"IF" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"IH" = (
+/obj/machinery/holopad/secure,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/office)
+"II" = (
+/obj/structure/sign/warning{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"IK" = (
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet{
+ anchored = 1;
+ can_be_unanchored = 1;
+ icon_state = "armory";
+ name = "armor locker";
+ req_access_txt = "1"
+ },
+/obj/item/clothing/suit/armor/gezena/marinecoat,
+/obj/item/clothing/suit/armor/gezena/marinecoat,
+/obj/item/clothing/suit/armor/gezena/marinecoat,
+/obj/item/clothing/suit/armor/gezena/marinecoat,
+/obj/item/storage/belt/military/gezena,
+/obj/item/storage/belt/military/gezena,
+/obj/item/storage/belt/military/gezena,
+/obj/item/storage/belt/military/gezena,
+/obj/item/storage/belt/military/gezena,
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/clothing/head/helmet/gezena{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/machinery/light/directional/south,
+/obj/item/clothing/suit/armor/gezena/marine,
+/obj/item/clothing/suit/armor/gezena/marine,
+/obj/item/storage/belt/military/gezena,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"IM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"IN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"IV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"IY" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/oil{
+ pixel_y = 4;
+ pixel_x = 2
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Jd" = (
+/obj/machinery/door/airlock{
+ name = "Dormitories"
+ },
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"Je" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Jh" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Jm" = (
+/obj/structure/bed,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/item/bedsheet/dorms,
+/obj/structure/curtain/cloth/grey,
+/obj/structure/sign/poster/rilena/run{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"Js" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/railing,
+/obj/structure/closet/secure_closet/engineering_electrical,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Jv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Jx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"JG" = (
+/obj/machinery/atmospherics/pipe/manifold4w/orange/visible,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"JJ" = (
+/obj/machinery/shower{
+ pixel_y = 18
+ },
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"JK" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -24;
+ pixel_y = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/structure/closet/firecloset/wall/directional/south,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"JS" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "blueshield";
+ req_access = list(20);
+ name = "captain's locker"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/item/radio/headset/pgf/alt/captain,
+/obj/item/clothing/under/gezena/captain{
+ pixel_x = 5;
+ pixel_y = -5
+ },
+/obj/item/clothing/neck/cloak/gezena/captain,
+/obj/item/clothing/gloves/gezena/captain{
+ pixel_y = 4
+ },
+/obj/item/clothing/accessory/medal/silver/valor,
+/obj/item/clothing/mask/whistle{
+ name = "marine whistle"
+ },
+/obj/item/storage/box/holodisc{
+ pixel_x = 7
+ },
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/head/gezena/captain,
+/obj/item/clothing/suit/armor/gezena/captain,
+/obj/item/storage/guncase/pistol/kalixpistol,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm/captain)
+"JY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"JZ" = (
+/obj/effect/turf_decal/corner/opaque/purple/border{
+ dir = 1
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"Kh" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Kk" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Kn" = (
+/obj/structure/table/reinforced,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security/armory)
+"Ko" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/structure/floodlight_frame,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"Kp" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/gun/energy/kalix/pgf/heavy{
+ pixel_y = 11;
+ pixel_x = -3
+ },
+/obj/item/gun/energy/kalix/pistol{
+ pixel_x = 4;
+ pixel_y = -5
+ },
+/obj/item/gun/energy/kalix/pistol{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/item/gun/energy/kalix/pistol{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/gun/energy/kalix/pistol{
+ pixel_x = -6;
+ pixel_y = -5
+ },
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"Kt" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/sign/warning{
+ pixel_y = -22
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Kv" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 9
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/clipboard{
+ pixel_y = -6;
+ pixel_x = -4
+ },
+/obj/item/hand_labeler{
+ pixel_y = 10;
+ pixel_x = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = -1;
+ pixel_x = 2
+ },
+/obj/item/flashlight/lamp{
+ pixel_y = -12
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Ky" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
+"KA" = (
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"KC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/airlock/command{
+ req_access = list(3)
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/office)
+"KG" = (
+/obj/machinery/atmospherics/components/unary/portables_connector,
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/box,
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"KI" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 10;
+ pixel_x = 12
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 11
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = -4;
+ pixel_y = 12
+ },
+/obj/item/pen/fountain{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"KL" = (
+/obj/structure/rack,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 10
+ },
+/obj/item/crowbar/large{
+ pixel_x = 7
+ },
+/obj/item/crowbar/large,
+/obj/item/crowbar/large,
+/obj/item/crowbar/large{
+ pixel_x = -8
+ },
+/obj/item/shovel{
+ pixel_y = -4
+ },
+/obj/item/shovel{
+ pixel_x = 11;
+ pixel_y = -7
+ },
+/obj/item/shovel{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"KM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"KQ" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central6,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"Lh" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge";
+ dir = 4
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"Li" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Lj" = (
+/obj/machinery/door/airlock{
+ dir = 8;
+ name = "Head";
+ id_tag = "bol_priv2"
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/ccommons)
+"Ll" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Lm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 12
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Lt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/bridge)
+"Lu" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/closet/cabinet,
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"Lw" = (
+/obj/machinery/computer/crew{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"LA" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/coffee,
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 11;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"LG" = (
+/obj/machinery/power/shuttle/engine/fire,
+/obj/structure/sign/warning{
+ pixel_x = -10;
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"LH" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge"
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"LL" = (
+/obj/structure/closet/crate{
+ name = "CLIP lend-lease"
+ },
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/item/clothing/mask/gas/clip,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/item/storage/box/flares,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"LN" = (
+/obj/item/radio/intercom/directional/west,
+/obj/structure/closet/crate/freezer/blood,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"LQ" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"LR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"LS" = (
+/obj/machinery/shower{
+ pixel_y = 18
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"LY" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "elated_bolide_bay";
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Mz" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/sign/warning{
+ pixel_y = -22;
+ pixel_x = -24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"MC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"ME" = (
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"MH" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"MJ" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"MP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = -26;
+ pixel_y = 3
+ },
+/obj/machinery/light/floor,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/internals/oxygen/red,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/suit/space/gezena,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"MS" = (
+/obj/machinery/atmospherics/components/unary/portables_connector{
+ dir = 4
+ },
+/obj/effect/turf_decal/box,
+/obj/item/wrench{
+ pixel_x = -8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"MU" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/floor,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Nb" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/structure/sign/poster/contraband/missing_gloves{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Ng" = (
+/obj/machinery/door/airlock/engineering{
+ req_one_access = list(1, 10);
+ name = "Starboard Engines"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/orange,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"Nl" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"Np" = (
+/obj/effect/turf_decal/trimline/opaque/bottlegreen/filled/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Nq" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"Nv" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/techfloor,
+/obj/item/gear_pack/anglegrinder,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Ny" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber,
+/turf/open/floor/engine/hydrogen_fuel,
+/area/ship/engineering/engines/port)
+"NG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/borderfloorblack/corner,
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"NK" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"NQ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"NU" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"On" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Ot" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "elated_bolide_bay";
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Ov" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Oz" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm)
+"OA" = (
+/obj/structure/rack,
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/gear_pack/anglegrinder{
+ pixel_x = 3
+ },
+/obj/item/clothing/glasses/welding{
+ pixel_y = 9;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"OB" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/sign/warning{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"OL" = (
+/obj/structure/table/chem,
+/obj/item/storage/box/bodybags{
+ pixel_x = 9;
+ pixel_y = 5
+ },
+/obj/item/storage/box/syringes{
+ pixel_x = -6
+ },
+/obj/machinery/light/small/directional/east,
+/obj/structure/sign/poster/official/cleanliness{
+ pixel_y = 30
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"OT" = (
+/obj/machinery/power/ship_gravity,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"OU" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Pb" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Pc" = (
+/obj/structure/closet/crate/radiation,
+/obj/item/stack/sheet/mineral/uranium/twenty,
+/obj/structure/sign/poster/contraband/missing_gloves{
+ pixel_x = -28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Pr" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"Ps" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"Px" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"PB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"PC" = (
+/obj/structure/toilet{
+ dir = 8;
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/structure/curtain,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/ccommons)
+"PD" = (
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/cargo)
+"PI" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"PQ" = (
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"PS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger{
+ pixel_y = 7;
+ pixel_x = 2
+ },
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"PZ" = (
+/obj/effect/turf_decal/corner/transparent/bottlegreen/border{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/ccommons)
+"Qa" = (
+/obj/structure/closet/secure_closet/wall/directional/east{
+ icon_state = "cargo_wall"
+ },
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/clothing/suit/armor/gezena/engi{
+ pixel_y = -4;
+ pixel_x = -3
+ },
+/obj/item/clothing/neck/cloak/gezena/engi{
+ pixel_y = 6;
+ pixel_x = -9
+ },
+/obj/item/clothing/glasses/meson{
+ pixel_y = 11
+ },
+/obj/item/storage/belt/utility/full{
+ pixel_y = -6;
+ pixel_x = -5
+ },
+/obj/item/storage/backpack/duffelbag/engineering{
+ pixel_y = -6;
+ pixel_x = 5
+ },
+/obj/item/clothing/gloves/gezena/engi{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/storage/backpack/industrial{
+ pixel_x = 7
+ },
+/obj/structure/table/reinforced,
+/obj/item/geiger_counter,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/clothing/head/gezena,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Qb" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/machinery/computer/crew{
+ dir = 4;
+ icon_state = "computer-right"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"Qg" = (
+/obj/machinery/door/airlock{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/ccommons)
+"Qu" = (
+/obj/structure/curtain/cloth/grey,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/obj/item/storage/crayons{
+ pixel_x = -2;
+ pixel_y = -5
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"QH" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"QK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 21;
+ pixel_y = 13
+ },
+/obj/effect/turf_decal/borderfloorblack/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"QR" = (
+/obj/machinery/computer/atmos_control/ship/bolide{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"QT" = (
+/obj/machinery/camera/autoname,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"QU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/borderfloor{
+ dir = 5
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel,
+/area/ship/medical)
+"QW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/orange,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/security{
+ name = "Armory";
+ req_one_access_txt = "1"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"QZ" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bomb_suit";
+ name = "Bomb Disposal Gear"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Rg" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Rk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Rm" = (
+/obj/structure/table/wood,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/paper_bin{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/folder/pgf/blue{
+ pixel_y = 3;
+ pixel_x = -2
+ },
+/obj/item/folder/pgf/red{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/folder/pgf/blue/bolide{
+ pixel_x = 5;
+ pixel_y = -7
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/dorm/captain)
+"Rt" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Rv" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"Ry" = (
+/obj/machinery/door/airlock/engineering{
+ req_one_access = list(1, 10);
+ name = "Engineering Storage"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/port)
+"Rz" = (
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_one_access = list(20, 57, 58)
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"RB" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/techfloor/orange/corner{
+ dir = 8
+ },
+/obj/machinery/camera/autoname,
+/obj/item/stack/sheet/metal/twenty{
+ pixel_x = 5
+ },
+/obj/item/stack/sheet/glass/twenty{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/weldingtool{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"RH" = (
+/obj/structure/crate_shelf,
+/obj/structure/sign/poster/contraband/gec{
+ pixel_y = 30
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"RJ" = (
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ req_one_access = list(1, 10);
+ name = "Engineering"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"RO" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"RQ" = (
+/obj/structure/railing/corner,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/dorm)
+"RS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 9;
+ pixel_y = -21
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"RT" = (
+/obj/structure/chair/office,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Se" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Sj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -11;
+ pixel_y = -20
+ },
+/obj/effect/turf_decal/corner_steel_grid/full,
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"Sr" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Su" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"SD" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_2";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"SE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"SH" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/rack,
+/obj/item/clothing/suit/bomb_suit{
+ pixel_x = -3;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/bomb_hood{
+ pixel_y = 9;
+ pixel_x = -3
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -7;
+ pixel_x = 3
+ },
+/obj/item/clothing/neck/cloak/gezena{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/explosives{
+ pixel_x = -1;
+ pixel_y = -8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/clothing/gloves/gezena/engi,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/gps,
+/obj/machinery/light/small/directional/west,
+/obj/item/clothing/under/gezena/marine{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"SO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"SS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/fire,
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"SU" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/filingcabinet/double/grey,
+/turf/open/floor/plasteel/tech,
+/area/ship/security/armory)
+"SY" = (
+/obj/structure/closet/crate/rations,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"Tf" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/hallway/fore)
+"Tn" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage/starboard)
+"To" = (
+/obj/machinery/light_switch{
+ pixel_x = -11;
+ pixel_y = 20
+ },
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/box/corners{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/box/corners{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"Ty" = (
+/obj/effect/turf_decal/floordetail/tiled,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/north,
+/obj/item/radio/intercom/wideband/directional/west,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "grav couch"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"TA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"TB" = (
+/obj/effect/turf_decal/floordetail/tiled,
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "grav couch"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"TC" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"TG" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"TK" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_y = 10;
+ pixel_x = 20
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"TN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"TR" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-21"
+ },
+/obj/machinery/newscaster/directional/south,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"TS" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-6"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"TV" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"TW" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Uc" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = -12
+ },
+/obj/structure/closet/crate/bin{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Ud" = (
+/obj/effect/turf_decal/etherbor/left,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Ug" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Uj" = (
+/obj/structure/curtain,
+/obj/structure/toilet{
+ dir = 4;
+ pixel_y = 6;
+ pixel_x = -6
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/dorm)
+"Ul" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_2"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/dorm/captain)
+"Up" = (
+/obj/structure/table/chem,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 9;
+ pixel_y = 20
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = 9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = 14
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/storage/firstaid/medical{
+ pixel_x = 9;
+ pixel_y = -2
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Us" = (
+/obj/structure/sign/warning/explosives/alt{
+ pixel_y = 2;
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_x = -10;
+ pixel_y = -20;
+ name = "secure storage access";
+ id = "bolide_bombs";
+ req_access = list(3)
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = 5
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"Ut" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Uu" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/cargo)
+"Uz" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"UF" = (
+/obj/machinery/air_sensor/ship/bolide/air,
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"UK" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger{
+ pixel_y = 7;
+ pixel_x = 2
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -11;
+ pixel_y = 10
+ },
+/obj/item/stock_parts/cell/high{
+ pixel_y = -2;
+ pixel_x = -2
+ },
+/obj/item/stock_parts/cell/high{
+ pixel_x = 10;
+ pixel_y = 3
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"UR" = (
+/obj/structure/toilet/secret/bolide{
+ dir = 4;
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/structure/window/reinforced,
+/obj/structure/curtain,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/vomit/old,
+/turf/open/floor/plasteel/mono,
+/area/ship/crew/dorm)
+"UT" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_1"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"Vd" = (
+/obj/structure/closet/wall/white/directional/south,
+/obj/item/storage/ration/crayons,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"Ve" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals9,
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Vg" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/machinery/computer/cryopod/directional/north,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_x = -15;
+ pixel_y = 24
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"Vj" = (
+/obj/structure/closet/crate/freezer/surplus_limbs,
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Vo" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"Vq" = (
+/obj/structure/bed/roller,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/hatch/blue,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor5"
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Vy" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plating,
+/area/ship/storage/starboard)
+"Vz" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/glass/bucket{
+ name = "concrete bucket";
+ desc = "It's a bucket... for concrete....";
+ pixel_x = 8;
+ pixel_y = -7
+ },
+/obj/item/reagent_containers/glass/bucket{
+ name = "concrete bucket";
+ desc = "It's a bucket... for concrete....";
+ pixel_x = -10;
+ pixel_y = -6
+ },
+/obj/item/reagent_containers/glass/bucket{
+ name = "concrete bucket";
+ desc = "It's a bucket... for concrete....";
+ pixel_y = -7
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 9
+ },
+/obj/item/storage/box/emptysandbags{
+ pixel_y = 8;
+ pixel_x = -11
+ },
+/obj/item/storage/box/emptysandbags{
+ pixel_y = 8;
+ pixel_x = -4
+ },
+/obj/item/storage/box/emptysandbags{
+ pixel_y = 8;
+ pixel_x = 3
+ },
+/obj/item/storage/box/emptysandbags{
+ pixel_y = 8;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/port)
+"VC" = (
+/obj/structure/closet/secure_closet/wall/directional/east{
+ icon_state = "cargo_wall"
+ },
+/obj/item/storage/backpack/satchel/eng,
+/obj/item/clothing/suit/armor/gezena/engi{
+ pixel_y = -4;
+ pixel_x = -3
+ },
+/obj/item/clothing/neck/cloak/gezena/engi{
+ pixel_y = 6;
+ pixel_x = -9
+ },
+/obj/item/clothing/glasses/meson{
+ pixel_y = 11
+ },
+/obj/item/storage/belt/utility/full{
+ pixel_y = -6;
+ pixel_x = -6
+ },
+/obj/item/storage/backpack/duffelbag/engineering{
+ pixel_y = -6;
+ pixel_x = 5
+ },
+/obj/item/clothing/gloves/gezena/engi{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/storage/backpack/industrial{
+ pixel_x = 7
+ },
+/obj/structure/table/reinforced,
+/obj/item/geiger_counter,
+/obj/item/radio/headset/pgf/alt,
+/obj/item/clothing/head/gezena,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"VF" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
+"VW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"VX" = (
+/obj/machinery/door/airlock/external,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/starboard)
+"VY" = (
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Wk" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_airlock";
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"Wp" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/obj/effect/turf_decal/industrial/shutoff,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Ws" = (
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/engineering)
+"Wy" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/spline/fancy/transparent/bottlegreen{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/machinery/light_switch{
+ pixel_x = 20;
+ pixel_y = 10;
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"WA" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"WN" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_bay_win_2";
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/office)
+"WS" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge";
+ dir = 4
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"WV" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/sign/warning/vacuum{
+ pixel_x = 28;
+ pixel_y = -8
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east{
+ pixel_y = 6
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"WY" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security)
+"Xc" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"Xd" = (
+/obj/machinery/computer/security,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"Xi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"Xo" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/security)
+"Xr" = (
+/obj/structure/window/plasma/reinforced/fulltile,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Xu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"Xx" = (
+/obj/machinery/door/airlock/command{
+ req_access = list(3);
+ id_tag = "bol_priv3";
+ name = "Marine Lieutenant's Quarters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"XA" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/light/directional/north,
+/obj/machinery/firealarm/directional/east{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"XB" = (
+/obj/effect/turf_decal/industrial/traffic{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"XJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 8
+ },
+/area/ship/bridge)
+"XU" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/hallway/fore)
+"XY" = (
+/obj/structure/sign/departments/medbay/alt{
+ pixel_y = 28
+ },
+/obj/structure/chair,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/hallway/central)
+"Yb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Yg" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+"Yi" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Yl" = (
+/obj/machinery/washing_machine,
+/obj/item/toy/plush/rilena{
+ pixel_y = 13
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/crew/dorm)
+"Yq" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Yt" = (
+/obj/machinery/photocopier,
+/obj/machinery/airalarm/directional/south,
+/obj/item/folder/pgf/empty_sheets{
+ pixel_x = 3;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 9
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"Yv" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"YM" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 24;
+ pixel_y = -4
+ },
+/obj/machinery/light/small/directional/north,
+/obj/structure/closet/secure_closet/medical3{
+ name = "medic's locker";
+ populate = 0
+ },
+/obj/item/clothing/gloves/gezena{
+ pixel_x = 3;
+ pixel_y = 11
+ },
+/obj/item/clothing/head/gezena/medic{
+ pixel_y = 4;
+ pixel_x = 7
+ },
+/obj/item/clothing/neck/cloak/gezena/med{
+ pixel_y = -4;
+ pixel_x = 1
+ },
+/obj/item/clothing/head/gezena/flap/medic{
+ pixel_y = 1;
+ pixel_x = 12
+ },
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 7;
+ pixel_y = -7
+ },
+/obj/item/storage/backpack/satchel/med{
+ pixel_x = 7;
+ pixel_y = -10
+ },
+/obj/item/clothing/suit/armor/gezena{
+ pixel_y = 9;
+ pixel_x = -9
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = -9;
+ pixel_y = -5
+ },
+/obj/item/storage/belt/medical/gezena{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"YN" = (
+/obj/structure/cable{
+ icon_state = "4-9"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/green,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"YQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"YS" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"YT" = (
+/obj/structure/table/reinforced,
+/obj/structure/closet/secure_closet/wall/directional/east{
+ icon_state = "cargo_wall"
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 4;
+ pixel_y = 9
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"YV" = (
+/obj/machinery/airalarm/directional/south,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"YY" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/cargo)
+"YZ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/megaphone{
+ pixel_y = -2;
+ pixel_x = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -8;
+ pixel_y = 9
+ },
+/obj/item/pen/fourcolor{
+ pixel_x = -9;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 9;
+ pixel_x = 8
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/tadrixx{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/office)
+"Zc" = (
+/obj/effect/turf_decal/spline/fancy/opaque/grey{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Zd" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ pixel_y = 23;
+ pixel_x = 10
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/item/multitool{
+ pixel_x = 2;
+ pixel_y = -9
+ },
+/obj/machinery/button/door{
+ pixel_y = 21;
+ pixel_x = -12;
+ id = "bolide_engine_1";
+ name = "engine access"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Zf" = (
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ship/crew/cryo)
+"Zg" = (
+/obj/machinery/air_sensor/ship/bolide/fuel,
+/obj/structure/sign/warning/fire{
+ pixel_y = 22
+ },
+/obj/effect/turf_decal/atmos/mix,
+/turf/open/floor/engine/hydrogen_fuel,
+/area/ship/engineering/engines/port)
+"Zm" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/industrial/stand_clear,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Zp" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"Zt" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/corner/opaque/neutral/full,
+/obj/item/gun/energy/kalix/pgf{
+ pixel_y = 6
+ },
+/obj/item/gun/energy/kalix/pgf{
+ pixel_y = 12
+ },
+/obj/item/gun/energy/kalix/pgf{
+ pixel_y = 6
+ },
+/obj/item/gps{
+ pixel_y = -6;
+ pixel_x = 10
+ },
+/obj/item/gps{
+ pixel_y = -6
+ },
+/obj/item/gps{
+ pixel_y = -6;
+ pixel_x = -10
+ },
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/vault,
+/area/ship/security/armory)
+"Zu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/north,
+/obj/structure/closet/secure_closet/engineering_welding,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"ZC" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "bolide_win_bridge";
+ dir = 4
+ },
+/obj/machinery/door/firedoor/window,
+/turf/open/floor/engine/hull/interior,
+/area/ship/bridge)
+"ZI" = (
+/obj/machinery/door/airlock{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"ZL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"ZS" = (
+/obj/structure/closet/crate/engineering/electrical,
+/obj/item/storage/bag/construction,
+/obj/item/storage/bag/construction,
+/obj/item/storage/bag/construction,
+/obj/item/storage/bag/construction,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage/starboard)
+"ZT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"ZY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/dresser,
+/obj/item/toy/plush/flushed{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = -10;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"ZZ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono,
+/area/ship/hallway/central)
+
+(1,1,1) = {"
+oY
+oY
+oY
+yR
+gf
+fG
+gP
+yR
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+Bm
+LG
+uq
+rB
+Bm
+oY
+oY
+oY
+oY
+oY
+"}
+(2,1,1) = {"
+oY
+oY
+yR
+yR
+xe
+xe
+xe
+yR
+ym
+ym
+ym
+oY
+oY
+oY
+ym
+ym
+ym
+Bm
+pl
+pl
+pl
+Bm
+Bm
+oY
+oY
+oY
+oY
+"}
+(3,1,1) = {"
+oY
+yR
+yR
+yR
+XA
+fo
+vp
+yR
+yR
+qd
+yR
+qW
+qW
+qW
+Nl
+qd
+Bm
+Bm
+gA
+JG
+nL
+Bm
+Bm
+Bm
+oY
+oY
+oY
+"}
+(4,1,1) = {"
+oY
+TG
+yR
+yR
+yR
+kQ
+Yb
+yR
+yR
+yR
+yR
+iO
+iO
+iO
+Nl
+Nl
+Bm
+Bm
+uu
+YV
+Bm
+Bm
+Bm
+Se
+oY
+oY
+oY
+"}
+(5,1,1) = {"
+oY
+hd
+yR
+Ny
+jI
+Ao
+ZT
+dp
+tL
+dx
+yR
+Zd
+Cu
+IY
+Ft
+yu
+Bm
+KQ
+yJ
+ru
+Bs
+Et
+Bm
+Ea
+oY
+oY
+oY
+"}
+(6,1,1) = {"
+oY
+ms
+yR
+Zg
+jI
+nz
+mA
+ux
+Cv
+cr
+be
+kT
+EO
+Ll
+ly
+SS
+Ng
+oK
+BQ
+rP
+Xr
+xE
+Bm
+bO
+oY
+oY
+oY
+"}
+(7,1,1) = {"
+oY
+yR
+yR
+BA
+eC
+jJ
+KG
+GD
+qX
+yR
+Nl
+uD
+Ws
+JY
+MS
+Hv
+Bm
+Bm
+Bm
+Bm
+Bm
+Bm
+Bm
+xM
+xM
+oY
+oY
+"}
+(8,1,1) = {"
+oY
+oY
+yR
+yR
+yR
+yR
+yR
+yR
+yR
+yR
+Nb
+Sr
+xs
+ur
+vt
+hj
+VY
+bx
+MC
+xM
+As
+Pc
+Nv
+xM
+MU
+oY
+oY
+"}
+(9,1,1) = {"
+oY
+oY
+fY
+le
+le
+sw
+vf
+iq
+sE
+le
+EM
+Pb
+uR
+JY
+iv
+QR
+rV
+aq
+UF
+xM
+RH
+ZS
+AJ
+xM
+Ea
+oY
+oY
+"}
+(10,1,1) = {"
+oY
+oY
+hd
+le
+le
+aw
+aw
+aw
+aw
+le
+Nl
+Cr
+zi
+JY
+En
+Wp
+Im
+bx
+Fm
+xM
+uC
+Rk
+bR
+xM
+Se
+oY
+oY
+"}
+(11,1,1) = {"
+oY
+oY
+TG
+le
+Ag
+Px
+Cg
+dF
+PI
+Us
+le
+CZ
+FJ
+JY
+id
+ED
+Nl
+xM
+xM
+xM
+wD
+wD
+xM
+xM
+xM
+oY
+oY
+"}
+(12,1,1) = {"
+oY
+oY
+hd
+le
+dn
+Rt
+PB
+PB
+PB
+Li
+Ry
+AS
+AS
+vm
+iW
+fr
+Nl
+GN
+OT
+Zp
+vx
+xC
+xM
+fp
+xM
+oY
+oY
+"}
+(13,1,1) = {"
+oY
+oY
+TG
+le
+RB
+OA
+KL
+SO
+Vz
+Fg
+le
+tq
+eE
+ro
+RO
+ly
+jn
+kZ
+HW
+Vy
+mo
+iu
+CV
+Tn
+VX
+oY
+oY
+"}
+(14,1,1) = {"
+oY
+oY
+Uu
+Uu
+le
+le
+le
+jN
+le
+le
+le
+UK
+YT
+du
+wt
+xG
+Nl
+Zu
+TK
+Js
+QH
+ul
+xM
+nT
+xM
+oY
+oY
+"}
+(15,1,1) = {"
+oY
+Cn
+Kt
+Uu
+ME
+LN
+Pr
+Zc
+JK
+le
+le
+Nl
+Nl
+Nl
+RJ
+Nl
+Nl
+Ky
+Ky
+Ky
+VC
+Qa
+xM
+pI
+pI
+ym
+eI
+"}
+(16,1,1) = {"
+oY
+BF
+ql
+Uu
+Su
+Vj
+vo
+gj
+dE
+rw
+NG
+RS
+Uu
+tB
+yN
+Ky
+Ky
+yq
+nJ
+Ky
+Ky
+Ky
+Ky
+ks
+ob
+NU
+ym
+"}
+(17,1,1) = {"
+oY
+NQ
+fg
+Uu
+yK
+Ia
+vo
+zM
+De
+eq
+tm
+PD
+kI
+xw
+ud
+ks
+Kp
+qr
+CE
+ES
+NK
+EC
+IK
+ks
+ka
+Zm
+ym
+"}
+(18,1,1) = {"
+oY
+FS
+Uu
+Uu
+uE
+LL
+vo
+zd
+bT
+bm
+vl
+pf
+FP
+TS
+Ee
+ks
+rU
+JZ
+PS
+SU
+Ps
+jA
+jf
+ks
+II
+Ea
+ym
+"}
+(19,1,1) = {"
+FS
+In
+xl
+LY
+oE
+vJ
+zc
+xQ
+EX
+YY
+QK
+nS
+Uu
+Wy
+YN
+ks
+Zt
+sT
+Hr
+qq
+MH
+If
+Az
+ks
+cZ
+cZ
+cZ
+"}
+(20,1,1) = {"
+DO
+zY
+DO
+zw
+cn
+ay
+fO
+rR
+tv
+dg
+dg
+dg
+dg
+dg
+Qg
+ks
+ks
+Kn
+ks
+zS
+jF
+kh
+ks
+ks
+co
+jm
+cZ
+"}
+(21,1,1) = {"
+mp
+ch
+FS
+Gm
+rn
+ji
+kc
+ji
+si
+dg
+mW
+PC
+PZ
+Uc
+GS
+cZ
+mJ
+dk
+CA
+Dx
+Np
+CM
+gE
+Xx
+pu
+VW
+cZ
+"}
+(22,1,1) = {"
+IN
+kS
+IN
+WA
+XB
+GT
+Ko
+gB
+IV
+dg
+Lj
+dg
+dg
+rZ
+Fs
+cZ
+iS
+rN
+Yq
+vc
+ge
+yZ
+su
+cZ
+tr
+cZ
+cZ
+"}
+(23,1,1) = {"
+FS
+In
+xl
+Ot
+eb
+wP
+wP
+wP
+Ve
+dg
+rc
+Fr
+SE
+lq
+eH
+WY
+Dy
+lx
+Xo
+bl
+Kv
+AE
+lu
+cZ
+cZ
+cZ
+MU
+"}
+(24,1,1) = {"
+FS
+FS
+FS
+jE
+dt
+kg
+SD
+WN
+jE
+jE
+Bq
+AH
+th
+aI
+Kk
+QW
+Iu
+xu
+Ut
+kM
+Br
+Gv
+Xi
+QZ
+SH
+cZ
+Ea
+"}
+(25,1,1) = {"
+oY
+FS
+jE
+jE
+jE
+hP
+YZ
+Qb
+mz
+jE
+Bv
+Fa
+Yv
+Ud
+Ds
+WY
+WY
+cZ
+Ho
+yD
+Xd
+Xu
+TN
+QZ
+hw
+cZ
+Se
+"}
+(26,1,1) = {"
+oY
+Cn
+Mz
+aO
+ij
+Dd
+Xc
+MJ
+og
+jE
+eX
+ar
+bf
+ha
+za
+Da
+er
+gC
+gC
+gC
+gC
+ER
+wT
+cZ
+cZ
+cZ
+cZ
+"}
+(27,1,1) = {"
+oY
+BF
+ql
+Rv
+FC
+BJ
+qH
+we
+up
+KC
+GM
+xq
+bf
+uN
+GG
+SY
+gg
+gC
+TV
+EP
+gC
+gC
+gC
+gC
+II
+Ea
+ym
+"}
+(28,1,1) = {"
+oY
+NQ
+DP
+UT
+vS
+jg
+wk
+wy
+Yt
+IH
+jc
+mZ
+sy
+nV
+GG
+in
+Vd
+gC
+Zf
+Dp
+sb
+hO
+az
+gC
+ka
+Zm
+ym
+"}
+(29,1,1) = {"
+oY
+oY
+jE
+jE
+jE
+jE
+po
+ng
+wx
+jE
+ce
+sO
+Bz
+Yi
+Lm
+nM
+gV
+gC
+Vg
+HD
+cH
+yT
+LA
+gC
+OB
+YS
+ym
+"}
+(30,1,1) = {"
+oY
+oY
+ww
+Vq
+js
+jE
+jE
+jE
+jE
+jE
+dg
+dg
+nq
+ZI
+dg
+dg
+dg
+gC
+gC
+gC
+tI
+gC
+xA
+xA
+xA
+ym
+ym
+"}
+(31,1,1) = {"
+oY
+oY
+ww
+bH
+KA
+YQ
+Ae
+ft
+oV
+aT
+jR
+Fl
+nC
+TW
+cT
+Gi
+Jd
+TA
+ne
+iY
+Sj
+xA
+UR
+Uj
+xA
+oY
+oY
+"}
+(32,1,1) = {"
+oY
+oY
+ww
+jB
+mR
+fU
+jT
+ww
+XY
+bL
+KM
+Rg
+AI
+Jv
+aK
+dq
+xA
+To
+pG
+qJ
+Nq
+rJ
+iN
+pM
+xA
+oY
+oY
+"}
+(33,1,1) = {"
+oY
+oY
+ww
+OL
+Up
+Eu
+QU
+ww
+oO
+BC
+oO
+oO
+Ey
+hi
+hk
+fl
+xA
+oc
+aD
+sG
+TR
+xA
+xA
+xA
+xA
+oY
+oY
+"}
+(34,1,1) = {"
+oY
+oY
+ww
+ww
+nk
+Ov
+Iw
+ww
+JJ
+ZZ
+Yg
+oO
+dw
+kG
+Oz
+AY
+RQ
+xX
+lo
+LR
+qQ
+Qu
+xA
+MU
+ym
+oY
+oY
+"}
+(35,1,1) = {"
+oY
+oY
+ym
+ww
+ww
+Lw
+CL
+ww
+aE
+Gw
+ol
+oO
+lg
+it
+Oz
+jZ
+mC
+ZY
+Ba
+TC
+qQ
+yi
+xA
+Ea
+ym
+oY
+oY
+"}
+(36,1,1) = {"
+oY
+oY
+ym
+Kh
+ww
+YM
+Jx
+ww
+LS
+BG
+Je
+oO
+dw
+kG
+Oz
+Yl
+mC
+qa
+ZL
+qe
+PQ
+Lu
+xA
+rb
+ym
+oY
+oY
+"}
+(37,1,1) = {"
+oY
+oY
+ym
+ym
+FR
+FR
+iz
+fy
+fy
+fy
+fy
+fy
+kU
+Rz
+VF
+VF
+xA
+Jm
+wC
+xA
+xA
+xA
+xA
+ym
+ym
+oY
+oY
+"}
+(38,1,1) = {"
+oY
+oY
+oY
+oY
+FR
+MP
+Uz
+gU
+gI
+zX
+em
+cc
+oJ
+yv
+GP
+VF
+VF
+VF
+VF
+VF
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(39,1,1) = {"
+oY
+oY
+oY
+oY
+yy
+ps
+AC
+Ul
+Rm
+Eh
+bh
+fy
+eZ
+zs
+XJ
+VF
+eM
+KI
+km
+Se
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(40,1,1) = {"
+oY
+oY
+oY
+oY
+FB
+XU
+nb
+iE
+FO
+HB
+GY
+fy
+On
+Gh
+qm
+Cp
+RT
+zj
+te
+Ea
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(41,1,1) = {"
+oY
+oY
+oY
+oY
+Tf
+WV
+IF
+Eo
+JS
+IM
+mF
+fy
+Hj
+lj
+fR
+oj
+Dt
+LQ
+LH
+Se
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(42,1,1) = {"
+oY
+oY
+oY
+oY
+FR
+FR
+Wk
+lf
+lf
+lf
+lf
+lf
+Vo
+Vo
+Lt
+mh
+om
+ih
+oD
+YS
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(43,1,1) = {"
+oY
+oY
+oY
+oY
+Ug
+FR
+FN
+cM
+CY
+CY
+CY
+CY
+Vo
+Ty
+Jh
+TB
+VF
+ZC
+VF
+ym
+ym
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(44,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+FR
+QT
+Dk
+HU
+OU
+HU
+Dk
+Vo
+tU
+uW
+au
+pB
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(45,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+ym
+oY
+CY
+HU
+OU
+HU
+CY
+Vo
+EE
+WS
+Lh
+fW
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(46,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+ym
+oY
+CY
+HU
+OU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(47,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+ym
+oY
+CY
+HU
+OU
+HU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(48,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+ym
+HU
+HU
+HU
+OU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(49,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+HU
+OU
+HU
+HU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(50,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+HU
+HU
+OU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
+(51,1,1) = {"
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+HU
+OU
+HU
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+oY
+"}
diff --git a/_maps/shuttles/pgf/pgf_woeful_cthonian.dmm b/_maps/shuttles/pgf/pgf_woeful_cthonian.dmm
new file mode 100644
index 000000000000..0f4bc8b38709
--- /dev/null
+++ b/_maps/shuttles/pgf/pgf_woeful_cthonian.dmm
@@ -0,0 +1,4730 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/bridge)
+"ay" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/east,
+/obj/item/clothing/head/gezena/captain{
+ pixel_y = 8;
+ pixel_x = -4
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ pixel_x = 22;
+ pixel_y = -9;
+ id = "cth_cap";
+ name = "shutter control"
+ },
+/obj/item/binoculars,
+/obj/item/desk_flag/gezena{
+ pixel_y = -1;
+ pixel_x = 9
+ },
+/obj/item/folder/pgf/blue{
+ pixel_x = -14;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/bridge)
+"aR" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/table/reinforced,
+/obj/structure/noticeboard{
+ dir = 8;
+ pixel_x = 25
+ },
+/obj/item/radio{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/item/radio{
+ pixel_x = 10;
+ pixel_y = 7
+ },
+/obj/item/radio{
+ pixel_x = 1;
+ pixel_y = 7
+ },
+/obj/item/radio{
+ pixel_x = 1;
+ pixel_y = -2
+ },
+/obj/item/radio{
+ pixel_x = -7;
+ pixel_y = -2
+ },
+/obj/item/radio{
+ pixel_x = 10;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"bw" = (
+/obj/effect/turf_decal/atmos/air,
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"bQ" = (
+/obj/structure/table,
+/obj/machinery/light/directional/south,
+/obj/item/reagent_containers/food/drinks/mug/tea{
+ pixel_y = 3;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/food/snacks/friedegg{
+ pixel_y = -1;
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"bS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/chair/sofa/grey/corpo/left/directional/west,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"ch" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/item/multitool{
+ pixel_y = -2;
+ pixel_x = 6
+ },
+/obj/structure/catwalk/over,
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"ci" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"cj" = (
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner,
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/cargo)
+"ct" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 10
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_engi";
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering)
+"cH" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+"cQ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"cU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on,
+/turf/open/floor/engine/air,
+/area/ship/engineering)
+"da" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 9
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_engi";
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering)
+"dc" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"dv" = (
+/obj/structure/closet/secure_closet/medical3{
+ populate = 0
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled,
+/obj/item/bodybag,
+/obj/item/bodybag,
+/obj/item/clothing/neck/cloak/gezena/med,
+/obj/machinery/light/small/directional/south,
+/obj/item/storage/backpack/satchel/med{
+ pixel_x = 7;
+ pixel_y = -10
+ },
+/obj/item/storage/backpack/duffelbag/med{
+ pixel_x = -6;
+ pixel_y = -9
+ },
+/obj/item/clothing/under/gezena{
+ pixel_x = -9;
+ pixel_y = -5
+ },
+/obj/item/clothing/suit/armor/gezena{
+ pixel_y = 9;
+ pixel_x = -9
+ },
+/obj/item/clothing/neck/stethoscope,
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = 7;
+ pixel_y = -7
+ },
+/obj/item/clothing/head/gezena/flap/medic{
+ pixel_y = 1;
+ pixel_x = 12
+ },
+/obj/item/clothing/gloves/gezena{
+ pixel_x = 3;
+ pixel_y = 11
+ },
+/obj/item/storage/belt/medical/gezena{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/pinpointer/crew/prox,
+/obj/item/flashlight/pen,
+/obj/item/sensor_device,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"dE" = (
+/obj/structure/toilet{
+ dir = 8;
+ pixel_y = 6;
+ pixel_x = 6
+ },
+/obj/structure/mirror{
+ pixel_y = 28;
+ pixel_x = -6
+ },
+/obj/structure/sink{
+ pixel_y = 16;
+ pixel_x = -6
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/newscaster/directional/south,
+/obj/machinery/button/door{
+ pixel_y = -19;
+ pixel_x = -11;
+ specialfunctions = 4;
+ name = "door bolt control";
+ id = "cth_b1";
+ normaldoorcontrol = 1;
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/dorm)
+"dP" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/machinery/door/window/survival_pod,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"dV" = (
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"ea" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/warning,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"eE" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 11;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/corner/opaque/green/bordercorner{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"eL" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"eT" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Head";
+ id_tag = "cth_b2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/ccommons)
+"fa" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/cargo)
+"fn" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/light/small/directional/south,
+/obj/structure/sign/warning/electricshock{
+ pixel_x = 22;
+ pixel_y = 4
+ },
+/obj/structure/sign/warning/fire{
+ pixel_x = 22;
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"fr" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/machinery/airalarm/directional/south,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -3;
+ pixel_x = -22;
+ id = "cth_door";
+ name = "door bolt control";
+ normaldoorcontrol = 1;
+ specialfunctions = 4
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 9;
+ pixel_x = -22;
+ id = "cth_dc";
+ name = "shutter control"
+ },
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/medical)
+"fu" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/item/toy/plush/rilena{
+ pixel_y = 1;
+ pixel_x = 5
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/item/bedsheet/blue{
+ dir = 1
+ },
+/obj/structure/sign/poster/rilena/ri{
+ pixel_x = -28
+ },
+/obj/structure/sign/flag/gezena{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"fF" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/radio/intercom/directional/west,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/corner_steel_grid/full,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"fJ" = (
+/obj/machinery/porta_turret/ship/pgf{
+ dir = 9
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security/armory)
+"fP" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/grille,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"fW" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 5
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-16";
+ pixel_y = 14;
+ pixel_x = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_y = -12;
+ pixel_x = 20
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"gg" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"gm" = (
+/obj/structure/rack,
+/obj/item/multitool{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/binoculars{
+ pixel_x = 4;
+ pixel_y = 8
+ },
+/obj/item/camera{
+ pixel_x = 4;
+ pixel_y = -5
+ },
+/obj/item/gps{
+ pixel_y = 3;
+ pixel_x = -4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"gu" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_y = -12;
+ pixel_x = 20
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/crew/cryo)
+"gG" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/sign/flag/gezena{
+ pixel_y = 32
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-19";
+ pixel_y = 16;
+ pixel_x = 7;
+ name = "elzousa"
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"gZ" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "wcth_bay";
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ id = "cth_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"hj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/chair/sofa/grey/corpo/corner/directional/south,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"ho" = (
+/obj/structure/rack,
+/obj/item/stack/sheet/mineral/plasma/twenty{
+ pixel_y = 1;
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/firealarm/directional/east{
+ pixel_y = 6
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = 22;
+ pixel_y = -5
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = -5;
+ pixel_x = 6
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"hp" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/corner/opaque/green/bordercorner{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/cleanliness{
+ pixel_y = 31
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"hz" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"hQ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"hY" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"hZ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/structure/noticeboard{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"if" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"ih" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/security{
+ dir = 4;
+ name = "Ships Locker"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"iv" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/medical)
+"iE" = (
+/obj/effect/turf_decal/borderfloor/cee{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium,
+/area/ship/medical)
+"iL" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/structure/closet/crate{
+ name = "ration crate"
+ },
+/obj/item/storage/ration/beef_strips,
+/obj/item/storage/ration/blackened_calamari,
+/obj/item/storage/ration/assorted_salted_offal,
+/obj/item/storage/ration/assorted_salted_offal,
+/obj/item/storage/ration/shredded_beef,
+/obj/item/storage/ration/shredded_beef,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/obj/item/reagent_containers/food/drinks/waterbottle/large,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"iW" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"jg" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/south{
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"jh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"jn" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
+"jo" = (
+/obj/effect/turf_decal/etherbor/left,
+/obj/item/storage/cans/sixsoda,
+/obj/item/storage/cans/sixsoda,
+/obj/item/storage/cans/sixsoda,
+/obj/item/storage/cans/sixsoda,
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"jp" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/curtain/bounty,
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 1
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals9{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/no_erp{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/ccommons)
+"jO" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/airlock{
+ name = "Dorms"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"ki" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"kn" = (
+/obj/structure/grille,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"ku" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner_techfloor_grid{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/catwalk/over,
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"ky" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/gezena{
+ pixel_y = 7;
+ pixel_x = 9
+ },
+/obj/item/clothing/suit/armor/gezena{
+ pixel_y = 7;
+ pixel_x = 1
+ },
+/obj/item/clothing/suit/armor/gezena{
+ pixel_y = 7;
+ pixel_x = -8
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"kE" = (
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 8
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"kH" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/external/dark)
+"kI" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/structure/closet/crate/bin{
+ pixel_x = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"kQ" = (
+/obj/structure/grille,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"lk" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/machinery/light/directional/north,
+/obj/machinery/power/ship_gravity,
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"lm" = (
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/machinery/light/small/directional/east,
+/obj/item/stack/sheet/metal/ten{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/obj/item/stack/sheet/glass/five{
+ pixel_x = -4;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"lG" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"lI" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"lP" = (
+/obj/machinery/turretid/ship{
+ pixel_x = 26
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 22;
+ pixel_x = -8;
+ id = "cth_bridge";
+ name = "bridge shutter control"
+ },
+/obj/structure/platform/ship_two{
+ dir = 5
+ },
+/obj/machinery/computer/cargo{
+ dir = 8;
+ layer = 3.1;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"lS" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"lT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/corner/opaque/green/bordercorner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"lU" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"lX" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"lZ" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/computer/helm{
+ dir = 8;
+ layer = 3.1;
+ pixel_y = 5
+ },
+/obj/structure/platform/ship_two{
+ dir = 6
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"ml" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/chair/sofa/grey/corpo/right/directional/west,
+/obj/item/radio/intercom/directional/south,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"my" = (
+/obj/item/radio/intercom/directional/south,
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_x = -10;
+ density = 0
+ },
+/obj/structure/chair{
+ dir = 4;
+ pixel_x = 7
+ },
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"mG" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"mO" = (
+/obj/machinery/porta_turret/ship/pgf{
+ dir = 10
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/ccommons)
+"nm" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering{
+ dir = 4;
+ name = "Engineering"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"nt" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"nQ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"nT" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"oe" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/crate_shelf{
+ capacity = 2
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"ok" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"oy" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/engineering)
+"oD" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"oK" = (
+/obj/structure/table/chem,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/structure/sink/chem{
+ dir = 4;
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/obj/structure/sign/departments/chemistry/pharmacy{
+ pixel_y = 30;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 11
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 2;
+ pixel_y = 11
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"oQ" = (
+/obj/structure/table/chem,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/item/clothing/head/gezena/medic{
+ pixel_y = 6;
+ pixel_x = -8
+ },
+/obj/item/reagent_containers/glass/filter{
+ pixel_y = 2;
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/glass/filter{
+ pixel_y = 2;
+ pixel_x = 11
+ },
+/obj/machinery/light/small/directional/west,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"pl" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"pF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid,
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"pM" = (
+/obj/machinery/porta_turret/ship/pgf/heavy{
+ dir = 4
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/external/dark)
+"pX" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Restroom";
+ id_tag = "cth_b1"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"qm" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 4;
+ pixel_y = 0;
+ pixel_x = 1
+ },
+/obj/item/desk_flag/gezena{
+ pixel_x = 8
+ },
+/obj/structure/platform/ship_two{
+ dir = 4
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"qn" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ dir = 4;
+ name = "Cryogenics"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"qA" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"rd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/platform,
+/obj/structure/platform{
+ dir = 1
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/engineering)
+"rm" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"rA" = (
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"rB" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"sg" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/pgf,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"sm" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"su" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/directional/south,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"sT" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/engineering)
+"sW" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/security/armory)
+"tl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer1{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"tt" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/cargo)
+"tw" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"tJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"tR" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-02";
+ pixel_x = 7;
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"tS" = (
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/storage/pill_bottle/stimulant,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = 25
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/medical)
+"un" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/blackbox_recorder,
+/obj/machinery/door/window/survival_pod{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/window/reinforced/survival_pod/spawner,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"us" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"uw" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"uD" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable,
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = -2
+ },
+/obj/item/pen{
+ pixel_y = 5;
+ pixel_x = -2
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = 9;
+ pixel_y = -2
+ },
+/obj/item/clipboard{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/obj/item/folder/pgf/empty_sheets{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"uK" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"uO" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/green,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/noticeboard{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"vl" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"vp" = (
+/obj/machinery/porta_turret/ship/pgf{
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/medical)
+"vq" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"vy" = (
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"vD" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/outline/yellow,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"vM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 22;
+ pixel_x = 9;
+ specialfunctions = 4;
+ name = "door bolt control";
+ id = "cth_cappie";
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/bridge)
+"vR" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_y = 5;
+ pixel_x = -5
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/ccommons)
+"wf" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"ws" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"wB" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/light_switch{
+ pixel_y = 23;
+ pixel_x = -12
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"wC" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining{
+ dir = 4;
+ name = "Cargo Bay"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"wE" = (
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/effect/spawner/bunk_bed,
+/obj/machinery/light/directional/north,
+/obj/item/toy/plush/moth/lovers{
+ pixel_y = 13
+ },
+/obj/structure/curtain/cloth/grey,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"wT" = (
+/obj/structure/table/wood,
+/obj/item/lighter{
+ pixel_y = 4;
+ pixel_x = -5
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"wY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/light/small/directional/north,
+/obj/structure/chair/comfy/grey/old/directional/south,
+/turf/open/floor/plasteel/sepia,
+/area/ship/bridge)
+"xe" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 5
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_y = 7;
+ pixel_x = 4
+ },
+/obj/item/stock_parts/cell/gun/kalix{
+ pixel_x = -9;
+ pixel_y = -1
+ },
+/obj/item/stock_parts/cell/gun/kalix{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/stock_parts/cell/gun/kalix{
+ pixel_x = -9;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"xf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"xl" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 26
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"xp" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 10
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_engi";
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering)
+"xK" = (
+/obj/item/clothing/neck/cloak/gezena/engi,
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/light/small/directional/east,
+/obj/item/clothing/glasses/meson{
+ pixel_x = -1;
+ pixel_y = -8
+ },
+/obj/item/storage/backpack/duffelbag/engineering{
+ pixel_y = -5
+ },
+/obj/item/storage/belt/utility/full,
+/obj/item/storage/backpack/satchel/eng{
+ pixel_y = 10
+ },
+/obj/item/clothing/gloves/gezena/engi,
+/obj/item/clothing/under/gezena{
+ pixel_x = 9;
+ pixel_y = -3
+ },
+/obj/item/clothing/suit/armor/gezena/engi{
+ pixel_y = 11;
+ pixel_x = 9
+ },
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_x = -8;
+ pixel_y = -7
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"xS" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/machinery/vending/coffee,
+/obj/machinery/light/small/directional/east,
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_y = -22;
+ pixel_x = -9;
+ id = "cth_in";
+ name = "shutter control"
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"yd" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"yh" = (
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/jetpack/oxygen/harness,
+/obj/machinery/light/directional/east,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"yp" = (
+/obj/machinery/cryopod,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"yw" = (
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"yx" = (
+/obj/machinery/defibrillator_mount{
+ pixel_x = -25
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/structure/closet/wall/white/directional/south,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"yz" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/chair/sofa/grey/corpo/corner/directional/east,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"yB" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"yY" = (
+/obj/effect/turf_decal/etherbor/center,
+/obj/structure/closet/crate/internals,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/oxygen,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"zz" = (
+/obj/structure/table,
+/obj/machinery/light/small/directional/west,
+/obj/item/radio/intercom/directional/south,
+/obj/structure/bedsheetbin{
+ pixel_y = 2;
+ pixel_x = -1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"zC" = (
+/obj/effect/turf_decal/borderfloor/cee{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium,
+/area/ship/medical)
+"zI" = (
+/obj/effect/turf_decal/borderfloor/cee{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium,
+/area/ship/medical)
+"zJ" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"zL" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"zM" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/sign/departments/engineering{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Aj" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"Al" = (
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 4
+ },
+/area/ship/crew/cryo)
+"Ap" = (
+/obj/machinery/porta_turret/ship/pgf/light{
+ dir = 6
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/bridge)
+"Ar" = (
+/obj/structure/sign/flag/gezena{
+ pixel_y = 32
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-04";
+ pixel_y = 17;
+ pixel_x = 8
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Ax" = (
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/obj/item/radio/intercom/directional/east,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -22
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/medical)
+"Bb" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 9
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 9
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_engi";
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/engineering)
+"Bz" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/engineering)
+"Ck" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"Cm" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Captain's Quarters";
+ id_tag = "cth_cappie";
+ req_access_txt = "20"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"Cy" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"CY" = (
+/obj/structure/guncloset,
+/obj/item/gun/energy/kalix/pistol,
+/obj/item/gun/energy/kalix/pistol,
+/obj/item/gun/energy/kalix/pistol,
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"Dt" = (
+/obj/effect/turf_decal/arrows,
+/obj/structure/sign/warning{
+ pixel_y = 24;
+ pixel_x = -23
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Dz" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"DG" = (
+/obj/structure/closet/secure_closet/armory1{
+ name = "gear locker";
+ populate = 0
+ },
+/obj/item/binoculars,
+/obj/item/binoculars,
+/obj/item/taperecorder,
+/obj/item/taperecorder,
+/obj/item/storage/toolbox/mechanical{
+ pixel_y = -9;
+ pixel_x = -4
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -8;
+ pixel_x = 5
+ },
+/obj/item/camera{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/camera{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/storage/box/flares{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/obj/item/storage/box/flares{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/obj/item/storage/box/flares{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/obj/item/gps,
+/obj/item/gps,
+/obj/item/gps,
+/obj/item/crowbar/large,
+/obj/item/crowbar/large,
+/obj/item/clipboard{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/obj/item/clipboard{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"DJ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"DN" = (
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/structure/sink{
+ pixel_y = 14
+ },
+/obj/machinery/button/door{
+ pixel_y = 23;
+ pixel_x = 12;
+ specialfunctions = 4;
+ name = "door bolt control";
+ id = "cth_b2";
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/ccommons)
+"DO" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"DW" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/poddoor{
+ id = "cth_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Eb" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = -12;
+ pixel_x = -20
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Ev" = (
+/obj/effect/turf_decal/industrial/stand_clear,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"EC" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/cryo)
+"Fm" = (
+/obj/structure/table/chem,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/machinery/chem_press{
+ pixel_y = 5;
+ pixel_x = 1
+ },
+/obj/item/reagent_containers/glass/bottle/formaldehyde{
+ pixel_x = 10;
+ pixel_y = -1
+ },
+/obj/item/storage/pill_bottle/charcoal{
+ pixel_x = -12;
+ pixel_y = 12
+ },
+/obj/item/storage/pill_bottle/charcoal{
+ pixel_x = -12;
+ pixel_y = 6
+ },
+/obj/machinery/light/small/directional/east,
+/obj/item/reagent_scanner{
+ pixel_x = -4;
+ pixel_y = -5
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Fn" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
+ dir = 4
+ },
+/obj/structure/grille,
+/turf/open/floor/engine/hull,
+/area/ship/external/dark)
+"Ga" = (
+/obj/structure/rack,
+/obj/machinery/light/small/directional/west,
+/obj/item/storage/belt/sabre/pgf,
+/obj/item/storage/belt/sabre/pgf{
+ pixel_x = -10;
+ pixel_y = -2
+ },
+/obj/item/storage/belt/sabre/pgf{
+ pixel_y = 8;
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"Gg" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"GC" = (
+/obj/effect/turf_decal/etherbor/right,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"GM" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"GN" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/central)
+"GX" = (
+/obj/effect/turf_decal/arrows,
+/obj/structure/sign/warning{
+ pixel_y = 24;
+ pixel_x = 23
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Hu" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/closet/cabinet,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/neck/cloak/gezena,
+/obj/item/clothing/neck/cloak/gezena,
+/obj/item/clothing/under/gezena,
+/obj/item/clothing/under/gezena,
+/obj/item/clothing/gloves/gezena,
+/obj/item/clothing/gloves/gezena,
+/obj/item/clothing/head/gezena,
+/obj/item/clothing/head/gezena,
+/obj/item/clothing/shoes/combat/gezena,
+/obj/item/clothing/shoes/combat/gezena,
+/obj/structure/window/reinforced/survival_pod/spawner,
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"HA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"HC" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/trimline/opaque/blue/filled,
+/obj/item/storage/case/surgery{
+ pixel_x = 1;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_y = 9;
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/obj/item/roller{
+ pixel_y = 3;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/hypospray/medipen/morphine{
+ pixel_x = 10;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/hypospray/medipen/morphine{
+ pixel_x = 10;
+ pixel_y = -5
+ },
+/obj/machinery/button/door{
+ pixel_x = 22;
+ pixel_y = 9;
+ dir = 8;
+ id = "cth_airlock";
+ name = "airlock access"
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"HD" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/central)
+"HH" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"HM" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"HW" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/patterned/ridged,
+/area/ship/cargo)
+"Ig" = (
+/obj/machinery/power/shuttle/engine/electric,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull,
+/area/ship/engineering)
+"Is" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"IA" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"IJ" = (
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/effect/spawner/bunk_bed,
+/obj/machinery/light/directional/north,
+/obj/structure/curtain/cloth/grey,
+/obj/item/toy/plush/carpplushie{
+ pixel_y = -6
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Jb" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/medical{
+ dir = 4;
+ name = "Medical Office";
+ id_tag = "cth_door"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"Jg" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"Js" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/extinguisher_cabinet/directional/east{
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"JD" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"JE" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 27
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"JL" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining{
+ dir = 4;
+ name = "Cargo Bay"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"JM" = (
+/obj/structure/table,
+/obj/item/cutting_board{
+ pixel_y = 4;
+ pixel_x = -6
+ },
+/obj/item/melee/knife/kitchen{
+ pixel_y = 4;
+ pixel_x = -7
+ },
+/obj/machinery/light/directional/north{
+ pixel_y = 35
+ },
+/obj/item/reagent_containers/condiment/hotsauce{
+ pixel_x = 11;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/corner/opaque/green/border,
+/obj/structure/sink{
+ pixel_y = 20;
+ layer = 2.30
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"JT" = (
+/obj/machinery/washing_machine,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"JX" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/table/wood,
+/obj/item/clothing/mask/whistle/trench,
+/obj/item/paper/fluff/ship/cthonian/one{
+ pixel_y = 4;
+ pixel_x = 6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/champagne{
+ pixel_y = 6;
+ pixel_x = -7
+ },
+/obj/item/pen/fountain/captain{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/bridge)
+"Ki" = (
+/obj/machinery/atmospherics/components/binary/pump/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/visible/layer1{
+ dir = 9
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Kp" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/structure/closet/crate/engineering,
+/obj/item/pickaxe,
+/obj/item/pickaxe,
+/obj/item/mining_scanner,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"Kz" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/corner,
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 9
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger{
+ pixel_y = 5;
+ pixel_x = -1
+ },
+/obj/item/screwdriver{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/item/screwdriver{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/screwdriver{
+ pixel_x = 9;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"KF" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"KI" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
+ pixel_y = -4;
+ pixel_x = 8;
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_x = -9;
+ pixel_y = -3;
+ id = "cth_bay";
+ name = "bay shutters"
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 8;
+ pixel_y = 9;
+ pixel_x = 2;
+ id = "wcth_bay"
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"KK" = (
+/obj/machinery/porta_turret/ship/pgf{
+ dir = 6
+ },
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/hallway/central)
+"Lc" = (
+/obj/effect/turf_decal/trimline/opaque/white/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = 12;
+ pixel_x = -19
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"Li" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"Ls" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ pixel_y = 23;
+ pixel_x = 12
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/power/apc/auto_name/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"LF" = (
+/obj/effect/turf_decal/arrows,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Ml" = (
+/obj/structure/filingcabinet/chestdrawer{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/line,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/paper/fluff/ship/cthonian,
+/obj/item/taperecorder,
+/obj/item/tape/random,
+/obj/item/tape/random,
+/obj/item/clipboard{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/obj/item/clipboard{
+ pixel_x = -11;
+ pixel_y = -4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"Mq" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/machinery/door/poddoor{
+ id = "cth_bay"
+ },
+/obj/docking_port/mobile{
+ name = "cthonian dock";
+ port_direction = 4;
+ preferred_direction = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"Mv" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/structure/closet/crate/bin{
+ pixel_x = -5
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"MY" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Nh" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/closet/crate/medical,
+/obj/item/storage/firstaid/radiation,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/hypospray/medipen/anti_rad,
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/storage/firstaid/regular,
+/obj/item/storage/firstaid/regular,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/cargo)
+"No" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/obj/item/storage/backpack/satchel/flat/cthonian,
+/obj/structure/platform/corner,
+/obj/structure/platform/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Np" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"NF" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"NJ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 5
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"NV" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Ob" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 1
+ },
+/obj/item/folder/blue{
+ pixel_y = 4;
+ pixel_x = -7
+ },
+/obj/item/paper_bin{
+ pixel_y = 4;
+ pixel_x = 6
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 6;
+ pixel_x = 5
+ },
+/obj/item/folder/pgf{
+ pixel_y = -2;
+ pixel_x = -6
+ },
+/obj/structure/railing,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"Of" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 20;
+ pixel_x = -9;
+ id = "cth_in";
+ name = "shutter control"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"OB" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/platform{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"Qd" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/light/directional/north,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_y = -12;
+ pixel_x = -20
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo)
+"QI" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"QP" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_in"
+ },
+/turf/open/floor/plating,
+/area/ship/cargo)
+"QT" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"Rm" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/door/window/survival_pod,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Rn" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"RH" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 1
+ },
+/area/ship/cargo)
+"RV" = (
+/obj/docking_port/stationary{
+ height = 15;
+ width = 15;
+ name = "cthonian exterior dock";
+ dwidth = 7;
+ dir = 2
+ },
+/turf/template_noop,
+/area/template_noop)
+"Sp" = (
+/obj/structure/closet/secure_closet/freezer/fridge{
+ populate = 0
+ },
+/obj/item/reagent_containers/condiment/mayonnaise,
+/obj/item/reagent_containers/condiment/mayonnaise,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_y = 4;
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_y = 4;
+ pixel_x = 3
+ },
+/obj/item/reagent_containers/condiment/bbqsauce{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/obj/item/reagent_containers/condiment/ketchup{
+ pixel_y = 8;
+ pixel_x = 7
+ },
+/obj/effect/turf_decal/corner/opaque/green/bordercorner,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"SG" = (
+/obj/effect/turf_decal/corner/opaque/green/border{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/ccommons)
+"Td" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "cth_dc"
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/crew/dorm)
+"Tm" = (
+/obj/machinery/suit_storage_unit/inherit/industrial,
+/obj/item/clothing/suit/space/gezena,
+/obj/item/clothing/head/helmet/space/gezena,
+/obj/item/tank/jetpack/oxygen/harness,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/rockvault,
+/area/ship/security/armory)
+"TH" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_cap"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"TP" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/chair/handrail,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"TS" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "cth_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"TW" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Ua" = (
+/turf/template_noop,
+/area/template_noop)
+"UE" = (
+/obj/structure/table/chem,
+/obj/effect/turf_decal/borderfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/item/storage/box/syringes{
+ pixel_x = 11;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/bottle/mannitol{
+ pixel_y = 2;
+ pixel_x = -3
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -12
+ },
+/obj/machinery/reagentgrinder{
+ pixel_y = 17;
+ pixel_x = 2
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"UM" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 4
+ },
+/obj/item/clothing/suit/armor/gezena/captain,
+/obj/item/clothing/neck/cloak/gezena/captain,
+/obj/item/clothing/gloves/gezena/captain,
+/obj/item/clothing/shoes/combat/gezena{
+ pixel_y = -8;
+ pixel_x = 5
+ },
+/obj/machinery/light/small/directional/west,
+/obj/item/storage/backpack/satchel/cap{
+ pixel_y = -11;
+ pixel_x = -8
+ },
+/obj/item/storage/backpack/duffelbag/captain{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/obj/item/screwdriver,
+/obj/item/radio/headset/pgf/alt/captain,
+/obj/item/storage/lockbox/medal,
+/obj/item/radio/headset/pgf/captain,
+/obj/item/storage/belt/sabre,
+/obj/structure/closet/secure_closet/captains{
+ populate = 0
+ },
+/obj/item/storage/guncase/pistol/kalixpistol,
+/obj/item/megaphone/command,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
+"US" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command{
+ dir = 4;
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"Ve" = (
+/obj/effect/turf_decal/borderfloor/cee{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium,
+/area/ship/medical)
+"Vs" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/chair/sofa/grey/corpo/directional/south,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Vv" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"VL" = (
+/obj/effect/turf_decal/corner_steel_grid/full,
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 4
+ },
+/obj/structure/closet/crate/bin{
+ pixel_x = -7;
+ pixel_y = 3
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"VM" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Wh" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 12;
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 1;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_y = 12;
+ pixel_x = -4
+ },
+/obj/item/radio/old{
+ pixel_x = 6
+ },
+/obj/item/desk_flag/gezena{
+ pixel_y = -3;
+ pixel_x = 18
+ },
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Wk" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Wv" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/dorm)
+"WG" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/machinery/vending/cola/starkist,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"WO" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/closet/cabinet,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/suit/toggle/gezena,
+/obj/item/clothing/neck/cloak/gezena,
+/obj/item/clothing/neck/cloak/gezena,
+/obj/item/clothing/under/gezena,
+/obj/item/clothing/under/gezena,
+/obj/item/clothing/gloves/gezena,
+/obj/item/clothing/gloves/gezena,
+/obj/item/clothing/head/gezena/flap,
+/obj/item/clothing/head/gezena/flap,
+/obj/item/clothing/shoes/combat/gezena,
+/obj/item/clothing/shoes/combat/gezena,
+/obj/structure/window/reinforced/survival_pod/spawner,
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/item/radio/headset/pgf,
+/obj/item/radio/headset/pgf,
+/turf/open/floor/plasteel/sepia,
+/area/ship/crew/dorm)
+"Xd" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen,
+/obj/structure/closet/wall/white/directional/south{
+ name = "janitorial closet"
+ },
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/storage/bag/trash,
+/obj/item/pushbroom,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/hallway/central)
+"Xk" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Xv" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Cannon Access"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "cth_airlock"
+ },
+/obj/effect/mapping_helpers/airlock/sealed,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"Xy" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/south{
+ pixel_x = -4
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"XJ" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/green/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+"Ye" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6,
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/structure/closet/crate/engineering,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/gps/engineering,
+/obj/item/circuitboard/machine/cell_charger,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 11
+ },
+/obj/item/radio/headset/alt,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ship/engineering)
+"Yl" = (
+/obj/effect/turf_decal/trimline/opaque/blue/filled/line,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/item/reagent_containers/glass/bucket{
+ pixel_y = 12;
+ pixel_x = -12;
+ name = "chemical bucket";
+ desc = "A tried and tested idea that has never gone wrong"
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Yn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi';
+ dir = 8
+ },
+/area/ship/bridge)
+"Yz" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/telecomms/relay/preset/pgf{
+ pixel_y = 4
+ },
+/obj/structure/window/reinforced/survival_pod/spawner,
+/obj/machinery/door/window/survival_pod{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ship/bridge)
+"YK" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating/airless,
+/area/ship/external/dark)
+"YR" = (
+/obj/effect/turf_decal/trimline/opaque/green/filled/line{
+ dir = 8
+ },
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"YS" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/crew/ccommons)
+"YZ" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/window/reinforced/survival_pod/spawner{
+ dir = 8
+ },
+/obj/structure/dresser{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/item/desk_flag/gezena{
+ pixel_y = 9;
+ pixel_x = -4
+ },
+/obj/machinery/light/directional/north,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"Za" = (
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ dir = 4;
+ name = "Cannon Access"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "cth_airlock"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"Zj" = (
+/obj/machinery/light/directional/east,
+/obj/structure/bed/roller,
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -2
+ },
+/turf/open/floor/mineral/titanium/tiled,
+/area/ship/medical)
+"Zo" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"ZI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/interior,
+/area/ship/medical)
+"ZN" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/techfloor/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ pixel_y = 22;
+ pixel_x = -1;
+ id = "cth_engi";
+ name = "shutter control"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering)
+"ZR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals6{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/dorm)
+"ZT" = (
+/obj/effect/turf_decal/techfloor/orange,
+/obj/effect/turf_decal/techfloor/orange{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "wcth_bay";
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
+ id = "cth_bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"ZZ" = (
+/obj/effect/turf_decal/corner_steel_grid/full{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/bottlegreen{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/green{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ pixel_y = 23;
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/ccommons)
+
+(1,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+kn
+Ua
+kn
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+"}
+(2,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+kn
+Ua
+kn
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+"}
+(3,1,1) = {"
+Ua
+Ua
+Ua
+rB
+Ua
+Ua
+Fn
+kE
+Fn
+Ua
+Ua
+rB
+Ua
+Ua
+Ua
+"}
+(4,1,1) = {"
+Ua
+Ua
+Ua
+rB
+Ua
+Ua
+oy
+Np
+oy
+Ua
+Ua
+rB
+Ua
+Ua
+Ua
+"}
+(5,1,1) = {"
+Ua
+Ua
+Ua
+rB
+Np
+Ig
+da
+Np
+ct
+Ig
+Np
+rB
+Ua
+Ua
+Ua
+"}
+(6,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+Np
+Bb
+jg
+Np
+ZN
+xp
+Np
+Ua
+Ua
+Ua
+Ua
+"}
+(7,1,1) = {"
+Ua
+Ua
+Bz
+Np
+Np
+lk
+ch
+No
+ku
+OB
+Np
+Np
+Bz
+Ua
+Ua
+"}
+(8,1,1) = {"
+Ua
+Ua
+Bz
+bw
+lX
+tl
+vD
+rd
+MY
+VM
+oe
+yw
+Bz
+Ua
+Ua
+"}
+(9,1,1) = {"
+Ua
+Ua
+Bz
+cU
+lX
+Ki
+sm
+yd
+Cy
+yB
+sT
+nT
+Bz
+Ua
+Ua
+"}
+(10,1,1) = {"
+Ua
+sW
+sW
+sW
+sW
+sW
+xK
+HA
+Ye
+lm
+ho
+fn
+Bz
+Ua
+Ua
+"}
+(11,1,1) = {"
+Ua
+sW
+Tm
+Lc
+Ga
+sW
+sW
+nm
+Bz
+Bz
+Bz
+Bz
+Bz
+Bz
+Ua
+"}
+(12,1,1) = {"
+Ua
+sW
+Kz
+wf
+Aj
+DG
+sW
+zM
+Mv
+HD
+yp
+Al
+Xy
+EC
+Ua
+"}
+(13,1,1) = {"
+Ua
+sW
+xe
+qA
+ci
+CY
+sW
+TP
+Xd
+GN
+gu
+pl
+aR
+EC
+Ua
+"}
+(14,1,1) = {"
+Ua
+sW
+yh
+rm
+ky
+sW
+sW
+HH
+zL
+GN
+EC
+qn
+EC
+EC
+Ua
+"}
+(15,1,1) = {"
+fJ
+sW
+sW
+ih
+sW
+sW
+hZ
+Vv
+DJ
+TW
+Eb
+NJ
+GN
+GN
+Ua
+"}
+(16,1,1) = {"
+Wv
+IJ
+WO
+KF
+Zo
+jO
+xl
+GM
+eL
+lU
+tR
+WG
+GN
+KK
+Ua
+"}
+(17,1,1) = {"
+Wv
+Ar
+Rm
+pF
+kI
+Wv
+tt
+tt
+wC
+tt
+tt
+tt
+tt
+Ua
+Ua
+"}
+(18,1,1) = {"
+Wv
+wE
+Hu
+jh
+yz
+ml
+tt
+Qd
+uK
+iW
+Nh
+vl
+tt
+Ua
+Ua
+"}
+(19,1,1) = {"
+Wv
+gG
+dP
+ZR
+Vs
+Wh
+QP
+ok
+hY
+RH
+Is
+gg
+ZT
+Dt
+Ua
+"}
+(20,1,1) = {"
+Wv
+YZ
+dc
+ws
+Vs
+wT
+QP
+cQ
+DO
+dV
+jo
+mG
+DW
+Ev
+Ua
+"}
+(21,1,1) = {"
+Wv
+vy
+Js
+xf
+hj
+bS
+QP
+nQ
+cj
+Ob
+yY
+mG
+Mq
+LF
+RV
+"}
+(22,1,1) = {"
+Wv
+pX
+Wv
+Ls
+Li
+xS
+tt
+Of
+Ml
+KI
+GC
+mG
+DW
+Ev
+Ua
+"}
+(23,1,1) = {"
+Wv
+dE
+Wv
+Td
+Jb
+Wv
+tt
+Gg
+rA
+fa
+uw
+iL
+gZ
+GX
+Ua
+"}
+(24,1,1) = {"
+vp
+iv
+iv
+oK
+zI
+fr
+tt
+fW
+Ck
+HW
+Kp
+su
+tt
+Ua
+Ua
+"}
+(25,1,1) = {"
+Ua
+iv
+oQ
+Yl
+iE
+dv
+tt
+tt
+JL
+tt
+tt
+tt
+tt
+Ua
+Ua
+"}
+(26,1,1) = {"
+Ua
+iv
+Fm
+us
+zC
+ea
+yx
+YS
+NV
+my
+YS
+vR
+YS
+mO
+Ua
+"}
+(27,1,1) = {"
+Ua
+iv
+cH
+UE
+Ve
+HC
+Zj
+YS
+lG
+bQ
+YS
+DN
+jp
+YS
+Ua
+"}
+(28,1,1) = {"
+Ua
+iv
+cH
+cH
+Xv
+cH
+cH
+YS
+JE
+lI
+YS
+eT
+YS
+YS
+Ua
+"}
+(29,1,1) = {"
+Ua
+Ua
+cH
+tS
+ZI
+Ax
+cH
+YS
+uO
+XJ
+VL
+QI
+zz
+YS
+Ua
+"}
+(30,1,1) = {"
+Ua
+Ua
+cH
+cH
+Za
+cH
+cH
+YS
+ZZ
+hz
+NF
+lS
+JT
+YS
+Ua
+"}
+(31,1,1) = {"
+Ua
+Ua
+cH
+YK
+if
+JD
+cH
+YS
+Sp
+lT
+vq
+jn
+jn
+jn
+jn
+"}
+(32,1,1) = {"
+Ua
+Ua
+cH
+fP
+kH
+fP
+cH
+YS
+JM
+SG
+hQ
+jn
+fu
+UM
+TH
+"}
+(33,1,1) = {"
+Ua
+Ua
+cH
+ki
+kH
+ki
+cH
+YS
+hp
+eE
+tw
+jn
+wY
+JX
+TH
+"}
+(34,1,1) = {"
+Ua
+Ua
+kQ
+Ua
+kH
+ki
+cH
+jn
+jn
+jn
+US
+jn
+vM
+ay
+TH
+"}
+(35,1,1) = {"
+Ua
+Ua
+kQ
+Ua
+kH
+Ua
+kQ
+jn
+un
+Yz
+Yn
+jn
+Cm
+jn
+Ap
+"}
+(36,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+kH
+Ua
+kQ
+jn
+wB
+nt
+Wk
+fF
+tJ
+jn
+Ua
+"}
+(37,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+kH
+Ua
+Ua
+jn
+gm
+Dz
+aa
+Xk
+uD
+oD
+Ua
+"}
+(38,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+kH
+Ua
+Ua
+jn
+sg
+Rn
+YR
+HM
+QT
+oD
+Ua
+"}
+(39,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+pM
+Ua
+Ua
+jn
+jn
+lP
+qm
+lZ
+zJ
+TS
+Ua
+"}
+(40,1,1) = {"
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+Ua
+jn
+jn
+IA
+IA
+Jg
+Ua
+Ua
+"}
diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm
index 46d00806edd7..7fbe7eb795ae 100644
--- a/_maps/shuttles/pirate/pirate_libertatia.dmm
+++ b/_maps/shuttles/pirate/pirate_libertatia.dmm
@@ -794,7 +794,7 @@
/obj/machinery/vending/wallmed{
pixel_y = 30
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/suit/apron/surgical,
@@ -842,8 +842,8 @@
/area/ship/crew)
"AL" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/item/radio/intercom/directional/north,
/obj/item/lighter{
@@ -876,8 +876,8 @@
/turf/open/floor/plasteel/grimy,
/area/ship/crew)
"Bw" = (
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
+/obj/effect/spawner/random/clothing/pirate_or_bandana,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/clothing/shoes/jackboots,
/obj/item/clothing/shoes/jackboots,
@@ -1569,12 +1569,12 @@
name = "food crate"
},
/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm
index 6861f971143f..a68316da4b74 100644
--- a/_maps/shuttles/pirate/pirate_noderider.dmm
+++ b/_maps/shuttles/pirate/pirate_noderider.dmm
@@ -1200,7 +1200,7 @@
/obj/structure/closet/wall/white/directional/west{
name = "First Aid"
},
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/toolbox/mechanical,
/obj/item/healthanalyzer,
@@ -1502,7 +1502,7 @@
/obj/item/storage/box/handcuffs,
/obj/item/clothing/glasses/meson,
/obj/item/megaphone,
-/obj/item/melee/transforming/energy/sword/saber/red,
+/obj/item/melee/energy/sword/saber/red,
/obj/item/pinpointer/crew,
/obj/item/clothing/mask/gas/atmos,
/obj/item/clothing/mask/whistle,
diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm
index fc08d44db510..227d239257c1 100644
--- a/_maps/shuttles/pirate/pirate_tortuga.dmm
+++ b/_maps/shuttles/pirate/pirate_tortuga.dmm
@@ -158,7 +158,7 @@
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"bR" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"cb" = (
@@ -555,7 +555,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/security/armory)
"gG" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -667,10 +667,7 @@
/area/ship/security/armory)
"hU" = (
/obj/structure/rack,
-/obj/item/ammo_box/c45{
- pixel_x = -9;
- pixel_y = 8
- },
+/obj/item/storage/box/ammo/c45,
/obj/item/storage/toolbox/ammo/a762_40{
pixel_x = 5;
pixel_y = 6
@@ -921,7 +918,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"kp" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/structure/cable/yellow{
icon_state = "4-8"
},
@@ -931,7 +928,7 @@
},
/area/ship/maintenance)
"kv" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -945,7 +942,7 @@
/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"la" = (
@@ -980,7 +977,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
"li" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -1025,7 +1022,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/security/armory)
"mf" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/structure/cable/yellow{
icon_state = "5-9"
},
@@ -1095,20 +1092,20 @@
pixel_y = 6;
pixel_x = 7
},
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+/obj/item/clothing/suit/armor/vest/frontier{
pixel_y = -4;
pixel_x = 8
},
/obj/machinery/light/directional/north,
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+/obj/item/clothing/suit/armor/vest/frontier{
pixel_y = -4;
pixel_x = 8
},
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+/obj/item/clothing/suit/armor/vest/frontier{
pixel_y = -4;
pixel_x = 8
},
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+/obj/item/clothing/suit/armor/vest/frontier{
pixel_y = -4;
pixel_x = 8
},
@@ -1300,8 +1297,8 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"oK" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -1394,7 +1391,7 @@
/turf/closed/wall,
/area/ship/crew/canteen)
"qi" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/crayon{
icon_state = "med"
@@ -1451,7 +1448,7 @@
/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -1549,7 +1546,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"ti" = (
-/obj/effect/spawner/lootdrop/donut,
+/obj/effect/spawner/random/food_or_drink/donut,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
},
@@ -1580,7 +1577,7 @@
dir = 1
},
/obj/structure/curtain/cloth,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/carpet,
/area/ship/crew)
@@ -1939,7 +1936,7 @@
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"yc" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -2054,7 +2051,7 @@
"Ar" = (
/obj/structure/bed,
/obj/structure/curtain/cloth,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet,
/area/ship/crew)
"Av" = (
@@ -2075,7 +2072,7 @@
/turf/open/floor/plasteel,
/area/ship/crew)
"AG" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"AQ" = (
@@ -2202,7 +2199,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -2236,7 +2233,7 @@
dir = 1
},
/obj/structure/curtain/cloth,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/airalarm/directional/north,
/turf/open/floor/carpet,
/area/ship/crew)
@@ -2258,7 +2255,7 @@
/turf/open/floor/plating/airless,
/area/ship/maintenance)
"Eb" = (
-/obj/effect/spawner/lootdrop/waste/trash,
+/obj/effect/spawner/random/trash/decal,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -2823,9 +2820,9 @@
/area/ship/crew/canteen)
"Lb" = (
/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/effect/turf_decal/siding/wideplating{
dir = 5
},
@@ -3001,7 +2998,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
@@ -3141,7 +3138,7 @@
/obj/item/clothing/shoes/jackboots{
pixel_y = -13
},
-/obj/item/ammo_box/c38_box/surplus,
+/obj/item/storage/box/ammo/c38_surplus,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew/crewtwo)
@@ -3205,9 +3202,9 @@
"Pa" = (
/obj/structure/table/glass,
/obj/effect/turf_decal/corner/opaque/blue/full,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = 4;
- pixel_y = 5
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/obj/machinery/light_switch{
pixel_y = 22
@@ -3219,7 +3216,7 @@
/turf/open/floor/plasteel/white,
/area/ship/crew/canteen)
"Pb" = (
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless{
icon_state = "platingdmg1"
},
@@ -3312,7 +3309,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"QM" = (
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/obj/structure/closet/cardboard,
/turf/open/floor/plating/airless,
/area/ship/maintenance)
@@ -3361,7 +3358,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/spawner/lootdrop/grille_or_trash,
+/obj/effect/spawner/random/trash/grille_or_waste,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
},
@@ -4047,7 +4044,7 @@
/turf/open/floor/plating,
/area/ship/cargo)
"YU" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/airless{
icon_state = "plating_rust"
diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm
index 0e501c62ed57..8dc2df387690 100644
--- a/_maps/shuttles/roumain/srm_elder.dmm
+++ b/_maps/shuttles/roumain/srm_elder.dmm
@@ -337,18 +337,12 @@
pixel_y = 14;
pixel_x = 5
},
-/obj/item/ammo_box/c38_box{
- pixel_x = -6;
- pixel_y = 7
- },
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/illestren_a850r{
pixel_x = 8;
pixel_y = 6
},
-/obj/item/ammo_box/c38_box{
- pixel_x = -6;
- pixel_y = 1
- },
+/obj/item/storage/box/ammo/c38,
/obj/item/ammo_box/magazine/illestren_a850r{
pixel_x = 8
},
@@ -1453,7 +1447,7 @@
/obj/vehicle/ridden/wheelchair{
dir = 4
},
-/obj/item/melee/transforming/cleaving_saw/old,
+/obj/item/melee/cleaving_saw/old,
/turf/open/floor/ship/dirt/dark,
/area/ship/bridge)
"rj" = (
@@ -2025,8 +2019,8 @@
pixel_x = -7
},
/obj/item/storage/backpack/satchel/leather,
-/obj/item/ammo_box/a44roum,
-/obj/item/storage/pistolcase/montagne,
+/obj/item/storage/box/ammo/a44roum,
+/obj/item/storage/guncase/pistol/montagne,
/obj/item/clothing/accessory/waistcoat/roumain,
/turf/open/floor/wood/mahogany,
/area/ship/bridge)
@@ -2696,9 +2690,9 @@
},
/obj/item/storage/backpack/satchel/leather,
/obj/item/gun/ballistic/revolver/detective,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38,
-/obj/item/ammo_box/c38_box,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
+/obj/item/storage/box/ammo/c38,
/obj/item/clothing/head/cowboy/sec/roumain/colligne,
/obj/item/clothing/suit/armor/roumain/colligne,
/obj/structure/closet/secure_closet/collignes,
diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm
index bacabd6cc23c..e73f49173922 100644
--- a/_maps/shuttles/solgov/solgov_chronicle.dmm
+++ b/_maps/shuttles/solgov/solgov_chronicle.dmm
@@ -272,8 +272,8 @@
/obj/item/clothing/suit/armor/solgov_trenchcoat,
/obj/item/spacecash/bundle/loadsamoney,
/obj/item/clothing/neck/cloak/solgovcap,
-/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/guncase/pistol/modelh,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/carpet/royalblue,
/area/ship/crew/office)
"cg" = (
@@ -4603,7 +4603,7 @@
/obj/structure/closet/cabinet{
name = "ammunition"
},
-/obj/item/ammo_box/amagpellet_claris,
+/obj/item/storage/box/ammo/amagpellet_claris,
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
/obj/item/ammo_box/magazine/pistol556mm,
diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm
index 27427f9bbfa2..8ed63dcfac50 100644
--- a/_maps/shuttles/solgov/solgov_inkwell.dmm
+++ b/_maps/shuttles/solgov/solgov_inkwell.dmm
@@ -2536,7 +2536,7 @@
/obj/effect/turf_decal/industrial/stand_clear{
dir = 1
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"qw" = (
@@ -2645,7 +2645,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"rm" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
},
@@ -2862,7 +2862,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"sn" = (
@@ -5208,7 +5208,7 @@
/obj/structure/closet/crate,
/obj/effect/turf_decal/techfloor,
/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/tech/grid,
/area/ship/storage)
"GN" = (
@@ -5450,7 +5450,7 @@
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"IC" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
+/obj/effect/spawner/random/structure/crate_abandoned,
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
@@ -5613,7 +5613,7 @@
dir = 1
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"JN" = (
@@ -5933,8 +5933,8 @@
/obj/item/fish_feed,
/obj/item/pen/fountain/solgov,
/obj/item/clothing/neck/cloak/solgovcap,
-/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/guncase/pistol/modelh,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/wood/maple,
/area/ship/crew/dorm/dormtwo)
"LJ" = (
@@ -6128,7 +6128,7 @@
/area/ship/crew/canteen/kitchen)
"Nj" = (
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"Np" = (
@@ -6776,7 +6776,7 @@
/area/ship/bridge)
"RS" = (
/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/three,
+/obj/effect/spawner/random/maintenance/three,
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
"RX" = (
diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm
index 9cfda7a14c0d..b14db845e33f 100644
--- a/_maps/shuttles/solgov/solgov_paracelsus.dmm
+++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm
@@ -892,10 +892,14 @@
/area/ship/hallway/port)
"jh" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
+/obj/item/storage/case/surgery{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = 9;
+ pixel_y = 4
},
-/obj/item/reagent_containers/medigel/sterilizine,
/obj/machinery/light/directional/west,
/obj/structure/sign/poster/solgov/random{
pixel_y = 30
@@ -1679,10 +1683,14 @@
/area/ship/cargo)
"qH" = (
/obj/structure/table,
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 7
+/obj/item/storage/case/surgery{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/medigel/sterilizine{
+ pixel_x = -10;
+ pixel_y = 3
},
-/obj/item/reagent_containers/medigel/sterilizine,
/obj/machinery/light/directional/east,
/turf/open/floor/mineral/titanium/tiled/white,
/area/ship/medical/surgery)
@@ -3581,8 +3589,8 @@
/obj/item/fish_feed,
/obj/item/pen/fountain/solgov,
/obj/item/clothing/neck/cloak/solgovcap,
-/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/guncase/pistol/modelh,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/carpet/royalblue,
/area/ship/crew)
"IZ" = (
diff --git a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
index 14a2fff4895e..acb9beda3538 100644
--- a/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
+++ b/_maps/shuttles/subshuttles/Subshuttle Catalog.txt
@@ -78,4 +78,7 @@ Size = "15x11"
Purpose = "A hit-and-run vessel made locally by the Frontiersmen."
File Path = "_maps\shuttles\subshuttles\frontiersmen_brawler.dmm"
-
+Name = "Skink Cargo Runner"
+Size = "8x6"
+Purpose = "A small cargo shuttle. Typically found on Tegu-class freighters."
+File Path = "_maps\shuttles\subshuttles\nanotrasen_skink.dmm"
diff --git a/_maps/shuttles/subshuttles/independent_sugarcube.dmm b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
index 0504142f55b3..ad9ef66d3d5d 100644
--- a/_maps/shuttles/subshuttles/independent_sugarcube.dmm
+++ b/_maps/shuttles/subshuttles/independent_sugarcube.dmm
@@ -56,8 +56,8 @@
/turf/open/floor/plating,
/area/ship/engineering)
"h" = (
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/item/trash/cheesie,
/obj/item/trash/cheesie,
/obj/item/trash/candy,
@@ -259,8 +259,8 @@
/obj/item/circuitboard/machine/autolathe,
/obj/item/pickaxe/improvised,
/obj/item/pickaxe/improvised,
-/obj/effect/spawner/lootdrop/glowstick,
-/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
+/obj/effect/spawner/random/decoration/glowstick,
/obj/machinery/power/terminal{
dir = 8
},
diff --git a/_maps/shuttles/subshuttles/independent_superpill.dmm b/_maps/shuttles/subshuttles/independent_superpill.dmm
index de9046d091a4..d448e0cf263f 100644
--- a/_maps/shuttles/subshuttles/independent_superpill.dmm
+++ b/_maps/shuttles/subshuttles/independent_superpill.dmm
@@ -10,9 +10,9 @@
"b" = (
/obj/structure/catwalk,
/obj/machinery/conveyor_switch/oneway{
+ desc = "A conveyor control switch. It appears to only go in one direction; once you've pulled this, there's no going back.";
id = "superpill_start";
- name = "jumpstart device";
- desc = "A conveyor control switch. It appears to only go in one direction; once you've pulled this, there's no going back."
+ name = "jumpstart device"
},
/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
dir = 4
@@ -34,8 +34,8 @@
id = "superpill_start"
},
/obj/item/reagent_containers/pill/floorpill{
- pixel_y = -5;
- pixel_x = -1
+ pixel_x = -1;
+ pixel_y = -5
},
/obj/item/reagent_containers/pill/floorpill{
pixel_x = 6
@@ -80,7 +80,7 @@
name = "environmental storytelling"
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- filter_types = list("co2","bz","o2","plasma","water_vapor","nob","no2","tritium","freon","pluox","stim")
+ filter_types = list("co2","n2","co2","bz","water_vapor","miasma","freon","tritium","n20")
},
/turf/open/floor/plating{
initial_gas_mix = "n2o=28, n2=72;TEMP=7"
diff --git a/_maps/shuttles/subshuttles/nanotrasen_skink.dmm b/_maps/shuttles/subshuttles/nanotrasen_skink.dmm
new file mode 100644
index 000000000000..8922b42c52bc
--- /dev/null
+++ b/_maps/shuttles/subshuttles/nanotrasen_skink.dmm
@@ -0,0 +1,425 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/turf_decal/siding/white/end,
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage)
+"b" = (
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/crew/retro{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/storage)
+"c" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/terminal,
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"e" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ name = "Engine Access"
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_engine"
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage)
+"f" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Helm"
+ },
+/obj/effect/turf_decal/siding/white/end{
+ dir = 1
+ },
+/obj/item/radio/intercom/wideband/directional/west{
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = -8;
+ pixel_x = -22;
+ name = "Window Shutters";
+ id = "skink_bridge"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage)
+"j" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/binary/valve/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/valve/layer2{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "skink_door"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "skink_holofield";
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
+"m" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_bridge"
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"o" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"s" = (
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/airlock/grunge{
+ dir = 4;
+ req_ship_access = 0
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/storage)
+"t" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_engine"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/window/southright{
+ name = "Engine Access"
+ },
+/obj/machinery/power/smes/shuttle/micro/precharged,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ship/storage)
+"u" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/storage)
+"v" = (
+/obj/machinery/telecomms/relay/preset/nanotrasen,
+/obj/effect/turf_decal/industrial/hatch/red,
+/obj/machinery/light/small/directional/east,
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
+"w" = (
+/obj/machinery/power/smes/engineering{
+ inputting = 0
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/light/small/directional/east,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
+"D" = (
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/storage)
+"G" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 12
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/storage)
+"H" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"K" = (
+/turf/template_noop,
+/area/template_noop)
+"M" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"N" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_bridge";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"O" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/industrial/warning/fulltile,
+/obj/docking_port/mobile{
+ dir = 4;
+ name = "skink shuttle";
+ port_direction = 2;
+ preferred_direction = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8;
+ id = "skink_door"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "skink_holofield"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage)
+"P" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/turf_decal/siding/white{
+ dir = 2
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/power/terminal,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/storage)
+"Q" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/mineral/titanium/nodiagonal,
+/area/ship/storage)
+"R" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door{
+ pixel_y = 24;
+ name = "Cargo Door";
+ id = "skink_door";
+ pixel_x = -6
+ },
+/obj/machinery/button/shieldwallgen{
+ pixel_y = 23;
+ pixel_x = 5;
+ id = "skink_holofield";
+ name = "Shuttle Bay Holofield"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "6-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ship/storage)
+"S" = (
+/obj/effect/turf_decal/corner/opaque/neutral{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/helm/retro{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/storage)
+"T" = (
+/obj/structure/chair/comfy/shuttle,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_y = 7;
+ pixel_x = -22;
+ name = "Engine Shutters";
+ id = "skink_engine"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/cargo_one,
+/area/ship/storage)
+"V" = (
+/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "skink_bridge";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+"Z" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-9"
+ },
+/turf/open/floor/plating,
+/area/ship/storage)
+
+(1,1,1) = {"
+K
+D
+O
+j
+D
+K
+"}
+(2,1,1) = {"
+u
+D
+R
+H
+D
+u
+"}
+(3,1,1) = {"
+t
+T
+M
+Z
+c
+e
+"}
+(4,1,1) = {"
+D
+v
+G
+P
+w
+D
+"}
+(5,1,1) = {"
+Q
+D
+D
+s
+D
+Q
+"}
+(6,1,1) = {"
+K
+m
+f
+a
+V
+K
+"}
+(7,1,1) = {"
+K
+m
+S
+b
+V
+K
+"}
+(8,1,1) = {"
+K
+D
+N
+o
+D
+K
+"}
diff --git a/_maps/shuttles/subshuttles/pgf_nail.dmm b/_maps/shuttles/subshuttles/pgf_nail.dmm
index 6b0c12bc7f53..7414776c1e9f 100644
--- a/_maps/shuttles/subshuttles/pgf_nail.dmm
+++ b/_maps/shuttles/subshuttles/pgf_nail.dmm
@@ -397,8 +397,8 @@
},
/obj/machinery/porta_turret/ship/pgf/light{
dir = 8;
- mode = 1;
- id = "nail_grid"
+ id = "nail_grid";
+ lethal = 1
},
/turf/open/floor/engine/hull/reinforced/interior,
/area/ship/external/dark)
diff --git a/_maps/shuttles/subshuttles/syndicate_runner.dmm b/_maps/shuttles/subshuttles/syndicate_runner.dmm
index d7f64a0d43ee..036a10b49043 100644
--- a/_maps/shuttles/subshuttles/syndicate_runner.dmm
+++ b/_maps/shuttles/subshuttles/syndicate_runner.dmm
@@ -236,9 +236,9 @@
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"gi" = (
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_x = -2;
- pixel_y = 9
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/obj/structure/table/chem,
/turf/open/floor/plasteel/mono/dark,
diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
index 253a82277fdf..b838a83b5c36 100644
--- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
+++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm
@@ -849,9 +849,9 @@
/obj/structure/railing{
dir = 4
},
-/obj/effect/spawner/lootdrop/maintenance/five,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/maintenance/five,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/obj/item/stack/marker_beacon/thirty,
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
@@ -1100,9 +1100,6 @@
/turf/open/floor/plating,
/area/ship/engineering)
"zO" = (
-/obj/effect/turf_decal/arrows{
- dir = 4
- },
/obj/effect/turf_decal/industrial/warning/corner{
dir = 8
},
@@ -1593,13 +1590,11 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
"Pk" = (
-/obj/machinery/mineral/ore_redemption{
- dir = 8;
- input_dir = 8;
- output_dir = null
- },
-/obj/effect/turf_decal/box,
/obj/machinery/airalarm/directional/east,
+/obj/structure/table,
+/obj/item/storage/toolbox/ammo{
+ pixel_y = 4
+ },
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
"Qa" = (
diff --git a/_maps/shuttles/syndicate/syndicate_litieguai.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_litieguai.dmm
similarity index 66%
rename from _maps/shuttles/syndicate/syndicate_litieguai.dmm
rename to _maps/shuttles/syndicate/syndicate_cybersun_litieguai.dmm
index 2b12f177f57e..b007f06698d7 100644
--- a/_maps/shuttles/syndicate/syndicate_litieguai.dmm
+++ b/_maps/shuttles/syndicate/syndicate_cybersun_litieguai.dmm
@@ -9,17 +9,19 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
/obj/structure/chair/office/light{
dir = 8
},
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/science)
"an" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/hallway/central)
+/area/ship/crew/office/lobby)
"as" = (
/obj/machinery/computer/operating{
dir = 8
@@ -28,23 +30,24 @@
id = "traumasurgery";
name = "Surgery Shutter Control";
pixel_x = -7;
- pixel_y = 23
+ pixel_y = 21
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/medical/surgery)
"ba" = (
/obj/structure/mirror{
- pixel_x = 25
+ pixel_x = 21;
+ pixel_y = 1;
+ layer = 2.89
},
/obj/structure/sink{
dir = 8;
pixel_y = 0;
pixel_x = 12
},
-/obj/structure/sign/poster/official/cleanliness{
- pixel_y = -32
- },
-/turf/open/floor/plasteel/freezer,
+/obj/structure/chair/handrail,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/mono/white,
/area/ship/crew/toilet)
"bu" = (
/obj/machinery/door/airlock/maintenance_hatch{
@@ -52,7 +55,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
@@ -62,11 +65,15 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/starboard)
"bv" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 8
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ color = "#FFFFFF"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"bz" = (
/obj/machinery/light/small/directional/south,
/obj/machinery/power/ship_gravity,
@@ -86,7 +93,7 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/airlock/command{
@@ -102,54 +109,51 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
- },
/obj/machinery/firealarm/directional/north,
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 4
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"bT" = (
-/obj/machinery/smartfridge/bloodbank/preloaded{
- density = 0;
- pixel_y = 0;
- pixel_x = 32
- },
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/stasis{
dir = 8
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"cd" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plating,
+/obj/effect/turf_decal/isf_small/left,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"cK" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/light/small/directional/east,
/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"cL" = (
@@ -158,15 +162,45 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/paper_bin,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/effect/turf_decal/industrial/hatch/red,
-/obj/item/folder/white,
-/obj/item/pen,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "lobbydoors";
+ name = "Lobby Door Bolts Control";
+ normaldoorcontrol = 1;
+ pixel_x = 6;
+ pixel_y = 8;
+ specialfunctions = 4
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "lobbydoors";
+ name = "Lobby Door Control";
+ normaldoorcontrol = 1;
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "traumalobby";
+ name = "Lobby Shutter Control";
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ id = "traumashield";
+ name = "Lobby Holoshield";
+ pixel_x = -5;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office/lobby)
"dl" = (
/obj/machinery/door/firedoor/border_only{
dir = 1
@@ -174,10 +208,10 @@
/obj/machinery/door/firedoor/border_only,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/door/airlock/medical{
+/obj/machinery/door/airlock/freezer{
name = "Research"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plasteel/tech/grid,
@@ -185,27 +219,26 @@
"eo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/airlock/medical{
+/obj/machinery/door/airlock/public{
name = "Bathroom"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/toilet)
"eS" = (
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"eT" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/computer/rdconsole/core{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/power/apc/auto_name/directional/south,
@@ -215,7 +248,10 @@
pixel_y = -16
},
/obj/machinery/light/directional/west,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
/area/ship/science)
"fe" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
@@ -228,10 +264,12 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/science)
"fo" = (
/obj/machinery/door/firedoor/border_only{
@@ -243,7 +281,7 @@
/obj/machinery/door/airlock/medical{
name = "Surgery"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plasteel/tech/grid,
@@ -252,61 +290,73 @@
/turf/closed/wall/mineral/titanium,
/area/ship/maintenance/port)
"fW" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
+/obj/machinery/holopad/emergency/medical{
+ secure = 1;
+ name = "secure advanced medical holopad"
},
-/obj/machinery/holopad/emergency/medical,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"fX" = (
-/obj/machinery/vending/snack/random,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 8
- },
-/obj/structure/sign/poster/official/cleanliness{
+/obj/effect/spawner/random/vending/snack,
+/obj/structure/sign/poster/contraband/cybersun{
pixel_y = 32
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal,
+/obj/machinery/camera/autoname{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
"gf" = (
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/structure/closet/crate/freezer/surplus_limbs,
+/obj/structure/closet/crate/freezer/surplus_limbs{
+ anchored = 1
+ },
/obj/machinery/airalarm/directional/south,
/obj/machinery/firealarm/directional/east,
/obj/machinery/iv_drip,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"gL" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/cargo)
"gW" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 11;
+ pixel_y = -16
+ },
+/obj/structure/cable/yellow,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"hF" = (
/obj/structure/table/reinforced,
-/obj/machinery/fax/syndicate,
-/turf/open/floor/plasteel/dark,
+/obj/machinery/fax/syndicate{
+ pixel_y = 6;
+ layer = 3.09
+ },
+/obj/effect/turf_decal/corner/opaque/syndiered{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"hQ" = (
/obj/structure/table/optable,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/medical/surgery)
"hS" = (
-/obj/effect/turf_decal/industrial/hatch/red,
/obj/machinery/firealarm/directional/west,
/obj/item/reagent_containers/glass/bottle/formaldehyde,
/obj/item/storage/box/syringes,
/obj/item/storage/box/bodybags,
/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/light_switch{
@@ -314,15 +364,26 @@
pixel_y = 22
},
/obj/structure/closet/secure_closet{
- name = "mortuary locker"
+ name = "mortuary locker";
+ anchored = 1
+ },
+/obj/effect/turf_decal/box/white,
+/obj/machinery/camera/autoname{
+ dir = 5
},
/turf/open/floor/plasteel/tech,
/area/ship/medical/surgery)
"hW" = (
-/obj/structure/dresser{
+/obj/structure/bed{
dir = 8
},
-/turf/open/floor/carpet/cyan,
+/obj/item/bedsheet/black,
+/obj/structure/curtain/cloth/grey,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"ih" = (
/obj/machinery/power/smes/shuttle/precharged{
@@ -344,15 +405,12 @@
/obj/structure/bed{
dir = 8
},
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/blue{
- dir = 8
- },
+/obj/structure/curtain/cloth/grey,
+/obj/item/bedsheet/black,
/obj/machinery/light/small/directional/south,
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"iz" = (
-/obj/effect/landmark/start/paramedic,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
@@ -360,190 +418,239 @@
dir = 4
},
/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"iA" = (
/turf/closed/wall/mineral/titanium,
/area/ship/crew)
"iC" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/wood/ebony,
+/obj/structure/table/chem{
+ name = "kitchen counter"
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/trash/plate{
+ pixel_y = -5;
+ pixel_x = 5
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
+ pixel_y = 4;
+ pixel_x = -4
+ },
+/obj/structure/sign/poster/contraband/cybersun_borg{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"iQ" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"iW" = (
-/turf/open/floor/carpet/cyan,
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = -8
+ },
+/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"jh" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/structure/table/chem{
+ name = "kitchen counter"
+ },
/obj/item/radio/intercom/directional/west,
-/turf/open/floor/wood/ebony,
+/obj/item/reagent_containers/food/drinks/dry_ramen{
+ pixel_x = 7;
+ list_reagents = null;
+ pixel_y = 7
+ },
+/obj/structure/sink/chem{
+ name = "kitchen sink";
+ dir = 4;
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"jK" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
/obj/machinery/door/poddoor{
dir = 1;
id = "traumaramp"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/ship/storage/eva)
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
"jU" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 8
},
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"ke" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile/shuttle,
-/obj/structure/curtain/cloth,
+/obj/structure/catwalk/over,
/turf/open/floor/plating,
-/area/ship/science)
+/area/ship/external/dark)
"kh" = (
-/obj/machinery/power/terminal{
- dir = 8
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 2;
+ color = "#FFFFFF"
},
/obj/structure/cable/yellow{
- icon_state = "0-4"
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"kw" = (
/obj/structure/chair{
dir = 8
},
-/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#332521"
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
},
-/turf/open/floor/wood/ebony,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"la" = (
/obj/structure/railing{
dir = 10
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 4
},
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/storage/eva)
-"li" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 8
},
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
+/area/ship/cargo)
+"li" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"lJ" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
+/obj/structure/cable/yellow,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/warning{
dir = 4
},
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 11;
- pixel_y = -16
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 8;
+ color = "#FFFFFF"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"lS" = (
-/obj/structure/chair,
+/obj/structure/chair/bench/grey/directional/south,
/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
-"lX" = (
-/obj/structure/chair{
- dir = 1
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 6
},
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
+"lX" = (
+/obj/structure/chair/bench/grey/directional/north,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
"mo" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
/obj/machinery/photocopier,
-/obj/structure/extinguisher_cabinet/directional/east,
-/turf/open/floor/carpet/cyan,
-/area/ship/hallway/central)
+/obj/machinery/firealarm/directional/east,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = -12
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/crew/office/lobby)
"mu" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
"mx" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/autolathe,
/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/science)
"mP" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/maintenance/port)
"na" = (
-/obj/machinery/vending/cola/random,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 8
+/obj/effect/spawner/random/vending/cola,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 1
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
"nb" = (
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
@@ -552,9 +659,10 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
+/obj/structure/chair/handrail,
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical/surgery)
"nu" = (
@@ -564,7 +672,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"nI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -573,38 +681,33 @@
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/airlock/medical{
- name = "Treatment Center"
+/obj/machinery/door/airlock/medical/glass{
+ name = "Treatment Center";
+ req_ship_access = 0
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plasteel/tech/grid,
/area/ship/medical)
"nW" = (
-/obj/structure/cable,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = 11;
- pixel_y = -16
- },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"oc" = (
-/obj/effect/turf_decal/corner/opaque/red/full,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/corner/opaque/cybersunteal/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"ot" = (
/obj/machinery/door/poddoor/preopen{
dir = 8;
@@ -613,26 +716,27 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/bridge)
"oA" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/warning{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"pf" = (
/obj/docking_port/stationary{
dwidth = 8;
@@ -642,40 +746,36 @@
/turf/template_noop,
/area/template_noop)
"pK" = (
-/turf/open/floor/carpet/cyan,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/crew/office/lobby)
"pQ" = (
-/obj/effect/turf_decal/corner/opaque/red/full,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/corner/opaque/cybersunteal/half{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"qr" = (
/obj/machinery/power/shieldwallgen/atmos/roundstart{
dir = 4;
id = "traumashield2"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-2"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
+/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/poddoor{
id = "traumaramp"
},
-/turf/open/floor/engine,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
"qv" = (
/obj/structure/table,
/obj/machinery/button/door{
@@ -683,18 +783,23 @@
id = "traumastore";
name = "Storage Shutter Control";
pixel_x = -7;
- pixel_y = -22
+ pixel_y = -20
},
/obj/item/storage/box/bodybags,
/obj/item/storage/box/bodybags,
/obj/item/storage/box/masks,
/obj/item/storage/box/masks,
/obj/item/storage/box/pillbottles,
-/obj/structure/closet/wall/white/chem{
- dir = 4;
- name = "Medical Supplies Locker";
- pixel_x = -28
+/obj/structure/closet/wall/white/directional/west{
+ icon_door = "chemical_wall";
+ name = "Medical Supplies Locker"
},
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/roller,
+/obj/item/clothing/mask/breath/medical,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"qA" = (
@@ -707,79 +812,62 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/medical)
"qW" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/mob/living/simple_animal/hostile/retaliate/poison/snake{
- desc = "The CMO's pet snake. The question of what species it actually belongs to is a mystery for the ages.";
- dir = 8;
- name = "\proper Deuce"
- },
-/obj/structure/bed/dogbed{
- anchored = 1;
- desc = "A comfy-looking... snake bed? There's bits of shed scales stuck in the bedding...";
- name = "snake bed"
- },
-/obj/item/clothing/glasses/hud/health,
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"rk" = (
/obj/machinery/rnd/production/techfab/department/medical,
-/obj/effect/turf_decal/industrial/hatch/red,
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 8
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/science)
"rn" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"rA" = (
-/obj/structure/cable,
+/obj/structure/cable/yellow,
/obj/machinery/power/shieldwallgen/atmos/roundstart{
dir = 1;
id = "traumashield"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 8;
- id = "traumalobby";
- name = "Lobby"
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "traumalobby"
},
-/turf/open/floor/engine,
-/area/ship/cargo)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/office/lobby)
"rJ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/effect/turf_decal/industrial/warning{
- dir = 8
+ dir = 9;
+ color = "#FFFFFF"
},
/obj/machinery/button/door{
dir = 2;
@@ -788,18 +876,23 @@
pixel_x = -5;
pixel_y = 22
},
-/turf/open/floor/plating,
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"rS" = (
/obj/structure/toilet{
dir = 8
},
-/obj/structure/window/reinforced/tinted/frosted,
+/obj/structure/window/reinforced/survival_pod,
/obj/machinery/door/window/survival_pod{
dir = 8
},
-/obj/structure/curtain,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/curtain/cloth{
+ color = "#4C9C9C"
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/crew/toilet)
"rT" = (
/turf/closed/wall/mineral/titanium,
@@ -808,90 +901,91 @@
/obj/machinery/stasis{
dir = 8
},
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/light/directional/north,
/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"sx" = (
/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/stairs/right{
- dir = 1
+/turf/open/floor/plasteel/stairs/left{
+ dir = 1;
+ color = "#777777"
},
-/area/ship/storage/eva)
+/area/ship/cargo)
"sC" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
+/obj/machinery/door/firedoor/heavy,
/obj/docking_port/mobile{
dir = 4;
launch_status = 0;
preferred_direction = 4;
port_direction = 2
},
-/obj/machinery/door/poddoor/shutters{
- dir = 8;
- id = "traumalobby";
- name = "Lobby"
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "traumalobby"
},
-/turf/open/floor/engine,
-/area/ship/cargo)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/office/lobby)
"sI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/light/small/directional/east,
/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"sO" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/bodycontainer/morgue{
dir = 1
},
/obj/machinery/light/directional/south,
/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/mono/dark,
/area/ship/medical/surgery)
"tb" = (
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/structure/reagent_dispensers/watertank,
-/obj/item/mop,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/storage/bag/trash,
/obj/machinery/light/small/directional/east,
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/item/stack/sheet/mineral/plasma/twenty,
+/obj/structure/cable/cyan{
+ icon_state = "0-8"
+ },
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"tn" = (
-/turf/closed/wall/mineral/titanium,
-/area/ship/storage/eva)
-"tF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
+/obj/effect/turf_decal/corner/opaque/white/half,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/turf/open/floor/plasteel/white,
+/area/ship/hallway/central)
+"tF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"tI" = (
/obj/machinery/atmospherics/pipe/layer_manifold{
@@ -907,18 +1001,18 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"tJ" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/power/apc/auto_name/directional/east,
/obj/machinery/light_switch{
dir = 8;
pixel_x = 19;
pixel_y = -12
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-8"
},
/obj/structure/closet/crate/freezer{
- name = "organ freezer"
+ name = "organ freezer";
+ anchored = 1
},
/obj/item/organ/heart/cybernetic,
/obj/item/organ/heart/cybernetic,
@@ -932,13 +1026,22 @@
/obj/item/organ/stomach/cybernetic,
/obj/item/organ/eyes/robotic,
/obj/item/organ/eyes/robotic,
+/obj/effect/turf_decal/box/white,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"tO" = (
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
+/obj/effect/turf_decal/corner/opaque/cybersunteal{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
"tT" = (
-/obj/structure/closet/secure_closet/personal/patient,
+/obj/structure/closet/secure_closet/personal/patient{
+ anchored = 1
+ },
/obj/item/clothing/under/rank/medical/gown,
/obj/item/clothing/under/rank/medical/gown,
/obj/item/clothing/under/rank/medical/gown/blue,
@@ -948,8 +1051,11 @@
/obj/item/clothing/shoes/sandal/slippers,
/obj/item/clothing/shoes/sandal/slippers,
/obj/item/clothing/shoes/sandal/slippers,
-/obj/effect/turf_decal/industrial/outline/red,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"uc" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
@@ -958,100 +1064,104 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 5;
- color = "#332521"
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
-/turf/open/floor/wood/ebony,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"up" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"us" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/machinery/light_switch{
dir = 1;
pixel_y = -19;
pixel_x = -8
},
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 8
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"uE" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/line{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"uT" = (
-/obj/effect/turf_decal/industrial/loading,
/obj/machinery/defibrillator_mount/loaded{
- pixel_y = 0;
- pixel_x = -32
+ pixel_y = 7;
+ pixel_x = -26
},
-/obj/structure/sink{
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/structure/sink/kitchen{
+ layer = 3.09;
+ name = "large sink";
dir = 4;
- pixel_y = 0;
- pixel_x = -13
+ pixel_y = -5
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical/surgery)
"uU" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
dir = 1
},
/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/airlock/medical{
- name = "Storage Room"
+/obj/machinery/door/airlock/freezer{
+ name = "Cargo Bay"
},
/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/area/ship/cargo)
"vj" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
/obj/structure/closet/secure_closet/wall/directional/north{
- icon_state = "sec_wall";
+ icon_state = "solgov_wall";
name = "firearms locker";
req_access_txt = "5"
},
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/gun/ballistic/automatic/pistol/ringneck,
-/obj/item/gun/ballistic/automatic/pistol/ringneck,
-/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/machinery/light/small/directional/east,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/cybersunteal{
+ dir = 6
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/item/storage/guncase/pistol/pc76,
+/obj/item/storage/guncase/pistol/pc76,
+/obj/item/storage/guncase/pistol/rattlesnake,
+/obj/item/storage/box/ammo/c22lr,
+/obj/item/storage/box/ammo/c9mm,
+/obj/item/storage/box/ammo/c10mm,
+/obj/item/storage/box/ammo/c10mm,
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/crew)
"vn" = (
-/obj/machinery/smartfridge/organ{
- density = 0;
- pixel_x = 32
- },
/obj/structure/table/glass,
/obj/machinery/cell_charger,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"vx" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/on{
@@ -1059,14 +1169,13 @@
},
/obj/structure/catwalk/over,
/turf/open/floor/plating,
-/area/ship/external)
+/area/ship/external/dark)
"vE" = (
/obj/structure/chair/comfy/shuttle{
- dir = 4;
- name = "Helm"
+ dir = 4
},
/obj/effect/landmark/start/captain,
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"wb" = (
/turf/closed/wall/mineral/titanium,
@@ -1077,7 +1186,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
@@ -1085,35 +1194,51 @@
},
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo)
+/area/ship/crew/office/lobby)
"wp" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/rnd/server,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/science)
"wr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/machinery/airalarm/directional/north,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/closet/wall/directional/west,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 8
+ },
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/towel,
+/obj/item/soap/syndie,
+/turf/open/floor/plasteel/mono/white,
/area/ship/crew/toilet)
"wt" = (
/obj/structure/closet/emcloset/wall/directional/north,
-/obj/effect/turf_decal/number/two,
+/obj/machinery/power/terminal,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
+/obj/structure/cable/cyan{
+ icon_state = "0-4"
+ },
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"xa" = (
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/light/small/directional/north,
/obj/effect/turf_decal/industrial/warning{
- dir = 10
+ dir = 10;
+ color = "#FFFFFF"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"xp" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1122,110 +1247,119 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
},
-/obj/structure/sign/poster/official/help_others{
+/obj/structure/sign/poster/contraband/cybersun_med{
pixel_y = 32
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
},
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"xB" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 4
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 8;
+ pixel_y = 19
},
-/obj/item/kirbyplants/random,
/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
-"xF" = (
-/obj/machinery/computer/helm{
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 1;
+ color = "#FFFFFF"
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/line{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
+"xF" = (
+/obj/machinery/computer/cargo{
+ dir = 8;
+ icon_keyboard = "syndie_key";
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 5
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"xN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
-/obj/effect/landmark/start/assistant,
-/obj/effect/turf_decal/siding/wood{
- dir = 6;
- color = "#332521"
- },
-/turf/open/floor/wood/ebony,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"xW" = (
-/obj/machinery/power/port_gen/pacman,
/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/item/stack/sheet/mineral/plasma/twenty,
-/obj/item/radio/intercom/directional/south,
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"yf" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"yn" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-2"
},
/obj/machinery/power/shieldwallgen/atmos/roundstart{
id = "traumashield"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 8;
- id = "traumalobby";
- name = "Lobby"
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "traumalobby"
},
-/turf/open/floor/engine,
-/area/ship/cargo)
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/office/lobby)
"yQ" = (
/obj/machinery/computer/med_data{
- dir = 8
+ dir = 8;
+ icon_state = "computer-right"
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/opaque/syndiered{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"yT" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/effect/turf_decal/industrial/warning/corner{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
+ dir = 8;
+ color = "#FFFFFF"
},
/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"yX" = (
-/obj/effect/turf_decal/corner/opaque/red/full,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/corner/opaque/cybersunteal/half,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"zh" = (
/obj/structure/table/glass,
/obj/item/reagent_containers/glass/bottle/formaldehyde{
@@ -1244,38 +1378,39 @@
},
/obj/item/reagent_containers/syringe,
/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"zl" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/hallway/central)
-"zn" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/white{
- pixel_x = -5
- },
-/obj/item/stamp/cmo{
- pixel_x = -1;
- pixel_y = 12
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 8
},
-/obj/item/pen{
- pixel_x = -5
+/obj/structure/chair/handrail{
+ dir = 1
},
-/obj/item/paper_bin{
- pixel_x = 9
+/obj/structure/sign/poster/contraband/cybersun{
+ pixel_y = -32
},
-/obj/item/clothing/neck/stethoscope,
-/obj/machinery/recharger,
+/turf/open/floor/plasteel/white,
+/area/ship/hallway/central)
+"zn" = (
/obj/machinery/light/small/directional/south,
/obj/machinery/firealarm/directional/east,
-/turf/open/floor/carpet/cyan,
+/obj/machinery/modular_computer/console/preset/command{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/syndiered{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"zo" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
@@ -1284,7 +1419,8 @@
/obj/machinery/door/airlock/medical/glass{
dir = 8;
id_tag = "lobbydoors";
- name = "Sickbay"
+ name = "Sickbay";
+ req_ship_access = 0
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -1292,25 +1428,31 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
+/obj/effect/turf_decal/corner/opaque/cybersunteal{
+ dir = 10
+ },
/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/area/ship/crew/office/lobby)
"zy" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
+/obj/effect/turf_decal/corner/opaque/white/half,
+/obj/effect/turf_decal/trimline/opaque/syndiered/line,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"zD" = (
-/obj/effect/turf_decal/arrows/red{
- dir = 1
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
},
/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
+/area/ship/cargo)
"zK" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
@@ -1329,28 +1471,25 @@
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"zL" = (
-/obj/structure/table/reinforced,
-/obj/item/folder/blue,
-/obj/item/pen/fourcolor,
-/obj/machinery/button/door{
- dir = 8;
- id = "traumawindows";
- name = "Window Shutters";
- pixel_x = 5;
- pixel_y = 7
+/obj/structure/bed/dogbed{
+ anchored = 1;
+ desc = "A comfy-looking... snake bed? There's bits of shed scales stuck in the bedding...";
+ name = "snake bed"
},
-/obj/machinery/button/door{
+/mob/living/simple_animal/hostile/retaliate/poison/snake{
+ desc = "A red, slithery snake. The question of what species it actually belongs to is a mystery for the ages.";
dir = 8;
- id = "traumabridge";
- name = "Bridge Window Shutters";
- pixel_x = -5;
- pixel_y = 7
+ name = "\proper Deuce";
+ icon = 'icons/mob/pets.dmi';
+ icon_dead = "bookworm_dead";
+ icon_living = "bookworm";
+ icon_state = "bookworm"
},
-/obj/item/stamp/syndicate{
- pixel_x = -7;
- pixel_y = -1
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 8;
+ pixel_y = 19
},
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"zM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1359,54 +1498,73 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/item/radio/intercom/directional/north,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"zS" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_y = 19
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/medical)
"zT" = (
-/obj/effect/turf_decal/number/zero,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/isf_small/right,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"Ah" = (
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/carpet/cyan,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/wall/directional/west{
+ icon_state = "sec_wall";
+ name = "captain's closet";
+ req_access_txt = "20"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/obj/item/storage/backpack/security,
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/under/syndicate/cybersun/officer,
+/obj/item/clothing/suit/armor/vest/capcarapace/cybersun,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/head/HoS/cybersun,
+/obj/item/pen/edagger,
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"Ai" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 8
},
/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/storage)
"Aj" = (
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
/obj/structure/closet/secure_closet/wall/directional/south{
- icon_state = "sec_wall";
+ icon_state = "solgov_wall";
name = "armor locker";
req_access_txt = "5"
},
@@ -1417,24 +1575,34 @@
/obj/item/clothing/head/helmet/medical,
/obj/item/clothing/head/helmet/medical,
/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/obj/effect/turf_decal/corner/opaque/cybersunteal{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/crew)
"Ap" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 8
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8;
+ color = "#FFFFFF"
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"AD" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Port Engines"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
@@ -1442,7 +1610,7 @@
},
/obj/machinery/door/firedoor/border_only,
/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo)
+/area/ship/crew/office/lobby)
"AJ" = (
/turf/closed/wall/mineral/titanium,
/area/ship/cargo)
@@ -1456,7 +1624,7 @@
/obj/machinery/door/airlock/medical{
name = "Storage Room"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plasteel/tech/grid,
@@ -1465,70 +1633,74 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/industrial/warning/corner,
/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
+ dir = 1;
+ color = "#FFFFFF"
},
/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"Bp" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 5
- },
-/obj/machinery/cryopod{
+/obj/machinery/cryopod/syndicate{
dir = 1
},
/obj/machinery/computer/cryopod/directional/south,
/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/industrial/hatch{
+ color = "#730622";
+ alpha = 255
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5;
+ color = "#FFFFFF"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/crew)
"BD" = (
-/obj/item/storage/belt/medical,
-/obj/item/healthanalyzer/advanced,
-/obj/item/hypospray/mkii/CMO,
-/obj/structure/closet/secure_closet/wall/directional/west{
- icon_state = "solgov_wall";
- name = "chief medical officer's closet";
- req_access_txt = "40"
+/obj/machinery/computer/security{
+ dir = 1;
+ icon_keyboard = "syndie_key"
},
-/obj/item/storage/backpack/satchel/med,
-/obj/item/defibrillator/compact/loaded,
-/obj/item/gun/syringe,
-/obj/item/reagent_containers/glass/bottle/sodium_thiopental,
-/obj/item/clothing/glasses/hud/health/night,
-/obj/item/gun/ballistic/automatic/pistol/ringneck,
-/obj/item/clothing/gloves/color/latex/nitrile/evil,
-/obj/item/clothing/suit/toggle/labcoat/raincoat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/head/beret/cmo/cybersun,
-/obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun,
-/turf/open/floor/carpet/cyan,
+/obj/effect/turf_decal/corner/opaque/syndiered{
+ dir = 10
+ },
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"BU" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/suit_storage_unit/inherit,
/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed,
-/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/breath,
/obj/item/tank/internals/oxygen/red,
+/obj/effect/turf_decal/box/white,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
+/area/ship/cargo)
"Ca" = (
-/obj/machinery/computer/crew{
+/obj/machinery/computer/crew/syndie{
+ icon_state = "computer-left";
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/obj/effect/turf_decal/corner/opaque/syndiered{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"Cp" = (
-/obj/machinery/door/airlock/medical{
- name = "Crew Quarters"
+/obj/machinery/door/airlock/public{
+ name = "Crew Quarters";
+ req_ship_access = 1
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
@@ -1540,17 +1712,14 @@
"Cy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"CF" = (
-/obj/machinery/door/window/brigdoor/southright{
- dir = 8;
+/obj/machinery/door/window/brigdoor/westleft{
req_access_txt = "5"
},
/obj/item/clothing/shoes/combat,
@@ -1560,7 +1729,7 @@
dir = 5
},
/obj/structure/closet/secure_closet/wall/directional/south{
- icon_state = "sec_wall";
+ icon_state = "solgov_wall";
name = "clothing locker";
req_access_txt = "5"
},
@@ -1579,18 +1748,21 @@
/obj/item/clothing/under/syndicate/medic/skirt,
/obj/item/clothing/under/syndicate/medic/skirt,
/obj/item/clothing/under/syndicate/medic/skirt,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/crew)
"CL" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
"CZ" = (
/obj/machinery/door/poddoor/preopen{
dir = 8;
@@ -1599,16 +1771,17 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/crew)
"Dp" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
-/obj/machinery/door/poddoor/preopen{
- dir = 8;
+/obj/machinery/door/poddoor/shutters/preopen{
id = "traumasurgery";
- name = "Window Blast Door"
+ dir = 4
},
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/medical)
"Dr" = (
@@ -1618,17 +1791,16 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"DS" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -1640,27 +1812,21 @@
pixel_y = -17;
pixel_x = 11
},
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 8
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/ship/maintenance/port)
"DX" = (
-/obj/structure/closet/crate/medical,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/roller,
-/obj/item/clothing/mask/breath/medical,
-/obj/effect/turf_decal/industrial/outline/red,
+/obj/structure/closet/crate/freezer/blood,
/obj/machinery/iv_drip,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"Eb" = (
@@ -1668,79 +1834,112 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Ev" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew)
"EL" = (
-/obj/structure/bed{
- dir = 8
- },
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/cmo{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
+/obj/effect/turf_decal/corner/opaque/white/half,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line,
+/turf/open/floor/plasteel/white,
+/area/ship/hallway/central)
"ES" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/obj/item/radio/intercom/wideband/directional/west,
-/turf/open/floor/carpet/cyan,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "traumawindows";
+ name = "Window Shutters";
+ pixel_x = -20;
+ pixel_y = -9
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "traumabridge";
+ name = "Bridge Window Shutters";
+ pixel_x = -20;
+ pixel_y = 2
+ },
+/obj/machinery/newscaster/directional/west{
+ pixel_y = 13
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"EW" = (
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 1
},
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel/patterned/brushed,
/area/ship/medical/surgery)
"Fe" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/suit_storage_unit/inherit,
/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed,
-/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/breath,
/obj/item/tank/internals/oxygen/red,
/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
+/area/ship/cargo)
"Fr" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
-/obj/machinery/door/poddoor/preopen{
- dir = 8;
+/obj/machinery/door/poddoor/shutters/preopen{
id = "traumastore";
- name = "Window Blast Door"
+ dir = 4
},
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/storage)
+"Ft" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/cybersunteal/mono,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"FE" = (
/obj/effect/landmark/start/paramedic,
-/turf/open/floor/plasteel/patterned/brushed,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"FH" = (
/obj/structure/chair{
- dir = 4
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"FO" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
-/turf/open/floor/carpet/cyan,
+/obj/structure/railing,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"Gj" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1749,29 +1948,29 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
"Gr" = (
-/obj/effect/turf_decal/corner/opaque/red/full,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/corner/opaque/cybersunteal/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"Gs" = (
-/obj/structure/table,
+/obj/structure/table/chem{
+ name = "kitchen counter"
+ },
/obj/machinery/microwave{
pixel_y = 5
},
/obj/machinery/newscaster/directional/west,
-/obj/effect/turf_decal/siding/wood{
- dir = 2;
- color = "#332521"
- },
-/turf/open/floor/wood/ebony,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"Gw" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1780,13 +1979,14 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/airlock/medical/glass{
dir = 8;
id_tag = "lobbydoors";
- name = "Sickbay"
+ name = "Sickbay";
+ req_ship_access = 0
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -1794,30 +1994,33 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/corner/opaque/white/mono,
/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/area/ship/crew/office/lobby)
"GH" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4;
- name = "Medical"
+/obj/structure/chair/office/dark{
+ dir = 4
},
/obj/effect/landmark/start/chief_medical_officer,
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"GI" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/industrial/warning{
+ dir = 2;
+ color = "#FFFFFF"
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"GK" = (
-/obj/structure/chair,
+/obj/structure/chair/bench/grey/directional/south,
/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
"GZ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/turf_decal/spline/fancy/opaque/black{
@@ -1827,7 +2030,7 @@
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/turf/open/floor/plasteel/patterned/brushed,
@@ -1835,7 +2038,7 @@
"Hb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
/obj/machinery/door/firedoor/border_only{
@@ -1848,79 +2051,66 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/maintenance/port)
"Hk" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/crate_shelf,
/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
+/area/ship/cargo)
"Hl" = (
-/obj/structure/sign/poster/contraband/random,
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/crew)
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 4
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/white,
+/area/ship/hallway/central)
"HE" = (
/obj/structure/rack,
-/obj/effect/turf_decal/industrial/outline/red,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/metal/fifty,
/obj/item/radio/intercom/directional/west,
/obj/item/multitool,
/obj/machinery/iv_drip,
+/obj/item/stack/sheet/metal/twenty,
+/obj/item/stack/sheet/metal/five,
+/obj/item/stack/sheet/glass/twenty,
+/obj/item/stack/sheet/glass/five,
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/plastic/five,
+/obj/item/stack/sheet/plastic/five,
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
+/area/ship/cargo)
"HI" = (
/obj/structure/table/reinforced,
-/obj/machinery/door/window/southleft{
- dir = 8
- },
-/obj/machinery/button/door{
- dir = 4;
- id = "lobbydoors";
- name = "Lobby Door Control";
- normaldoorcontrol = 1;
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/machinery/door/window/westleft,
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/effect/turf_decal/industrial/hatch/red,
-/obj/machinery/button/shieldwallgen{
- dir = 4;
- id = "traumashield";
- name = "Lobby Holoshield";
- pixel_x = -6;
- pixel_y = 8
- },
-/obj/machinery/button/door{
- dir = 4;
- id = "lobbydoors";
- name = "Lobby Door Bolts Control";
- normaldoorcontrol = 1;
- pixel_x = 6;
- pixel_y = 8;
- specialfunctions = 4
- },
-/obj/machinery/button/door{
- dir = 4;
- id = "traumalobby";
- name = "Lobby Shutter Control";
- pixel_x = -6;
- pixel_y = -4
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal/corner,
+/obj/item/paper_bin{
+ pixel_y = 15;
+ pixel_x = -2
},
-/turf/open/floor/plating,
-/area/ship/cargo)
+/obj/item/pen,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office/lobby)
"HR" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/firealarm/directional/north,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
+ },
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"HU" = (
/obj/structure/sign/departments/medbay/alt,
@@ -1930,16 +2120,14 @@
/obj/structure/chair{
dir = 8
},
-/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
},
-/obj/effect/turf_decal/siding/wood{
- dir = 4;
- color = "#332521"
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
},
-/turf/open/floor/wood/ebony,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"Jh" = (
/obj/machinery/door/poddoor/preopen{
@@ -1948,6 +2136,7 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/medical/surgery)
"Jw" = (
@@ -1970,38 +2159,38 @@
/turf/open/floor/plating,
/area/ship/maintenance/port)
"JA" = (
-/obj/machinery/power/smes/engineering{
- charge = 1e+006
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/mop,
+/obj/item/pushbroom,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/storage/bag/trash,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 2;
+ color = "#FFFFFF"
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/turf/open/floor/plating,
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"JC" = (
/obj/machinery/power/shieldwallgen/atmos/roundstart{
dir = 8;
id = "traumashield2"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-2"
},
/obj/machinery/door/poddoor{
id = "traumaramp"
},
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/ship/storage/eva)
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
"JQ" = (
-/obj/structure/sign/warning/gasmask{
- pixel_y = 32
- },
/obj/item/stack/marker_beacon/thirty,
/obj/item/stack/marker_beacon/thirty,
/obj/item/stack/marker_beacon/thirty,
@@ -2019,16 +2208,14 @@
desc = "For extracting yourself from rough landings, and getting to the even rougher ones";
name = "Medical Retrieval Tool"
},
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
"Kc" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/crew)
"Ki" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/vending/medical,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
@@ -2036,66 +2223,62 @@
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/light/small/directional/south,
/obj/effect/turf_decal/industrial/warning{
- dir = 9
+ dir = 9;
+ color = "#FFFFFF"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/port)
"Kp" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/effect/turf_decal/industrial/warning{
- dir = 8
+ dir = 10;
+ color = "#FFFFFF"
},
/obj/machinery/button/door{
id = "traumaenginer";
name = "Engine Shutter Control";
pixel_x = -5;
- pixel_y = -18;
+ pixel_y = -20;
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"Kv" = (
-/obj/structure/closet/secure_closet{
- icon_state = "med_secure";
- name = "medical intern's locker"
- },
-/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/glasses/hud/health,
-/obj/item/clothing/glasses/hud/health,
-/obj/item/healthanalyzer,
-/obj/item/healthanalyzer,
-/obj/item/healthanalyzer,
-/obj/item/storage/backpack/satchel/med,
-/obj/item/storage/backpack/satchel/med,
-/obj/item/storage/backpack/satchel/med,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
/obj/structure/extinguisher_cabinet/directional/north,
-/obj/effect/turf_decal/siding/wood{
- dir = 1;
- color = "#332521"
+/obj/effect/turf_decal/box/white,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/light_switch{
+ pixel_x = 11;
+ pixel_y = 19
},
-/obj/item/clothing/under/syndicate/cybersun,
-/obj/item/clothing/under/syndicate/cybersun,
-/obj/item/clothing/under/syndicate/cybersun,
-/turf/open/floor/wood/ebony,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/structure/closet/crate/freezer{
+ name = "fridge";
+ anchored = 1
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"KB" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
@@ -2103,93 +2286,133 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"KS" = (
-/obj/machinery/power/port_gen/pacman,
-/obj/structure/cable/yellow{
+/obj/structure/cable/cyan{
icon_state = "0-8"
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
/obj/item/stack/sheet/mineral/plasma/twenty,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"KU" = (
-/obj/structure/bed{
+/obj/structure/dresser{
dir = 8
},
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/blue{
- dir = 8
+/obj/effect/spawner/random/entertainment/plushie/moth{
+ pixel_y = 11
},
-/turf/open/floor/carpet/cyan,
+/obj/structure/sign/poster/contraband/stechkin{
+ pixel_x = 32
+ },
+/turf/open/floor/carpet/nanoweave,
/area/ship/crew)
"KW" = (
/obj/structure/sign/departments/medbay/alt,
/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/cargo)
+/area/ship/crew/office/lobby)
"KZ" = (
/obj/machinery/suit_storage_unit/inherit,
-/obj/effect/turf_decal/industrial/hatch/red,
/obj/structure/sign/warning/nosmoking{
pixel_x = 32
},
/obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed,
-/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/breath,
/obj/item/tank/internals/oxygen/red,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
-"Le" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
+/area/ship/cargo)
+"La" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 8
+ },
+/obj/machinery/camera/autoname{
dir = 1
},
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/white,
+/area/ship/hallway/central)
+"Le" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 1
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 4
+ },
+/obj/machinery/camera/autoname,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"Lh" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"Ln" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 8
},
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"Lr" = (
-/obj/machinery/modular_computer/console/preset/command,
+/obj/structure/table/glass,
/obj/machinery/light/small/directional/north,
-/turf/open/floor/carpet/cyan,
+/obj/item/radio/intercom/wideband/table{
+ dir = 1;
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/stamp/cybersun/biodynamics{
+ pixel_y = 12;
+ pixel_x = -10
+ },
+/obj/item/folder/syndicate{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 5
+ },
+/obj/item/binoculars{
+ pixel_x = -9
+ },
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"Ls" = (
/obj/structure/table/reinforced,
@@ -2205,20 +2428,16 @@
/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/effect/turf_decal/industrial/hatch/red,
-/turf/open/floor/plating,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office/lobby)
"LH" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/door/firedoor/border_only{
@@ -2227,15 +2446,18 @@
/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/structure/sign/poster/official/cleanliness{
- pixel_y = 32
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 1
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_y = 19
},
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"LJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-2"
},
/obj/machinery/power/apc/auto_name/directional/west,
@@ -2244,74 +2466,101 @@
pixel_x = -20;
pixel_y = -11
},
-/turf/open/floor/plasteel/freezer,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/crew/toilet)
"Mb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/structure/closet/secure_closet/medical2,
-/obj/item/reagent_containers/glass/bottle/morphine,
-/obj/item/reagent_containers/glass/bottle/morphine,
/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 2;
+ color = "#FFFFFF"
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"MW" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
-/obj/structure/curtain/cloth,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/medical)
"Nn" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/bridge)
"Nz" = (
-/obj/machinery/shower{
- dir = 8;
- pixel_y = 15
+/obj/structure/curtain/cloth{
+ color = "#4C9C9C"
},
-/obj/structure/curtain,
-/obj/structure/window/reinforced/tinted/frosted,
+/obj/structure/window/reinforced/survival_pod,
/obj/machinery/door/window/survival_pod{
dir = 8
},
-/obj/item/soap,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/catwalk/over/plated_catwalk/white,
+/obj/machinery/shower{
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ship/crew/toilet)
"Of" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-5"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-9"
},
-/turf/open/floor/plasteel/stairs/mid{
- dir = 1
+/turf/open/floor/plasteel/stairs/right{
+ dir = 1;
+ color = "#777777"
},
-/area/ship/storage/eva)
+/area/ship/cargo)
"OF" = (
-/obj/effect/landmark/start/paramedic,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/structure/closet/wall/directional/north{
+ name = "Intern Closet"
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/machinery/light_switch{
- pixel_x = 11;
- pixel_y = 22
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/storage/backpack/satchel,
+/obj/item/storage/backpack/satchel,
+/obj/item/storage/backpack/satchel,
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
+ },
+/obj/item/clothing/under/syndicate/cybersun,
+/obj/item/clothing/under/syndicate/cybersun,
+/obj/item/clothing/under/syndicate/cybersun,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/filled/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/crew)
"OK" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
@@ -2323,14 +2572,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
/obj/machinery/door/firedoor/border_only{
dir = 8
@@ -2341,15 +2584,16 @@
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"OZ" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/ship/storage/eva)
+/turf/closed/wall/mineral/titanium,
+/area/ship/crew/office/lobby)
"Pg" = (
/obj/structure/table/glass,
/obj/item/clothing/mask/surgical{
pixel_y = 6
},
-/obj/item/storage/backpack/duffelbag/med/surgery{
- pixel_y = 10
+/obj/item/storage/case/surgery{
+ pixel_x = 0;
+ pixel_y = 3
},
/obj/item/clothing/suit/apron/surgical{
pixel_y = 6
@@ -2360,10 +2604,13 @@
},
/obj/item/reagent_containers/medigel/sterilizine,
/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
/area/ship/medical/surgery)
"Pm" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -2372,15 +2619,18 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 4
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_y = 19;
+ layer = 4.26
},
+/obj/machinery/light/directional/north,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"Pp" = (
-/obj/machinery/door/window/brigdoor/southleft{
- dir = 8;
+/obj/machinery/door/window/brigdoor/westright{
req_access_txt = "5"
},
/obj/item/storage/belt/medical/surgery,
@@ -2392,7 +2642,7 @@
dir = 10
},
/obj/structure/closet/secure_closet/wall/directional/north{
- icon_state = "sec_wall";
+ icon_state = "solgov_wall";
name = "equipment locker";
req_access_txt = "5"
},
@@ -2406,15 +2656,22 @@
/obj/item/clothing/gloves/color/latex/nitrile/evil,
/obj/item/clothing/gloves/color/latex/nitrile/evil,
/obj/item/clothing/gloves/color/latex/nitrile/evil,
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 1
+ },
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/obj/item/attachment/rail_light,
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
/area/ship/crew)
"Pz" = (
+/obj/machinery/light/small/directional/east,
/obj/machinery/atmospherics/components/unary/tank/air{
- piping_layer = 2;
- dir = 8
+ dir = 8;
+ piping_layer = 2
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
-/obj/machinery/light/small/directional/east,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"PF" = (
@@ -2433,35 +2690,39 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/crew)
"Qq" = (
/turf/closed/wall/mineral/titanium,
/area/ship/medical)
"Qw" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-6"
},
/obj/machinery/button/door{
dir = 4;
id = "traumaramp";
name = "Emergency Ramp";
- pixel_x = -26;
+ pixel_x = -20;
pixel_y = -4
},
/obj/machinery/button/shieldwallgen{
dir = 4;
id = "traumashield2";
name = "Emergency Ramp Shield";
- pixel_x = -23;
+ pixel_x = -19;
pixel_y = 6
},
-/obj/effect/turf_decal/arrows/red{
- dir = 1
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
},
/obj/effect/turf_decal/spline/fancy/opaque/black,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
+ },
+/area/ship/cargo)
"QF" = (
/obj/structure/chair/office/light{
dir = 8
@@ -2469,8 +2730,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 6
},
-/turf/open/floor/carpet/cyan,
-/area/ship/hallway/central)
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/crew/office/lobby)
"QG" = (
/obj/machinery/power/smes/shuttle/precharged{
dir = 4
@@ -2494,20 +2757,21 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
-/area/ship/hallway/central)
+/area/ship/crew/office/lobby)
"Rb" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 1
},
-/obj/effect/turf_decal/siding/white/corner{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner{
dir = 8
},
-/obj/effect/turf_decal/siding/white/corner,
-/obj/structure/cable{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered/corner,
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -2516,32 +2780,35 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
},
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"Rl" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 8
},
-/obj/structure/cable{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/storage)
"RA" = (
-/obj/structure/chair{
+/obj/structure/chair/bench/grey/directional/north,
+/obj/machinery/firealarm/directional/south,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 1
},
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office/lobby)
"Sy" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/item/storage/firstaid/brute,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/o2,
@@ -2552,15 +2819,18 @@
/obj/item/storage/firstaid/regular,
/obj/structure/closet/secure_closet{
icon_state = "med";
- name = "medicine locker"
+ name = "medicine locker";
+ anchored = 1
},
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
/area/ship/storage)
"SR" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
-/obj/structure/sign/poster/official/moth/epi{
- pixel_y = -32
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner,
+/obj/structure/chair/handrail{
+ dir = 1
},
+/obj/machinery/light/directional/south,
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"Td" = (
@@ -2568,11 +2838,23 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/white,
-/area/ship/cargo)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
+"Tf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"Tg" = (
/obj/machinery/power/shuttle/engine/electric{
dir = 4
@@ -2590,57 +2872,74 @@
pixel_x = 32
},
/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
-"Tr" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
+/obj/effect/turf_decal/corner/opaque/cybersunteal/three_quarters,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/item/kirbyplants/fullysynthetic{
+ pixel_x = 10
},
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
+"Tr" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"TA" = (
-/obj/machinery/computer/cargo{
- dir = 8
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-right"
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/railing,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 6
+ },
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"TB" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
- dir = 1
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"TH" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/light/directional/south,
/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/box/white,
/turf/open/floor/plasteel/tech,
-/area/ship/storage/eva)
+/area/ship/cargo)
"TL" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/closet/crate/bin,
/obj/machinery/light/directional/north,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/power/apc/auto_name/directional/west,
@@ -2649,47 +2948,60 @@
pixel_x = -20;
pixel_y = -11
},
-/turf/open/floor/plasteel/tech,
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
+ dir = 8
+ },
+/obj/effect/spawner/random/maintenance,
+/obj/item/reagent_containers/syringe/contraband,
+/obj/item/reagent_containers/syringe/contraband,
+/turf/open/floor/plasteel/white,
/area/ship/medical)
"TZ" = (
-/obj/structure/filingcabinet/medical,
+/obj/structure/filingcabinet/medical{
+ dir = 8;
+ icon_state = "widecabinet"
+ },
/obj/machinery/airalarm/directional/east,
/obj/machinery/light/directional/north,
-/turf/open/floor/carpet/cyan,
-/area/ship/hallway/central)
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/obj/item/folder/white,
+/obj/item/folder/white,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ship/crew/office/lobby)
"Uc" = (
/turf/closed/wall/mineral/titanium,
/area/ship/storage)
"Ug" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
+/obj/structure/chair/handrail{
+ dir = 1
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"Uh" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"Uu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Uz" = (
-/obj/effect/turf_decal/siding/white/end{
- dir = 8
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 1
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-4"
},
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -2701,8 +3013,9 @@
pixel_x = -20;
pixel_y = -11
},
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"UD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
@@ -2710,45 +3023,68 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
},
-/turf/open/floor/plasteel/mono/white,
-/area/ship/hallway/central)
+/turf/open/floor/plasteel/white,
+/area/ship/crew/office/lobby)
"UG" = (
/turf/template_noop,
/area/template_noop)
"UH" = (
-/obj/machinery/power/smes/engineering{
- charge = 1e+006
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
},
-/obj/structure/cable{
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/effect/turf_decal/industrial/hatch/yellow,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"UK" = (
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-10"
},
-/obj/effect/turf_decal/arrows/red{
- dir = 1
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+ dir = 8
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
- dir = 8
+/turf/open/floor/plasteel/patterned/grid{
+ color = "#777777"
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ship/storage/eva)
+/area/ship/cargo)
"UN" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/west,
/obj/machinery/light_switch{
dir = 4;
pixel_x = -20;
- pixel_y = -11
+ pixel_y = 13
+ },
+/obj/structure/closet/secure_closet/wall/directional/west{
+ icon_state = "sec_wall";
+ name = "medical director's closet";
+ req_access_txt = "40"
+ },
+/obj/item/storage/belt/medical,
+/obj/item/healthanalyzer/advanced,
+/obj/item/hypospray/mkii/CMO,
+/obj/item/storage/backpack/satchel/med,
+/obj/item/defibrillator/compact/loaded,
+/obj/item/clothing/gloves/color/latex/nitrile/evil,
+/obj/item/clothing/suit/toggle/labcoat/raincoat,
+/obj/item/clothing/suit/cybersun_suit,
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -7
},
-/turf/open/floor/carpet/cyan,
+/obj/item/clothing/under/rank/medical/chief_medical_officer/cybersun,
+/obj/item/clothing/head/beret/cmo/cybersun,
+/obj/item/pen/edagger,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"UO" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
@@ -2760,10 +3096,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/line{
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
dir = 1
},
/turf/open/floor/plasteel/white,
@@ -2772,13 +3111,16 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/obj/effect/turf_decal/siding/white{
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
dir = 1
},
-/obj/effect/turf_decal/siding/white,
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
/obj/machinery/light/small/directional/east,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"VJ" = (
/obj/machinery/door/poddoor/preopen{
id = "traumawindows";
@@ -2786,94 +3128,110 @@
},
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/science)
"VN" = (
/obj/machinery/light/small/directional/north,
-/turf/open/floor/plating,
+/obj/structure/closet/secure_closet/medical2,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/item/reagent_containers/glass/bottle/morphine,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ color = "#FFFFFF"
+ },
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"WB" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/freezer,
-/area/ship/crew/toilet)
-"WJ" = (
-/obj/structure/bed{
- dir = 8
- },
-/obj/structure/curtain/bounty,
-/obj/item/bedsheet/syndie{
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
dir = 8
},
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/toilet)
+"WJ" = (
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/mono/white,
+/area/ship/crew/office/lobby)
"WP" = (
-/obj/effect/turf_decal/industrial/outline/red,
/obj/structure/railing/corner{
dir = 8
},
/obj/machinery/airalarm/directional/east,
/obj/structure/rack,
/obj/item/tank/internals/plasmaman/full,
-/obj/item/tank/internals/plasmaman/full,
-/obj/item/tank/internals/plasmaman/full,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/item/tank/internals/emergency_oxygen/engi,
/obj/item/tank/internals/emergency_oxygen/engi,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
"WX" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/effect/turf_decal/spline/fancy/opaque/cybersunteal{
dir = 8
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/turf/open/floor/plasteel/patterned/brushed,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/white,
/area/ship/storage)
"Xd" = (
-/obj/item/areaeditor/shuttle,
-/obj/item/megaphone/command,
-/obj/item/clothing/glasses/sunglasses,
-/obj/structure/closet/secure_closet/wall/directional/west{
- icon_state = "solgov_wall";
- name = "captain's closet";
- req_access_txt = "20"
+/obj/machinery/airalarm/directional/north,
+/obj/structure/table/glass,
+/obj/item/flashlight/lamp{
+ pixel_x = -7;
+ pixel_y = 10
},
-/obj/item/gun/ballistic/revolver/viper,
-/obj/item/clothing/suit/armor/vest/capcarapace/cybersun,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/head/HoS/cybersun,
-/obj/item/clothing/under/syndicate/cybersun/officer,
-/obj/item/reagent_containers/food/drinks/flask,
-/obj/item/reagent_containers/food/drinks/bottle/gin,
-/turf/open/floor/carpet/cyan,
+/obj/item/paper_bin{
+ pixel_y = 11;
+ pixel_x = 9
+ },
+/obj/item/pen/fourcolor,
+/obj/item/reagent_containers/food/drinks/bottle/wine{
+ pixel_y = 7;
+ pixel_x = -9
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/item/storage/secure/safe/cybersun/biodynamics{
+ dir = 8;
+ pixel_x = -30;
+ pixel_y = -10
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/brushed,
/area/ship/bridge)
"Xi" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/structure/sign/poster/contraband/gec{
+ pixel_x = 32
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
/area/ship/maintenance/starboard)
"Xu" = (
+/obj/structure/closet/firecloset/wall/directional/south,
/obj/machinery/atmospherics/components/binary/pump/on/layer2{
dir = 8
},
-/obj/structure/closet/firecloset/wall/directional/south,
/turf/open/floor/plating,
/area/ship/maintenance/port)
"Xx" = (
@@ -2886,43 +3244,53 @@
/turf/template_noop,
/area/template_noop)
"XL" = (
+/obj/item/radio/intercom/directional/north,
/obj/machinery/power/terminal{
dir = 8
},
-/obj/structure/cable/yellow{
+/obj/structure/cable/cyan{
icon_state = "0-4"
},
-/obj/item/wrench/crescent,
-/obj/item/radio/intercom/directional/north,
+/obj/item/storage/toolbox/syndicate{
+ pixel_x = -1;
+ pixel_y = 6
+ },
+/obj/structure/rack,
/turf/open/floor/plating,
/area/ship/maintenance/port)
+"XN" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet/nanoweave,
+/area/ship/crew)
"Ym" = (
-/obj/machinery/holopad/emergency/command,
+/obj/machinery/holopad/secure,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 9
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
},
-/turf/open/floor/carpet/cyan,
+/turf/open/floor/plasteel/white,
/area/ship/bridge)
"Yn" = (
-/obj/structure/curtain/cloth{
- color = "#ACD1E9"
- },
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "traumabridge";
+ dir = 4
+ },
/turf/open/floor/plating,
/area/ship/bridge)
"Yw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/item/storage/toolbox/electrical,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
/turf/open/floor/plating,
@@ -2934,33 +3302,39 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/ship/medical)
"YQ" = (
-/obj/effect/turf_decal/number/five,
/obj/machinery/power/apc/auto_name/directional/north,
/obj/machinery/light_switch{
pixel_x = 11;
pixel_y = 22
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "0-8"
},
-/obj/effect/turf_decal/industrial/warning/corner{
- dir = 1
- },
-/turf/open/floor/plating,
+/obj/effect/turf_decal/isf_small,
+/turf/open/floor/plasteel/dark,
/area/ship/maintenance/starboard)
"YV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-2"
},
-/obj/effect/turf_decal/siding/white/end,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage/eva)
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/white,
+/area/ship/cargo)
"Zv" = (
/obj/structure/grille,
/obj/structure/window/reinforced/fulltile/shuttle,
-/obj/structure/curtain/cloth,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "traumastore";
+ dir = 2
+ },
+/obj/machinery/door/firedoor/window,
/turf/open/floor/plating,
/area/ship/storage)
"ZC" = (
@@ -2969,26 +3343,34 @@
"ZH" = (
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-8"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-4"
},
-/obj/structure/cable{
+/obj/structure/cable/yellow{
icon_state = "1-8"
},
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/white/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/line{
dir = 1
},
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
"ZJ" = (
-/obj/effect/turf_decal/trimline/opaque/red/filled/line,
/obj/item/radio/intercom/directional/south,
+/obj/effect/turf_decal/trimline/opaque/cybersunteal/corner{
+ dir = 2
+ },
/turf/open/floor/plasteel/white,
/area/ship/hallway/central)
@@ -3023,13 +3405,13 @@ fp
UG
UG
UG
-AJ
+OZ
KW
yn
sC
rA
KW
-AJ
+OZ
UG
UG
UG
@@ -3046,13 +3428,13 @@ ZC
UG
UG
UG
-gL
+an
fX
bv
Ap
bv
na
-gL
+an
UG
UG
UG
@@ -3069,13 +3451,13 @@ ZC
UG
UG
fp
-gL
+an
GK
-eS
+WJ
oc
eS
RA
-gL
+an
Ti
UG
UG
@@ -3092,13 +3474,13 @@ ZC
ZC
ZC
ZC
-gL
+an
lS
yX
-oc
+Ft
Gr
lX
-gL
+an
UO
UO
UO
@@ -3116,7 +3498,7 @@ Cy
cK
Eb
AD
-GI
+Tf
Td
pQ
rn
@@ -3138,13 +3520,13 @@ ZC
ZC
ZC
tI
-gL
+an
xB
uE
uE
oA
lJ
-gL
+an
UO
UO
UO
@@ -3158,19 +3540,19 @@ ZC
XL
Yw
bz
-fp
+ZC
UG
vx
-gL
+an
Ls
HI
cL
Gw
zq
-gL
-UG
+an
+ke
UG
-Ti
+UO
VN
zT
kh
@@ -3258,7 +3640,7 @@ sO
YA
xp
gW
-ke
+qA
rk
eT
qA
@@ -3303,8 +3685,8 @@ hQ
Pg
YA
zM
-gW
-ke
+La
+qA
wp
mx
qA
@@ -3349,7 +3731,7 @@ FH
tT
MW
UV
-gW
+EL
Zv
Sy
DX
@@ -3372,7 +3754,7 @@ fW
tF
nI
Lh
-zy
+tn
AQ
WX
Rl
@@ -3395,7 +3777,7 @@ vn
bT
MW
UV
-gW
+EL
Zv
Ki
tJ
@@ -3409,14 +3791,14 @@ UG
(19,1,1) = {"
UG
UG
-tn
-OZ
-OZ
-OZ
-OZ
-OZ
-OZ
-OZ
+AJ
+gL
+gL
+gL
+gL
+gL
+gL
+gL
LH
zl
Ev
@@ -3424,10 +3806,10 @@ Ev
Ev
Ev
Ev
+Ev
iA
UG
UG
-UG
"}
(20,1,1) = {"
UG
@@ -3439,7 +3821,7 @@ Uz
Hk
HE
TH
-OZ
+gL
bQ
ZJ
Ev
@@ -3448,7 +3830,7 @@ iC
jh
Gs
Ev
-iA
+Ev
UG
UG
"}
@@ -3464,7 +3846,7 @@ Ln
YV
uU
iQ
-zy
+tn
Cp
uc
IL
@@ -3485,13 +3867,13 @@ UX
BU
KZ
Fe
-OZ
+gL
TB
us
Ev
OF
yf
-iW
+XN
nF
iW
PH
@@ -3501,7 +3883,7 @@ UG
(23,1,1) = {"
UG
UG
-OZ
+gL
JQ
WP
zo
@@ -3524,9 +3906,9 @@ UG
(24,1,1) = {"
UG
UG
-tn
-OZ
-OZ
+AJ
+gL
+gL
zo
wr
WB
@@ -3538,7 +3920,7 @@ Ev
Pp
CF
Ev
-Hl
+Ev
CZ
iA
UG
@@ -3549,14 +3931,14 @@ UG
UG
UG
UG
-tn
+AJ
zo
Nz
rS
ba
zo
Tr
-gW
+Hl
Ev
vj
Aj
@@ -3597,7 +3979,7 @@ UG
UG
UG
Nn
-WJ
+Nn
Xd
Ah
ES
@@ -3605,7 +3987,7 @@ Ym
Uh
UN
BD
-EL
+Nn
Nn
UG
UG
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
deleted file mode 100644
index 66133d79d47a..000000000000
--- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm
+++ /dev/null
@@ -1,3898 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aF" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"aH" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/firealarm/directional/east,
-/obj/effect/decal/cleanable/oil,
-/obj/structure/sign/warning/nosmoking{
- pixel_y = -28
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"aN" = (
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/techfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/hallway/central)
-"bd" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"bl" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=crew";
- location = "cargo"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"bH" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "hos";
- name = "captain's locker";
- req_access = list(20)
- },
-/obj/item/storage/backpack/security,
-/obj/item/clothing/under/syndicate/ngr/officer,
-/obj/item/clothing/suit/armor/ngr/captain,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/gloves/combat,
-/obj/item/clothing/glasses/hud/security/sunglasses/eyepatch,
-/obj/item/clothing/head/ngr/peaked,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/ammo_box/a357/match,
-/obj/item/pen/edagger,
-/obj/item/storage/pistolcase/a357,
-/obj/item/ammo_box/a357_box,
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"bJ" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "syndicate";
- name = "armor locker"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/radio/intercom/directional/west{
- pixel_y = -5
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/light/small/directional/west{
- pixel_y = 7
- },
-/obj/item/clothing/glasses/hud/security/sunglasses/ngr,
-/obj/item/clothing/glasses/hud/security/sunglasses/ngr,
-/obj/item/clothing/suit/armor/ngr,
-/obj/item/clothing/suit/armor/ngr,
-/obj/item/clothing/head/helmet/ngr,
-/obj/item/clothing/head/helmet/ngr,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
-"bN" = (
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"bS" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"bV" = (
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"cg" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/machinery/turretid/lethal{
- pixel_y = -24
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"ch" = (
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"cs" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/hallway/central)
-"cB" = (
-/obj/structure/weightmachine/weightlifter,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/light/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"cH" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/atmospherics/pipe/layer_manifold{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/storage)
-"cV" = (
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/effect/turf_decal/trimline/opaque/red/filled/corner{
- dir = 1
- },
-/obj/machinery/light_switch{
- pixel_x = -12;
- pixel_y = 23
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"dh" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/effect/landmark/start/shaft_miner,
-/turf/open/floor/plasteel/tech,
-/area/ship/storage)
-"dA" = (
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/item/reagent_containers/food/snacks/canned/beans{
- pixel_x = -2
- },
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 5
- },
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 1;
- pixel_y = -3
- },
-/obj/item/reagent_containers/food/drinks/waterbottle/large{
- pixel_x = 8;
- pixel_y = -3
- },
-/obj/structure/closet/crate{
- name = "food crate"
- },
-/obj/item/storage/cans/sixbeer,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/turf_decal/industrial/outline,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"dG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"dQ" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"dU" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
-/obj/structure/window/reinforced/spawner/east,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_stbd"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"ec" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"fg" = (
-/obj/structure/sign/number/eight{
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/fore)
-"fi" = (
-/obj/machinery/power/port_gen/pacman/super,
-/obj/effect/turf_decal/radiation/white,
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/turf_decal/radiation/white,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"fv" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "syndicate";
- name = "ammunition locker"
- },
-/obj/machinery/light/small/directional/east{
- pixel_y = -8
- },
-/obj/machinery/firealarm/directional/east{
- pixel_y = 6
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/airalarm/directional/north,
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/ammo_box/a12g,
-/obj/item/ammo_box/c10mm,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
-"fC" = (
-/obj/structure/sign/number/four{
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/fore)
-"fL" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/cargo/office)
-"fV" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
-"fW" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/effect/decal/cleanable/oil/streak,
-/obj/structure/extinguisher_cabinet/directional/south,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"fY" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"ge" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 2;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/crew/dorm)
-"gg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/bed/roller,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"gM" = (
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 9
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"hc" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/rnd/production/techfab/department/cargo,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo)
-"hh" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/reagent_dispensers/fueltank,
-/obj/effect/decal/cleanable/oil/slippery,
-/obj/structure/sign/warning/nosmoking{
- pixel_y = -28
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"hD" = (
-/obj/structure/sign/syndicate{
- pixel_y = 2
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/hallway/central)
-"hT" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"ia" = (
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"ir" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/window/eastleft{
- name = "Engine Access"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_port"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"iv" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"ix" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=bridge";
- location = "crew"
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"iC" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"iI" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"iL" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/light/small/directional/west,
-/obj/item/clothing/suit/space/syndicate/black/orange,
-/obj/item/clothing/mask/gas/syndicate,
-/obj/item/clothing/head/helmet/space/syndicate/black/orange,
-/obj/item/tank/jetpack/carbondioxide,
-/obj/machinery/suit_storage_unit/inherit/industrial{
- req_one_access = list(48,56)
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"iT" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/port)
-"jf" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"ji" = (
-/obj/structure/sign/warning/vacuum/external{
- pixel_y = -9
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/cargo)
-"jt" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/storage)
-"jB" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "syndicate";
- name = "firearms locker"
- },
-/obj/structure/sign/poster/contraband/stechkin{
- pixel_x = 32
- },
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/gun/ballistic/shotgun/brimstone,
-/obj/machinery/button/door{
- dir = 1;
- id = "wreckerarmory";
- name = "armory shutters";
- pixel_y = -21;
- req_access = null
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
-"jG" = (
-/obj/machinery/light/directional/south,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/firealarm/directional/south,
-/obj/effect/turf_decal/corner_techfloor_grid,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"jH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"jI" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/storage)
-"jP" = (
-/obj/machinery/atmospherics/components/unary/portables_connector{
- dir = 1
- },
-/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/button/door{
- dir = 1;
- id = "wrecker_engine_port";
- name = "thruster doors";
- pixel_y = -21
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"jT" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"jY" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"kg" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/crate/medical,
-/obj/item/bodybag,
-/obj/item/storage/firstaid/regular,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"kM" = (
-/obj/structure/chair/office{
- dir = 1
- },
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"kR" = (
-/obj/docking_port/stationary{
- dwidth = 10;
- height = 15;
- width = 30
- },
-/turf/template_noop,
-/area/template_noop)
-"lg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/oil/streak,
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/crate/freezer,
-/obj/machinery/airalarm/directional/west,
-/obj/item/reagent_containers/blood/random,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"lt" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/hallway/central)
-"lX" = (
-/obj/structure/sign/syndicate,
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/crew)
-"mf" = (
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 4
- },
-/obj/structure/chair/stool,
-/obj/structure/window/reinforced/tinted/frosted,
-/obj/effect/landmark/start/captain,
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"mL" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/fore)
-"mX" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/crew)
-"nn" = (
-/turf/template_noop,
-/area/template_noop)
-"no" = (
-/obj/structure/bed,
-/obj/item/bedsheet/syndie,
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"nG" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"nK" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/airlock/grunge{
- name = "Foreman's Office";
- req_access = list(56)
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo/office)
-"nR" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/vending/cola/sodie,
-/obj/structure/sign/poster/contraband/smoke{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"nS" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"nT" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/button/door{
- dir = 8;
- id = "wrecker_engine_stbd";
- name = "thruster doors";
- pixel_x = 21
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"nX" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/window/eastleft{
- name = "Engine Access"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_stbd"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"ob" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"ol" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin/carbon,
-/obj/item/folder/syndicate,
-/obj/item/pen/fourcolor,
-/obj/item/gps/mining{
- pixel_x = 9;
- pixel_y = -6
- },
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/item/stamp/qm{
- name = "foreman's rubber stamp"
- },
-/obj/machinery/button/shieldwallgen{
- dir = 1;
- id = "hyena_cargo";
- pixel_x = -10;
- pixel_y = -24
- },
-/obj/machinery/button/door{
- dir = 1;
- id = "wreckercargobay";
- name = "cargo bay doors";
- pixel_y = -25
- },
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"or" = (
-/obj/structure/sign/number/nine{
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/fore)
-"oz" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/bridge)
-"oF" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/documents/syndicate/mining,
-/obj/structure/filingcabinet,
-/obj/machinery/firealarm/directional/west,
-/obj/effect/turf_decal/borderfloorblack,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"oJ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"oO" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/maintenance/fore)
-"oQ" = (
-/obj/structure/table/reinforced,
-/obj/machinery/button/door{
- dir = 8;
- id = "wreckerwindows";
- name = "Window Shutters";
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/gps{
- pixel_x = 7
- },
-/obj/item/megaphone/sec{
- name = "syndicate megaphone";
- pixel_x = -4;
- pixel_y = 7
- },
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"oS" = (
-/obj/structure/table,
-/obj/machinery/microwave,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/machinery/firealarm/directional/west,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/sign/poster/syndicate/random{
- pixel_y = -32
- },
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"oV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"pi" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/window/eastright{
- name = "Engine Access"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_stbd"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"pu" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 8
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"pv" = (
-/obj/structure/dresser,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"px" = (
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"pz" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "0-6"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"pH" = (
-/obj/machinery/holopad/emergency/command,
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"pI" = (
-/obj/item/radio/intercom/wideband/directional/east,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/computer/cargo{
- dir = 1
- },
-/obj/effect/turf_decal/borderfloorblack,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"pP" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/autolathe,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo)
-"qt" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/light/small/directional/west,
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/clothing/mask/breath,
-/obj/item/tank/internals/oxygen,
-/obj/item/clothing/suit/space/syndicate/surplus,
-/obj/item/clothing/head/helmet/space/syndicate/surplus,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/hallway/central)
-"qO" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/landmark/start/shaft_miner,
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/storage)
-"rd" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"rF" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "eng_secure";
- name = "mechanic's locker";
- req_access = list(11)
- },
-/obj/item/clothing/shoes/workboots,
-/obj/item/clothing/accessory/armband/engine,
-/obj/item/storage/belt/utility,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -12;
- pixel_y = -16
- },
-/obj/item/clothing/under/syndicate/ngr,
-/obj/item/clothing/suit/hazardvest/ngr,
-/obj/item/clothing/head/hardhat/ngr,
-/obj/item/clothing/gloves/color/red/insulated,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"rM" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"rP" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/chair/sofa/brown/left/directional/south,
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"rR" = (
-/obj/structure/reagent_dispensers/watertank,
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"si" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"so" = (
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wreckercargobay";
- name = "Cargo Bay Exterior Blast Door"
- },
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "hyena_cargo";
- locked = 1
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"sx" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wreckercargobay";
- name = "Cargo Bay Exterior Blast Door"
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"sA" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"sE" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/starboard)
-"sG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/door/airlock/hatch{
- name = "External Airlock"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"tl" = (
-/obj/machinery/shower{
- pixel_y = 19
- },
-/obj/structure/curtain,
-/obj/item/bikehorn/rubberducky,
-/obj/structure/sign/poster/official/cleanliness{
- pixel_x = -32
- },
-/obj/effect/turf_decal/borderfloorblack{
- dir = 1
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"tn" = (
-/obj/machinery/light/small/directional/west,
-/obj/machinery/atmospherics/pipe/simple/green/hidden,
-/obj/machinery/atmospherics/pipe/layer_manifold{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"tI" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=storage";
- location = "bridge"
- },
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"tS" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"uk" = (
-/obj/machinery/vending/cigarette/syndicate,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"un" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"uq" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer4{
- dir = 10
- },
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"ut" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/computer/helm/viewscreen/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"vi" = (
-/obj/structure/table,
-/obj/item/toy/cards/deck/syndicate{
- pixel_y = 6
- },
-/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
- pixel_x = 6;
- pixel_y = -2
- },
-/obj/item/lighter{
- pixel_x = -5;
- pixel_y = -1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"vv" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/metal/fifty,
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"vG" = (
-/obj/machinery/atmospherics/components/unary/tank/toxins{
- dir = 1;
- piping_layer = 4
- },
-/obj/effect/turf_decal/industrial/fire{
- dir = 8
- },
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -12;
- pixel_y = -16
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"vN" = (
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"vR" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/machinery/door/airlock/grunge{
- name = "Break Room"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/crew)
-"wp" = (
-/obj/structure/sign/number/nine{
- dir = 1;
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
-"wE" = (
-/obj/item/toy/nuke,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table,
-/obj/effect/turf_decal/industrial/outline,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"wO" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/item/reagent_containers/food/snacks/syndicake,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/light/small/directional/south,
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"wP" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/crate{
- desc = "A rectangular steel crate containing supplies to survive a desert environment more easily.";
- name = "desert equipment crate"
- },
-/obj/item/clothing/neck/shemagh/ngr,
-/obj/item/clothing/neck/shemagh/ngr,
-/obj/item/clothing/neck/shemagh/ngr,
-/obj/item/clothing/neck/shemagh/ngr,
-/obj/item/clothing/head/ngr/flap,
-/obj/item/clothing/head/ngr/flap,
-/obj/item/clothing/head/ngr/flap,
-/obj/item/clothing/head/ngr/flap,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"xm" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "engine fuel pump"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"xx" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plasteel/tech,
-/area/ship/storage)
-"xK" = (
-/obj/machinery/light/small/directional/east,
-/obj/machinery/advanced_airlock_controller{
- pixel_y = -21
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/suit_storage_unit/inherit/industrial,
-/obj/item/clothing/mask/breath,
-/obj/item/tank/internals/oxygen,
-/obj/item/clothing/suit/space/syndicate/surplus,
-/obj/item/clothing/head/helmet/space/syndicate/surplus,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/hallway/central)
-"yd" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"yn" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/cargo/office)
-"yw" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"yD" = (
-/obj/structure/closet/crate/radiation{
- name = "fuel crate"
- },
-/obj/item/stack/sheet/mineral/uranium/five,
-/obj/effect/turf_decal/radiation/white,
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"yG" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/poster/syndicate/random{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"yH" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/rack,
-/obj/item/gun/energy/plasmacutter{
- pixel_y = 10
- },
-/obj/item/gun/energy/plasmacutter,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"yM" = (
-/obj/item/lighter{
- pixel_x = -8;
- pixel_y = 8
- },
-/obj/item/storage/fancy/cigarettes/cigars/cohiba{
- pixel_x = -6;
- pixel_y = 6
- },
-/obj/item/reagent_containers/food/drinks/bottle/whiskey{
- pixel_x = 6;
- pixel_y = 12
- },
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
- pixel_x = 5;
- pixel_y = 4
- },
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 4
- },
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"yV" = (
-/obj/machinery/door/airlock/grunge{
- dir = 8;
- name = "Bridge";
- req_access = list(19)
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/bridge)
-"zn" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/effect/turf_decal/steeldecal/steel_decals_central4,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/landmark/observer_start,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"zq" = (
-/obj/structure/closet/wall/red/directional/east{
- name = "uniform closet"
- },
-/obj/item/tank/jetpack/suit,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/ngr,
-/obj/item/clothing/under/syndicate/ngr,
-/obj/item/clothing/under/syndicate/ngr,
-/obj/item/clothing/under/syndicate/ngr,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/head/ngr,
-/obj/item/clothing/head/ngr,
-/obj/item/clothing/head/ngr,
-/obj/item/clothing/head/ngr,
-/obj/item/radio,
-/obj/item/radio,
-/obj/item/radio,
-/obj/item/radio,
-/obj/item/radio,
-/obj/item/radio,
-/obj/item/radio,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/dorm)
-"zA" = (
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"zQ" = (
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable{
- icon_state = "4-10"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"zZ" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/extinguisher_cabinet/directional/north,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"Af" = (
-/obj/structure/closet/emcloset/wall/directional/north,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Ap" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
-"Ax" = (
-/obj/structure/table,
-/obj/machinery/recharger,
-/obj/effect/turf_decal/industrial/outline,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"Ay" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"Az" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"AE" = (
-/obj/structure/sign/warning/vacuum/external{
- pixel_y = -9
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/hallway/central)
-"AF" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"AY" = (
-/obj/structure/sign/number/eight{
- dir = 1;
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
-"Bg" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
- },
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"Bn" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/catwalk/over,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=dorms";
- location = "storage"
- },
-/turf/open/floor/plating,
-/area/ship/storage)
-"BB" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"BG" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 8;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/storage)
-"BR" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 1;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/port)
-"BZ" = (
-/obj/structure/window/reinforced/tinted/frosted,
-/obj/machinery/suit_storage_unit/inherit{
- name = "captain's suit storage unit";
- req_access = list(20)
- },
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -20
- },
-/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
-/obj/item/clothing/mask/gas/syndicate,
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"Ck" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = -12
- },
-/obj/structure/mirror{
- pixel_x = -25
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"CW" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/maintenance/starboard)
-"Dp" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Dq" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"DE" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
- dir = 4
- },
-/turf/open/floor/engine/hull,
-/area/ship/external)
-"DF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/number/zero{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"DO" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"DU" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/machinery/light/small/directional/north,
-/obj/machinery/light_switch{
- pixel_x = 7;
- pixel_y = 22
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"DW" = (
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/sign/warning/nosmoking{
- pixel_y = -28
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"EH" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"EL" = (
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-5"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"Fe" = (
-/obj/structure/table/reinforced,
-/obj/item/soap/syndie,
-/obj/machinery/light/small/directional/south,
-/obj/effect/turf_decal/borderfloorblack,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"Ff" = (
-/obj/structure/table/reinforced,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/west,
-/obj/structure/closet/wall/white/med{
- dir = 1;
- name = "medicine locker";
- pixel_y = -28
- },
-/obj/item/storage/pill_bottle/lsd,
-/obj/effect/turf_decal/borderfloorblack,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"Fl" = (
-/obj/machinery/door/airlock/hatch{
- name = "Starboard Thrusters";
- req_access = list(10)
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/fire{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"Fq" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -12;
- pixel_y = -16
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"Fr" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"Ft" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"FA" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"FQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/steeldecal/steel_decals_central4{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"FR" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/lamp{
- pixel_x = -12;
- pixel_y = 7
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/paper_bin/carbon,
-/obj/item/folder/documents/syndicate/red,
-/obj/item/pen/fountain/captain,
-/obj/item/stamp/hos{
- name = "captain's rubber stamp"
- },
-/obj/effect/turf_decal/borderfloorblack{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"Ge" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/obj/structure/window/reinforced/tinted/frosted{
- dir = 8
- },
-/obj/structure/sign/poster/syndicate/random{
- pixel_y = -32
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"Gj" = (
-/obj/structure/chair/sofa/brown/corner/directional/east,
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/radio/intercom/directional/north,
-/obj/machinery/light_switch{
- dir = 4;
- pixel_x = -20;
- pixel_y = 12
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"Gm" = (
-/obj/machinery/atmospherics/pipe/layer_manifold,
-/obj/machinery/door/airlock/hatch{
- name = "External Airlock"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Gw" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 1;
- piping_layer = 2
- },
-/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/maintenance/port)
-"GM" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "mining";
- name = "wrecker's locker";
- req_access = list(48)
- },
-/obj/item/clothing/shoes/workboots/mining,
-/obj/item/clothing/accessory/armband/cargo,
-/obj/item/storage/belt/mining,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/machinery/airalarm/directional/north,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/suit/hazardvest/ngr,
-/obj/item/clothing/head/hardhat/ngr,
-/obj/item/pickaxe/drill,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"GV" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/crew/dorm)
-"HJ" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/security/armory)
-"HT" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Ib" = (
-/obj/structure/chair/office{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/effect/landmark/start/chief_engineer,
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"Ic" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/hidden/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/industrial/fire,
-/obj/machinery/atmospherics/components/binary/pump/on/layer2{
- dir = 8;
- name = "Distribution"
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"Ii" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet/crate/secure/loot,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Ik" = (
-/obj/structure/window/reinforced/spawner/east,
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/mineral/ore_redemption{
- dir = 1;
- output_dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"Iz" = (
-/obj/machinery/cryopod{
- dir = 1
- },
-/obj/machinery/computer/cryopod/directional/south,
-/obj/effect/turf_decal/industrial/warning/full,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/dorm)
-"IO" = (
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/structure/closet/crate/bin,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/food/egg_smudge,
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"Jf" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/bridge)
-"Jv" = (
-/obj/machinery/modular_computer/console/preset/command{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"JD" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4;
- name = "Locker Room";
- req_one_access = list(10,48)
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/storage)
-"JL" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/maintenance/port)
-"JP" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/storage)
-"JS" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wreckercargobay";
- name = "Cargo Bay Exterior Blast Door"
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"Kb" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/number/five{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"Kf" = (
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/storage)
-"Ki" = (
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/layer_manifold{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable/yellow{
- icon_state = "4-9"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"Kn" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"Ky" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/hardline_small/right{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"KA" = (
-/obj/machinery/door/window/northleft{
- dir = 2;
- name = "Captain's Bunk"
- },
-/turf/open/floor/carpet/black,
-/area/ship/bridge)
-"KH" = (
-/obj/machinery/atmospherics/components/binary/pump/layer2{
- dir = 4;
- name = "Input to Air"
- },
-/obj/machinery/atmospherics/components/binary/pump/layer4{
- dir = 4;
- name = "Input to Fuel"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"KJ" = (
-/obj/machinery/light/small/directional/north,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"KQ" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"KT" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"KW" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/suit_storage_unit/inherit{
- name = "foreman's suit storage unit";
- req_access = list(56)
- },
-/obj/item/clothing/shoes/magboots/syndie,
-/obj/item/clothing/mask/gas/syndicate,
-/obj/item/clothing/suit/space/syndicate,
-/obj/item/clothing/head/helmet/space/syndicate,
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"KX" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/light/small/directional/south,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/tank_dispenser/oxygen,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"La" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer4{
- dir = 9
- },
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/fire,
-/obj/item/analyzer,
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"Lv" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Ml" = (
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
-"Mp" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Ms" = (
-/obj/structure/bed,
-/obj/item/bedsheet/black,
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"MF" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"MP" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Nl" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4;
- name = "Helm"
- },
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"NA" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 2;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/maintenance/starboard)
-"NF" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/cargo)
-"NN" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- dir = 1;
- id = "hyena_cargo";
- locked = 1
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wreckercargobay";
- name = "Cargo Bay Exterior Blast Door"
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"NS" = (
-/obj/effect/turf_decal/industrial/warning/fulltile,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wreckercargobay";
- name = "Cargo Bay Exterior Blast Door"
- },
-/obj/docking_port/mobile{
- can_move_docking_ports = 1;
- dir = 8;
- launch_status = 0;
- name = "mining ship";
- preferred_direction = 4
- },
-/turf/open/floor/plating,
-/area/ship/cargo)
-"Ok" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/storage)
-"Or" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/fire{
- dir = 4
- },
-/obj/machinery/light/small/directional/south,
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/power/ship_gravity,
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"Oy" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ship/storage)
-"OL" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/terminal{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"Pd" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/spider/stickyweb,
-/obj/structure/closet/crate/secure/loot,
-/obj/effect/turf_decal/number/three{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"Pn" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/obj/effect/turf_decal/corner_techfloor_grid{
- dir = 8
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"Px" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"PG" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/firedoor/border_only,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"PL" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/atmospherics/components/unary/shuttle/heater{
- dir = 4
- },
-/obj/machinery/door/window/eastleft{
- name = "Engine Access"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_port"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"PT" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Qy" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/effect/turf_decal/arrows{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Qz" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 6;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/maintenance/fore)
-"QG" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "warden";
- name = "foreman's locker";
- req_access = list(56)
- },
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/ngr/officer,
-/obj/item/clothing/gloves/combat,
-/obj/item/storage/belt/utility/chief{
- name = "\improper Foreman's toolbelt"
- },
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/item/storage/toolbox/syndicate,
-/obj/item/wrench/combat,
-/obj/item/clothing/accessory/holster,
-/obj/item/grenade/chem_grenade/metalfoam,
-/obj/machinery/airalarm/directional/west,
-/obj/item/clothing/suit/ngr,
-/obj/item/clothing/head/hardhat/ngr/foreman,
-/obj/item/tank/jetpack/suit,
-/obj/item/storage/pistolcase/ringneck,
-/turf/open/floor/carpet/red,
-/area/ship/cargo/office)
-"QW" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/cargo/office)
-"QZ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/catwalk/over,
-/turf/open/floor/plating,
-/area/ship/storage)
-"Rc" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/structure/catwalk/over,
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/turf/open/floor/plating,
-/area/ship/storage)
-"Rl" = (
-/obj/structure/table/reinforced,
-/obj/item/radio/intercom/directional/east{
- pixel_y = 7
- },
-/obj/item/toy/figure/syndie{
- pixel_x = 11;
- pixel_y = -3
- },
-/obj/machinery/fax/syndicate,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"RD" = (
-/obj/machinery/door/airlock/hatch{
- name = "Port Thrusters";
- req_access = list(10)
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/turf_decal/borderfloor,
-/obj/effect/turf_decal/industrial/fire,
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"RE" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/hardline_small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"RQ" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/button/door{
- dir = 1;
- id = "wreckercargobay";
- name = "cargo bay doors";
- pixel_y = -21
- },
-/obj/machinery/light/floor,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/button/shieldwallgen{
- dir = 1;
- id = "hyena_cargo";
- pixel_x = -10;
- pixel_y = -19
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Sa" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/suit_storage_unit/inherit/industrial{
- req_access = list(11)
- },
-/obj/item/clothing/suit/space/syndicate/black/engie,
-/obj/item/clothing/head/helmet/space/syndicate/black/engie,
-/obj/item/clothing/mask/breath,
-/obj/item/tank/jetpack/carbondioxide,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"Sd" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=cargo";
- location = "dorms"
- },
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"Sg" = (
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/turf/open/floor/plating,
-/area/ship/crew/dorm)
-"Sh" = (
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Sm" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/closet{
- anchored = 1;
- icon_door = "eng_tool";
- icon_state = "eng"
- },
-/obj/item/storage/toolbox/syndicate{
- pixel_x = 5;
- pixel_y = 5
- },
-/obj/item/storage/toolbox/syndicate,
-/obj/item/storage/toolbox/syndicate{
- pixel_x = -5;
- pixel_y = -5
- },
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil/random,
-/obj/structure/sign/poster/syndicate/random{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"Sv" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/trimline/opaque/red/filled/corner{
- dir = 4
- },
-/obj/machinery/button/door{
- id = "wreckerarmory";
- name = "armory shutters";
- pixel_y = 23;
- req_access = list(19)
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"Sy" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"SE" = (
-/obj/effect/decal/cleanable/oil/streak,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"SJ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/analyzer,
-/obj/effect/turf_decal/steeldecal/steel_decals_central4,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"SK" = (
-/obj/structure/sign/number/four{
- dir = 1;
- pixel_y = 5
- },
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/bridge)
-"SP" = (
-/obj/structure/window/reinforced/spawner/west,
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/window/eastright{
- name = "Engine Access"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "wrecker_engine_port"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"SV" = (
-/obj/machinery/atmospherics/pipe/simple/green/hidden{
- dir = 6
- },
-/obj/machinery/atmospherics/components/binary/pump/layer4{
- dir = 8;
- name = "Input to Waste"
- },
-/obj/effect/decal/cleanable/oil,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"Tg" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 4
- },
-/obj/machinery/light/floor,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Th" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/red,
-/obj/effect/turf_decal/corner/opaque/red{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/opaque/red/filled/corner{
- dir = 8
- },
-/obj/machinery/button/door{
- dir = 1;
- id = "wreckerarmory";
- name = "armory shutters";
- pixel_y = -21;
- req_access = list(19)
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Tq" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/chair/sofa/brown/right/directional/east,
-/obj/effect/landmark/start/assistant,
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/structure/extinguisher_cabinet/directional/west,
-/turf/open/floor/carpet/red,
-/area/ship/crew)
-"Tu" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "engine fuel pump"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"TK" = (
-/obj/structure/closet/secure_closet/freezer{
- anchored = 1;
- locked = 0;
- name = "fridge"
- },
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/item/storage/cans/sixbeer,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plasteel,
-/area/ship/crew)
-"TR" = (
-/obj/structure/curtain/cloth/fancy{
- name = "blood-red curtains"
- },
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/bridge)
-"TT" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/starboard)
-"TX" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/extinguisher_cabinet/directional/north,
-/obj/effect/turf_decal/steeldecal/steel_decals_central4{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Ua" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"Uh" = (
-/obj/structure/cable,
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/effect/turf_decal/trimline/opaque/red/filled/corner,
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -12;
- pixel_y = -16
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Ui" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/turretid{
- pixel_x = 32;
- pixel_y = 22;
- req_access = list(19)
- },
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"Up" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 4;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/bridge)
-"UI" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"UN" = (
-/obj/machinery/porta_turret/ship/syndicate{
- dir = 1;
- id = "hyena_grid"
- },
-/turf/closed/wall/mineral/plastitanium,
-/area/ship/hallway/central)
-"UX" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ship/crew)
-"Ve" = (
-/obj/structure/curtain,
-/obj/structure/toilet,
-/obj/effect/decal/cleanable/blood/old,
-/obj/structure/window/reinforced/spawner/west,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 1
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/crew/dorm)
-"VA" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/mineral/plastitanium/red,
-/area/ship/security/armory)
-"VC" = (
-/obj/machinery/computer/helm{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"VD" = (
-/obj/item/reagent_containers/food/drinks/bottle/wine{
- pixel_x = -15;
- pixel_y = 13
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/remains/human,
-/obj/effect/turf_decal/hardline_small/left{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/fore)
-"VG" = (
-/turf/open/floor/engine/hull,
-/area/ship/external)
-"VX" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/clothing/suit/space/syndicate/black/orange,
-/obj/machinery/suit_storage_unit/inherit/industrial{
- req_one_access = list(48,56)
- },
-/obj/item/clothing/mask/gas/syndicate,
-/obj/item/clothing/head/helmet/space/syndicate/black/orange,
-/obj/item/tank/jetpack/carbondioxide,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"Wc" = (
-/obj/structure/table,
-/obj/item/modular_computer/laptop/preset/civilian,
-/obj/machinery/light/small/directional/north,
-/turf/open/floor/carpet/red,
-/area/ship/crew/dorm)
-"Wd" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/hallway/central)
-"We" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light_switch{
- dir = 8;
- pixel_x = 20
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/dorm)
-"Wp" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"Wt" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"WN" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/turf/open/floor/plasteel/dark,
-/area/ship/bridge)
-"WS" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/door/firedoor/border_only,
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/machinery/door/airlock/grunge{
- name = "Dormitory"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/crew)
-"Xb" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/sign/poster/contraband/peacemaker{
- pixel_y = 32
- },
-/obj/machinery/rnd/server,
-/obj/effect/turf_decal/borderfloorblack{
- dir = 1
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/bridge)
-"Xj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/computer/crew{
- dir = 8
- },
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo/office)
-"Xv" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/clothing/shoes/workboots/mining,
-/obj/item/clothing/accessory/armband/cargo,
-/obj/item/storage/belt/mining,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/welding,
-/obj/machinery/light/small/directional/north,
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "mining";
- name = "wrecker's locker";
- req_access = list(48)
- },
-/obj/machinery/firealarm/directional/east,
-/obj/effect/turf_decal/industrial/outline,
-/obj/item/clothing/under/syndicate/ngr/jumpsuit,
-/obj/item/clothing/suit/hazardvest/ngr,
-/obj/item/clothing/head/hardhat/ngr,
-/obj/item/pickaxe/drill,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"Xz" = (
-/obj/machinery/power/shuttle/engine/fueled/plasma{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ship/maintenance/port)
-"XA" = (
-/obj/structure/bed/dogbed/cayenne{
- desc = "An ordinary dog bed, dusted with ash...";
- name = "David's bed"
- },
-/mob/living/simple_animal/hostile/asteroid/goliath/pup{
- a_intent = "help";
- desc = "A small goliath pup. Its tendrils have not yet fully grown. Someone, somehow, has managed to fit a large dog collar around its neck.";
- environment_smash = 0;
- faction = list("neutral","playerSyndicate");
- mob_size = 2;
- move_force = 1000;
- move_resist = 1000;
- name = "David";
- pull_force = 1000
- },
-/turf/open/floor/carpet/red_gold,
-/area/ship/bridge)
-"XO" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/rack,
-/obj/item/storage/bag/ore,
-/obj/item/storage/bag/ore,
-/obj/item/mining_scanner,
-/obj/item/mining_scanner,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/storage)
-"XP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/orange/hidden{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/item/wrench/syndie,
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
-"XQ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/trimline/opaque/red/filled/warning{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/cargo)
-"XR" = (
-/obj/structure/closet/secure_closet{
- anchored = 1;
- icon_state = "syndicate";
- name = "explosives locker";
- req_access = "list(56, 20)"
- },
-/obj/structure/sign/warning/explosives/alt{
- pixel_x = -32
- },
-/obj/item/storage/backpack/duffelbag/syndie/c4{
- name = "bag of mining charges"
- },
-/obj/item/storage/belt/grenade,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/outline,
-/obj/machinery/button/door{
- id = "wreckerarmory";
- name = "armory shutters";
- pixel_y = 23;
- req_access = null
- },
-/obj/machinery/light_switch{
- pixel_x = -12;
- pixel_y = 23
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
-"XU" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/closet/emcloset/wall/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Yv" = (
-/obj/machinery/nuclearbomb/beer{
- desc = "An evidently-decommissioned nuclear warhead. Sloppy paint on the casing declares 'VICTORY OVER NANOTRASEN,' followed by a badly-smudged date of 25-something. A drink tap has been drilled directly into the metal.";
- name = "comemmorative nuclear fission explosive"
- },
-/obj/effect/turf_decal/corner_techfloor_grid,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew)
-"YH" = (
-/obj/machinery/door/airlock/grunge{
- dir = 4;
- name = "Cargo Bay"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 4
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 8
- },
-/obj/effect/turf_decal/borderfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ship/crew)
-"YI" = (
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerwindows";
- name = "Blast Shutters"
- },
-/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
-/turf/open/floor/plating,
-/area/ship/hallway/central)
-"YV" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-"Zb" = (
-/obj/structure/catwalk/over,
-/turf/open/floor/plating/airless,
-/area/ship/external)
-"Zg" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
- },
-/obj/machinery/door/firedoor/border_only{
- dir = 1
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/poddoor/shutters{
- id = "wreckerarmory";
- name = "Security Shutters"
- },
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security/armory)
-"Zi" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/arrows{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"Zn" = (
-/obj/effect/turf_decal/industrial/outline,
-/obj/structure/table,
-/obj/machinery/cell_charger,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo)
-"ZL" = (
-/obj/machinery/firealarm/directional/south,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/computer/rdconsole/core{
- dir = 8
- },
-/obj/effect/turf_decal/borderfloorblack{
- dir = 4
- },
-/obj/machinery/light_switch{
- dir = 1;
- pixel_x = -10;
- pixel_y = -19
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/cargo/office)
-"ZM" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/industrial/outline,
-/turf/open/floor/plasteel/mono/dark,
-/area/ship/cargo)
-"ZR" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/light/directional/north,
-/turf/open/floor/plasteel/tech,
-/area/ship/hallway/central)
-
-(1,1,1) = {"
-nn
-iT
-Ua
-Xz
-Ua
-iT
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-sE
-MF
-TT
-Ua
-sE
-"}
-(2,1,1) = {"
-nn
-BR
-ir
-PL
-SP
-iT
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-sE
-nX
-dU
-pi
-NA
-"}
-(3,1,1) = {"
-nn
-iT
-OL
-xm
-fW
-iT
-JL
-VG
-VG
-VG
-VG
-DE
-VG
-Kf
-sE
-zZ
-Tu
-KQ
-sE
-"}
-(4,1,1) = {"
-nn
-iT
-KJ
-EL
-DW
-iT
-iT
-iT
-jt
-BG
-jI
-cH
-jI
-jI
-sE
-oV
-AF
-Or
-sE
-"}
-(5,1,1) = {"
-nn
-iT
-zQ
-pz
-SV
-tn
-jP
-iT
-XO
-VX
-iL
-yH
-Sm
-Sa
-sE
-DU
-Ml
-rR
-sE
-"}
-(6,1,1) = {"
-nn
-iT
-zA
-XP
-Ki
-un
-Ft
-RD
-QZ
-Rc
-Bn
-Ok
-QZ
-QZ
-Fl
-nT
-gM
-aH
-sE
-"}
-(7,1,1) = {"
-nn
-iT
-fi
-rM
-KH
-Ic
-vG
-iT
-GM
-dh
-Oy
-KX
-jI
-GV
-GV
-GV
-GV
-sE
-sE
-"}
-(8,1,1) = {"
-nn
-JL
-iT
-yD
-uq
-La
-Gw
-iT
-Xv
-qO
-xx
-rF
-jI
-tl
-Ck
-Ff
-GV
-sE
-CW
-"}
-(9,1,1) = {"
-nn
-Zb
-JL
-iT
-iT
-iT
-iT
-iT
-jI
-JD
-JP
-jI
-jI
-Ve
-jf
-Fe
-GV
-CW
-Zb
-"}
-(10,1,1) = {"
-nn
-Zb
-nn
-cs
-nR
-uk
-UX
-Gj
-Tq
-jT
-IO
-oS
-UX
-pu
-Ay
-Ge
-GV
-nn
-Zb
-"}
-(11,1,1) = {"
-nn
-Zb
-nn
-YI
-Sh
-BB
-mX
-rP
-vi
-UI
-vN
-wO
-UX
-Ms
-Sd
-dQ
-Sg
-nn
-Zb
-"}
-(12,1,1) = {"
-nn
-Zb
-nn
-cs
-FA
-Px
-vR
-yd
-Kn
-ix
-vN
-TK
-UX
-Wc
-Az
-pv
-GV
-nn
-Zb
-"}
-(13,1,1) = {"
-nn
-Zb
-Zb
-cs
-yG
-Lv
-lX
-Yv
-cB
-ut
-ob
-ec
-WS
-We
-zq
-Iz
-GV
-Zb
-Zb
-"}
-(14,1,1) = {"
-nn
-Zb
-nn
-cs
-HT
-jG
-HJ
-HJ
-HJ
-HJ
-YH
-mX
-UX
-GV
-GV
-GV
-ge
-nn
-Zb
-"}
-(15,1,1) = {"
-nn
-UN
-cs
-cs
-XU
-Uh
-HJ
-XR
-bJ
-HJ
-Sv
-bN
-Zn
-fL
-KW
-QG
-QW
-nn
-Zb
-"}
-(16,1,1) = {"
-nn
-hD
-qt
-cs
-ZR
-iI
-DO
-EH
-dG
-bV
-Pn
-Fr
-iv
-nK
-Bg
-jY
-yn
-oO
-Zb
-"}
-(17,1,1) = {"
-nn
-YI
-lt
-sG
-YV
-Sy
-Wp
-Ax
-wE
-Zg
-oJ
-nG
-hc
-fL
-Ib
-ol
-yn
-mL
-oO
-"}
-(18,1,1) = {"
-kR
-Gm
-aN
-Wd
-nS
-tI
-PG
-fY
-VA
-KT
-XQ
-yw
-pP
-fL
-Xj
-ZL
-yn
-Pd
-mL
-"}
-(19,1,1) = {"
-nn
-hD
-xK
-AE
-px
-Th
-HJ
-fv
-jB
-HJ
-cV
-jH
-Ik
-fL
-fL
-fL
-yn
-DF
-mL
-"}
-(20,1,1) = {"
-nn
-SK
-Ap
-Ap
-TR
-yV
-Ap
-NF
-NF
-NF
-TX
-SJ
-Dp
-dA
-Dp
-hh
-mL
-Kb
-fC
-"}
-(21,1,1) = {"
-nn
-AY
-bH
-BZ
-Dq
-rd
-Ap
-lg
-ZM
-Ii
-Zi
-bl
-si
-Wt
-ia
-SE
-mL
-Ky
-or
-"}
-(22,1,1) = {"
-nn
-wp
-no
-KA
-WN
-cg
-Ap
-Af
-hT
-PT
-FQ
-zn
-bd
-sA
-wP
-vv
-mL
-RE
-fg
-"}
-(23,1,1) = {"
-nn
-SK
-yM
-mf
-aF
-Fq
-Ap
-kg
-gg
-Mp
-iC
-Tg
-Qy
-MP
-tS
-RQ
-mL
-VD
-fC
-"}
-(24,1,1) = {"
-nn
-Ap
-Xb
-XA
-ch
-bS
-Ap
-NF
-NF
-NF
-ji
-so
-JS
-NS
-sx
-NN
-mL
-mL
-mL
-"}
-(25,1,1) = {"
-nn
-oz
-FR
-kM
-pH
-ch
-oF
-oz
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-oO
-mL
-mL
-"}
-(26,1,1) = {"
-nn
-oz
-Rl
-Ui
-ch
-Nl
-pI
-oz
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-mL
-mL
-"}
-(27,1,1) = {"
-nn
-Up
-Ap
-Jv
-oQ
-VC
-Ap
-Up
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-mL
-mL
-"}
-(28,1,1) = {"
-nn
-nn
-fV
-Jf
-Jf
-Jf
-fV
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-nn
-oO
-Qz
-"}
diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
index c466f5351f9c..46bdd3fd299d 100644
--- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
+++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm
@@ -998,7 +998,7 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/cargo)
"jD" = (
-/obj/effect/spawner/lootdrop/salvage_capacitor,
+/obj/effect/spawner/random/salvage_capacitor,
/obj/effect/decal/cleanable/shreds,
/obj/structure/cable{
icon_state = "4-8"
@@ -1116,8 +1116,8 @@
/obj/item/clothing/glasses/thermal/eyepatch,
/obj/item/gun/ballistic/revolver/viper,
/obj/item/clothing/under/syndicate/sniper,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/obj/item/radio/headset/syndicate/alt/leader,
/obj/item/clothing/shoes/combat,
/obj/item/clothing/under/syndicate/hardliners/officer,
@@ -1461,7 +1461,7 @@
dir = 9
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/effect/turf_decal/box,
/obj/machinery/camera/autoname{
dir = 10
@@ -1672,9 +1672,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"pJ" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -1775,9 +1773,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ship/crew/canteen)
"qF" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 4
- },
+/obj/machinery/power/smes/shuttle/precharged,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -2013,7 +2009,7 @@
dir = 4
},
/obj/machinery/light/dim/directional/north,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/plasteel/tech,
/area/ship/maintenance/starboard)
"sV" = (
@@ -2062,9 +2058,9 @@
dir = 10
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/costume,
+/obj/effect/spawner/random/clothing/costume,
/obj/item/storage/box/emptysandbags,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/obj/machinery/button/door{
dir = 4;
id = "syndie_mechbay";
@@ -2138,10 +2134,11 @@
/obj/structure/railing{
dir = 4
},
-/obj/item/clothing/under/syndicate/skirt/maid,
-/obj/item/clothing/gloves/combat/maid,
-/obj/item/clothing/head/maidheadband/syndicate,
-/obj/item/clothing/accessory/maidapron/syndicate,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/gloves/maid,
+/obj/item/clothing/head/maidheadband,
+/obj/item/clothing/neck/maid,
+/obj/item/clothing/accessory/maidapron,
/obj/structure/closet/crate/secure/loot,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
@@ -3155,22 +3152,14 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6
- },
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6
- },
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6
- },
-/obj/effect/spawner/lootdrop/ration{
- pixel_x = -6
- },
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/obj/machinery/airalarm/directional/south,
/turf/open/floor/mineral/plastitanium,
/area/ship/hallway/aft)
@@ -3261,7 +3250,7 @@
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/engineering)
"FV" = (
-/obj/effect/spawner/lootdrop/salvage_scanning,
+/obj/effect/spawner/random/salvage_scanning,
/obj/effect/decal/cleanable/shreds{
pixel_y = 14
},
@@ -3305,7 +3294,6 @@
icon_state = "0-8"
},
/obj/docking_port/mobile{
- can_move_docking_ports = 1;
dir = 8;
launch_status = 0;
preferred_direction = 4
@@ -3821,8 +3809,9 @@
},
/obj/item/clothing/under/syndicate/hardliners,
/obj/item/clothing/suit/hazardvest/hardliners,
-/obj/item/gun/energy/plasmacutter,
/obj/item/clothing/gloves/color/red/insulated,
+/obj/item/gear_pack/anglegrinder,
+/obj/item/radio/headset/alt,
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"KL" = (
@@ -3889,10 +3878,10 @@
/obj/structure/table/reinforced,
/obj/item/hemostat,
/obj/machinery/light/directional/west,
-/obj/effect/spawner/lootdrop/random_prosthetic{
+/obj/effect/spawner/random/medical/prosthetic{
pixel_x = 6
},
-/obj/effect/spawner/lootdrop/random_prosthetic{
+/obj/effect/spawner/random/medical/prosthetic{
pixel_x = -6
},
/turf/open/floor/pod/dark,
@@ -4042,9 +4031,7 @@
/obj/machinery/door/window/eastleft{
name = "Engine Access"
},
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
/turf/open/floor/plating,
/area/ship/engineering)
"MV" = (
@@ -4285,9 +4272,7 @@
id = "warship_engines";
name = "Thruster Blast Door"
},
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
- dir = 4
- },
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
/turf/open/floor/plating,
/area/ship/engineering)
"PA" = (
@@ -4469,7 +4454,7 @@
/obj/structure/railing{
dir = 8
},
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
dir = 1
@@ -5252,9 +5237,7 @@
/turf/open/floor/holofloor/wood,
/area/ship/bridge)
"Yb" = (
-/obj/machinery/power/shuttle/engine/electric{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/electric,
/obj/structure/cable{
icon_state = "0-4"
},
@@ -5267,9 +5250,7 @@
/turf/open/floor/engine/hull,
/area/ship/external/dark)
"Yn" = (
-/obj/machinery/power/shuttle/engine/fire{
- dir = 4
- },
+/obj/machinery/power/shuttle/engine/fire,
/turf/open/floor/plating,
/area/ship/engineering)
"Yp" = (
@@ -5361,7 +5342,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/engineering)
"YT" = (
-/obj/effect/spawner/lootdrop/salvage_manipulator,
+/obj/effect/spawner/random/salvage_manipulator,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "4-8"
@@ -5387,7 +5368,7 @@
},
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/obj/item/clothing/gloves/tackler/combat/insulated,
/obj/structure/closet/secure_closet/wall/directional/west{
icon_state = "sec_wall";
@@ -5444,7 +5425,7 @@
},
/area/ship/cargo)
"Zf" = (
-/obj/effect/spawner/lootdrop/salvage_matter_bin,
+/obj/effect/spawner/random/salvage_matter_bin,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning{
@@ -5460,7 +5441,7 @@
/obj/effect/turf_decal/techfloor{
dir = 8
},
-/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/random/maintenance/two,
/obj/machinery/button/door{
dir = 1;
id = "Artillery2shutter";
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
new file mode 100644
index 000000000000..55d8cc03bfad
--- /dev/null
+++ b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
@@ -0,0 +1,7041 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ab" = (
+/obj/structure/chair/sofa/brown/right/directional/north,
+/obj/item/radio/intercom/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"au" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"av" = (
+/obj/structure/marker_beacon{
+ picked_color = "Burgundy"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"aA" = (
+/obj/structure/chair/sofa/brown/left/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"aD" = (
+/obj/structure/guncloset{
+ anchored = 1;
+ can_be_unanchored = 1;
+ open = 0;
+ req_access_txt = "3"
+ },
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/no_mag,
+/obj/item/gun/ballistic/automatic/pistol/asp/no_mag,
+/obj/item/gun/ballistic/automatic/pistol/asp/no_mag,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/structure/sign/flag/ngr{
+ dir = 4;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"aE" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"aM" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"aP" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/electrical)
+"aS" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/electrical)
+"aU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Command Deck";
+ normalspeed = 0;
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/office)
+"aX" = (
+/obj/machinery/suit_storage_unit/inherit{
+ name = "wrecker's suit storage unit";
+ req_access_txt = "48"
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/clothing/suit/space/syndicate/black/green,
+/obj/item/clothing/head/helmet/space/syndicate/black/green,
+/obj/item/clothing/mask/gas/syndicate,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"aY" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"aZ" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo/office)
+"bp" = (
+/obj/structure/chair/office,
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"bt" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/folder/syndicate{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/pen/blue{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/pen/red{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -8;
+ pixel_y = 13
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/office)
+"bM" = (
+/obj/structure/chair/handrail,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy{
+ pixel_x = -4;
+ pixel_y = 14
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy{
+ pixel_x = 6;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/pacfuel{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 22
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"bT" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/tank_dispenser,
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"bW" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Foreman's Office";
+ normalspeed = 0;
+ req_access_txt = "56"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo/office)
+"cc" = (
+/obj/structure/closet/wardrobe/black{
+ name = "wardrobe";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"ce" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/closet/wall/directional/west{
+ name = "closet"
+ },
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"cy" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm/captain)
+"cB" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"cE" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"cG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"cJ" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"cR" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"cU" = (
+/obj/machinery/atmospherics/components/trinary/mixer{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"cX" = (
+/obj/structure/table/reinforced,
+/obj/item/book/manual/wiki/piloting{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"dn" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 5;
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/science/workshop)
+"dB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"dC" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 5;
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/hallway/central)
+"dW" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/structure/filingcabinet/chestdrawer{
+ pixel_x = -6
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/button/door{
+ id = "derecho_entrance_blast";
+ name = "Blast Door Control";
+ pixel_x = -4;
+ pixel_y = 23
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "derecho_entrance_holo";
+ pixel_x = 7;
+ pixel_y = 21
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"dX" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/chair/handrail,
+/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"dZ" = (
+/obj/structure/crate_shelf,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"ea" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/item/cutting_board{
+ pixel_y = 3
+ },
+/obj/item/melee/knife,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"eb" = (
+/obj/effect/turf_decal/rechargefloor,
+/obj/structure/mecha_wreckage/ripley/mkii,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"ep" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/tank/jetpack/carbondioxide{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/storage/toolbox/syndicate{
+ name = "syndicate toolbox";
+ pixel_x = 3;
+ pixel_y = 1
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"er" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/item/paper_bin/carbon{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/desk_flag/ngr{
+ pixel_x = -8;
+ pixel_y = 13
+ },
+/obj/item/folder/syndicate{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/pen/blue{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/pen/red{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/lighter{
+ pixel_x = -10;
+ pixel_y = 2
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"eu" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/structure/closet/crate{
+ name = "food crate"
+ },
+/obj/structure/chair/handrail,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"ex" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/hallway/fore)
+"eA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"eB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/structure/cabinet/fireaxe{
+ pixel_y = 21
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"eC" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/storage/equip)
+"eD" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_atmos_shut";
+ name = "Atmospherics Shutters";
+ pixel_x = -21;
+ pixel_y = -3
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"eL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"fa" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/closet/emcloset,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/machinery/light/small/directional/west,
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -7
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"fe" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/aft)
+"fB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_foreman_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 21;
+ pixel_y = 7;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"fC" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ dir = 8;
+ name = "Thrusters";
+ req_access_txt = "10"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines)
+"fD" = (
+/obj/item/cigbutt{
+ pixel_x = -5;
+ pixel_y = -6
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"fF" = (
+/obj/machinery/vending/cola/sodie,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = -32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"fQ" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_starboard_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"fX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/drinks/modglass{
+ icon_state = "mglass-6-";
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/modglass{
+ icon_state = "mglass-6-";
+ pixel_x = -3
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"gc" = (
+/obj/structure/crate_shelf,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"gx" = (
+/obj/machinery/autolathe,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"gD" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/structure/closet/crate/bin,
+/obj/structure/noticeboard{
+ dir = 8;
+ name = "menu board";
+ pixel_x = 28
+ },
+/obj/machinery/button/door{
+ id = "derecho_mess_shut";
+ name = "Canteen Shutters";
+ pixel_x = 3;
+ pixel_y = 23
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/trash/chips,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"gF" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"gK" = (
+/obj/machinery/mineral/processing_unit_console{
+ machinedir = 2;
+ pixel_y = 26
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/chair/handrail,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"gU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Life Support";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"gV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"gW" = (
+/obj/structure/rack,
+/obj/item/gun/energy/plasmacutter{
+ pixel_y = 15
+ },
+/obj/item/screwdriver/power{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/item/crowbar/power{
+ pixel_x = -9;
+ pixel_y = -1
+ },
+/obj/machinery/airalarm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"hf" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/syndicate{
+ name = "syndicate toolbox";
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/machinery/cell_charger{
+ pixel_y = 7
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = 9;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500";
+ layer = 2.04
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"hg" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 1
+ },
+/obj/item/desk_flag/ngr{
+ pixel_x = 14;
+ pixel_y = 1
+ },
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/obj/item/stamp/denied{
+ pixel_x = -12;
+ pixel_y = 7
+ },
+/obj/item/stamp{
+ pixel_x = -12;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"hk" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 5;
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"hr" = (
+/obj/machinery/computer/mech_bay_power_console,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"hI" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 5;
+ pixel_y = 14
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/sign/flag/ngr{
+ dir = 1;
+ pixel_y = -32
+ },
+/obj/item/trash/popcorn,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"hL" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"in" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "equipment locker"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/item/storage/box/ammo/a357{
+ pixel_x = -7;
+ pixel_y = 2
+ },
+/obj/item/storage/box/ammo/c57x39{
+ pixel_x = 13;
+ pixel_y = 1
+ },
+/obj/item/storage/box/ammo/c57x39{
+ pixel_x = 13;
+ pixel_y = 1
+ },
+/obj/item/storage/box/ammo/a12g_buckshot{
+ pixel_y = -5
+ },
+/obj/item/storage/box/ammo/a12g_buckshot{
+ pixel_y = -5
+ },
+/obj/item/ammo_box/magazine/m57_39_asp/empty,
+/obj/item/ammo_box/magazine/m57_39_asp/empty,
+/obj/item/ammo_box/magazine/m57_39_asp/empty,
+/obj/item/ammo_box/magazine/m57_39_asp/empty,
+/obj/item/ammo_box/magazine/m12g_bulldog/empty,
+/obj/item/ammo_box/magazine/m12g_bulldog/empty,
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"iy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"iA" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/grille,
+/obj/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/bridge)
+"iC" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"iE" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"iH" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"iK" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/twenty,
+/obj/item/stack/sheet/glass/five,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"iO" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"iZ" = (
+/obj/structure/closet/wardrobe/black{
+ name = "wardrobe";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"jn" = (
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"js" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = -8
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"ju" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"jA" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"jN" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"jW" = (
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"jX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/machinery/button/door{
+ id = "derecho_dorms_shut";
+ name = "Crew Quarters Shutters";
+ pixel_x = 3;
+ pixel_y = 23
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"kg" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"ki" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"ks" = (
+/obj/structure/sign/warning/gasmask,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"ky" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/external/dark)
+"kG" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "derecho_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/bridge)
+"kH" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 21;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"kU" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable/yellow,
+/obj/machinery/light/dim/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"kX" = (
+/obj/structure/grille,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"ld" = (
+/obj/machinery/suit_storage_unit/inherit{
+ name = "wrecker's suit storage unit";
+ req_access_txt = "48"
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/clothing/suit/space/syndicate/black/green,
+/obj/item/clothing/head/helmet/space/syndicate/black/green,
+/obj/item/clothing/mask/gas/syndicate,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_y = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"lg" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/accessory/armband/engine,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/storage/belt/utility,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/head/ngr,
+/obj/item/radio/headset/alt,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/mask/gas/syndicate,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/item/clothing/glasses/meson,
+/obj/item/pipe_dispenser{
+ pixel_x = 2;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"lh" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"li" = (
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"ln" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/science/workshop)
+"lt" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable/yellow,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"lv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"lF" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"lQ" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/computer/atmos_alert{
+ dir = 4;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"lS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"lU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"lY" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/item/cigbutt{
+ pixel_x = 14;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"mb" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "0-9"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"mu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"mv" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/obj/structure/table,
+/obj/item/storage/fancy/cigarettes/cigpack_robustgold{
+ pixel_x = 3;
+ pixel_y = 14
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_robust{
+ pixel_x = -7;
+ pixel_y = 9
+ },
+/obj/item/lighter/greyscale{
+ pixel_x = 12;
+ pixel_y = 12
+ },
+/obj/item/storage/belt/mining{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/item/storage/belt/utility,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"mJ" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"mM" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"mO" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{
+ dir = 1;
+ piping_layer = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"mR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"mT" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"mU" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/pacfuel{
+ pixel_x = 10;
+ pixel_y = 16
+ },
+/obj/structure/punching_bag,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/cigbutt{
+ pixel_x = -10;
+ pixel_y = 4
+ },
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"nb" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/starboard)
+"ng" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 8
+ },
+/obj/structure/chair/handrail,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"nk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Engineering";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"nt" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"nz" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"nY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"oa" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/noticeboard{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"oc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Cargo Bay";
+ req_ship_access = 0
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"oe" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_mess_shut";
+ name = "Canteen Shutters";
+ pixel_x = -21;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"oh" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"ok" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"om" = (
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"ot" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"ox" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"oy" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"oz" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_office_shut";
+ name = "Office Shutters";
+ pixel_x = -21;
+ pixel_y = 7
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -3
+ },
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_x = -6
+ },
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -7
+ },
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = 7
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"oF" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"oQ" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"oS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/firealarm/directional/west{
+ pixel_y = -4
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"oZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"pa" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"pd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"pe" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"pg" = (
+/obj/structure/table,
+/obj/machinery/jukebox/boombox,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/newscaster/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"pk" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Helm"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"pn" = (
+/obj/structure/closet/crate/secure/loot,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"px" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ req_ship_access = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/aft)
+"pF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Workshop";
+ req_access = null;
+ req_one_access = list(10, 48)
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"pH" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/turretid/ship{
+ id = "derecho_grid";
+ pixel_x = -3;
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"pJ" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"pL" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"pR" = (
+/obj/structure/marker_beacon{
+ picked_color = "Yellow"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"pS" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500";
+ layer = 2.04
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = 22
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"qc" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"qf" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"qh" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/computer/monitor{
+ dir = 4;
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 4
+ },
+/obj/machinery/light/dim/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"qi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"qn" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/item/instrument/guitar,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"qr" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/canteen)
+"qA" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines)
+"qB" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"qD" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"qE" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew)
+"qF" = (
+/obj/machinery/atmospherics/components/trinary/mixer{
+ dir = 1
+ },
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"qH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ name = "Crew Quarters";
+ req_ship_access = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"qS" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/platform/military,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"qY" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_mess_shut";
+ name = "Canteen Shutters";
+ pixel_x = 21;
+ pixel_y = -3
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"rD" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"rL" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/storage/equip)
+"rW" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"sa" = (
+/obj/structure/chair/bench/orange/directional/east,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"se" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Control Room";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"sg" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"sm" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "derecho_eng_shut";
+ name = "Engineering Shutters";
+ pixel_x = 3;
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"sn" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/trash/can,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"sv" = (
+/obj/structure/closet/firecloset/wall/directional/south,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"sC" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/west,
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy{
+ pixel_x = -2;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/pacfuel{
+ pixel_x = 9;
+ pixel_y = 17
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/crosstalk{
+ pixel_x = 3;
+ pixel_y = 14
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"sD" = (
+/obj/machinery/porta_turret/ship/ngr{
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"sG" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/closet/crate/medical,
+/obj/item/storage/box/bodybags,
+/obj/item/storage/firstaid/regular,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/platform/military{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"sH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"sL" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ id_tag = "derecho_bathroom_door";
+ name = "Restroom";
+ req_ship_access = 0
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"sM" = (
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"sN" = (
+/obj/machinery/telecomms/relay/preset/mining{
+ autolinkers = list("relay","hub");
+ freq_listening = list(1213);
+ id = "NGR Relay";
+ name = "NGR Relay";
+ network = "ngr_commnet"
+ },
+/obj/machinery/door/window/brigdoor/westright{
+ dir = 1;
+ req_access = list(20);
+ req_ship_access = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"sU" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/closet/crate/secure/loot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/platform/military,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"sZ" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"te" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"tg" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/firealarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"tp" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/tank_dispenser,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door{
+ id = "derecho_storage_shut";
+ name = "Storage Shutters";
+ pixel_x = -3;
+ pixel_y = 20;
+ req_ship_access = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"tZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"ua" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Storage Bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"uE" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"uK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"uX" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"vc" = (
+/obj/structure/sign/number/random{
+ dir = 1
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/science/workshop)
+"vd" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"vi" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/button/door{
+ dir = 1;
+ id = "derecho_storage_shut";
+ name = "Storage Shutters";
+ pixel_x = 3;
+ pixel_y = -20
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"vr" = (
+/obj/structure/closet/syndicate/personal{
+ name = "foreman's closet";
+ populate = 0
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/ngr,
+/obj/item/clothing/gloves/color/red/insulated,
+/obj/item/radio/headset/syndicate/alt,
+/obj/item/clothing/head/hardhat/ngr/foreman,
+/obj/item/clothing/glasses/sunglasses,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/megaphone,
+/obj/item/storage/guncase/pistol/pc76,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"vs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"vv" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"vA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Canteen";
+ req_ship_access = 0
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"vC" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"vF" = (
+/obj/machinery/conveyor{
+ dir = 5;
+ id = "derecho_belt"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"vJ" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "derecho_belt"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"vS" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/bed/dogbed,
+/mob/living/simple_animal/hostile/asteroid/goliath/pup{
+ a_intent = "help";
+ desc = "A small goliath pup. Its tendrils have not yet fully grown. Someone, somehow, has managed to fit a large dog collar around its neck.";
+ environment_smash = 0;
+ faction = list("neutral","playerSyndicate");
+ mob_size = 2;
+ move_resist = 1000;
+ name = "David";
+ pixel_x = 0
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"vV" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Equipment Storage";
+ req_access_txt = "10"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"wa" = (
+/obj/structure/cable{
+ icon_state = "1-10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Starboard Thrusters";
+ req_access_txt = "10"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines)
+"wg" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Canteen";
+ req_ship_access = 0
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew)
+"wj" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/hallway/central)
+"ws" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"wE" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"wF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"wG" = (
+/obj/structure/sign/flag/ngr{
+ dir = 4;
+ pixel_x = -32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"wN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"wR" = (
+/obj/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
+/turf/open/floor/engine/air,
+/area/ship/engineering/atmospherics)
+"wV" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"wY" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/crate/bin,
+/obj/machinery/light/dim/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"xD" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "derecho_belt"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/mineral/processing_unit{
+ input_dir = 8;
+ output_dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"xQ" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Foreman's Office";
+ normalspeed = 0;
+ req_access_txt = "56"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo/office)
+"xU" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"yb" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"yh" = (
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/hallway/fore)
+"yi" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"yq" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"yu" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/turf_decal/industrial/stand_clear{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"yv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/light/directional/south,
+/obj/structure/closet/emcloset/wall/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"yz" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/syndicate{
+ name = "syndicate toolbox";
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/machinery/cell_charger{
+ pixel_y = 7
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"yD" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/streak,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"yO" = (
+/obj/machinery/power/shuttle/engine/fire{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"yS" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_port_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"yW" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"zk" = (
+/obj/structure/closet/crate/radiation{
+ name = "fuel crate"
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/stack/sheet/mineral/uranium/ten,
+/obj/effect/turf_decal/radiation/white,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"zn" = (
+/obj/structure/table/wood,
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = 7
+ },
+/obj/item/stamp/ngr/captain{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_x = 7;
+ pixel_y = 16
+ },
+/obj/item/stamp/ngr{
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain/captain{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 11;
+ pixel_y = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/syndiemoth{
+ pixel_x = 32
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"zr" = (
+/obj/structure/chair/comfy/grey/directional/west,
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"zz" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1;
+ name = "Operations"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"zA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"zB" = (
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"zC" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"zI" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/storage/box/gum/nicotine,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"zJ" = (
+/obj/machinery/nuclearbomb/beer/empty{
+ desc = "An evidently-decommissioned nuclear warhead. Faded paint on the casing reads \"VICTORY OVER NANOTRASEN\", with a much newer plaque installed on top commemorating the end of the ICW in 497. A drink tap has been drilled directly into the metal.";
+ name = "comemmorative nuclear fission explosive"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"zL" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4{
+ dir = 5
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"zN" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/structure/sign/flag/ngr{
+ dir = 4;
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"zV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"zW" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"Ad" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500";
+ layer = 2.04
+ },
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"Ae" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/sink/kitchen{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Ah" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"Aq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Bridge";
+ normalspeed = 0;
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"Au" = (
+/obj/structure/toilet,
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_bathroom_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -20;
+ pixel_y = 7;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/obj/effect/decal/cleanable/blood/drip,
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/canteen)
+"AV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"AW" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"AZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"Ba" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"By" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-10"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"BE" = (
+/obj/structure/bed,
+/obj/structure/curtain/cloth/fancy,
+/obj/item/bedsheet/syndie{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"BH" = (
+/obj/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
+ piping_layer = 2
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering/atmospherics)
+"BK" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/power/ship_gravity,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Ca" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/closet/secure_closet/engineering_electrical{
+ req_access = null;
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Ci" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/bridge)
+"Cl" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"Cn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/engineering/electrical)
+"Cs" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_atmos_shut"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"CB" = (
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/platform/military,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"CI" = (
+/obj/machinery/computer/crew{
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"CN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"CX" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_starboard_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 21;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"CY" = (
+/obj/structure/rack,
+/obj/item/tank/jetpack/carbondioxide{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/tank/jetpack/carbondioxide{
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"Dq" = (
+/obj/structure/rack,
+/obj/item/pickaxe/drill{
+ pixel_y = 9
+ },
+/obj/item/pickaxe/drill,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/firealarm/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/melee/axe/sledgehammer,
+/obj/item/melee/axe/sledgehammer{
+ pixel_x = 5
+ },
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"DD" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"DI" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"DL" = (
+/obj/structure/railing/corner,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ layer = 2.04
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"DP" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "5-6"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"DS" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_port_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 21;
+ pixel_y = 7
+ },
+/obj/item/trash/syndi_cakes,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"DT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/portables_connector/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"Ef" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/engineering_chief{
+ name = "\proper foreman's equipment locker";
+ populate = 0
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/machinery/airalarm/directional/east,
+/obj/item/storage/belt/utility/chief,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/screwdriver/power{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/item/crowbar/power{
+ pixel_x = -9;
+ pixel_y = -1
+ },
+/obj/item/t_scanner,
+/obj/item/clothing/mask/gas/syndicate{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"Eh" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm)
+"Ei" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/hardline_small/left,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Ej" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/hardline_small,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Ep" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/turf_decal/hardline_small/right,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Et" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"Ez" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"ED" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"EF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"EM" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs{
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/hallway/central)
+"ER" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/structure/reagent_dispensers/foamtank,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"EY" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{
+ dir = 1;
+ piping_layer = 4
+ },
+/obj/structure/sign/poster/contraband/atmosia_independence{
+ pixel_x = -32
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"EZ" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Fk" = (
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Fp" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1;
+ layer = 2.04
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"FC" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Gb" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/item/bedsheet/syndie{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"Gc" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Gg" = (
+/obj/structure/ore_box,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 22
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Gl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-9"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Port Thrusters";
+ req_access_txt = "10"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines)
+"Gr" = (
+/obj/structure/chair/sofa/brown/corner/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"GC" = (
+/obj/structure/sign/number/random{
+ dir = 1
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"GD" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"GI" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"GS" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/components/binary/pump/layer4,
+/obj/machinery/light/dim/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"Hf" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/effect/turf_decal/number/right_four,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Hv" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2,
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"HJ" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 1;
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/electrical)
+"HP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/number/left_nine,
+/obj/effect/turf_decal/number/right_nine,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"HX" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_office_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew/office)
+"Id" = (
+/obj/machinery/computer/cargo{
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"Im" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = 22
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Iq" = (
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"IV" = (
+/obj/structure/filingcabinet/double{
+ density = 0;
+ dir = 8;
+ pixel_x = 10
+ },
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_office_shut";
+ name = "Office Shutters";
+ pixel_x = 21;
+ pixel_y = -3
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"Jh" = (
+/obj/machinery/cryopod,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"Jj" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"Jv" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/light/directional/north,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"JA" = (
+/obj/docking_port/stationary{
+ dwidth = 15;
+ height = 30;
+ width = 30
+ },
+/turf/template_noop,
+/area/template_noop)
+"JD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"JE" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"JM" = (
+/obj/structure/chair/bench/orange/directional/west,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/machinery/newscaster/directional/east,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"JP" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"JS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"JV" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_eng_shut"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Ki" = (
+/obj/machinery/conveyor{
+ dir = 1;
+ id = "derecho_belt"
+ },
+/obj/machinery/mineral/unloading_machine{
+ input_dir = 2;
+ output_dir = 1
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"Kn" = (
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Ko" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ id_tag = "derecho_foreman_door";
+ name = "Foreman's Quarters";
+ req_access_txt = "56"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"Kz" = (
+/obj/structure/crate_shelf,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"KD" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/sign/poster/contraband/aclf{
+ pixel_y = -32
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"KF" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half,
+/obj/structure/sign/flag/ngr{
+ pixel_y = 32
+ },
+/obj/structure/chair/handrail,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"KL" = (
+/obj/structure/table/reinforced,
+/obj/machinery/fax/syndicate{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"KR" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/radio/intercom/directional/south{
+ pixel_x = -7
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"KX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"La" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/computer/cryopod/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"Ld" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/cryo)
+"LC" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"LI" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/office)
+"LP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_storage_shut"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"LT" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"Ma" = (
+/obj/structure/bookcase/random/fiction,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Ml" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"Mo" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = 22
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Ms" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/cargo/office)
+"MA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"MB" = (
+/obj/structure/mopbucket,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mop,
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"ME" = (
+/obj/structure/table,
+/obj/item/toy/cards/deck/syndicate{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/item/toy/cards/deck/kotahi{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/obj/item/dice/d6{
+ pixel_x = 5;
+ pixel_y = 14
+ },
+/obj/item/dice/d6{
+ pixel_x = -5;
+ pixel_y = 11
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"MG" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"MH" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/inherit,
+/obj/structure/sign/poster/contraband/gec{
+ pixel_x = 32
+ },
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/shoes/magboots/syndie,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"MK" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"MM" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/obj/structure/closet/emcloset/wall/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"MN" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/canteen)
+"MU" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Nk" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"Nm" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Np" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Nq" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Nw" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/platform/military,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Nz" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/engineering)
+"NK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"NW" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/dresser{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/airalarm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"NY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Cryo Bay"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"Oh" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Oj" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"OC" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"OI" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/light/floor/hangar,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"OK" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/dim/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"OR" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/machinery/light/dim/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"Pc" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"Pk" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"Pq" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"Py" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"PD" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_entrance_blast"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "derecho_entrance_holo";
+ locked = 1
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"PF" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"PG" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"PH" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/machinery/suit_storage_unit/inherit{
+ name = "foreman's suit storage unit";
+ req_access = list(56)
+ },
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/shoes/magboots/syndie,
+/obj/structure/sign/poster/contraband/engis_unite{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"PV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = -3
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_captain_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -21;
+ pixel_y = 7;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"PY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Qj" = (
+/obj/effect/turf_decal/industrial/outline/yellow,
+/obj/effect/turf_decal/arrows{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Qq" = (
+/obj/machinery/atmospherics/components/binary/pump/layer4{
+ name = "waste pump"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"Qw" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "derecho_bridge_shut";
+ name = "Bridge Shutters";
+ pixel_x = 3;
+ pixel_y = -20
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"QB" = (
+/obj/structure/closet/secure_closet/freezer{
+ anchored = 1;
+ locked = 0;
+ name = "fridge"
+ },
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/item/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/reagent_containers/condiment/soymilk,
+/obj/item/storage/fancy/egg_box,
+/obj/machinery/light/directional/west,
+/obj/structure/sign/poster/contraband/robustmore_drinkfoods{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"QC" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/syndicate/ngr/jumpsuit,
+/obj/item/clothing/accessory/armband/cargo,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/gloves/explorer,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/cargotech{
+ name = "wrecker's wardrobe";
+ populate = 0
+ },
+/obj/machinery/light/small/directional/north,
+/obj/structure/sign/poster/official/moth/hardhats{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/melee/knife/survival,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"QD" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"QZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/sign/directions/supply{
+ dir = 4;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Re" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Ry" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_x = -32
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 8;
+ pixel_y = 14
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -7;
+ pixel_y = 10
+ },
+/obj/item/stamp/ngr/foreman{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/obj/item/stamp/ngr{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"RD" = (
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"RO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"RP" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/closet/emcloset/wall/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"RU" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"RY" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"RZ" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Sf" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"Su" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/item/radio/intercom/wideband/table{
+ dir = 1;
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Sy" = (
+/obj/machinery/suit_storage_unit/inherit{
+ req_access_txt = "3"
+ },
+/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"SC" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_dorms_shut"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew)
+"SD" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"SG" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/cargo/office)
+"SK" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"SP" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "derecho_mess_shut"
+ },
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"ST" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -20;
+ pixel_y = 7
+ },
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"Ta" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Tb" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/structure/filingcabinet/chestdrawer{
+ pixel_x = 6
+ },
+/obj/item/folder/documents/syndicate/ngr,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Tg" = (
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/atmospherics)
+"Tk" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/item/storage/box/drinkingglasses{
+ pixel_x = -11;
+ pixel_y = 10
+ },
+/obj/item/paper{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Tm" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"To" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Tq" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Ty" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/closet/secure_closet/engineering_welding{
+ req_access = null;
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/tools{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"TC" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"TG" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "derecho_belt"
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/science/workshop)
+"TJ" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_entrance_blast"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 1;
+ id = "derecho_entrance_holo";
+ locked = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"TT" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{
+ dir = 9
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_x = 22
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"TW" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/structure/sign/directions/engineering{
+ dir = 1;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Uh" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/crew)
+"Ui" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"Ul" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"Un" = (
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/syndicate/ngr/jumpsuit,
+/obj/item/clothing/accessory/armband/cargo,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/gloves/explorer,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/cargotech{
+ name = "wrecker's wardrobe";
+ populate = 0
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/melee/knife/survival,
+/turf/open/floor/pod,
+/area/ship/storage/equip)
+"UA" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 6;
+ id = "derecho_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew/office)
+"UB" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Ve" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/machinery/light/dim/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"Vj" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/starboard)
+"Vn" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = 25;
+ req_access = null
+ },
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"Vq" = (
+/obj/machinery/computer/card{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"VC" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"VG" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"VH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ id_tag = "derecho_captain_door";
+ name = "Captain's Quarters";
+ req_access_txt = "20"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm/captain)
+"VL" = (
+/obj/machinery/holopad/emergency/command,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/office)
+"VW" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ship/engineering/electrical)
+"Wg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Custodial Closet"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"Wl" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Wn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Command Deck";
+ normalspeed = 0;
+ req_access_txt = "19"
+ },
+/obj/structure/sign/directions/command{
+ dir = 4;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/starboard)
+"Wo" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/science/workshop)
+"Wp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"Wu" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "derecho_dorms_shut";
+ name = "Crew Quarters Shutters";
+ pixel_x = 21;
+ pixel_y = 7
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"Wx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"WD" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines)
+"WE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Locker Room";
+ req_access_txt = "48"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/storage/equip)
+"WJ" = (
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = 32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"WP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew)
+"WR" = (
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 4;
+ height = 30;
+ width = 7
+ },
+/turf/template_noop,
+/area/template_noop)
+"Xb" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"Xd" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/crew/canteen)
+"Xi" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Xu" = (
+/obj/structure/marker_beacon{
+ picked_color = "Lime"
+ },
+/obj/structure/catwalk/over,
+/obj/docking_port/mobile{
+ dir = 4;
+ launch_status = 0;
+ port_direction = 2;
+ preferred_direction = 4
+ },
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Xx" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines)
+"XF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"XJ" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = 7
+ },
+/obj/structure/sign/directions/service{
+ pixel_y = -20
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"XM" = (
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/obj/structure/sign/poster/rilena/random{
+ pixel_x = -32
+ },
+/obj/item/trash/cheesie{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"XR" = (
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/cleanliness{
+ pixel_x = 32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/pushbroom,
+/obj/item/soap,
+/obj/structure/closet/wall/directional/south{
+ name = "custodial closet"
+ },
+/obj/item/storage/bag/trash,
+/turf/open/floor/pod,
+/area/ship/crew/cryo)
+"XY" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Yj" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Yn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/airalarm/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Yp" = (
+/obj/structure/closet/syndicate/personal{
+ name = "captain's closet";
+ populate = 0
+ },
+/obj/item/storage/backpack/security,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/armor/ngr/captain,
+/obj/item/clothing/gloves/combat,
+/obj/item/radio/headset/syndicate/alt/captain,
+/obj/item/clothing/head/ngr/peaked,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/megaphone,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/item/storage/guncase/pistol/a357,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"Yq" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "derecho_entrance_blast"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"Yv" = (
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/button/shieldwallgen{
+ dir = 4;
+ id = "derecho_entrance_holo";
+ pixel_x = -20;
+ pixel_y = 7;
+ req_one_access = null;
+ req_ship_access = 1
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "derecho_entrance_blast";
+ name = "Blast Door Control";
+ pixel_x = -21;
+ pixel_y = -4;
+ req_one_access = null;
+ req_ship_access = 1
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Yw" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{
+ piping_layer = 4
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"YA" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"YD" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ layer = 2.04
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"YM" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/conveyor_switch{
+ id = "derecho_belt"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/science/workshop)
+"YR" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"YZ" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Zm" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/light/floor/hangar,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Zx" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/obj/structure/bed/roller,
+/obj/structure/platform/military{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"ZE" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"ZF" = (
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"ZG" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"ZQ" = (
+/turf/template_noop,
+/area/template_noop)
+"ZR" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"ZY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+
+(1,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+pR
+ZQ
+ZQ
+ZQ
+ZQ
+qA
+yO
+yO
+qA
+ZQ
+ZQ
+ZQ
+ZQ
+pR
+ZQ
+ZQ
+ZQ
+"}
+(2,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+qA
+yS
+yS
+qA
+ZQ
+qA
+WD
+WD
+qA
+ZQ
+qA
+fQ
+fQ
+qA
+ZQ
+ZQ
+ZQ
+"}
+(3,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+qA
+uX
+DP
+qA
+qA
+qA
+Xx
+kH
+qA
+qA
+qA
+DP
+AW
+qA
+ZQ
+ZQ
+ZQ
+"}
+(4,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+qA
+By
+DS
+Gl
+PF
+qA
+fC
+qA
+qA
+tg
+wa
+CX
+mb
+qA
+ZQ
+ZQ
+ZQ
+"}
+(5,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ky
+qA
+qA
+qA
+qA
+QD
+EY
+JE
+mO
+Gc
+zL
+qA
+qA
+qA
+qA
+ky
+ZQ
+ZQ
+"}
+(6,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+kX
+qB
+BH
+DT
+GS
+Re
+lv
+yD
+cU
+qF
+GI
+vV
+eD
+Qq
+Cs
+Jj
+ZQ
+ZQ
+"}
+(7,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+kX
+qB
+wR
+Hv
+Tg
+SK
+Yw
+ER
+TT
+sM
+cB
+qB
+SD
+iy
+qB
+kX
+ZQ
+ZQ
+"}
+(8,1,1) = {"
+ZQ
+ZQ
+ZQ
+aP
+aS
+aS
+qB
+qB
+qB
+qB
+gU
+qB
+qB
+qB
+VC
+VC
+VC
+VC
+VC
+VC
+VC
+qE
+ZQ
+"}
+(9,1,1) = {"
+ZQ
+ZQ
+ZQ
+aS
+LT
+kU
+CB
+BK
+Ei
+Hf
+Ta
+aS
+TW
+RP
+VC
+XM
+wG
+RD
+iZ
+oh
+NW
+VC
+qE
+"}
+(10,1,1) = {"
+ZQ
+ZQ
+ZQ
+aS
+LT
+lt
+qS
+Ca
+Ej
+HP
+To
+nk
+zC
+yW
+VC
+WJ
+fD
+Kn
+cc
+sZ
+aA
+Gr
+SC
+"}
+(11,1,1) = {"
+ZQ
+ZQ
+ZQ
+aS
+zk
+lF
+rD
+Cn
+Ep
+Im
+Ty
+aS
+zA
+mu
+qH
+WP
+rW
+rW
+Ui
+GD
+ME
+ab
+VC
+"}
+(12,1,1) = {"
+ZQ
+ZQ
+ZQ
+HJ
+VW
+VW
+se
+Ld
+Ld
+Ld
+Ld
+Ld
+CN
+Np
+VC
+jX
+JM
+Wu
+yq
+mJ
+qn
+Ma
+SC
+"}
+(13,1,1) = {"
+ZQ
+ZQ
+ZQ
+Py
+qh
+lQ
+sm
+Ld
+Jh
+ce
+fa
+Ld
+eL
+ZG
+VC
+VC
+VC
+VC
+wg
+Uh
+VC
+VC
+VC
+"}
+(14,1,1) = {"
+ZQ
+ZQ
+ZQ
+JV
+Nz
+lY
+sv
+Ld
+ED
+Iq
+TC
+NY
+JD
+OC
+VG
+QB
+Ae
+oe
+ok
+sn
+fF
+VG
+ZQ
+"}
+(15,1,1) = {"
+ZQ
+ZQ
+ZQ
+Py
+MH
+lg
+yz
+Ld
+qc
+La
+Ul
+Ld
+dB
+yW
+kg
+ea
+qD
+Tk
+ok
+Xd
+gF
+VG
+sD
+"}
+(16,1,1) = {"
+ZQ
+ZQ
+eC
+rL
+rL
+rL
+rL
+rL
+rL
+Ld
+Wg
+Ld
+Ba
+qi
+vA
+Et
+oZ
+NK
+Wp
+MK
+yb
+te
+SP
+"}
+(17,1,1) = {"
+ZQ
+ZQ
+rL
+ld
+aX
+mv
+sC
+CY
+rL
+LC
+XF
+Ld
+pd
+XJ
+VG
+gD
+iO
+DD
+au
+gV
+iH
+hI
+VG
+"}
+(18,1,1) = {"
+ZQ
+ZQ
+rL
+bM
+AZ
+AZ
+JS
+gW
+rL
+MB
+cE
+Ld
+px
+fe
+VG
+VG
+sL
+VG
+pg
+gV
+YA
+Mo
+SP
+"}
+(19,1,1) = {"
+ZQ
+ZQ
+rL
+QC
+Un
+mU
+sH
+Dq
+rL
+MG
+XR
+Ld
+lS
+uE
+VG
+Au
+qr
+VG
+zJ
+zV
+qY
+VG
+MN
+"}
+(20,1,1) = {"
+ZQ
+RY
+RY
+RY
+RY
+rL
+WE
+rL
+rL
+Ld
+Ld
+Ld
+QZ
+KD
+Eh
+Eh
+Eh
+Eh
+Eh
+Wn
+nb
+nb
+ZQ
+"}
+(21,1,1) = {"
+ZQ
+js
+aE
+bT
+RY
+ng
+uK
+YD
+wj
+MM
+Yj
+XY
+wF
+KX
+Eh
+vr
+sa
+Ry
+Eh
+tZ
+ST
+nb
+ZQ
+"}
+(22,1,1) = {"
+JA
+zB
+Vn
+cJ
+nY
+nz
+vd
+DL
+EM
+MU
+Yn
+mR
+pe
+Tm
+Eh
+BE
+oF
+fB
+Ko
+Vj
+sg
+nb
+ZQ
+"}
+(23,1,1) = {"
+ZQ
+RY
+RY
+RY
+RY
+jA
+ua
+jA
+Pk
+Pk
+Pk
+oc
+Pk
+Pk
+cy
+cy
+cy
+cy
+cy
+eB
+lh
+nb
+ZQ
+"}
+(24,1,1) = {"
+ZQ
+dC
+jA
+cR
+OR
+om
+cG
+jA
+Jv
+ki
+Yv
+wN
+oS
+yv
+cy
+Gb
+zW
+PV
+VH
+Sf
+eA
+nb
+ZQ
+"}
+(25,1,1) = {"
+ZQ
+ZQ
+jA
+dX
+hL
+Wl
+vi
+jA
+yh
+Nq
+YR
+Tq
+zI
+pL
+cy
+zn
+zr
+Yp
+cy
+Ve
+MA
+nb
+ZQ
+"}
+(26,1,1) = {"
+ZQ
+ZQ
+GC
+dZ
+Kz
+oy
+vs
+LP
+FC
+Oh
+Zx
+PG
+sG
+oQ
+aZ
+aZ
+aZ
+aZ
+aZ
+LI
+aU
+LI
+LI
+"}
+(27,1,1) = {"
+ZQ
+ZQ
+GC
+eu
+iC
+pa
+vv
+LP
+Wx
+mM
+aM
+Fk
+sU
+UB
+bW
+Fp
+zN
+KR
+aZ
+oz
+wE
+wY
+HX
+"}
+(28,1,1) = {"
+ZQ
+ZQ
+GC
+gc
+OK
+RO
+vC
+jA
+tp
+ox
+pn
+ZR
+Nw
+ex
+Ms
+Id
+Nk
+qf
+xQ
+Pc
+jN
+Oj
+LI
+"}
+(29,1,1) = {"
+ZQ
+ZQ
+vc
+ln
+ln
+pF
+ln
+ln
+Gg
+ox
+ZE
+EF
+RZ
+ju
+Ms
+CI
+zz
+ep
+aZ
+KF
+VL
+bt
+HX
+"}
+(30,1,1) = {"
+ZQ
+ZQ
+ln
+Ad
+iK
+pJ
+vF
+Ki
+Qj
+Nm
+ZY
+Fk
+ot
+ZF
+Ms
+er
+SG
+PH
+aZ
+yi
+bp
+hg
+LI
+"}
+(31,1,1) = {"
+ZQ
+ZQ
+ln
+gx
+lU
+Ah
+vJ
+ln
+jW
+OI
+iE
+DI
+Zm
+li
+aZ
+dW
+Pq
+Ef
+aZ
+oa
+IV
+KL
+HX
+"}
+(32,1,1) = {"
+ZQ
+ZQ
+ln
+gK
+jn
+YM
+xD
+ln
+Pk
+PD
+Yq
+Yq
+TJ
+ks
+Pk
+Cl
+Cl
+Cl
+Cl
+Aq
+Cl
+LI
+UA
+"}
+(33,1,1) = {"
+ZQ
+ZQ
+ln
+hr
+AV
+xU
+TG
+ln
+ZQ
+ZQ
+ZQ
+WR
+ZQ
+ZQ
+ZQ
+Cl
+Sy
+aD
+in
+PY
+sN
+Cl
+ZQ
+"}
+(34,1,1) = {"
+ZQ
+ZQ
+ln
+eb
+Ml
+ws
+yu
+ln
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+Cl
+pH
+JP
+nt
+Qw
+Cl
+Xb
+ZQ
+"}
+(35,1,1) = {"
+ZQ
+EZ
+ln
+aY
+hf
+pS
+ln
+Wo
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+Ci
+Tb
+Xi
+RU
+vS
+iA
+ZQ
+ZQ
+"}
+(36,1,1) = {"
+ZQ
+av
+dn
+ln
+ln
+ln
+Wo
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+Ci
+Ez
+pk
+mT
+fX
+iA
+ZQ
+ZQ
+"}
+(37,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+Cl
+Su
+wV
+Vq
+cX
+Cl
+ZQ
+ZQ
+"}
+(38,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+hk
+kG
+kG
+kG
+kG
+Cl
+ZQ
+ZQ
+"}
+(39,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+YZ
+ZQ
+ZQ
+"}
+(40,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+YZ
+ZQ
+ZQ
+"}
+(41,1,1) = {"
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+ZQ
+Xu
+ZQ
+ZQ
+"}
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
new file mode 100644
index 000000000000..019c81a25c28
--- /dev/null
+++ b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
@@ -0,0 +1,9160 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ab" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1;
+ name = "Operations"
+ },
+/obj/effect/landmark/start/head_of_personnel,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"ah" = (
+/obj/machinery/computer/security{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"ar" = (
+/obj/structure/closet/syndicate/personal{
+ name = "operative's closet";
+ populate = 0
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/obj/machinery/camera/autoname,
+/obj/structure/sign/poster/contraband/stechkin{
+ pixel_x = -32
+ },
+/turf/open/floor/pod/dark,
+/area/ship/security)
+"au" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"av" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 9;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"aA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ dir = 4;
+ name = "Port Thrusters";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"aL" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/newscaster/directional/west,
+/obj/item/desk_flag/ngr{
+ pixel_x = 11;
+ pixel_y = 15
+ },
+/obj/machinery/fax/syndicate,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"aP" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/computer/cargo{
+ icon_state = "computer-left"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"aR" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Helm"
+ },
+/obj/effect/landmark/start/captain,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"aS" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/computer/monitor{
+ icon_state = "computer-right"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"bg" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"bj" = (
+/obj/machinery/photocopier,
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/sign/flag/ngr{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"bl" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"bm" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"bn" = (
+/obj/docking_port/stationary{
+ dwidth = 10;
+ height = 15;
+ width = 30
+ },
+/turf/template_noop,
+/area/template_noop)
+"bp" = (
+/obj/structure/marker_beacon{
+ picked_color = "Lime"
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"bq" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"bt" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"bv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/sign/warning/enginesafety{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/number/zero,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"bz" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 10;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering)
+"bH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/stairs{
+ dir = 8;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/bridge)
+"bS" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/light/dim/directional/east,
+/obj/machinery/power/ship_gravity,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500";
+ layer = 2.04
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"bX" = (
+/obj/machinery/computer/card{
+ dir = 8;
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"bY" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering/atmospherics)
+"ce" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering)
+"cf" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/binary/pump/layer2{
+ dir = 8;
+ name = "distribution pump"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"cg" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/light/directional/south,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"ch" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"cj" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"ck" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"cu" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Storage Bay"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/cargo)
+"cJ" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/machinery/turretid/ship{
+ id = "kali_grid";
+ pixel_x = 3;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/item/cigbutt{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"cL" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/structure/sign/flag/ngr{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"cX" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"cY" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"dc" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"df" = (
+/obj/machinery/suit_storage_unit/inherit{
+ req_access_txt = "3"
+ },
+/obj/item/clothing/suit/space/syndicate/black/red,
+/obj/item/clothing/head/helmet/space/syndicate/black/red,
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"dh" = (
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"dj" = (
+/obj/machinery/porta_turret/ship/ngr/heavy{
+ dir = 4;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/external/dark)
+"dr" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"dt" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 10;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"dv" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"dD" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/item/book/manual/wiki/piloting{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"dE" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_sec_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/security)
+"dG" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"dM" = (
+/obj/structure/curtain/bounty,
+/obj/effect/spawner/bunk_bed,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"dV" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"ed" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = 22
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"eh" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_y = 4
+ },
+/obj/structure/sign/flag/ngr{
+ dir = 1;
+ pixel_y = -32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"ex" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/computer/crew{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"eI" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/effect/turf_decal/radiation/white,
+/obj/structure/railing,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"eJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"eM" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"eN" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"eS" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 1;
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 9;
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"eT" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"eV" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"eX" = (
+/obj/structure/closet/syndicate/personal{
+ name = "operative's closet";
+ populate = 0
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/turf/open/floor/pod/dark,
+/area/ship/security)
+"fa" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/obj/effect/turf_decal/hardline_small,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"fb" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Starboard Thrusters";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"fd" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "kali_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"fe" = (
+/obj/structure/railing/corner,
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"fh" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"fj" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm)
+"fn" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4,
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"fp" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"fz" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"fD" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_eng_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering)
+"fF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/trinary/mixer/airmix{
+ dir = 4;
+ piping_layer = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"fH" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 9;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/hallway/central)
+"fV" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Restroom";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/toilet)
+"fY" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = -7
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "kali_gym_shut";
+ name = "Gym Shutters";
+ pixel_x = -20;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"gq" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32;
+ pixel_y = 10
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/item/trash/can,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"gs" = (
+/obj/structure/sign/warning/gasmask,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"gw" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/sign/directions/supply{
+ dir = 4;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"gx" = (
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"gB" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"gF" = (
+/obj/structure/marker_beacon{
+ picked_color = "Burgundy"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"gO" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/trash/plate,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"gQ" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"gT" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/sign/poster/rilena/random{
+ pixel_x = -32
+ },
+/obj/item/stamp/ngr{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/item/stamp/ngr/ensign{
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/flashlight/lamp{
+ pixel_x = -7;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = -4;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"gU" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/atmospherics)
+"gV" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"ha" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"hb" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"hg" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"hk" = (
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/structure/chair/bench/orange/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"ho" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_x = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"hs" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"hB" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"hC" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"hG" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/chair/bench/orange/directional/north,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"hI" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "kali_bridge_shut";
+ name = "Bridge Shutters";
+ pixel_x = 3;
+ pixel_y = -20
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"hP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"ib" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"id" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"ik" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"is" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"iw" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"iC" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/electrical)
+"iE" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"iI" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"iN" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"iO" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"iS" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/newscaster/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"ja" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"jd" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"jj" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"jm" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"jL" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Armory";
+ normalspeed = 0;
+ req_access = list(3)
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"jM" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"jN" = (
+/obj/structure/closet/secure_closet/engineering_electrical{
+ req_access = null;
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"ka" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 5;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"kf" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"kg" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"ki" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/structure/punching_bag,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"kp" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"kA" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"kB" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/item/folder/syndicate{
+ pixel_y = 6
+ },
+/obj/item/laser_pointer/red,
+/obj/item/desk_flag/ngr{
+ pixel_x = 11;
+ pixel_y = 15
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"kG" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/westright{
+ layer = 3.29;
+ req_access = list(3);
+ req_ship_access = 1
+ },
+/obj/effect/turf_decal/corner/opaque/black/half{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "kali_armory_shut";
+ layer = 3.3
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"kR" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/light/directional/north,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"kV" = (
+/obj/machinery/photocopier,
+/obj/structure/sign/poster/contraband/bulldog{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"lf" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"lu" = (
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = -7
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"lw" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{
+ dir = 6
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"lz" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/hallway/central)
+"lC" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"lD" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"lF" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/noticeboard{
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"lG" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"lI" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Canteen";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"lK" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"lP" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"lR" = (
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/curtain,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/obj/item/soap{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"lW" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/machinery/light/small/directional/south,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"lX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"ma" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/advanced_airlock_controller{
+ pixel_y = 25;
+ req_access = null
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"mb" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4;
+ layer = 2.038
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"md" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 4
+ },
+/obj/structure/cabinet/fireaxe{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"mj" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 5
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"mn" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"mt" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/item/paper{
+ pixel_x = -6;
+ pixel_y = 7
+ },
+/obj/machinery/newscaster/directional/west,
+/obj/machinery/light/small/directional/south,
+/obj/item/stamp/ngr/captain{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/stamp/ngr{
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_x = 7;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain/captain{
+ pixel_x = -4;
+ pixel_y = -1
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"mv" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/hidden{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = -7
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/hardline_small/left,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"my" = (
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"mA" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"mG" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/item/reagent_containers/food/drinks/bottle/patron{
+ pixel_x = -6;
+ pixel_y = 16
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/light/small/directional/south,
+/obj/item/desk_flag/ngr{
+ pixel_x = 8;
+ pixel_y = 15
+ },
+/obj/item/reagent_containers/food/drinks/modglass{
+ icon_state = "mglass-6-";
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/modglass{
+ icon_state = "mglass-6-";
+ pixel_x = -3
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"mK" = (
+/obj/structure/rack,
+/obj/item/storage/box/bodybags{
+ pixel_x = -10;
+ pixel_y = 12
+ },
+/obj/item/storage/box/gloves{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/item/storage/box/syringes{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/bottle/formaldehyde{
+ pixel_x = 8
+ },
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"mN" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "armor locker"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/item/clothing/head/helmet/ngr{
+ pixel_x = -8;
+ pixel_y = 7
+ },
+/obj/item/clothing/head/helmet/ngr{
+ pixel_x = -8;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/helmet/ngr{
+ pixel_x = -8;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/helmet/ngr{
+ pixel_x = -8;
+ pixel_y = -5
+ },
+/obj/item/clothing/suit/armor/ngr{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/obj/item/clothing/suit/armor/ngr{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/obj/item/clothing/suit/armor/ngr{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/obj/item/storage/belt/security/webbing/ngr{
+ pixel_x = 7;
+ pixel_y = -4
+ },
+/obj/item/storage/belt/security/webbing/ngr{
+ pixel_x = 7;
+ pixel_y = -4
+ },
+/obj/item/storage/belt/security/webbing/ngr{
+ pixel_x = 7;
+ pixel_y = -4
+ },
+/obj/item/storage/belt/security/webbing/ngr{
+ pixel_x = 7;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"mO" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "equipment locker"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/clothing/mask/gas/syndicate{
+ pixel_x = -7;
+ pixel_y = 5
+ },
+/obj/item/clothing/mask/gas/syndicate{
+ pixel_x = -7;
+ pixel_y = 5
+ },
+/obj/item/clothing/mask/gas/syndicate{
+ pixel_x = -7;
+ pixel_y = 5
+ },
+/obj/item/clothing/mask/gas/syndicate{
+ pixel_x = -7;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/hud/security/sunglasses/ngr{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/clothing/glasses/hud/security/sunglasses/ngr{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/clothing/glasses/hud/security/sunglasses/ngr{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/clothing/glasses/hud/security/sunglasses/ngr{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/radio/headset/alt{
+ pixel_x = -2;
+ pixel_y = -5
+ },
+/obj/item/radio/headset/alt{
+ pixel_x = -2;
+ pixel_y = -5
+ },
+/obj/item/radio/headset/alt{
+ pixel_x = -2;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"mS" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"mU" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
+ },
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"mW" = (
+/obj/structure/guncloset{
+ anchored = 1;
+ can_be_unanchored = 1;
+ open = 0;
+ req_access_txt = "3"
+ },
+/obj/item/gun/ballistic/automatic/pistol/asp/no_mag,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/item/gun/ballistic/automatic/pistol/asp/no_mag,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"na" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/closet,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/item/radio,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"ne" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/light/small/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"nj" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "kali_starboard_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"nm" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 9
+ },
+/obj/machinery/light/directional/west,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"np" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"nr" = (
+/obj/structure/toilet,
+/obj/structure/curtain,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"ns" = (
+/obj/effect/turf_decal/techfloor{
+ layer = 2.04
+ },
+/obj/structure/closet/emcloset/wall/directional/east,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8;
+ layer = 2.038
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"nw" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"nA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"nC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"nG" = (
+/obj/machinery/door/airlock/hatch{
+ id_tag = "kali_bathroom_door";
+ name = "Restroom";
+ req_access_txt = "19"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"nH" = (
+/obj/structure/marker_beacon{
+ picked_color = "Yellow"
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"nJ" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"nT" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{
+ dir = 8;
+ piping_layer = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"nV" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"oa" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/chair/bench/orange/directional/west,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"oc" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Bridge";
+ normalspeed = 0;
+ req_access_txt = "19"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"oi" = (
+/obj/structure/sign/number/random,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
+"ok" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"op" = (
+/obj/structure/tank_dispenser,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"oD" = (
+/obj/machinery/door/airlock/hatch{
+ id_tag = "kali_captain_door";
+ name = "Captain's Quarters";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm/captain)
+"oG" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/medical)
+"oR" = (
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"oU" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"oW" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/engineering/atmospherics)
+"pb" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/closet/wardrobe/black{
+ name = "wardrobe";
+ populate = 0
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"pl" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/folder/syndicate{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/item/pen/blue{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/pen/red{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige,
+/obj/item/flashlight/lamp{
+ pixel_x = -8;
+ pixel_y = 17
+ },
+/obj/machinery/computer/helm/viewscreen/directional/west,
+/obj/item/stamp/denied{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/item/stamp{
+ pixel_x = -5;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"pp" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/computer/atmos_alert{
+ icon_state = "computer-left"
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"ps" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -20
+ },
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"pu" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 6
+ },
+/turf/open/floor/engine/hull/reinforced,
+/area/ship/external/dark)
+"pv" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{
+ dir = 8;
+ piping_layer = 4
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/button/door{
+ dir = 1;
+ id = "kali_atmos_shut";
+ name = "Atmospherics Shutters";
+ pixel_x = 3;
+ pixel_y = -20
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"py" = (
+/obj/structure/chair/sofa/brown/left/directional/north,
+/obj/machinery/light/dim/directional/south,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"pB" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"pI" = (
+/obj/structure/bed{
+ dir = 8
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/item/bedsheet/syndie{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"pP" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"pQ" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"pU" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "kali_starboard_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 20;
+ pixel_y = -3
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"pX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"pZ" = (
+/obj/structure/chair/sofa/brown/right/directional/west,
+/obj/effect/landmark/start/assistant,
+/obj/structure/sign/poster/contraband/aclf{
+ pixel_x = 32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"qa" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"qe" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"ql" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/wall/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"qo" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"qw" = (
+/obj/structure/curtain,
+/obj/structure/window/reinforced,
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 8
+ },
+/obj/item/soap/deluxe,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"qG" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"qI" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 10
+ },
+/obj/structure/closet/wall/white/med{
+ name = "medical doctor's locker";
+ pixel_y = -28;
+ req_access_txt = "5"
+ },
+/obj/item/storage/backpack/duffelbag/syndie/med,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/ngr/smock,
+/obj/item/clothing/head/ngr/surgical,
+/obj/item/clothing/glasses/hud/health,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"qN" = (
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ id = "kali_bathroom_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 3;
+ pixel_y = 23;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"qP" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 4
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"qQ" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw,
+/obj/machinery/light/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"qS" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"rj" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/bridge)
+"rm" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/light/small/directional/east,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"rs" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/obj/machinery/light/directional/west,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"rv" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 12
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/bridge)
+"ry" = (
+/obj/structure/filingcabinet/double{
+ density = 0;
+ dir = 4;
+ pixel_x = -10
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"rz" = (
+/obj/structure/sign/poster/contraband/gec{
+ pixel_x = 32
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/light/dim/directional/north,
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = -9;
+ pixel_y = 15
+ },
+/obj/item/instrument/guitar{
+ pixel_x = -1;
+ pixel_y = 9
+ },
+/obj/machinery/cell_charger,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"rA" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 6
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"rF" = (
+/obj/effect/turf_decal/techfloor{
+ layer = 2.04
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"rI" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew)
+"rM" = (
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 7
+ },
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/machinery/button/door{
+ dir = 4;
+ id = "kali_sec_shut";
+ name = "Briefing Room Shutters";
+ pixel_x = -20;
+ pixel_y = -3
+ },
+/obj/item/trash/can,
+/obj/item/cigbutt,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"rN" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"rS" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm/dormtwo)
+"rY" = (
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/curtain,
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 9
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"rZ" = (
+/obj/structure/chair/comfy/grey/directional/east,
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/obj/machinery/button/door{
+ id = "kali_captain_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -3;
+ pixel_y = 23;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"so" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/south,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/item/cigbutt,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"sA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"sF" = (
+/obj/machinery/power/shuttle/engine/fire{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"sJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"sM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 8;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/engineering/electrical)
+"sO" = (
+/obj/structure/bookcase/random/fiction,
+/obj/machinery/firealarm/directional/north,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_x = 32
+ },
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"sV" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4{
+ dir = 9
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/light/dim/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"tc" = (
+/obj/structure/bodycontainer/morgue,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"td" = (
+/obj/structure/railing{
+ dir = 6;
+ layer = 4.1
+ },
+/obj/machinery/autolathe/hacked,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"te" = (
+/obj/structure/sign/warning/vacuum{
+ pixel_y = -10
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"tf" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"tm" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/engine/airless,
+/area/ship/engineering/atmospherics)
+"tr" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"tF" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"tG" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"tH" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"tN" = (
+/obj/structure/table/optable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"tO" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/machinery/airalarm/directional/north,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"tR" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4{
+ dir = 10
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"tU" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Port Thrusters";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"uh" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/stairs{
+ dir = 1;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/hallway/fore)
+"ui" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/central)
+"ul" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"un" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ dir = 1;
+ id = "kali_entrance_holo";
+ locked = 1
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_entrance_blast"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"uH" = (
+/obj/structure/closet/syndicate/personal{
+ name = "operative's closet";
+ populate = 0
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/obj/structure/window/reinforced,
+/turf/open/floor/pod/dark,
+/area/ship/security)
+"uN" = (
+/obj/structure/crate_shelf,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"uS" = (
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"va" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"vk" = (
+/obj/structure/railing,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"vl" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Armory";
+ normalspeed = 0;
+ req_access = list(3)
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security/armory)
+"vm" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"vr" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/item/canvas/twentythreeXtwentythree,
+/obj/item/canvas/twentythreeXtwentythree,
+/obj/item/canvas/twentythreeXtwentythree,
+/obj/item/canvas/twentythreeXtwentythree,
+/obj/structure/closet/wall/directional/west{
+ name = "spare display boards"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"vC" = (
+/obj/machinery/suit_storage_unit/inherit{
+ req_access_txt = "3"
+ },
+/obj/item/tank/jetpack/carbondioxide,
+/obj/item/clothing/suit/space/hardsuit/syndi/ngr,
+/obj/effect/turf_decal/corner/opaque/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 6
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"vJ" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/item/screwdriver,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"vP" = (
+/obj/machinery/portable_atmospherics/canister/hydrogen,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"vV" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"vZ" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/structure/noticeboard{
+ dir = 8;
+ name = "menu board";
+ pixel_x = 28;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = 11;
+ pixel_y = 4
+ },
+/obj/item/storage/box/drinkingglasses{
+ pixel_x = -2;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"wb" = (
+/obj/machinery/light/small/directional/west,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"wh" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/syndie{
+ dir = 1
+ },
+/obj/structure/curtain/cloth/fancy,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"wj" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"ws" = (
+/obj/structure/table,
+/obj/item/storage/guncase{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"wv" = (
+/obj/machinery/light/small/directional/north,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"wx" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"wE" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"wG" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"wK" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/structure/curtain/bounty,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_x = -32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"wL" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"wM" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "kali_dorms_shut";
+ name = "Crew Quarters Shutters";
+ pixel_x = 3;
+ pixel_y = 23
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"wR" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"wY" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"xa" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"xe" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/machinery/light/dim/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"xi" = (
+/obj/structure/closet/syndicate/personal{
+ name = "captain's closet";
+ populate = 0
+ },
+/obj/item/storage/backpack/security,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/armor/ngr/captain,
+/obj/item/clothing/gloves/combat,
+/obj/item/radio/headset/syndicate/alt/captain,
+/obj/item/clothing/head/ngr/peaked,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/structure/sign/flag/ngr{
+ dir = 1;
+ pixel_y = -32
+ },
+/obj/item/megaphone,
+/obj/item/storage/guncase/pistol/inherit,
+/obj/item/gun/ballistic/revolver/viper/empty,
+/obj/item/storage/box/ammo/a357/empty,
+/obj/item/storage/box/ammo/a357/empty,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"xo" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/firealarm/directional/west,
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"xp" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/port)
+"xr" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 1
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"xA" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"xC" = (
+/obj/structure/mopbucket,
+/obj/item/mop,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"xH" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"xI" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer2{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4{
+ dir = 5
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"xM" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"xN" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_dorms_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/crew)
+"xO" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Starboard Thrusters";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"xP" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/fore)
+"xU" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"xZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"ya" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ list_reagents = null;
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"ye" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"yg" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central6{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"yi" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"ym" = (
+/obj/machinery/computer/cryopod/directional/west,
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"yo" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"yz" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/sign/directions/security{
+ dir = 4;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"yC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/structure/sign/flag/ngr{
+ dir = 1;
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"yG" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/surplus,
+/obj/item/clothing/head/helmet/space/syndicate/surplus,
+/obj/machinery/light/directional/north,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/item/tank/internals/emergency_oxygen/engi,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"yI" = (
+/obj/structure/easel{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "whiteboard stand"
+ },
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"yL" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ layer = 2.032
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/sign/directions/service{
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"yM" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"yN" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Briefing Room";
+ req_access = list(1)
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
+"yX" = (
+/obj/structure/chair/bench/orange/directional/west,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"zc" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"ze" = (
+/obj/structure/closet/crate/radiation{
+ name = "fuel crate"
+ },
+/obj/effect/turf_decal/radiation/white,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/stack/sheet/mineral/uranium/ten,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"zg" = (
+/obj/machinery/defibrillator_mount/loaded{
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/borderfloorwhite,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"zh" = (
+/obj/structure/bookcase/random/fiction,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"zj" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"zk" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/structure/rack,
+/obj/item/pipe_dispenser{
+ pixel_x = 2;
+ pixel_y = 13
+ },
+/obj/item/geiger_counter{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/item/storage/toolbox/syndicate{
+ name = "syndicate toolbox";
+ pixel_x = -2;
+ pixel_y = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"zl" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 5;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/security/armory)
+"zt" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"zx" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"zD" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"zG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"zM" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"zW" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"zZ" = (
+/obj/structure/closet/crate/freezer/blood,
+/obj/effect/turf_decal/corner/opaque/bottlegreen{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/machinery/iv_drip,
+/obj/machinery/light/small/directional/south,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"Ad" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Ai" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen/blue{
+ pixel_x = -1;
+ pixel_y = 8
+ },
+/obj/item/pen/red{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/machinery/computer/helm/viewscreen/directional/south,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/item/stamp/denied{
+ pixel_x = -13;
+ pixel_y = 8
+ },
+/obj/item/stamp{
+ pixel_x = -13;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"An" = (
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/button/door{
+ id = "kali_entrance_blast";
+ name = "Blast Door Control";
+ pixel_x = -4;
+ pixel_y = 23
+ },
+/obj/machinery/button/shieldwallgen{
+ id = "kali_entrance_holo";
+ pixel_x = 7;
+ pixel_y = 21
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Ao" = (
+/obj/structure/railing,
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/twenty,
+/obj/item/stack/sheet/glass/twenty,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Aq" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"As" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/obj/machinery/firealarm/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"AF" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"AL" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"AR" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/machinery/microwave{
+ pixel_y = 8
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"AV" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"AX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"AZ" = (
+/obj/item/gun/ballistic/automatic/smg/sidewinder/no_mag,
+/obj/item/gun/ballistic/automatic/assault/hydra/dmr/no_mag,
+/obj/effect/turf_decal/corner/opaque/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 5
+ },
+/obj/structure/guncloset{
+ anchored = 1;
+ can_be_unanchored = 1;
+ open = 0;
+ req_access_txt = "3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Ba" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/item/cigbutt,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Bb" = (
+/obj/structure/table,
+/obj/item/toy/plush/nukeplushie{
+ pixel_x = 10;
+ pixel_y = 14
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
+ pixel_y = 8
+ },
+/obj/item/lighter{
+ pixel_x = 7;
+ pixel_y = -2
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/structure/sign/poster/syndicate/random{
+ pixel_x = 32
+ },
+/obj/machinery/newscaster/directional/south,
+/obj/item/stamp/ngr{
+ pixel_x = -10;
+ pixel_y = 7
+ },
+/obj/item/stamp/ngr/lieutenant{
+ pixel_x = -6
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"Bi" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Bk" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Morgue";
+ req_access_txt = "5"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"Bo" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/aft)
+"Bt" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Surgery"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"Bu" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"BA" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"BB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"BG" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/machinery/vending/coffee,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/security)
+"BI" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/item/toy/cards/deck/syndicate{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 7;
+ pixel_y = 14
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"BO" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"BT" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"BW" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/hallway/central)
+"Ca" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/machinery/jukebox/boombox,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Ce" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Cf" = (
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/trimline/opaque/bar/corner,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Co" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central7,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Cs" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Ct" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = -8
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/hallway/central)
+"Cu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"CC" = (
+/obj/machinery/porta_turret/ship/ngr{
+ dir = 6;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"CF" = (
+/obj/structure/filingcabinet{
+ density = 0;
+ dir = 8;
+ pixel_x = 10
+ },
+/obj/machinery/light/directional/east,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"CK" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 10
+ },
+/obj/structure/rack,
+/obj/item/storage/box/masks{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/storage/box/gloves{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/item/storage/firstaid/regular{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"CQ" = (
+/obj/machinery/suit_storage_unit/inherit{
+ req_access_txt = "3"
+ },
+/obj/item/clothing/suit/space/syndicate/black/red,
+/obj/item/clothing/head/helmet/space/syndicate/black/red,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"Dd" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Dk" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/item/trash/plate,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Do" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_starboard_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Dq" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Dt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Dz" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"DK" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = -7
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "kali_eng_shut";
+ name = "Engineering Shutters";
+ pixel_x = -20;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"DP" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Ea" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Ec" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Eg" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Eo" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/machinery/light/directional/south,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Eq" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Es" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"Et" = (
+/obj/structure/chair/bench/orange/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/newscaster/directional/north,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"Ew" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Ex" = (
+/obj/structure/chair/sofa/brown/corner/directional/west,
+/obj/machinery/newscaster/directional/east,
+/obj/machinery/camera/autoname{
+ dir = 9
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"EC" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"EL" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Fa" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Fc" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"Ff" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ id_tag = "kali_ensign_door";
+ name = "Ensign's Quarters";
+ req_access_txt = "57"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm/dormtwo)
+"Fi" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "kali_entrance_holo";
+ locked = 1
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_entrance_blast"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"Fp" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/light/directional/north,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Fv" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Fy" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ id_tag = "kali_lt_door";
+ name = "Lieutenant's Quarters";
+ req_access_txt = "58"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/dorm)
+"Fz" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"FD" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/engineering/engines/starboard)
+"FE" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/structure/weightmachine/weightlifter,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"FF" = (
+/obj/structure/railing,
+/obj/structure/closet/wardrobe/cargotech{
+ name = "wrecker's wardrobe";
+ populate = 0
+ },
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/syndicate/ngr/jumpsuit,
+/obj/item/clothing/accessory/armband/cargo,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/radio/headset/alt,
+/obj/item/clothing/gloves/explorer,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/storage/belt/mining,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"FJ" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"FQ" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Gh" = (
+/obj/structure/curtain/bounty,
+/obj/effect/spawner/bunk_bed,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = 32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Gm" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Gn" = (
+/obj/machinery/power/shuttle/engine/fire{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Gv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Gz" = (
+/obj/item/clothing/shoes/combat,
+/obj/structure/closet/syndicate/personal{
+ name = "lieutenant's closet";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/armor/ngr/lieutenant,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/head/ngr/peaked,
+/obj/item/radio/headset/syndicate/alt,
+/obj/item/clothing/glasses/hud/security/sunglasses,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/firealarm/directional/north,
+/obj/item/storage/belt/military/assault,
+/obj/item/storage/guncase/pistol/asp,
+/obj/item/megaphone,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"GD" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"GE" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Cryo Bay"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/cryo)
+"GM" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/item/storage/box/gum/nicotine,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"GO" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 10
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"GP" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/secure_data/laptop{
+ dir = 1;
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"GR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/structure/sink/kitchen{
+ pixel_y = 20
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"GS" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"GV" = (
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"GX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Hg" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Hl" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 5;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"Hm" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Hn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Hp" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/sign/warning/nosmoking/circle{
+ pixel_y = -20
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Hs" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/chair/handrail{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Hx" = (
+/obj/machinery/computer/helm/viewscreen/directional/north,
+/turf/open/floor/carpet/red_gold,
+/area/ship/crew/dorm/captain)
+"Hy" = (
+/obj/docking_port/stationary{
+ dir = 2;
+ dwidth = 15;
+ height = 15;
+ width = 30
+ },
+/turf/template_noop,
+/area/template_noop)
+"HE" = (
+/obj/structure/closet/secure_closet/engineering_personal{
+ populate = 0
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/item/storage/backpack/industrial,
+/obj/item/clothing/shoes/workboots,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/clothing/suit/hazardvest/ngr,
+/obj/item/clothing/accessory/armband/engine,
+/obj/item/clothing/head/hardhat/ngr,
+/obj/item/storage/belt/utility,
+/obj/machinery/light/dim/directional/east,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/item/clothing/head/ngr,
+/obj/item/radio/headset/alt,
+/obj/machinery/firealarm/directional/south,
+/obj/item/clothing/mask/gas/syndicate,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"HH" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"HM" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"HQ" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Ic" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/suit/space/syndicate/black/engie,
+/obj/item/clothing/head/helmet/space/syndicate/black/engie,
+/obj/item/clothing/shoes/magboots/syndie,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"Id" = (
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = 32
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"If" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/toilet,
+/obj/structure/curtain,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Ig" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"Ij" = (
+/obj/structure/marker_beacon{
+ picked_color = "Lime"
+ },
+/obj/docking_port/mobile{
+ dir = 4;
+ launch_status = 0;
+ port_direction = 2;
+ preferred_direction = 4
+ },
+/obj/structure/catwalk/over,
+/turf/open/floor/plating,
+/area/ship/external/dark)
+"Im" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Iu" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"Iy" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"ID" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line{
+ dir = 6
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"IP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/number/left_four,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"IT" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"IW" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Jd" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"Je" = (
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Jg" = (
+/obj/structure/railing,
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"Jr" = (
+/obj/structure/closet/secure_closet/freezer{
+ anchored = 1;
+ locked = 0;
+ name = "fridge"
+ },
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/item/reagent_containers/condiment/soymilk,
+/obj/item/reagent_containers/food/drinks/bottle/orangejuice,
+/obj/item/reagent_containers/condiment/flour,
+/obj/item/storage/fancy/egg_box,
+/obj/item/reagent_containers/condiment/sugar,
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"JF" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"JN" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"JV" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_port_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"JY" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Kd" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/sign/directions/command{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/camera/autoname{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Ke" = (
+/obj/structure/table,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/pushbroom,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/item/soap/syndie,
+/turf/open/floor/pod,
+/area/ship/hallway/aft)
+"Kk" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/folder/white{
+ pixel_y = 6
+ },
+/obj/item/pen/blue{
+ pixel_x = -1;
+ pixel_y = 8
+ },
+/obj/item/pen/red{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/corner/opaque/bottlegreen{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige,
+/obj/machinery/light/small/directional/north,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"Kt" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/syndie{
+ dir = 1
+ },
+/obj/structure/curtain/cloth/fancy,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"Ku" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Control Room";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering)
+"Kz" = (
+/turf/template_noop,
+/area/template_noop)
+"KA" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
+ dir = 8;
+ piping_layer = 2
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/engine/air,
+/area/ship/engineering/atmospherics)
+"KF" = (
+/obj/structure/table,
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"KK" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_mess_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/canteen)
+"KO" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"KS" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/starboard)
+"KU" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/closet/wardrobe/black{
+ name = "wardrobe";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/machinery/button/door{
+ id = "kali_dorms_shut";
+ name = "Crew Quarters Shutters";
+ pixel_x = 3;
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"KX" = (
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 7
+ },
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"KY" = (
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Lf" = (
+/obj/effect/turf_decal/techfloor,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/machinery/light/floor/hangar,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Li" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Lm" = (
+/obj/machinery/light/dim/directional/east,
+/obj/structure/closet/secure_closet/engineering_welding{
+ req_access = null;
+ req_access_txt = "11";
+ req_one_access = null
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/obj/machinery/camera/autoname{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/electrical)
+"Lp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ dir = 4;
+ name = "Starboard Thrusters";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/starboard)
+"LB" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/machinery/vending/cola/sodie,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"LH" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/cryo)
+"LK" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"LM" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"LP" = (
+/obj/structure/bed{
+ dir = 1
+ },
+/obj/item/bedsheet/medical{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"LV" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ layer = 2.04
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"LX" = (
+/obj/effect/turf_decal/corner/opaque/bottlegreen/mono,
+/obj/effect/landmark/start/medical_doctor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"Ml" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/turf/open/floor/plating,
+/area/ship/engineering)
+"Mq" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 6;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/crew)
+"Mt" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_gym_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/crew/ccommons)
+"Mv" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"MC" = (
+/obj/structure/chair/office,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"ME" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"MI" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"MN" = (
+/obj/machinery/suit_storage_unit/inherit{
+ name = "wrecker's suit storage unit";
+ req_access_txt = "48"
+ },
+/obj/item/clothing/suit/space/syndicate/black/green,
+/obj/item/clothing/head/helmet/space/syndicate/black/green,
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/item/clothing/mask/gas/syndicate,
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"MS" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Command Deck";
+ normalspeed = 0;
+ req_access_txt = "19"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/aft)
+"MT" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Infirmary"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/medical)
+"MU" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Engineering";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/electrical)
+"Nc" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/hardline_small/right,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Np" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/sign/directions/engineering{
+ dir = 8;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Nr" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Crew Quarters";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"Nt" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Nv" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"NA" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"NH" = (
+/obj/effect/turf_decal/techfloor,
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_y = -32
+ },
+/obj/machinery/light/dim/directional/west,
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"NI" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/obj/machinery/button/door{
+ id = "kali_mess_shut";
+ name = "Canteen Shutters";
+ pixel_x = -3;
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"NL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/filingcabinet/chestdrawer{
+ density = 0;
+ dir = 4;
+ pixel_x = -6
+ },
+/obj/item/folder/documents/syndicate/ngr,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"NM" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "engine fuel pump"
+ },
+/obj/effect/turf_decal/techfloor,
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"NQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/number/right_five,
+/obj/structure/chair/handrail,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"NU" = (
+/obj/effect/turf_decal/techfloor{
+ layer = 2.04
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Oa" = (
+/obj/structure/railing{
+ dir = 10;
+ layer = 3.1
+ },
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/electrical)
+"Od" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"Ol" = (
+/obj/structure/rack,
+/obj/machinery/airalarm/directional/south,
+/obj/item/melee/axe/sledgehammer,
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"On" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"Oq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"Ot" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
+"Ow" = (
+/obj/machinery/holopad/emergency/command,
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Ox" = (
+/obj/structure/railing{
+ dir = 6;
+ layer = 4.1
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/structure/closet/emcloset/anchored,
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/cryo)
+"OC" = (
+/obj/structure/sign/poster/contraband/energy_swords{
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"OH" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 1;
+ name = "Custodial Closet"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"OK" = (
+/obj/machinery/light_switch{
+ pixel_x = -7;
+ pixel_y = 22
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/obj/machinery/button/door{
+ id = "kali_armory_shut";
+ name = "Desk Shutters";
+ pixel_x = 4;
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security/armory)
+"ON" = (
+/obj/effect/turf_decal/techfloor{
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/drinks/waterbottle,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/item/reagent_containers/food/snacks/canned/beans,
+/obj/structure/closet/crate{
+ name = "food crate"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"OR" = (
+/obj/structure/sink{
+ dir = 1;
+ layer = 2.8;
+ pixel_y = -12
+ },
+/obj/structure/mirror{
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"OS" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ name = "Sensors"
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/effect/landmark/start/head_of_security,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/bridge)
+"Pf" = (
+/turf/open/floor/plasteel/stairs{
+ dir = 1;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/crew/cryo)
+"Pg" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"Pl" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Pq" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden,
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Port Thrusters";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/engines/port)
+"Pr" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/item/radio/intercom/directional/north,
+/obj/machinery/atmospherics/components/binary/pump/layer4{
+ dir = 8;
+ name = "waste pump"
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Px" = (
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 7
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ id = "kali_lt_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -20;
+ pixel_y = -3;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm)
+"Pz" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/ccommons)
+"PG" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/toilet)
+"PR" = (
+/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/item/paper/guides/jobs/engi/combustion_thruster,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"PT" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 7;
+ pixel_y = 22
+ },
+/obj/machinery/button/door{
+ id = "kali_mess_shut";
+ name = "Canteen Shutters";
+ pixel_x = -3;
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"PU" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"PW" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/atmospherics/pipe/simple/dark/visible/layer4,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_atmos_shut"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/atmospherics)
+"Qd" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Qj" = (
+/obj/structure/weightmachine/weightlifter,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"Ql" = (
+/obj/effect/turf_decal/corner/opaque/tan/mono,
+/obj/machinery/light/directional/north,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Qq" = (
+/obj/machinery/door/airlock/external,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/central)
+"QI" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"QL" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/industrial/warning{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/turf/open/floor/pod/dark,
+/area/ship/crew/canteen)
+"QT" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/techfloor,
+/obj/machinery/button/door{
+ dir = 8;
+ id = "kali_port_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 20;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Ra" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/bed/dogbed,
+/mob/living/simple_animal/hostile/carp/cayenne{
+ desc = "Originally the failed results of an ICW-era biological warfare program, this breed of docile space carp have become popular as pets on New Gorlex.";
+ environment_smash = 0;
+ faction = list("New Gorlex Republic","playerSyndicate");
+ name = "Sirocco"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Rd" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Re" = (
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Rh" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/camera/autoname{
+ dir = 5
+ },
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Rk" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Rp" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"RG" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"RJ" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/dorm/captain)
+"RM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"RP" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"RQ" = (
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/airlock/hatch{
+ name = "Cargo Bay";
+ req_ship_access = 0
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"RX" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Sc" = (
+/obj/structure/closet/syndicate/personal{
+ name = "ensign's closet";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr/officer,
+/obj/item/clothing/suit/armor/ngr/lieutenant,
+/obj/item/radio/headset/syndicate,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "kali_ensign_door";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 20;
+ pixel_y = -3;
+ req_access_txt = "3";
+ specialfunctions = 4
+ },
+/obj/item/clothing/mask/breath/ngr,
+/obj/item/clothing/mask/balaclava/ngr,
+/obj/machinery/firealarm/directional/south,
+/obj/item/storage/guncase/pistol/pc76,
+/obj/item/megaphone,
+/turf/open/floor/carpet/black,
+/area/ship/crew/dorm/dormtwo)
+"Sp" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/crew/ccommons)
+"Sq" = (
+/obj/machinery/porta_turret/ship/ngr/light{
+ dir = 6;
+ id = "kali_grid"
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security/armory)
+"SB" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/light/floor/hangar,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"SD" = (
+/obj/machinery/telecomms/relay/preset/mining{
+ autolinkers = list("relay","hub");
+ freq_listening = list(1213);
+ id = "NGR Relay";
+ name = "NGR Relay";
+ network = "ngr_commnet"
+ },
+/obj/machinery/door/window/brigdoor/westright{
+ dir = 4;
+ req_access = list(20);
+ req_ship_access = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/bridge)
+"SJ" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = -8
+ },
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/crew/canteen)
+"SK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/stairs{
+ dir = 1;
+ icon = 'icons/obj/stairs.dmi'
+ },
+/area/ship/engineering/electrical)
+"SU" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_starboard_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/starboard)
+"Tm" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Tn" = (
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/holopad/secure,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"To" = (
+/obj/effect/turf_decal/spline/plain/opaque/solgovgold{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"Tr" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/obj/machinery/advanced_airlock_controller{
+ pixel_x = -25;
+ req_access = null
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/hallway/central)
+"Ts" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Tv" = (
+/obj/structure/weightmachine/stacklifter,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"Ty" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/security)
+"TH" = (
+/obj/structure/chair/office,
+/obj/machinery/light/directional/north,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/pod,
+/area/ship/hallway/fore)
+"TJ" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/structure/curtain/bounty,
+/obj/structure/sign/poster/rilena/random{
+ pixel_x = -32
+ },
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"TK" = (
+/obj/structure/window/plasma/reinforced{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer2{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/engine/airless,
+/area/ship/engineering/atmospherics)
+"TL" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Canteen";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"TN" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/gloves{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/obj/item/storage/firstaid/medical{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/structure/sign/poster/official/cleanliness{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/medical)
+"TQ" = (
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"TS" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/sign/poster/contraband/syndiemoth{
+ pixel_x = -32
+ },
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"TV" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"TX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_ccw,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"TZ" = (
+/obj/machinery/computer/apc_control{
+ icon_state = "computer-right"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/red/half,
+/turf/open/floor/pod/dark,
+/area/ship/engineering)
+"Ug" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Uh" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/pod/dark,
+/area/ship/engineering/atmospherics)
+"Uk" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 10
+ },
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Um" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"Ur" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"Ut" = (
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"UC" = (
+/obj/structure/sink{
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 5
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals10,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"UG" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "ammunition locker"
+ },
+/obj/item/storage/box/ammo/c57x39{
+ pixel_x = 13;
+ pixel_y = 1
+ },
+/obj/item/storage/box/ammo/c57x39{
+ pixel_x = 13;
+ pixel_y = 1
+ },
+/obj/item/storage/box/ammo/a556_42{
+ pixel_y = 1
+ },
+/obj/item/storage/box/ammo/a357{
+ pixel_x = -7;
+ pixel_y = 2
+ },
+/obj/item/storage/box/ammo/c10mm{
+ pixel_x = -7
+ },
+/obj/item/storage/box/ammo/c10mm{
+ pixel_x = -7
+ },
+/obj/item/ammo_box/magazine/m57_39_asp{
+ pixel_x = 14;
+ pixel_y = -7
+ },
+/obj/item/ammo_box/magazine/m57_39_asp{
+ pixel_x = 14;
+ pixel_y = -7
+ },
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/item/ammo_box/magazine/m556_42_hydra/small{
+ pixel_x = 6;
+ pixel_y = -2
+ },
+/obj/item/ammo_box/magazine/m57_39_sidewinder{
+ pixel_x = 4;
+ pixel_y = -9
+ },
+/obj/item/ammo_box/magazine/m57_39_sidewinder{
+ pixel_x = 4;
+ pixel_y = -9
+ },
+/obj/effect/turf_decal/corner/opaque/red/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/item/ammo_box/magazine/m57_39_asp{
+ pixel_x = 14;
+ pixel_y = -7
+ },
+/obj/item/ammo_box/magazine/m57_39_asp{
+ pixel_x = 14;
+ pixel_y = -7
+ },
+/obj/structure/sign/poster/contraband/c20r{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security/armory)
+"UM" = (
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"UR" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"UY" = (
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Vd" = (
+/obj/effect/turf_decal/steeldecal/steel_decals10{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"Vk" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/closet/crate/bin,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ list_reagents = null;
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Vm" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 1
+ },
+/obj/structure/curtain/bounty,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Vp" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/line,
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = 7;
+ pixel_y = -19
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Vq" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Vs" = (
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Vt" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/security)
+"Vx" = (
+/obj/machinery/light_switch{
+ dir = 1;
+ pixel_x = -7;
+ pixel_y = -19
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/hallway/fore)
+"VA" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/bridge)
+"VD" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_entrance_blast"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"VG" = (
+/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "kali_port_engine_blast"
+ },
+/turf/open/floor/plating,
+/area/ship/engineering/engines/port)
+"VU" = (
+/obj/effect/spawner/bunk_bed,
+/obj/structure/curtain/bounty,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"Wg" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/structure/closet/wardrobe/black{
+ name = "wardrobe";
+ populate = 0
+ },
+/obj/item/storage/backpack,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/under/syndicate/ngr,
+/obj/item/radio/headset,
+/obj/item/clothing/head/ngr,
+/obj/item/clothing/head/ngr/flap,
+/obj/item/clothing/neck/shemagh/ngr,
+/obj/item/clothing/suit/hooded/wintercoat/security/ngr,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Wj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/corner/opaque/red/mono,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/mono/dark,
+/area/ship/security)
+"Wo" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/steeldecal/steel_decals_central6{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Wr" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Wu" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line,
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Ww" = (
+/obj/structure/weightmachine/stacklifter,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"WC" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"WK" = (
+/obj/machinery/door/airlock/external{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/canteen)
+"WN" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"WQ" = (
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 4;
+ layer = 2.038
+ },
+/obj/effect/turf_decal/techfloor{
+ layer = 2.04
+ },
+/obj/structure/extinguisher_cabinet/directional/west{
+ pixel_y = -4
+ },
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -19;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"WS" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/line{
+ dir = 8
+ },
+/obj/structure/chair/handrail{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"WT" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 10
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"Xd" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/item/radio/intercom/directional/east,
+/obj/effect/turf_decal/steeldecal/steel_decals_central4{
+ dir = 8;
+ layer = 2.038
+ },
+/obj/structure/chair/handrail{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"Xl" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/jukebox/boombox,
+/obj/structure/sign/poster/syndicate/random{
+ pixel_y = -32
+ },
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 9;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"Xq" = (
+/obj/structure/railing{
+ dir = 6;
+ layer = 4.1
+ },
+/obj/effect/turf_decal/corner/opaque/tan/full,
+/obj/effect/turf_decal/techfloor{
+ dir = 4
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/ship/bridge)
+"Xw" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Rec Room";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/crew/ccommons)
+"Xx" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/ship/cargo)
+"XN" = (
+/obj/effect/spawner/structure/window/plasma/reinforced/plastitanium,
+/obj/machinery/door/poddoor/shutters{
+ id = "kali_bridge_shut"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ship/bridge)
+"XP" = (
+/obj/structure/dresser{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/beige/half,
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"XY" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/button/door{
+ dir = 8;
+ id = "kali_port_engine_blast";
+ name = "Engine Blast Doors";
+ pixel_x = 20;
+ pixel_y = 3
+ },
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 19;
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/engineering/engines/port)
+"Yb" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"Ym" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+"YC" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1;
+ layer = 2.04
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/cargo)
+"YF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/carpet/red,
+/area/ship/crew)
+"YK" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/aft)
+"YT" = (
+/obj/effect/turf_decal/corner/opaque/white/full{
+ color = "#c59973"
+ },
+/obj/effect/turf_decal/corner/opaque/beige/mono,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"YV" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/chair/handrail,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"YX" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/corner/opaque/tan,
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 8
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 4;
+ layer = 2.04
+ },
+/obj/structure/reagent_dispensers/water_cooler{
+ pixel_x = -3
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/ccommons)
+"YY" = (
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/opaque/bar/filled/shrink_cw{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/central)
+"Zb" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 8;
+ name = "Cargo Bay";
+ req_ship_access = 0
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/hallway/fore)
+"Zh" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/machinery/light/dim/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"Zj" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/cargo)
+"Zp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/yellow/hidden{
+ dir = 1
+ },
+/obj/machinery/door/airlock/hatch{
+ name = "Life Support";
+ normalspeed = 0;
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/engineering/atmospherics)
+"Zs" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/industrial/outline{
+ color = "#791500"
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/dark,
+/area/ship/cargo)
+"Zv" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning{
+ dir = 9
+ },
+/turf/open/floor/pod/dark,
+/area/ship/crew/cryo)
+"ZE" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/obj/effect/turf_decal/corner/opaque/bottlegreen/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/beige{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/medical)
+"ZI" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ship/crew)
+"ZJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/hallway/fore)
+"ZM" = (
+/obj/effect/turf_decal/corner/opaque/beige/half{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/tan{
+ dir = 9
+ },
+/obj/machinery/light/directional/west,
+/obj/structure/chair/bench/orange/directional/east,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
+"ZO" = (
+/obj/effect/turf_decal/corner/transparent/bar/diagonal,
+/obj/structure/table/reinforced,
+/obj/item/melee/knife,
+/obj/item/cutting_board{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/ship/crew/canteen)
+"ZY" = (
+/obj/machinery/washing_machine,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
+"ZZ" = (
+/obj/structure/sign/departments/medbay/alt,
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ship/medical)
+
+(1,1,1) = {"
+Kz
+Kz
+Kz
+nH
+Kz
+Kz
+Kz
+xp
+sF
+xp
+sF
+xp
+Kz
+Kz
+FD
+Gn
+FD
+Gn
+FD
+Kz
+Kz
+Kz
+nH
+Kz
+Kz
+"}
+(2,1,1) = {"
+Kz
+Kz
+Kz
+xp
+Ig
+xp
+Ig
+xp
+VG
+xp
+VG
+xp
+Kz
+Kz
+FD
+SU
+FD
+SU
+FD
+jM
+FD
+jM
+FD
+Kz
+Kz
+"}
+(3,1,1) = {"
+Kz
+Kz
+Kz
+xp
+JV
+xp
+JV
+xp
+Gm
+dc
+NM
+xp
+iC
+iC
+FD
+zj
+Iu
+FJ
+FD
+Do
+FD
+Do
+FD
+Kz
+Kz
+"}
+(4,1,1) = {"
+Kz
+Kz
+Kz
+xp
+XY
+Wo
+cY
+tU
+BO
+ne
+QT
+Pq
+mv
+Hg
+xO
+pU
+rm
+qe
+fb
+KS
+yg
+nj
+FD
+Kz
+Kz
+"}
+(5,1,1) = {"
+Kz
+Kz
+Kz
+xp
+xp
+aA
+xp
+xp
+xp
+xp
+xp
+xp
+fa
+fe
+iC
+iC
+iC
+iC
+FD
+FD
+Lp
+FD
+FD
+Kz
+Kz
+"}
+(6,1,1) = {"
+Kz
+Kz
+Kz
+oW
+gU
+BB
+rA
+fz
+vP
+Rh
+Uh
+Zp
+Nc
+Ao
+fh
+oU
+eI
+qP
+Ku
+DK
+bm
+NH
+ce
+Kz
+Kz
+"}
+(7,1,1) = {"
+Kz
+Kz
+Kz
+fn
+PW
+xI
+RX
+PR
+lw
+Fv
+pv
+gU
+NQ
+td
+Es
+dV
+eI
+sM
+Ml
+pp
+eJ
+kg
+fD
+Kz
+Kz
+"}
+(8,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+gU
+Pr
+Ts
+Co
+fF
+BT
+nT
+gU
+bv
+SK
+ck
+sA
+nA
+kf
+Ml
+TZ
+Jd
+zk
+ce
+Kz
+Kz
+"}
+(9,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+gU
+tR
+zx
+nJ
+LM
+cf
+sV
+gU
+IP
+Oa
+bS
+ze
+jN
+Lm
+ce
+rz
+wx
+so
+ce
+Kz
+Kz
+"}
+(10,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+gU
+TK
+tm
+gU
+bY
+KA
+gU
+gU
+MU
+iC
+LH
+LH
+LH
+LH
+LH
+ce
+Ic
+HE
+ce
+bz
+Kz
+"}
+(11,1,1) = {"
+Kz
+Kz
+Kz
+rj
+VA
+VA
+VA
+VA
+rS
+rS
+rS
+rS
+Np
+Vp
+LH
+ym
+Ox
+TQ
+Zv
+Pg
+Pg
+Pg
+Pg
+Pg
+Kz
+"}
+(12,1,1) = {"
+av
+VA
+VA
+VA
+SD
+VA
+qw
+lK
+rS
+Et
+gT
+rS
+tf
+GS
+GE
+LV
+Pf
+To
+bt
+Pg
+ma
+wb
+au
+uS
+Hy
+"}
+(13,1,1) = {"
+VA
+aL
+pl
+ry
+dr
+nG
+hP
+lW
+rS
+wv
+Kt
+rS
+tH
+GX
+LH
+lF
+na
+jj
+mj
+Pg
+ed
+yo
+QL
+SJ
+Kz
+"}
+(14,1,1) = {"
+XN
+aP
+ab
+MI
+ho
+VA
+qN
+rv
+rS
+iO
+Sc
+rS
+zc
+Hs
+LH
+LH
+LH
+LH
+LH
+Pg
+WK
+Pg
+Pg
+CC
+Kz
+"}
+(15,1,1) = {"
+XN
+aS
+LK
+Ow
+ya
+VA
+VA
+VA
+rS
+Ff
+rS
+rS
+Kd
+Yb
+GO
+Pg
+LB
+TS
+ZM
+iS
+sJ
+gq
+Pg
+Pg
+Kz
+"}
+(16,1,1) = {"
+VA
+bj
+LK
+bg
+hC
+oc
+ib
+lX
+pX
+AF
+rN
+MS
+Eg
+Ec
+yL
+Pg
+NI
+YT
+YT
+YT
+Nv
+FQ
+Je
+KK
+Kz
+"}
+(17,1,1) = {"
+VA
+cJ
+OS
+bl
+hI
+VA
+qS
+md
+ql
+tF
+vV
+Bo
+AV
+YK
+lC
+TL
+WN
+Wr
+Wr
+Vq
+tG
+gO
+KF
+Pg
+Kz
+"}
+(18,1,1) = {"
+VA
+ex
+ah
+Xq
+bH
+RJ
+RJ
+RJ
+RJ
+Fy
+fj
+fj
+fj
+JY
+TX
+Pg
+AR
+Ug
+Ca
+Dq
+mn
+qG
+ok
+KK
+Kz
+"}
+(19,1,1) = {"
+XN
+eN
+NL
+Ra
+ik
+RJ
+rZ
+mt
+RJ
+On
+Px
+wh
+fj
+Pl
+Fz
+JN
+ZO
+Uk
+ja
+Dq
+wY
+BA
+Hp
+Pg
+Kz
+"}
+(20,1,1) = {"
+XN
+eS
+aR
+RM
+xU
+oD
+mA
+xi
+RJ
+Gz
+yX
+Bb
+fj
+Nt
+Ea
+Pg
+Jr
+Ur
+vZ
+Re
+cX
+WT
+Dk
+KK
+Kz
+"}
+(21,1,1) = {"
+XN
+qa
+eT
+bX
+dD
+RJ
+Hx
+pI
+RJ
+fj
+fj
+fj
+fj
+NA
+Eo
+PG
+PG
+PG
+PG
+PG
+Fp
+qG
+wR
+Pg
+Kz
+"}
+(22,1,1) = {"
+Kz
+fd
+fd
+fd
+VA
+RJ
+sO
+mG
+RJ
+GR
+xo
+zG
+OH
+DP
+xa
+PG
+nr
+Ut
+ZY
+PG
+PT
+Tm
+Pg
+Pg
+Kz
+"}
+(23,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+Ym
+Ym
+Ym
+Ke
+xC
+zM
+Bo
+Eq
+HM
+PG
+If
+UR
+lD
+PG
+lI
+JN
+Pg
+Kz
+Kz
+"}
+(24,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+tc
+mK
+Ym
+Ym
+Ym
+Ym
+Ym
+dG
+wj
+PG
+lR
+Vd
+OR
+PG
+wM
+hG
+rI
+Kz
+Kz
+"}
+(25,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+QI
+oR
+Bk
+pP
+LP
+zZ
+Ym
+YY
+HQ
+PG
+rY
+mS
+Gv
+fV
+wE
+xe
+rI
+dt
+Kz
+"}
+(26,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+Ym
+Ym
+Ym
+UC
+GD
+CK
+Ym
+lf
+pQ
+PG
+PG
+PG
+PG
+PG
+Li
+Vs
+zh
+rI
+Kz
+"}
+(27,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+tN
+zg
+Bt
+gQ
+LX
+qI
+Ym
+ch
+iE
+dG
+TJ
+Vm
+wK
+XP
+np
+MC
+lP
+xN
+Kz
+"}
+(28,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+TN
+mU
+Ym
+Kk
+ZE
+hg
+Ym
+gw
+Bu
+dG
+UY
+xZ
+YF
+IT
+is
+Vs
+eh
+rI
+Kz
+"}
+(29,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Ym
+Ym
+Ym
+Ym
+Ym
+oG
+MT
+ZZ
+nw
+iE
+dG
+Gh
+VU
+dM
+Cs
+np
+Vs
+Vs
+xN
+Kz
+"}
+(30,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+BW
+dG
+iI
+nm
+nV
+WS
+Mv
+Aq
+Ce
+Ew
+qQ
+dG
+KU
+pb
+Wg
+tr
+Ad
+BI
+py
+rI
+Kz
+"}
+(31,1,1) = {"
+Kz
+Kz
+Kz
+fH
+dG
+dG
+ui
+WC
+ha
+ha
+ha
+id
+ha
+kp
+AX
+Nr
+Qd
+JF
+ye
+Rd
+dv
+pZ
+Ex
+xN
+Kz
+"}
+(32,1,1) = {"
+Kz
+Kz
+Kz
+dG
+dG
+dG
+dG
+xr
+Cf
+xM
+zt
+yM
+Rk
+EC
+ID
+lz
+cj
+oa
+Zh
+ZI
+Vk
+rI
+rI
+Mq
+Kz
+"}
+(33,1,1) = {"
+Kz
+Kz
+bn
+gx
+Tr
+AL
+Qq
+xH
+Wu
+xP
+xP
+xP
+xP
+Zb
+xP
+xP
+xP
+Pz
+Pz
+Xw
+Pz
+Pz
+Kz
+Kz
+Kz
+"}
+(34,1,1) = {"
+Kz
+Kz
+Kz
+Ct
+iw
+ps
+dG
+yz
+Iy
+xP
+As
+uh
+rs
+EL
+KX
+Ol
+xP
+Ww
+fY
+zW
+Xl
+Pz
+Kz
+Kz
+Kz
+"}
+(35,1,1) = {"
+Kz
+Kz
+Kz
+ka
+Ty
+Ty
+Ty
+yN
+Ty
+Ty
+An
+GM
+YV
+ZJ
+Im
+op
+xP
+Tv
+kA
+UM
+Fc
+Mt
+Kz
+Kz
+Kz
+"}
+(36,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+ar
+eX
+uH
+nC
+rM
+Ty
+TH
+Jg
+RP
+Hn
+KY
+Dd
+xP
+YX
+TV
+Qj
+HH
+Pz
+Kz
+Kz
+Kz
+"}
+(37,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+fp
+xA
+xA
+ul
+BG
+Ty
+Ba
+vk
+lG
+Um
+jm
+Oq
+RQ
+Sp
+yi
+FE
+Fc
+Mt
+Kz
+Kz
+Kz
+"}
+(38,1,1) = {"
+Kz
+Kz
+Kz
+dE
+IW
+pB
+pB
+Dt
+hk
+Ty
+MN
+FF
+SB
+Fa
+Lf
+Vx
+xP
+Dz
+jd
+hb
+hB
+Pz
+Kz
+Kz
+Kz
+"}
+(39,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+IW
+Vt
+pB
+Wj
+Ty
+Ty
+xP
+te
+Fi
+VD
+un
+gs
+xP
+Id
+wG
+KO
+ki
+Pz
+Kz
+Kz
+Kz
+"}
+(40,1,1) = {"
+Kz
+Kz
+Kz
+dE
+iN
+Tn
+Bi
+OC
+Ty
+bq
+dj
+pu
+Kz
+Kz
+Kz
+Kz
+Zj
+Zj
+cu
+Zj
+Zj
+Zj
+Kz
+Kz
+Kz
+"}
+(41,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+vm
+kB
+RG
+Cu
+Ty
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Zj
+kR
+mb
+WQ
+PU
+Zj
+Kz
+Kz
+Kz
+"}
+(42,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+cL
+qo
+eM
+yC
+Ty
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Zj
+Zs
+Rp
+ON
+uN
+Zj
+Kz
+Kz
+Kz
+"}
+(43,1,1) = {"
+Kz
+Kz
+Kz
+Ty
+Ql
+yI
+Hm
+cg
+Ty
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Zj
+hs
+zD
+rF
+uN
+Zj
+Kz
+Kz
+Kz
+"}
+(44,1,1) = {"
+Kz
+Kz
+Kz
+Ot
+jL
+Ot
+kG
+Ot
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Zj
+tO
+YC
+NU
+uN
+Zj
+Kz
+Kz
+Kz
+"}
+(45,1,1) = {"
+Kz
+Kz
+Kz
+Ot
+OK
+vr
+va
+GP
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Zj
+yG
+Xd
+ns
+PU
+Zj
+Kz
+Kz
+Kz
+"}
+(46,1,1) = {"
+Kz
+Kz
+Kz
+oi
+kV
+CF
+Od
+Ai
+Ot
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Hl
+Zj
+Zj
+Zj
+Zj
+Xx
+Kz
+Kz
+Kz
+"}
+(47,1,1) = {"
+Kz
+Kz
+Kz
+oi
+Ot
+Ot
+vl
+Ot
+Ot
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+dh
+Kz
+dh
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(48,1,1) = {"
+Kz
+Kz
+Kz
+oi
+mN
+lu
+eV
+ME
+CQ
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+dh
+Kz
+dh
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(49,1,1) = {"
+Kz
+Kz
+Kz
+oi
+mO
+gV
+vJ
+wL
+df
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+dh
+Kz
+dh
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(50,1,1) = {"
+Kz
+Kz
+Kz
+Ot
+mW
+gV
+ws
+wL
+CQ
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+dh
+Kz
+dh
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(51,1,1) = {"
+Kz
+Kz
+gB
+Ot
+AZ
+GV
+UG
+my
+vC
+Ot
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+dh
+Kz
+bp
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(52,1,1) = {"
+Kz
+Kz
+gF
+zl
+Ot
+Ot
+Ot
+Ot
+Ot
+Sq
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Ij
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
+(53,1,1) = {"
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+Kz
+"}
diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm
index 3d26ff6512b5..2e9e2cc3d1e9 100644
--- a/_maps/shuttles/syndicate/syndicate_panacea.dmm
+++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm
@@ -47,7 +47,7 @@
/turf/open/floor/plasteel/sepia,
/area/ship/crew/ccommons)
"az" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -6541,11 +6541,11 @@
pixel_x = 8;
pixel_y = 7
},
-/obj/item/ammo_box/amagpellet_claris{
+/obj/item/storage/box/ammo/amagpellet_claris{
pixel_x = 4;
pixel_y = -4
},
-/obj/item/ammo_box/amagpellet_claris{
+/obj/item/storage/box/ammo/amagpellet_claris{
pixel_x = -2;
pixel_y = -4
},
@@ -7126,7 +7126,7 @@
/turf/open/floor/carpet/red,
/area/ship/crew/dorm/dormtwo)
"Qi" = (
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/suns/diagonal{
color = "#543C30"
},
@@ -7453,7 +7453,7 @@
/area/ship/crew/dorm/dormthree)
"RE" = (
/obj/structure/table/optable,
-/obj/item/storage/backpack/duffelbag/med/surgery,
+/obj/item/storage/case/surgery,
/turf/open/floor/suns/dark/plain,
/area/ship/medical)
"RG" = (
@@ -8163,7 +8163,7 @@
/area/ship/engineering)
"Wr" = (
/obj/machinery/light/directional/north,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/turf/open/floor/suns/dark/plain,
/area/ship/crew/ccommons)
"Wu" = (
diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
index 29f4bc28922b..6bf593e266b0 100644
--- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
+++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm
@@ -272,7 +272,7 @@
"bR" = (
/obj/effect/turf_decal/corner/opaque/syndiered/three_quarters,
/obj/machinery/light/directional/south,
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/obj/effect/turf_decal/borderfloorblack{
dir = 1
},
@@ -358,7 +358,7 @@
/area/ship/medical)
"cp" = (
/obj/structure/closet/emcloset,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/trash/syndi_cakes,
/turf/open/floor/plating,
/area/ship/engineering/atmospherics)
@@ -815,7 +815,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/security)
"eQ" = (
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/random/maintenance,
/turf/open/floor/pod/dark,
/area/ship/engineering/atmospherics)
"eR" = (
@@ -1809,7 +1809,7 @@
/obj/item/codespeak_manual{
charges = 2
},
-/obj/item/storage/pistolcase/a357,
+/obj/item/storage/guncase/pistol/a357,
/obj/item/megaphone/sec{
name = "syndicate megaphone"
},
@@ -1819,8 +1819,8 @@
/obj/item/clothing/suit/armor/vest/capcarapace/syndicate,
/obj/item/clothing/under/syndicate/ngr/officer,
/obj/item/clothing/head/HoS/syndicate,
-/obj/item/ammo_box/a357,
-/obj/item/ammo_box/a357,
+/obj/item/storage/box/ammo/a357,
+/obj/item/storage/box/ammo/a357,
/turf/open/floor/carpet/nanoweave/red,
/area/ship/crew/dorm/dormtwo)
"kr" = (
@@ -1830,7 +1830,7 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
+/obj/item/clothing/head/helmet/syndie,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -2095,7 +2095,7 @@
/area/ship/crew/canteen)
"lZ" = (
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
+/obj/item/clothing/head/helmet/syndie,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -3005,8 +3005,8 @@
/obj/item/storage/box/ingredients/vegetarian,
/obj/item/reagent_containers/condiment/milk,
/obj/item/reagent_containers/condiment/milk,
-/obj/effect/spawner/lootdrop/donkpockets,
-/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"qQ" = (
@@ -3310,7 +3310,7 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
+/obj/item/clothing/head/helmet/syndie,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -5820,7 +5820,7 @@
dir = 8
},
/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
/obj/item/circuitboard/machine/autolathe,
/obj/item/stock_parts/manipulator,
/obj/item/stock_parts/matter_bin,
@@ -6329,7 +6329,7 @@
dir = 8
},
/obj/machinery/light/directional/north,
-/obj/machinery/vending/cola/random,
+/obj/effect/spawner/random/vending/cola,
/obj/effect/turf_decal/borderfloorblack/corner{
dir = 8
},
@@ -6601,7 +6601,7 @@
name = "mot containment box";
desc = "WARNING: Contains mot."
},
-/obj/item/storage/box/syndimaid,
+/obj/item/storage/box/maid,
/obj/item/trash/cheesie,
/mob/living/carbon/human/species/moth{
name = "Secret Box Moth";
@@ -7123,7 +7123,7 @@
name = "operative's locker"
},
/obj/item/clothing/suit/armor/vest/syndie,
-/obj/item/clothing/head/helmet/operator,
+/obj/item/clothing/head/helmet/syndie,
/obj/item/gun/ballistic/automatic/pistol/ringneck/no_mag,
/obj/item/ammo_box/magazine/m10mm_ringneck,
/obj/item/ammo_box/magazine/m10mm_ringneck,
@@ -7375,8 +7375,8 @@
keyslot = null
},
/obj/item/storage/belt/sabre/solgov,
-/obj/item/storage/pistolcase/modelh,
-/obj/item/ammo_box/ferroslugbox,
+/obj/item/storage/guncase/pistol/modelh,
+/obj/item/storage/box/ammo/ferroslug,
/turf/open/floor/mineral/plastitanium,
/area/ship/bridge)
"Qv" = (
@@ -7487,7 +7487,7 @@
icon_state = "2-8"
},
/obj/structure/closet/emcloset,
-/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/effect/spawner/random/maintenance/four,
/obj/item/reagent_containers/food/snacks/burger/red{
name = "suspicious red burger";
desc = "A suspicious looking burger.";
@@ -8597,9 +8597,9 @@
"Xf" = (
/obj/structure/table/wood,
/obj/machinery/door/firedoor/border_only,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
-/obj/effect/spawner/lootdrop/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
+/obj/effect/spawner/random/food_or_drink/ration,
/turf/open/floor/carpet/red,
/area/ship/crew/canteen)
"Xg" = (
@@ -8865,7 +8865,7 @@
/obj/item/megaphone/sec{
name = "syndicate megaphone"
},
-/obj/item/storage/pistolcase/ringneck,
+/obj/item/storage/guncase/pistol/ringneck,
/obj/item/clothing/head/HoS/beret/syndicate,
/obj/item/radio/headset/syndicate/alt/leader,
/obj/item/clothing/gloves/krav_maga/combatglovesplus,
@@ -8879,7 +8879,7 @@
name = "Armory Access";
req_access = list(3,150)
},
-/obj/item/ammo_box/c10mm,
+/obj/item/storage/box/ammo/c10mm,
/turf/open/floor/mineral/plastitanium,
/area/ship/security)
"YJ" = (
diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm
index c12d8dd837da..6a076e34555b 100644
--- a/_maps/templates/shelter_2.dmm
+++ b/_maps/templates/shelter_2.dmm
@@ -161,7 +161,7 @@
pixel_x = 7;
pixel_y = 2
},
-/obj/effect/spawner/lootdrop/three_course_meal,
+/obj/effect/spawner/random/food_or_drink/three_course_meal,
/turf/open/floor/carpet/black,
/area/survivalpod)
"y" = (
diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm
index 570483a06a1d..56743e38b0f7 100644
--- a/_maps/templates/shelter_3.dmm
+++ b/_maps/templates/shelter_3.dmm
@@ -225,7 +225,7 @@
/turf/open/floor/carpet/black,
/area/survivalpod)
"L" = (
-/obj/machinery/vending/snack/random,
+/obj/effect/spawner/random/vending/snack,
/turf/open/floor/carpet/black,
/area/survivalpod)
"M" = (
diff --git a/auxmos.dll b/auxmos.dll
index 0df77c97b287..1afe04fc4834 100644
Binary files a/auxmos.dll and b/auxmos.dll differ
diff --git a/check_regex.yaml b/check_regex.yaml
index 41174bd9aa22..335b1b005c74 100644
--- a/check_regex.yaml
+++ b/check_regex.yaml
@@ -27,11 +27,11 @@ standards:
- exactly: [1, "/atom text paths", '"/atom']
- exactly: [1, "/area text paths", '"/area']
- - exactly: [17, "/datum text paths", '"/datum']
+ - exactly: [16, "/datum text paths", '"/datum']
- exactly: [4, "/mob text paths", '"/mob']
- - exactly: [42, "/obj text paths", '"/obj']
+ - exactly: [33, "/obj text paths", '"/obj']
- exactly: [0, "/turf text paths", '"/turf']
- - exactly: [115, "text2path uses", "text2path"]
+ - exactly: [113, "text2path uses", "text2path"]
- exactly: [18, "world<< uses", 'world[ \t]*<<']
- exactly: [0, "world.log<< uses", 'world.log[ \t]*<<']
@@ -57,7 +57,7 @@ standards:
- no_more:
[
- 34,
+ 32,
"indentions inside defines",
'^(\s*)#define (\w*)( {2,}| ?\t+)(?!(\/\/|\/\*))',
]
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index 2870e31eff97..6514221720a9 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -200,7 +200,7 @@
/// the default air mix that open turfs spawn
#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15"
#define OPENTURF_LOW_PRESSURE "o2=14;n2=30;TEMP=293.15"
-/// -193,15°C telecommunications. also used for xenobiology slime killrooms
+/// -193,15°C telecommunications. good fluff for comms areas
#define TCOMMS_ATMOS "n2=100;TEMP=80"
/// space
#define AIRLESS_ATMOS "TEMP=2.7"
@@ -210,8 +210,6 @@
#define KITCHEN_COLDROOM_ATMOS "o2=33;n2=124;TEMP=193.15"
/// used in the holodeck burn test program
#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370"
-/// used in rockplanet
-#define ROCKPLANET_DEFAULT_ATMOS "co2=95;n2=3;TEMP=210.15"
//ATMOSPHERICS DEPARTMENT GAS TANK TURFS
#define ATMOS_TANK_N2O "n2o=6000;TEMP=293.15"
#define ATMOS_TANK_CO2 "co2=50000;TEMP=293.15"
@@ -226,11 +224,16 @@
//PLANETARY
/// what pressure you have to be under to increase the effect of equipment meant for lavaland
#define LAVALAND_EQUIPMENT_EFFECT_PRESSURE 90
-#define ICEMOON_DEFAULT_ATMOS "ICEMOON_ATMOS"
#define GAS_GIANT_ATMOS "GAS_GIANT_ATMOS"
#define PLASMA_GIANT_ATMOS "PLASMA_GIANT_ATMOS"
-#define WASTEPLANET_DEFAULT_ATMOS "WASTEPLANET_ATMOS"
+#define DEFAULT_ATMOS_DETECTOR "plasma=70000;TEMP=293.15"
#define LAVALAND_DEFAULT_ATMOS "LAVALAND_ATMOS"
+#define ICEMOON_DEFAULT_ATMOS "ICEMOON_ATMOS"
+#define WASTEPLANET_DEFAULT_ATMOS "WASTEPLANET_ATMOS"
+#define ROCKPLANET_DEFAULT_ATMOS "ROCKPLANET_ATMOS"
+#define BEACHPLANET_DEFAULT_ATMOS "BEACHPLANET_ATMOS"
+#define JUNGLEPLANET_DEFAULT_ATMOS "JUNGLEPLANET_ATMOS"
+#define SANDPLANET_DEFAULT_ATMOS "SANDPLANET_ATMOS"
//ATMOS MIX IDS
@@ -325,24 +328,46 @@
// Gas defines because i hate typepaths
#define GAS_O2 "o2"
#define GAS_N2 "n2"
+#define GAS_CO "co"
+#define GAS_O3 "ozone"
#define GAS_CO2 "co2"
#define GAS_PLASMA "plasma"
#define GAS_H2O "water_vapor"
-#define GAS_HYPERNOB "nob"
#define GAS_NITROUS "n2o"
-#define GAS_NITRYL "no2"
#define GAS_TRITIUM "tritium"
#define GAS_BZ "bz"
-#define GAS_STIMULUM "stim"
-#define GAS_PLUOXIUM "pluox"
#define GAS_FREON "freon"
#define GAS_HYDROGEN "h2"
#define GAS_CHLORINE "cl2"
#define GAS_HYDROGEN_CHLORIDE "hcl"
+#define GAS_SO2 "so2"
+#define GAS_ARGON "ar"
+#define GAS_METHANE "methane"
+#define GAS_AMMONIA "ammonia"
+
#define GAS_FLAG_DANGEROUS (1<<0)
#define GAS_FLAG_BREATH_PROC (1<<1)
+// odors
+#define GAS_ODOR_CHEMICAL list(\
+ span_notice("It smells fainly like space cleaner."),\
+ span_danger("It smells like chemicals."),\
+ span_danger("There's a strong smell in the air, like chlorine."),\
+ span_userdanger("The smell burns the inside of your nose! It's unbearable!"))
+
+#define GAS_ODOR_SULFUR list(\
+ span_notice("Somebody passed gas in here."),\
+ span_danger("It smells like rotten eggs."),\
+ span_danger("There's a strong smell in the air, like something died here."),\
+ span_userdanger("The smell of chemical rot overwhelms you! It's unbearable!"))
+
+#define GAS_ODOR_SMOG list(\
+ null,\
+ span_notice("Theres a charred smell in the air."),\
+ span_danger("There's a strong smell in the air, like something's burning."),\
+ span_userdanger("The acidic smell overwhelms you! It's unbearable!"))
+
// Flag for update_air_ref()
#define AIR_REF_CLOSED_TURF -1
#define AIR_REF_SPACE_TURF 0
@@ -386,3 +411,5 @@ GLOBAL_LIST_INIT(pipe_paint_colors, sortList(list(
"yellow" = rgb(255,198,0)
)))
+#define IMMUNE_ATMOS_REQS list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+#define NORMAL_ATMOS_REQS list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index 99945ba3d3a1..37218b7c6fb5 100644
--- a/code/__DEFINES/atom_hud.dm
+++ b/code/__DEFINES/atom_hud.dm
@@ -65,23 +65,19 @@
#define DATA_HUD_FAN 10
//antag HUD defines
-#define ANTAG_HUD_CULT 11
-#define ANTAG_HUD_REV 12
-#define ANTAG_HUD_OPS 13
-#define ANTAG_HUD_WIZ 14
-#define ANTAG_HUD_SHADOW 15
-#define ANTAG_HUD_TRAITOR 16
-#define ANTAG_HUD_NINJA 17
-#define ANTAG_HUD_CHANGELING 18
-#define ANTAG_HUD_ABDUCTOR 19
-#define ANTAG_HUD_DEVIL 20
-#define ANTAG_HUD_SINTOUCHED 21
-#define ANTAG_HUD_SOULLESS 22
-#define ANTAG_HUD_BROTHER 23
-#define ANTAG_HUD_OBSESSED 24
-#define ANTAG_HUD_FUGITIVE 25
-#define ANTAG_HUD_GANGSTER 26
-#define ANTAG_HUD_SPACECOP 27
+#define ANTAG_HUD_REV 11
+#define ANTAG_HUD_OPS 12
+#define ANTAG_HUD_WIZ 13
+#define ANTAG_HUD_SHADOW 14
+#define ANTAG_HUD_TRAITOR 15
+#define ANTAG_HUD_NINJA 16
+#define ANTAG_HUD_CHANGELING 17
+#define ANTAG_HUD_ABDUCTOR 18
+#define ANTAG_HUD_BROTHER 19
+#define ANTAG_HUD_OBSESSED 20
+#define ANTAG_HUD_FUGITIVE 21
+#define ANTAG_HUD_GANGSTER 22
+#define ANTAG_HUD_SPACECOP 23
// Notification action types
diff --git a/code/__DEFINES/cells.dm b/code/__DEFINES/cells.dm
new file mode 100644
index 000000000000..376910741b2b
--- /dev/null
+++ b/code/__DEFINES/cells.dm
@@ -0,0 +1,13 @@
+//General defines for items that use power and the cell component.
+/// The minimal amount of power an item can use.
+#define POWER_CELL_USE_MINIMUM 1
+/// For items that barely use any power at all.
+#define POWER_CELL_USE_VERY_LOW 10
+/// For items that generally wouldn't use very much power.
+#define POWER_CELL_USE_LOW 30
+/// For items that use a average amount of power.
+#define POWER_CELL_USE_NORMAL 50
+/// For items that use a high amount of power.
+#define POWER_CELL_USE_HIGH 70
+/// For items that use A LOT OF POWER.
+#define POWER_CELL_USE_INSANE 100
diff --git a/code/__DEFINES/cinematics.dm b/code/__DEFINES/cinematics.dm
index dd771fdba983..bc2409e443b7 100644
--- a/code/__DEFINES/cinematics.dm
+++ b/code/__DEFINES/cinematics.dm
@@ -10,6 +10,3 @@
#define CINEMATIC_NUKE_NO_CORE 10
#define CINEMATIC_NUKE_FAR 11
#define CINEMATIC_NUKE_CLOWNOP 12
-#define CINEMATIC_CULT_NUKE 13
-#define CINEMATIC_CULT_FAIL 14
-
diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm
index 5c6f14c887eb..9e29c3bf2379 100644
--- a/code/__DEFINES/colors.dm
+++ b/code/__DEFINES/colors.dm
@@ -173,3 +173,14 @@
/// Color used for default blood
#define COLOR_BLOOD "#CC0000"
+
+
+/*Planetary color defines*/
+
+#define COLOR_BEACHPLANET_LIGHT "#faeacb"
+#define COLOR_ICEPLANET_LIGHT "#e1d1e6"
+#define COLOR_LAVAPLANET_LIGHT "#f5b85d"
+#define COLOR_JUNGLEPLANET_LIGHT "#b39981"
+#define COLOR_ROCKPLANET_LIGHT "#db9e9f"
+#define COLOR_SANDPLANET_LIGHT "#EEEEEE" //EEEEEEEEEE
+#define COLOR_WASTEPLANET_LIGHT "#FA644B"
diff --git a/code/__DEFINES/cult.dm b/code/__DEFINES/cult.dm
deleted file mode 100644
index 054d6345dbd6..000000000000
--- a/code/__DEFINES/cult.dm
+++ /dev/null
@@ -1,29 +0,0 @@
-//rune colors, for easy reference
-#define RUNE_COLOR_TALISMAN "#0000FF"
-#define RUNE_COLOR_TELEPORT "#551A8B"
-#define RUNE_COLOR_OFFER "#FFFFFF"
-#define RUNE_COLOR_DARKRED "#7D1717"
-#define RUNE_COLOR_MEDIUMRED "#C80000"
-#define RUNE_COLOR_BURNTORANGE "#CC5500"
-#define RUNE_COLOR_RED "#FF0000"
-#define RUNE_COLOR_EMP "#4D94FF"
-#define RUNE_COLOR_SUMMON "#00FF00"
-
-//blood magic
-#define MAX_BLOODCHARGE 4
-#define RUNELESS_MAX_BLOODCHARGE 1
-/// percent before rise
-#define CULT_RISEN 0.2
-/// percent before ascend
-#define CULT_ASCENDENT 0.4
-#define BLOOD_SPEAR_COST 150
-#define BLOOD_BARRAGE_COST 300
-#define BLOOD_BEAM_COST 500
-#define METAL_TO_CONSTRUCT_SHELL_CONVERSION 50
-//screen locations
-#define DEFAULT_BLOODSPELLS "6:-29,4:-2"
-#define DEFAULT_BLOODTIP "14:6,14:27"
-#define DEFAULT_TOOLTIP "6:-29,5:-2"
-//misc
-#define SOULS_TO_REVIVE 3
-#define BLOODCULT_EYE "f00"
diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm
index 638b5220bc3c..28beea516c5f 100644
--- a/code/__DEFINES/dcs/signals/signals.dm
+++ b/code/__DEFINES/dcs/signals/signals.dm
@@ -42,6 +42,7 @@
#define COMSIG_COMPONENT_REMOVING "component_removing"
/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted"
+#define COMSIG_PREQDELETED "parent_preqdeleted"
/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
#define COMSIG_PARENT_QDELETING "parent_qdeleting"
/// generic topic handler (usr, href_list)
@@ -527,7 +528,6 @@
#define COMSIG_CARBON_HUGGED "carbon_hugged"
///When a carbon mob is headpatted, this is called on the carbon that is headpatted. (mob/living/headpatter)
#define COMSIG_CARBON_HEADPAT "carbon_headpatted"
-
///When a carbon slips. Called on /turf/open/handle_slip()
#define COMSIG_ON_CARBON_SLIP "carbon_slip"
///When a carbon gets a vending machine tilted on them
@@ -668,24 +668,10 @@
#define COMSIG_TRY_STORAGE_RETURN_INVENTORY "storage_return_inventory" //(list/list_to_inject_results_into, recursively_search_inside_storages = TRUE)
#define COMSIG_TRY_STORAGE_CAN_INSERT "storage_can_equip" //(obj/item/insertion_candidate, mob/user, silent) - returns bool
-// /datum/component/two_handed signals
-#define COMSIG_TWOHANDED_WIELD "twohanded_wield" //from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)
- #define COMPONENT_TWOHANDED_BLOCK_WIELD 1
-#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)
-
-
// /datum/action signals
#define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action)
#define COMPONENT_ACTION_BLOCK_TRIGGER 1
-//Xenobio hotkeys
-#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" //from slime CtrlClickOn(): (/mob)
-#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" //from slime AltClickOn(): (/mob)
-#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" //from slime ShiftClickOn(): (/mob)
-#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob)
-#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob)
-#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob)
-
// /datum/overmap signals
/// From overmap Move(): (old_x, old_y)
#define COMSIG_OVERMAP_MOVED "overmap_moved"
@@ -744,3 +730,11 @@
#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest"
/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi)
#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest"
+
+// Power signals
+/// Sent when an obj/item calls item_use_power: (use_amount, user, check_only)
+#define COMSIG_ITEM_POWER_USE "item_use_power"
+ #define NO_COMPONENT NONE
+ #define COMPONENT_POWER_SUCCESS (1<<0)
+ #define COMPONENT_NO_CELL (1<<1)
+ #define COMPONENT_NO_CHARGE (1<<2)
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 2428eddf1346..b28463f50ec6 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
@@ -1,3 +1,6 @@
+/// from base of [/mob/living/changeNext_Move()] (next_move)
+#define COMSIG_LIVING_CHANGENEXT_MOVE "living_changenext_move"
+
///Called from /mob/living/carbon/help_shake_act, before any hugs have ocurred. (mob/living/helper)
#define COMSIG_CARBON_PRE_HELP_ACT "carbon_pre_help"
/// Stops the rest of help act (hugging, etc) from occuring
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
index 1a562b84a4a1..745990bacd9d 100644
--- a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
@@ -37,6 +37,8 @@
#define COMPONENT_BLOCK_SHARPEN_ALREADY 4
#define COMPONENT_BLOCK_SHARPEN_MAXED 8
+#define COMSIG_ITEM_USE_CELL "item_use_cell"
+
#define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user)
#define COMSIG_TOOL_START_USE "tool_start_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user)
#define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]:
@@ -66,3 +68,8 @@
#define COMSIG_ITEM_SPLIT_VALUE 1
#define COMSIG_ITEM_SPLIT_PROFIT "item_split_profits" //Called when getting the item's exact ratio for cargo's profit.
#define COMSIG_ITEM_SPLIT_PROFIT_DRY "item_split_profits_dry" //Called when getting the item's exact ratio for cargo's profit, without selling the item.
+
+// /datum/component/two_handed signals
+#define COMSIG_TWOHANDED_WIELD "twohanded_wield" //from base of datum/component/two_handed/proc/wield(mob/living/carbon/user): (/mob/user)
+ #define COMPONENT_TWOHANDED_BLOCK_WIELD 1
+#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_transform.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_transform.dm
new file mode 100644
index 000000000000..f7c0b4d5f232
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_transform.dm
@@ -0,0 +1,12 @@
+// /datum/component/transforming signals
+
+/// From /datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user): (obj/item/source, mob/user, active)
+#define COMSIG_TRANSFORMING_PRE_TRANSFORM "transforming_pre_transform"
+ /// Return COMPONENT_BLOCK_TRANSFORM to prevent the item from transforming.
+ #define COMPONENT_BLOCK_TRANSFORM (1<<0)
+/// From /datum/component/transforming/proc/do_transform(obj/item/source, mob/user): (obj/item/source, mob/user, active)
+#define COMSIG_TRANSFORMING_ON_TRANSFORM "transforming_on_transform"
+ /// Return COMPONENT_NO_DEFAULT_MESSAGE to prevent the transforming component from displaying the default transform message / sound.
+ #define COMPONENT_NO_DEFAULT_MESSAGE (1<<0)
+
+#define COMSIG_ITEM_FORCE_TRANSFORM "item_force_transform"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm
index 136b73ffb3d2..65308310bc31 100644
--- a/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_object.dm
@@ -12,3 +12,8 @@
#define COMSIG_OBJ_HIDE "obj_hide"
/// from base of [/atom/proc/obj_destruction]: (damage_flag)
#define COMSIG_OBJ_DESTRUCTION "obj_destruction"
+
+/// 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)
+#define COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED "atom_contents_weight_class_changed"
diff --git a/code/__DEFINES/economy.dm b/code/__DEFINES/economy.dm
index c31bffa08bf3..700d8f1db693 100644
--- a/code/__DEFINES/economy.dm
+++ b/code/__DEFINES/economy.dm
@@ -1,16 +1,12 @@
-#define ACCOUNT_CIV "CIV"
-#define ACCOUNT_CIV_NAME "Civil Budget"
-#define ACCOUNT_ENG "ENG"
-#define ACCOUNT_ENG_NAME "Engineering Budget"
-#define ACCOUNT_SCI "SCI"
-#define ACCOUNT_SCI_NAME "Scientific Budget"
-#define ACCOUNT_MED "MED"
-#define ACCOUNT_MED_NAME "Medical Budget"
-#define ACCOUNT_SRV "SRV"
-#define ACCOUNT_SRV_NAME "Service Budget"
-#define ACCOUNT_CAR "CAR"
-#define ACCOUNT_CAR_NAME "Cargo Budget"
-#define ACCOUNT_SEC "SEC"
-#define ACCOUNT_SEC_NAME "Defense Budget"
+#define CREDIT_LOG_WITHDRAW "cash"
+#define CREDIT_LOG_TRANSFER_IN "transfer"
+#define CREDIT_LOG_TRANSFER_OUT "transfer_out"
+#define CREDIT_LOG_DEPOSIT "deposit"
+#define CREDIT_LOG_STARTING_MONEY "starting_money"
+#define CREDIT_LOG_VENDOR_PURCHASE "vendor_purchase"
+#define CREDIT_LOG_MISSION "mission"
+#define CREDIT_LOG_CARGO "cargo_purchase"
+#define CREDIT_LOG_BOUNTY "bounty"
+#define CREDIT_LOG_SYNDICATE_CONTRACT "syndicate_contract"
+#define CREDIT_LOG_SELLING_PAD "selling_pad"
-#define NO_FREEBIES "commies go home"
diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm
index e8ad58499d35..180790239146 100644
--- a/code/__DEFINES/factions.dm
+++ b/code/__DEFINES/factions.dm
@@ -4,7 +4,7 @@
#define FACTION_ANTAG_FRONTIERSMEN "Frontiersmen"
//Player Factions
-// [CELADON-REMOVE] - PREFIXES - (Перемещено в code/__DEFINES/~mod_celadon/prefixes.dm)
+// [CELADON-REMOVE] - PREFIXES - (Перемещено в code/__DEFINES/~mod_celadon/names.dm)
// #define FACTION_PLAYER_SYNDICATE "playerSyndicate"
// #define FACTION_PLAYER_NANOTRASEN "playerNanotrasen"
// #define FACTION_PLAYER_FRONTIERSMEN "playerFrontiersmen"
@@ -43,4 +43,38 @@
// #define PREFIX_FRONTIER list("FFV")
// #define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
// #define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
+
+// #define FACTION_SYNDICATE "Syndicate"
+// #define FACTION_NGR "New Gorlex Republic"
+// #define FACTION_CYBERSUN "CyberSun"
+// #define FACTION_HARDLINERS "Hardliners"
+// #define FACTION_SUNS "Student-Union of Naturalistic Sciences"
+// #define FACTION_SOLGOV "SolGov"
+// #define FACTION_SRM "Saint-Roumain Militia"
+// #define FACTION_INTEQ "Inteq Risk Management Group"
+// #define FACTION_CLIP "CLIP Minutemen"
+// #define FACTION_NT "Nanotrasen"
+// #define FACTION_NS_LOGI "N+S Logistics"
+// #define FACTION_VIGILITAS "Vigilitas Interstellar"
+// #define FACTION_FRONTIER "Frontiersmen Fleet"
+// #define FACTION_PGF "Pan-Gezenan Federation"
+// #define FACTION_INDEPENDENT "Independent"
+
+// #define PREFIX_SYNDICATE list("SEV", "SSV")
+// #define PREFIX_NGR list("NGRV")
+// #define PREFIX_CYBERSUN list("CSSV")
+// #define PREFIX_HARDLINERS list("ISV")
+// #define PREFIX_SUNS list("SUNS")
+// #define PREFIX_SOLGOV list("SCSV")
+// #define PREFIX_SRM list("SRSV")
+// #define PREFIX_INTEQ list("IRMV")
+// #define PREFIX_CLIP list("CMSV", "CMGSV")
+// #define PREFIX_NT list("NTSV")
+// #define PREFIX_NS_LOGI list("NSSV")
+// #define PREFIX_VIGILITAS list("VISV")
+// #define PREFIX_FRONTIER list("FFV")
+// #define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
+// #define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
+
+
// [CELADON-REMOVE]
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index e9bb73ff77b0..5fc49fbfd6ca 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -97,8 +97,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define HIDDEN_AREA (1<<6)
/// If false, loading multiple maps with this area type will create multiple instances.
#define UNIQUE_AREA (1<<7)
-/// Can the Xenobio management console transverse this area by default?
-#define XENOBIOLOGY_COMPATIBLE (1<<8)
/*
These defines are used specifically with the atom/pass_flags bitmask
diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm
index d1cea0d28de4..0dd8018e2477 100644
--- a/code/__DEFINES/guns.dm
+++ b/code/__DEFINES/guns.dm
@@ -61,6 +61,7 @@
#define MANUFACTURER_EOEHOMA "the Eoehoma Firearms emblem"
#define MANUFACTURER_NANOTRASEN_OLD "an outdated Nanotrasen logo"
#define MANUFACTURER_NANOTRASEN "the Nanotrasen logo"
+#define MANUFACTURER_VIGILITAS "the Vigilitas Interstellar logo"
#define MANUFACTURER_BRAZIL "a green flag with a blue circle and a yellow diamond around it"
#define MANUFACTURER_INTEQ "an orange crest with the letters 'IRMG'"
#define MANUFACTURER_MINUTEMAN "the Lanchester City Firearms Plant logo"
@@ -68,12 +69,41 @@
#define MANUFACTURER_DONKCO "the Donk! Co. logo"
#define MANUFACTURER_PGF "the Etherbor Industries emblem"
#define MANUFACTURER_IMPORT "Lanchester Import Co."
+#define MANUFACTURER_SERENE "the Serene Outdoors logo"
// Misfire chances if the gun's safety is off
#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW 5
#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM 10
#define GUN_NO_SAFETY_MALFUNCTION_CHANCE_HIGH 15
+//slowdown defines
+#define NO_SLOWDOWN 0.0
+#define LIGHT_PISTOL_SLOWDOWN 0.05
+#define PISTOL_SLOWDOWN 0.1
+#define REVOLVER_SLOWDOWN 0.15
+#define HEAVY_REVOLVER_SLOWDOWN 0.2
+#define PDW_SLOWDOWN 0.25
+#define SMG_SLOWDOWN 0.3
+#define SHOTGUN_SLOWDOWN 0.4
+#define HEAVY_SHOTGUN_SLOWDOWN 0.45
+#define LIGHT_RIFLE_SLOWDOWN 0.45
+#define RIFLE_SLOWDOWN 0.55
+#define HEAVY_RIFLE_SLOWDOWN 0.6
+#define DMR_SLOWDOWN 0.6
+#define SAW_SLOWDOWN 0.7
+#define SNIPER_SLOWDOWN 0.9
+#define HMG_SLOWDOWN 1
+#define AMR_SLOWDOWN 1
+
+
+//laser slowdown
+#define LASER_PISTOL_SLOWDOWN 0.05
+#define LASER_SMG_SLOWDOWN 0.2
+#define LASER_RIFLE_SLOWDOWN 0.35
+#define HEAVY_LASER_RIFLE_SLOWDOWN 0.45
+#define LASER_SNIPER_SLOWDOWN 0.6
+
+
/////////////////
// ATTACHMENTS //
/////////////////
@@ -157,10 +187,6 @@
///ammo box will have a different state for full and empty; -max_ammo and -0
#define AMMO_BOX_FULL_EMPTY 2
-#define MAG_SIZE_SMALL 1
-#define MAG_SIZE_MEDIUM 2
-#define MAG_SIZE_LARGE 3
-
//Projectile Reflect
#define REFLECT_NORMAL (1<<0)
#define REFLECT_FAKEPROJECTILE (1<<1)
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index fb98d1f98fbc..5a7613760384 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -31,6 +31,8 @@
//SLOT GROUP HELPERS
#define ITEM_SLOT_POCKETS (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET)
+//All the item slots that are allowed to be held in Kepori beaks (their mask slot)
+#define ITEM_SLOT_KEPORI_BEAK (ITEM_SLOT_MASK|ITEM_SLOT_ID|ITEM_SLOT_POCKETS|ITEM_SLOT_DEX_STORAGE|ITEM_SLOT_SUITSTORE)
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
//Make sure to update check_obscured_slots() if you add more.
@@ -85,12 +87,13 @@
#define DIGITIGRADE_VARIATION_NO_NEW_ICON (1<<2)
#define DIGITIGRADE_VARIATION_SAME_ICON_FILE (1<<3) //intended for use with factional icon files for organization purposes, otherwise use either above. Ex of naming: a state called "nameof_thing" can be named "nameof_thing_digi"
#define SNOUTED_VARIATION (1<<4) //Ex of naming: a state called "nameof_thing" can be named "nameof_thing_snouted"
-#define VOX_VARIATION (1<<5)
-#define KEPORI_VARIATION (1<<6)
+#define SNOUTED_SMALL_VARIATION (1<<5) //For Elzuose snouts
+#define VOX_VARIATION (1<<6)
+#define KEPORI_VARIATION (1<<7)
// [CELADON-ADD] - TAJARA
-#define TAJARA_VARIATION (1<<7)
+#define TAJARA_VARIATION (1<<8)
// [CELADON-ADD] - CELADON_RIOL
-#define RIOL_VARIATION (1<<8)
+#define RIOL_VARIATION (1<<9)
// [/CELADON-ADD]
#define NOT_DIGITIGRADE 0
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index d1db31e6a4fc..5bf9e3add6ad 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -100,8 +100,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define isalienqueen(A) (istype(A, /mob/living/carbon/alien/humanoid/royal/queen))
-#define istruedevil(A) (istype(A, /mob/living/carbon/true_devil))
-
//Silicon mobs
#define issilicon(A) (istype(A, /mob/living/silicon))
@@ -138,10 +136,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define ishostile(A) (istype(A, /mob/living/simple_animal/hostile))
-#define isswarmer(A) (istype(A, /mob/living/simple_animal/hostile/swarmer))
-
-#define isguardian(A) (istype(A, /mob/living/simple_animal/hostile/guardian))
-
#define isconstruct(A) (istype(A, /mob/living/simple_animal/hostile/construct))
#define ismegafauna(A) (istype(A, /mob/living/simple_animal/hostile/megafauna))
diff --git a/code/__DEFINES/language.dm b/code/__DEFINES/language.dm
index 021cb202004d..00e0fb557833 100644
--- a/code/__DEFINES/language.dm
+++ b/code/__DEFINES/language.dm
@@ -12,7 +12,6 @@
#define LANGUAGE_APHASIA "aphasia"
#define LANGUAGE_CULTIST "cultist"
#define LANGUAGE_CURATOR "curator"
-#define LANGUAGE_DEVIL "devil"
#define LANGUAGE_GLAND "gland"
#define LANGUAGE_HAT "hat"
#define LANGUAGE_HIGH "high"
diff --git a/code/__DEFINES/machines.dm b/code/__DEFINES/machines.dm
index 02e6853338d7..7c04242f9976 100644
--- a/code/__DEFINES/machines.dm
+++ b/code/__DEFINES/machines.dm
@@ -143,3 +143,27 @@
#define CLONING_DELETE_RECORD (1<<1)
#define CLICKSOUND_INTERVAL (0.1 SECONDS) //! clicky noises, how much time needed in between clicks on the machine for the sound to play on click again.
+
+/// ONLY shoots at mobs who match the rest of the flags and have weaponry/are otherwise dangerous
+#define TURRET_FLAG_SHOOT_DANGEROUS_ONLY (1<<0)
+/// Will shoot at things that shoot at it
+#define TURRET_FLAG_SHOOT_RETALIATE (1<<1)
+
+/// Will shoot at things that aren't human
+#define TURRET_FLAG_SHOOT_FAUNA (1<<2)
+/// Will shoot at humans
+#define TURRET_FLAG_SHOOT_HUMANS (1<<3)
+/// Will shoot at silicons
+#define TURRET_FLAG_SHOOT_SILICONS (1<<4)
+/// Will shoot at any kind of mob
+#define TURRET_FLAG_SHOOT_ALLMOBS TURRET_FLAG_SHOOT_FAUNA|TURRET_FLAG_SHOOT_HUMANS|TURRET_FLAG_SHOOT_SILICONS
+
+/// Will only shoot at things that AREN'T in the turret's set faction
+#define TURRET_FLAG_SHOOT_NONFACTION (1<<5)
+/// Will only shoot at things that ARE in the turret's set faction
+#define TURRET_FLAG_SHOOT_SPECIFIC_FACTION (1<<6)
+/// Will totally ignore targets' factions - the same as not setting the above two flags
+//#define TURRET_FLAG_SHOOT_ALLFACTION (1<<8)
+
+#define TURRET_FLAG_DEFAULT TURRET_FLAG_SHOOT_DANGEROUS_ONLY|TURRET_FLAG_SHOOT_RETALIATE|TURRET_FLAG_SHOOT_FAUNA|TURRET_FLAG_SHOOT_NONFACTION
+#define TURRET_FLAG_HOSTILE TURRET_FLAG_SHOOT_ALLMOBS|TURRET_FLAG_SHOOT_RETALIATE|TURRET_FLAG_SHOOT_NONFACTION
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 3c815ef1fc37..384b7fcc46c7 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -28,7 +28,6 @@
#define LEGCUFF_LAYER 5
#define HANDS_LAYER 4
#define BODY_FRONT_LAYER 3
-#define HALO_LAYER 2 //blood cult ascended halo, because there's currently no better solution for adding/removing
#define FIRE_LAYER 1 //If you're on fire
#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
@@ -277,9 +276,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define NUKE_SYNDICATE_BASE 3
#define STATION_DESTROYED_NUKE 4
#define STATION_EVACUATED 5
-#define CULT_ESCAPE 11
-#define CULT_FAILURE 12
-#define CULT_SUMMON 13
#define NUKE_MISS 14
#define OPERATIVES_KILLED 15
#define OPERATIVE_SKIRMISH 16
@@ -339,15 +335,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1
-//gold slime core spawning
-#define NO_SPAWN 0
-#define HOSTILE_SPAWN 1
-#define FRIENDLY_SPAWN 2
-
-//slime core activation type
-#define SLIME_ACTIVATE_MINOR 1
-#define SLIME_ACTIVATE_MAJOR 2
-
#define LUMINESCENT_DEFAULT_GLOW 2
#define RIDING_OFFSET_ALL "ALL"
@@ -378,7 +365,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define TELEPORT_CHANNEL_QUANTUM "quantum" //Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption
#define TELEPORT_CHANNEL_WORMHOLE "wormhole" //Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
#define TELEPORT_CHANNEL_MAGIC "magic" //Magic teleportation, does whatever it wants (unless there's antimagic)
-#define TELEPORT_CHANNEL_CULT "cult" //Cult teleportation, does whatever it wants (unless there's holiness)
#define TELEPORT_CHANNEL_FREE "free" //Anything else
//Run the world with this parameter to enable a single run though of the game setup and tear down process with unit tests in between
@@ -461,3 +447,7 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define ROUND_END_NOT_DELAYED 0
#define ROUND_END_DELAYED 1
#define ROUND_END_TGS 2
+
+/// A null statement to guard against EmptyBlock lint without necessitating the use of pass()
+/// Used to avoid proc-call overhead. But use sparingly. Probably pointless in most places.
+#define EMPTY_BLOCK_GUARD ;
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 22681567cf8c..99b91c55c867 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -76,7 +76,6 @@
#define MONKEY_BODYPART "monkey"
#define ALIEN_BODYPART "alien"
#define LARVA_BODYPART "larva"
-#define DEVIL_BODYPART "devil"
//Defines for Species IDs
#define SPECIES_ABDUCTOR "abductor"
@@ -136,14 +135,15 @@
#define BODYTYPE_ROBOTIC (1<<1)
#define BODYTYPE_HUMANOID (1<<2) //Everything
#define BODYTYPE_SNOUT (1<<3) //Snouts
-#define BODYTYPE_BOXHEAD (1<<4) //TV Head
-#define BODYTYPE_DIGITIGRADE (1<<5) //Lizard legs
-#define BODYTYPE_KEPORI (1<<6) //Just Kepori
-#define BODYTYPE_VOX (1<<7) //Big Vox
+#define BODYTYPE_SNOUT_SMALL (1<<4) //Elzuose snouts
+#define BODYTYPE_BOXHEAD (1<<5) //TV Head
+#define BODYTYPE_DIGITIGRADE (1<<6) //Lizard legs
+#define BODYTYPE_KEPORI (1<<7) //Just Kepori
+#define BODYTYPE_VOX (1<<8) //Big Vox
// [CELADON-ADD] - TAJARA
-#define BODYTYPE_TAJARA (1<<8) //Fluffy Ass
+#define BODYTYPE_TAJARA (1<<9) //Fluffy Ass
// [CELADON-ADD] - RIOL
-#define BODYTYPE_RIOL (1<<9)
+#define BODYTYPE_RIOL (1<<10)
// [/CELADON-ADD]
// Health/damage defines
@@ -247,8 +247,8 @@
#define NUTRITION_LEVEL_START_MAX 400
//Disgust levels for humans
-#define DISGUST_LEVEL_MAXEDOUT 150
-#define DISGUST_LEVEL_DISGUSTED 75
+#define DISGUST_LEVEL_MAXEDOUT 200
+#define DISGUST_LEVEL_DISGUSTED 100
#define DISGUST_LEVEL_VERYGROSS 50
#define DISGUST_LEVEL_GROSS 25
@@ -402,10 +402,8 @@
#define RACE_SWAP (1<<3)
//ERT spawn template (avoid races that don't function without correct gear)
#define ERT_SPAWN (1<<4)
-//xenobio black crossbreed
-#define SLIME_EXTRACT (1<<5)
//Wabbacjack staff projectiles
-#define WABBAJACK (1<<6)
+#define WABBAJACK (1<<5)
#define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return;
@@ -421,9 +419,6 @@
#define SILENCE_RANGED_MESSAGE (1<<0)
-///Swarmer flags
-#define SWARMER_LIGHT_ON (1<<0)
-
/// Returns whether or not the given mob can succumb
#define CAN_SUCCUMB(target) (HAS_TRAIT(target, TRAIT_CRITICAL_CONDITION) && !HAS_TRAIT(target, TRAIT_NODEATH))
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index 70b2ea2bde84..441a76702afc 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -49,7 +49,7 @@
#define LAVAPROTECT (1<<0)
#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag.
#define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
-#define ALLOWINTERNALS (1<<3) // mask allows internals //WS Port - Changed Maskinternals to allowinternals
+#define ALLOWINTERNALS (1<<3) // mask allows internals
#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc
#define NOSLIP_ICE (1<<5) //prevents from slipping on frozen floors
#define THICKMATERIAL (1<<6) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index c65f26a89fd3..4f225d304313 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -21,7 +21,6 @@
#define DEADMIN_POSITION_SECURITY (1<<18)
#define DEADMIN_POSITION_SILICON (1<<19)
#define SOUND_ENDOFROUND (1<<20)
-#define ADMIN_IGNORE_CULT_GHOST (1<<21)
#define SPLIT_ADMIN_TABS (1<<22)
#define FAST_MC_REFRESH (1<<23)
diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm
index db31a4b5552d..4f42e0902291 100644
--- a/code/__DEFINES/projectiles.dm
+++ b/code/__DEFINES/projectiles.dm
@@ -13,3 +13,19 @@
#define PROJECTILE_BONUS_DAMAGE_WALLS (1<<1) // walls
#define PROJECTILE_BONUS_DAMAGE_RWALLS (1<<2) //reinforced walls
+//vibes based bullet speed
+
+#define BULLET_SPEED_SHOTGUN 0.5
+#define BULLET_SPEED_HANDGUN 0.4
+#define BULLET_SPEED_REVOLVER 0.4 //why do we have multiple defines for the same thing? future proofing.
+#define BULLET_SPEED_PDW 0.3
+#define BULLET_SPEED_RIFLE 0.3
+#define BULLET_SPEED_SNIPER 0.2
+
+//speed modifiers
+#define BULLET_SPEED_AP_MOD -0.05
+#define BULLET_SPEED_HP_MOD 0.05
+#define BULLET_SPEED_RUBBER_MOD 0.1
+#define BULLET_SPEED_HV_MOD -0.1
+#define BULLET_SPEED_SURPLUS_MOD 0.05
+
diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm
index 2c4e41f45906..fa66e7c3ea8e 100644
--- a/code/__DEFINES/radiation.dm
+++ b/code/__DEFINES/radiation.dm
@@ -57,3 +57,15 @@ Ask ninjanomnom if they're around
#define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread
#define RAD_HALF_LIFE 90 // The half-life of contaminated objects
+
+#define RAD_GLOW_COLOR "#39ff1430"
+
+#define RAD_LEVEL_NORMAL 9
+#define RAD_LEVEL_MODERATE 100
+#define RAD_LEVEL_HIGH 400
+#define RAD_LEVEL_VERY_HIGH 800
+#define RAD_LEVEL_CRITICAL 1500
+
+#define RAD_MEASURE_SMOOTHING 5
+
+#define RAD_GRACE_PERIOD 2
diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm
index 8e3668b90567..55f9610c052d 100644
--- a/code/__DEFINES/radio.dm
+++ b/code/__DEFINES/radio.dm
@@ -5,14 +5,9 @@
#define RADIO_CHANNEL_COMMON "Common"
#define RADIO_KEY_COMMON ";"
-#define RADIO_CHANNEL_COMMAND "Command"
-#define RADIO_KEY_COMMAND "c"
-#define RADIO_TOKEN_COMMAND ":c"
-
-#define RADIO_CHANNEL_AI_PRIVATE "AI Private"
-#define RADIO_KEY_AI_PRIVATE "o"
-#define RADIO_TOKEN_AI_PRIVATE ":o"
-
+#define RADIO_CHANNEL_EMERGENCY "Emergency"
+#define RADIO_KEY_EMERGENCY "c"
+#define RADIO_TOKEN_EMERGENCY ":c"
#define RADIO_CHANNEL_SYNDICATE "Syndicate"
#define RADIO_KEY_SYNDICATE "t"
@@ -22,7 +17,6 @@
#define RADIO_KEY_CENTCOM "e"
#define RADIO_TOKEN_CENTCOM ":e"
-//WS Begin - SGR, Overmaps
#define RADIO_CHANNEL_SOLGOV "SolGov"
#define RADIO_KEY_SOLGOV "s"
#define RADIO_TOKEN_SOLGOV ":s"
@@ -58,17 +52,15 @@
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
// Frequencies are always odd numbers and range from 1201 to 1599.
-#define FREQ_SYNDICATE 1213 // Nuke op comms frequency, dark brown
-#define FREQ_CTF_RED 1215 // CTF red team comms frequency, red
-#define FREQ_CTF_BLUE 1217 // CTF blue team comms frequency, blue
-#define FREQ_CENTCOM 1337 // CentCom comms frequency, gray
+#define FREQ_SYNDICATE 1213 // Syndicate Coalition comms frequency, dark brown
+#define FREQ_CENTCOM 1337 // NT-CentCom comms frequency, gray
#define FREQ_SOLGOV 1345 // SolGov comms frequency, dark blue WS ADDITION
#define FREQ_INTEQ 1347 // Inteq comms frequency, light brown
#define FREQ_PGF 1349 // PGF comms frequency, lime green
#define FREQ_NANOTRASEN 1351 // Nanotrasen comms frequency, plum
-#define FREQ_COMMAND 1353 // Command comms frequency, gold
+#define FREQ_EMERGENCY 1353 // Emergency comms frequency, red
#define FREQ_MINUTEMEN 1355 // Minutemen comms frequency, soft blue
-#define FREQ_PIRATE 1359 // Pirate comms frequency, red
+#define FREQ_PIRATE 1359 // Pirate comms frequency, gold
#define FREQ_HOLOGRID_SOLUTION 1433
#define FREQ_STATUS_DISPLAYS 1435
@@ -76,12 +68,10 @@
#define FREQ_ATMOS_CONTROL 1439 // air alarms <-> vents and scrubbers
#define MIN_FREQ 1441 // ------------------------------------------------------
-// Only the 1441 to 1489 range is freely available for general conversation.
-// This represents 1/8th of the available spectrum.
+// Only the 1441 to 1689 range is freely available for general conversation.
#define FREQ_ATMOS_STORAGE 1441
#define FREQ_NAV_BEACON 1445
-#define FREQ_AI_PRIVATE 1447 // AI private comms frequency, magenta
#define FREQ_PRESSURE_PLATE 1447
#define FREQ_AIRLOCK_CONTROL 1449
#define FREQ_ELECTROPACK 1449
@@ -90,11 +80,11 @@
#define FREQ_SIGNALER 1457 // the default for new signalers
#define FREQ_COMMON 1459 // Common comms frequency, dark green
-#define MAX_FREQ 1489 // ------------------------------------------------------
+#define MAX_FREQ 1689 // ------------------------------------------------------
-#define FREQ_WIDEBAND 1501 // Subspace/shuttle comms frequency, dark blue WS ADDITION
+#define FREQ_WIDEBAND 1691 // sector wide communication
-#define MAX_FREE_FREQ 1599 // -------------------------------------------------
+#define MAX_FREE_FREQ 1699 // -------------------------------------------------
// Transmission types.
#define TRANSMISSION_WIRE 0 // some sort of wired connection, not used
diff --git a/code/__DEFINES/reactions.dm b/code/__DEFINES/reactions.dm
index 4683ed393453..92e1c49bc0ae 100644
--- a/code/__DEFINES/reactions.dm
+++ b/code/__DEFINES/reactions.dm
@@ -1,12 +1,12 @@
//Defines used in atmos gas reactions. Used to be located in ..\modules\atmospherics\gasmixtures\reactions.dm, but were moved here because fusion added so fucking many.
//Plasma fire properties
-#define OXYGEN_BURN_RATE_BASE 1.4
+#define PLASMA_BURN_RATE_BASE 1.4
#define PLASMA_BURN_RATE_DELTA 9
#define PLASMA_MINIMUM_OXYGEN_NEEDED 2
#define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30
#define FIRE_CARBON_ENERGY_RELEASED 100000 //Amount of heat released per mole of burnt carbon into the tile
-#define FIRE_HYDROGEN_ENERGY_RELEASED 280000 //Amount of heat released per mole of burnt hydrogen and/or tritium(hydrogen isotope)
+#define FIRE_HYDROGEN_ENERGY_RELEASED 286000 //Amount of heat released per mole of burnt hydrogen and/or tritium(hydrogen isotope)
#define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile
//General assmos defines.
#define WATER_VAPOR_FREEZE 200
@@ -29,7 +29,7 @@
#define STIMULUM_FIRST_DROP 0.065
#define STIMULUM_SECOND_RISE 0.0009
#define STIMULUM_ABSOLUTE_DROP 0.00000335
-#define REACTION_OPPRESSION_THRESHOLD 10
+#define REACTION_OPPRESSION_THRESHOLD 75
#define NOBLIUM_FORMATION_ENERGY 2e9 //1 Mole of Noblium takes the planck energy to condense.
#define STIM_BALL_GAS_AMOUNT 5
//Research point amounts
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 874c27ac276f..9cb2732d3a5c 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -17,12 +17,10 @@
#define ROLE_REV_SUCCESSFUL "Victorious Revolutionary"
#define ROLE_ALIEN "Xenomorph"
#define ROLE_PAI "pAI"
-#define ROLE_CULTIST "Cultist"
#define ROLE_NINJA "Space Ninja"
#define ROLE_MONKEY "Monkey"
#define ROLE_ABDUCTOR "Abductor"
#define ROLE_REVENANT "Revenant"
-#define ROLE_DEVIL "Devil"
#define ROLE_BROTHER "Blood Brother"
#define ROLE_BRAINWASHED "Brainwashed Victim"
#define ROLE_OVERTHROW "Syndicate Mutineer" //Role removed, left here for safety.
@@ -52,13 +50,11 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_MALF,
ROLE_ALIEN,
ROLE_PAI,
- ROLE_CULTIST = /datum/game_mode/cult,
ROLE_NINJA,
ROLE_OBSESSED,
ROLE_SPACE_DRAGON,
ROLE_REVENANT,
ROLE_ABDUCTOR,
- ROLE_DEVIL = /datum/game_mode/devil,
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
ROLE_SENTIENCE,
ROLE_BORER
diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm
index 847029d93e0b..0dc530d8d3aa 100644
--- a/code/__DEFINES/span.dm
+++ b/code/__DEFINES/span.dm
@@ -73,6 +73,7 @@
#define span_narsie(str) ("" + str + "")
#define span_narsiesmall(str) ("" + str + "")
#define span_nicegreen(str) ("" + str + "")
+#define span_nicegreen_robot(str) ("" + str + "")
#define span_notice(str) ("" + str + "")
#define span_noticealien(str) ("" + str + "")
#define span_ooc(str) ("" + str + "")
@@ -113,6 +114,7 @@
#define span_unconscious(str) ("" + str + "")
#define span_userdanger(str) ("" + str + "")
#define span_warning(str) ("" + str + "")
+#define span_warning_robot(str) ("" + str + "")
#define span_yell(str) ("" + str + "")
#define span_yellowteamradio(str) ("" + str + "")
diff --git a/code/__DEFINES/species.dm b/code/__DEFINES/species.dm
index 1a8cd17d802a..d3cf27ac546e 100644
--- a/code/__DEFINES/species.dm
+++ b/code/__DEFINES/species.dm
@@ -1,12 +1,12 @@
// Pressure limits.
-/// This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
-#define HAZARD_HIGH_PRESSURE 550
-/// This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)
-#define WARNING_HIGH_PRESSURE 325
-/// This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE)
-#define WARNING_LOW_PRESSURE 50
-/// This is when the black ultra-low pressure icon is displayed. (This one is set as a constant)
-#define HAZARD_LOW_PRESSURE 20
+/// This determins at what pressure the ultra-high pressure red icon is displayed.
+#define HAZARD_HIGH_PRESSURE 303
+/// This determins when the orange pressure icon is displayed
+#define WARNING_HIGH_PRESSURE 202
+/// This is when the gray low pressure icon is displayed.
+#define WARNING_LOW_PRESSURE 60
+/// This is when the black ultra-low pressure icon is displayed.
+#define HAZARD_LOW_PRESSURE 40
/// This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5
@@ -14,13 +14,13 @@
/// The natural temperature for a body
#define HUMAN_BODYTEMP_NORMAL 310.15
/// This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
-#define HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR 11
+#define HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR 22
/// Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50.
#define HUMAN_BODYTEMP_AUTORECOVERY_MINIMUM 12
///Similar to the HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
-#define HUMAN_BODYTEMP_COLD_DIVISOR 15
+#define HUMAN_BODYTEMP_COLD_DIVISOR 20
/// Similar to the HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
-#define HUMAN_BODYTEMP_HEAT_DIVISOR 15
+#define HUMAN_BODYTEMP_HEAT_DIVISOR 10
/// The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area.
#define HUMAN_BODYTEMP_COOLING_MAX -100
/// The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area.
@@ -28,11 +28,11 @@
/// The body temperature limit the human body can take before it starts taking damage from heat.
/// This also affects how fast the body normalises it's temperature when hot.
/// 340k is about 66c, and rather high for a human.
-#define HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT (HUMAN_BODYTEMP_NORMAL + 30)
+#define HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT (HUMAN_BODYTEMP_NORMAL + 3)
/// The body temperature limit the human body can take before it starts taking damage from cold.
/// This also affects how fast the body normalises it's temperature when cold.
/// 270k is about -3c, that is below freezing and would hurt over time.
-#define HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT (HUMAN_BODYTEMP_NORMAL - 40)
+#define HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT (HUMAN_BODYTEMP_NORMAL - 8)
//VOX DEFINES
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 68913e3925fd..9a7c477b8b14 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -64,8 +64,6 @@
#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath.
-#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
-
#define STATUS_EFFECT_CRUSHERMARK /datum/status_effect/crusher_mark //if struck with a proto-kinetic crusher, takes a ton of damage
#define STATUS_EFFECT_SAWBLEED /datum/status_effect/stacking/saw_bleed //if the bleed builds up enough, takes a ton of damage
diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm
index cb657520e33f..cac5d8160cb4 100644
--- a/code/__DEFINES/storage.dm
+++ b/code/__DEFINES/storage.dm
@@ -44,9 +44,11 @@
// PLEASE KEEP ALL VOLUME DEFINES IN THIS FILE, it's going to be hell to keep track of them later.
#define DEFAULT_VOLUME_TINY 1
#define DEFAULT_VOLUME_SMALL 2
+// [CELADON-EDIT]
#define DEFAULT_VOLUME_NORMAL 6
#define DEFAULT_VOLUME_BULKY 12
#define DEFAULT_VOLUME_HUGE 24
+// [/CELADON-EDIT]
#define DEFAULT_VOLUME_GIGANTIC 48
GLOBAL_LIST_INIT(default_weight_class_to_volume, list(
@@ -80,9 +82,41 @@ GLOBAL_LIST_INIT(default_weight_class_to_volume, list(
#define MAX_WEIGHT_CLASS_DUFFEL WEIGHT_CLASS_BULKY
// max_volume for storages
+// [CELADON-EDIT]
#define STORAGE_VOLUME_CONTAINER_S DEFAULT_VOLUME_NORMAL //3 small items
#define STORAGE_VOLUME_CONTAINER_M (DEFAULT_VOLUME_NORMAL * 2) //6 small items
-#define STORAGE_VOLUME_SATCHEL (DEFAULT_VOLUME_NORMAL * 4) //4 normal items
+#define STORAGE_VOLUME_SATCHEL (DEFAULT_VOLUME_NORMAL * 6) //6 normal items, or 3 bulky items
#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 6) //6 normal items, or 3 bulky items
+// [/CELADON-EDIT]
#define STORAGE_VOLUME_DUFFLEBAG (DEFAULT_VOLUME_NORMAL * 8) // 2 huge items, or 4 bulky items
#define STORAGE_VOLUME_BAG_OF_HOLDING (DEFAULT_VOLUME_NORMAL * 9) //1.5X backpack
+
+//Whitelist for the suit storage slot on medical suits
+#define MEDICAL_SUIT_ALLOWED_ITEMS list( \
+ /obj/item/scalpel, \
+ /obj/item/cautery, \
+ /obj/item/hemostat, \
+ /obj/item/retractor, \
+ /obj/item/surgicaldrill, \
+ /obj/item/circular_saw, \
+ /obj/item/analyzer, \
+ /obj/item/sensor_device, \
+ /obj/item/stack/medical, \
+ /obj/item/dnainjector, \
+ /obj/item/reagent_containers/dropper, \
+ /obj/item/reagent_containers/syringe, \
+ /obj/item/reagent_containers/hypospray, \
+ /obj/item/healthanalyzer, \
+ /obj/item/flashlight/pen, \
+ /obj/item/reagent_containers/glass/bottle, \
+ /obj/item/reagent_containers/glass/beaker, \
+ /obj/item/reagent_containers/pill, \
+ /obj/item/storage/pill_bottle, \
+ /obj/item/paper, \
+ /obj/item/melee/classic_baton/telescopic, \
+ /obj/item/toy, \
+ /obj/item/storage/fancy/cigarettes, \
+ /obj/item/lighter, \
+ /obj/item/tank/internals/emergency_oxygen, \
+ /obj/item/tank/internals/plasmaman \
+)
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 54874bc9e16b..1155ea88bed9 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -130,6 +130,7 @@
#define INIT_ORDER_ATOMS 30
#define INIT_ORDER_LANGUAGE 25
#define INIT_ORDER_MACHINES 20
+#define INIT_ORDER_TURRETS 17
#define INIT_ORDER_SKILLS 15
#define INIT_ORDER_TIMER 1
#define INIT_ORDER_DEFAULT 0
diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm
index e2c89df90e9b..42f2d5fc31fe 100644
--- a/code/__DEFINES/tgs.dm
+++ b/code/__DEFINES/tgs.dm
@@ -1,18 +1,19 @@
// tgstation-server DMAPI
+// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119.
-#define TGS_DMAPI_VERSION "7.1.2"
+#define TGS_DMAPI_VERSION "7.3.0"
// All functions and datums outside this document are subject to change with any version and should not be relied on.
// CONFIGURATION
-/// Create this define if you want to do TGS configuration outside of this file.
+/// Consumers SHOULD create this define if you want to do TGS configuration outside of this file.
#ifndef TGS_EXTERNAL_CONFIGURATION
-// Comment this out once you've filled in the below.
+// Consumers MUST comment this out once you've filled in the below and are not using [TGS_EXTERNAL_CONFIGURATION].
#error TGS API unconfigured
-// Uncomment this if you wish to allow the game to interact with TGS 3..
+// Consumers MUST uncomment this if you wish to allow the game to interact with TGS version 3.
// This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()().
//#define TGS_V3_API
@@ -52,7 +53,7 @@
#ifndef TGS_FILE2TEXT_NATIVE
#ifdef file2text
-#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses
+#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You SHOULD fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses
#endif
#define TGS_FILE2TEXT_NATIVE file2text
#endif
@@ -152,16 +153,17 @@
//REQUIRED HOOKS
/**
- * Call this somewhere in [/world/proc/New] that is always run. This function may sleep!
+ * Consumers MUST call this somewhere in [/world/proc/New] that is always run. This function may sleep!
*
* * event_handler - Optional user defined [/datum/tgs_event_handler].
* * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED].
+ * * http_handler - Optional user defined [/datum/tgs_http_handler].
*/
-/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE)
+/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler)
return
/**
- * Call this when your initializations are complete and your game is ready to play before any player interactions happen.
+ * Consumers MUST call this when world initializations are complete and the game is ready to play before any player interactions happen.
*
* This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running.
* Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184
@@ -170,12 +172,10 @@
/world/proc/TgsInitializationComplete()
return
-/// Put this at the start of [/world/proc/Topic].
+/// Consumers MUST run this macro at the start of [/world/proc/Topic].
#define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return
-/**
- * Call this as late as possible in [world/proc/Reboot] (BEFORE ..()).
- */
+/// Consumers MUST call this as late as possible in [world/proc/Reboot] (BEFORE ..()).
/world/proc/TgsReboot()
return
@@ -269,7 +269,7 @@
/// The [/datum/tgs_chat_channel] the user was from.
var/datum/tgs_chat_channel/channel
-/// User definable handler for TGS events.
+/// User definable handler for TGS events This abstract version SHOULD be overridden to be used.
/datum/tgs_event_handler
/// If the handler receieves [TGS_EVENT_HEALTH_CHECK] events.
var/receive_health_checks = FALSE
@@ -283,7 +283,41 @@
set waitfor = FALSE
return
-/// User definable chat command.
+/// User definable handler for HTTP calls. This abstract version MUST be overridden to be used.
+/datum/tgs_http_handler
+
+/**
+ * User definable callback for executing HTTP GET requests.
+ * MUST perform BYOND sleeps while the request is in flight.
+ * MUST return a [/datum/tgs_http_result].
+ * SHOULD log its own errors
+ *
+ * url - The full URL to execute the GET request for including query parameters.
+ */
+/datum/tgs_http_handler/proc/PerformGet(url)
+ CRASH("[type]/PerformGet not implemented!")
+
+/// Result of a [/datum/tgs_http_handler] call. MUST NOT be overridden.
+/datum/tgs_http_result
+ /// HTTP response as text
+ var/response_text
+ /// Boolean request success flag. Set for any 2XX response code.
+ var/success
+
+/**
+ * Create a [/datum/tgs_http_result].
+ *
+ * * response_text - HTTP response as text. Must be provided in New().
+ * * success - Boolean request success flag. Set for any 2XX response code. Must be provided in New().
+ */
+/datum/tgs_http_result/New(response_text, success)
+ if(response_text && !istext(response_text))
+ CRASH("response_text was not text!")
+
+ src.response_text = response_text
+ src.success = success
+
+/// User definable chat command. This abstract version MUST be overridden to be used.
/datum/tgs_chat_command
/// The string to trigger this command on a chat bot. e.g `@bot name ...` or `!tgs name ...`.
var/name = ""
@@ -296,21 +330,27 @@
/**
* Process command activation. Should return a [/datum/tgs_message_content] to respond to the issuer with.
+ * MUST be implemented
*
- * sender - The [/datum/tgs_chat_user] who issued the command.
- * params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
+ * * sender - The [/datum/tgs_chat_user] who issued the command.
+ * * params - The trimmed string following the command `/datum/tgs_chat_command/var/name].
*/
/datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params)
CRASH("[type] has no implementation for Run()")
-/// User definable chat message.
+/// User definable chat message. MUST NOT be overridden.
/datum/tgs_message_content
- /// The tring content of the message. Must be provided in New().
+ /// The string content of the message. Must be provided in New().
var/text
/// The [/datum/tgs_chat_embed] to embed in the message. Not supported on all chat providers.
var/datum/tgs_chat_embed/structure/embed
+/**
+ * Create a [/datum/tgs_message_content].
+ *
+ * * text - The string content of the message.
+ */
/datum/tgs_message_content/New(text)
..()
if(!istext(text))
@@ -319,7 +359,7 @@
src.text = text
-/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details.
+/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details.
/datum/tgs_chat_embed/structure
var/title
var/description
@@ -331,13 +371,13 @@
/// Colour must be #AARRGGBB or #RRGGBB hex string.
var/colour
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details.
var/datum/tgs_chat_embed/media/image
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details.
var/datum/tgs_chat_embed/media/thumbnail
- /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details.
+ /// See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details.
var/datum/tgs_chat_embed/media/video
var/datum/tgs_chat_embed/footer/footer
@@ -346,7 +386,7 @@
var/list/datum/tgs_chat_embed/field/fields
-/// Common datum for similar discord embed medias.
+/// Common datum for similar Discord embed medias.
/datum/tgs_chat_embed/media
/// Must be set in New().
var/url
@@ -354,6 +394,7 @@
var/height
var/proxy_url
+/// Create a [/datum/tgs_chat_embed].
/datum/tgs_chat_embed/media/New(url)
..()
if(!istext(url))
@@ -361,13 +402,14 @@
src.url = url
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details.
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details.
/datum/tgs_chat_embed/footer
/// Must be set in New().
var/text
var/icon_url
var/proxy_icon_url
+/// Create a [/datum/tgs_chat_embed/footer].
/datum/tgs_chat_embed/footer/New(text)
..()
if(!istext(text))
@@ -375,16 +417,17 @@
src.text = text
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details.
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details.
/datum/tgs_chat_embed/provider
var/name
var/url
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New().
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New().
/datum/tgs_chat_embed/provider/author
var/icon_url
var/proxy_icon_url
+/// Create a [/datum/tgs_chat_embed/footer].
/datum/tgs_chat_embed/provider/author/New(name)
..()
if(!istext(name))
@@ -392,12 +435,15 @@
src.name = name
-/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New().
+/// See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details.
/datum/tgs_chat_embed/field
+ /// Must be set in New().
var/name
+ /// Must be set in New().
var/value
var/is_inline
+/// Create a [/datum/tgs_chat_embed/field].
/datum/tgs_chat_embed/field/New(name, value)
..()
if(!istext(name))
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index b70318482a39..10c919d64ea9 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -259,6 +259,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_DWARF "dwarf"
#define TRAIT_FASTMED "fast_med_use"
#define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent
+#define TRAIT_PAIN_RESIST "pain_resistance" //you resist pain
#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good....
/// The holder of this trait has antennae or whatever that hurt a ton when noogied
#define TRAIT_ANTENNAE "antennae"
@@ -301,7 +302,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NO_STORAGE_INSERT "no_storage_insert" //cannot be inserted in a storage.
#define TRAIT_T_RAY_VISIBLE "t-ray-visible" // Visible on t-ray scanners if the atom/var/level == 1
#define TRAIT_NO_TELEPORT "no-teleport" //you just can't
+/// A transforming item that is actively extended / transformed
+#define TRAIT_TRANSFORM_ACTIVE "active_transform"
#define TRAIT_WIELDED "wielded" //The item is currently being wielded
+#define TRAIT_FORCE_SUIT_STORAGE "force_suit_storage" // the item can be worn in suit storage without an outerclothing
//quirk traits
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
@@ -329,6 +333,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_BALD "bald"
#define TRAIT_BADTOUCH "bad_touch"
#define TRAIT_ANXIOUS "anxious"
+#define TRAIT_ANALGESIA "congenital_analgesia"
/// Trait granted by lipstick
#define LIPSTICK_TRAIT "lipstick_trait"
@@ -353,7 +358,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define CYBORG_ITEM_TRAIT "cyborg-item"
#define ADMIN_TRAIT "admin" // (B)admins only.
#define CHANGELING_TRAIT "changeling"
-#define CULT_TRAIT "cult"
#define CURSED_ITEM_TRAIT "cursed-item" // The item is magically cursed
#define ABSTRACT_ITEM_TRAIT "abstract-item"
#define STATUS_EFFECT_TRAIT "status-effect"
@@ -392,7 +396,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STASIS_MUTE "stasis"
#define GENETICS_SPELL "genetics_spell"
#define EYES_COVERED "eyes_covered"
-#define CULT_EYES "cult_eyes"
#define TRAIT_SANTA "santa"
#define SCRYING_ORB "scrying-orb"
#define ABDUCTOR_ANTAGONIST "abductor-antagonist"
@@ -427,8 +430,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define WARPWHISTLE_TRAIT "warpwhistle"
///Turf trait for when a turf is transparent
#define TURF_Z_TRANSPARENT_TRAIT "turf_z_transparent"
-/// Trait applied by by [/datum/component/soulstoned]
-#define SOULSTONE_TRAIT "soulstone"
/// Trait applied to slimes by low temperature
#define SLIME_COLD "slime-cold"
/// Trait applied to bots by being tipped over
diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm
index 602473b6086d..e52d9af56251 100644
--- a/code/__DEFINES/vv.dm
+++ b/code/__DEFINES/vv.dm
@@ -92,6 +92,7 @@
#define VV_HK_AUTO_RENAME "auto_rename"
#define VV_HK_RADIATE "radiate"
#define VV_HK_EDIT_FILTERS "edit_filters"
+#define VV_HK_SELL "sell_item"
#define VV_HK_EDIT_PARTICLES "edit_particles"
// /obj
diff --git a/code/__DEFINES/~mod_celadon/emote.dm b/code/__DEFINES/~mod_celadon/emote.dm
new file mode 100644
index 000000000000..dbd8fe0aa94b
--- /dev/null
+++ b/code/__DEFINES/~mod_celadon/emote.dm
@@ -0,0 +1,222 @@
+///when we cross over something (calling Crossed() on that atom)
+#define COMSIG_CROSSED_MOVABLE "crossed_movable"
+///from base of atom/movable/Crossed(): (/atom/movable)
+#define COMSIG_MOVABLE_CROSSED "movable_crossed"
+/// called by /obj/structure/table/do_climb() : (/datum/component/clumsy_climb)
+#define COMSIG_CLIMBED_ON "climb_on"
+/// called by /datum/emote/living/dance/run_emote() : (/datum/component/clumsy_climb)
+#define COMSIG_DANCED_ON "dance_on"
+/// If returned from act_on_target(), emote execution will stop.
+#define EMOTE_ACT_STOP_EXECUTION 1
+/// If passed as message_param, will default to using the message's postfix.
+#define EMOTE_PARAM_USE_POSTFIX 1
+
+/// Regardless of its existing flags, an emote with this flag will not be sent to runechat.
+#define EMOTE_FORCE_NO_RUNECHAT 3
+/// This emote uses the mouth, and so should be blocked if the user is muzzled or can't breathe (for humans).
+#define EMOTE_MOUTH 4
+
+/// General Emotes
+#define EMOTE_FLIP "Сделать кувырок"
+#define EMOTE_SPIN "Покрутиться"
+#define EMOTE_BLUSH "Краснеть"
+#define EMOTE_BOW "Поклониться"
+#define EMOTE_BURP "Рыгнуть"
+#define EMOTE_CHOKE "Подавиться"
+#define EMOTE_COLLAPSE "Рухнуть"
+#define EMOTE_DANCE "Танцевать"
+#define EMOTE_JUMP "Прыгнуть"
+#define EMOTE_DEATHGASP "Предсмертный вздох"
+#define EMOTE_DROOL "Пускать слюни"
+#define EMOTE_FROWN "Смотреть в недоумении"
+#define EMOTE_GAG "Вырвать"
+#define EMOTE_GLARE "Смотреть с ненавистью"
+#define EMOTE_GRIN "Оскалиться в улыбке"
+#define EMOTE_GRIMACE "Скорчить рожицу"
+#define EMOTE_GROAN "Болезненный вздох"
+#define EMOTE_LOOK "Посмотреть"
+#define EMOTE_BSHAKE "Трястись"
+#define EMOTE_SHUDDER "Содрогаться"
+#define EMOTE_POINT "Показать пальцем"
+#define EMOTE_POUT "Надуть губы"
+#define EMOTE_SCREAM "Кричать"
+#define EMOTE_SHAKE "Мотать головой"
+#define EMOTE_SHIVER "Дрожать"
+#define EMOTE_SIGH "Вздыхать"
+#define EMOTE_SIGH_HAPPY "Удовлетворённо вздыхать"
+#define EMOTE_SIT "Сесть"
+#define EMOTE_SMILE "Улыбнуться"
+#define EMOTE_SMUG "Ухмыляться"
+#define EMOTE_SNIFF "Шмыгать носом"
+#define EMOTE_SNORE "Храпеть"
+#define EMOTE_NIGHTMARE "Ворочаться во сне"
+#define EMOTE_STARE "Пялиться"
+#define EMOTE_STRECH "Разминать руки"
+#define EMOTE_SULK "Обидеться"
+#define EMOTE_SWAY "Качаться на месте"
+#define EMOTE_SWEAR "Ругнуться"
+#define EMOTE_TILT "Наклонить голову"
+#define EMOTE_TREMBLE "Дрожать в ужасе"
+#define EMOTE_TWITCH "Сильно дёргаться"
+#define EMOTE_TWITCHS "Дёргаться"
+#define EMOTE_WHIMPER "Хныкать"
+#define EMOTE_WSMILE "Сдержанно улыбнуться"
+#define EMOTE_EXERCISE "Упражнения"
+#define EMOTE_SQUAT "Приседания"
+#define EMOTE_PUSHUP "Отжимания"
+
+/// Human Emotes
+#define EMOTE_SPECIES_AIRGUITAR "Воображаемая гитара"
+#define EMOTE_SPECIES_CLAP "Хлопать"
+#define EMOTE_SPECIES_CRY "Плакать"
+#define EMOTE_SPECIES_DAP "Особое рукопожатие"
+#define EMOTE_SPECIES_EYEBROW "Приподнять бровь"
+#define EMOTE_SPECIES_FACEPALM "Хлопнуть по лбу"
+#define EMOTE_SPECIES_GRUMBLE "Ворчать"
+#define EMOTE_SPECIES_HUG "Обнимать"
+#define EMOTE_SPECIES_MUMBLE "Бормотать"
+#define EMOTE_SPECIES_NOD "Кивнуть"
+#define EMOTE_SPECIES_PALM "Протянуть руку"
+#define EMOTE_SPECIES_SCREAM "Кричать"
+#define EMOTE_SPECIES_GASP "Задыхаться"
+#define EMOTE_SPECIES_SHAKE "Мотать головой"
+#define EMOTE_SPECIES_PALE "Бледнеть"
+#define EMOTE_SPECIES_RAISE "Поднять руку"
+#define EMOTE_SPECIES_SALUTE "Салютовать"
+#define EMOTE_SPECIES_SIGNAL "Показать пальцы"
+#define EMOTE_SPECIES_SHRUG "Пожать плечами"
+#define EMOTE_SPECIES_SNIFF "Шмыгать носом"
+#define EMOTE_SPECIES_JOHNNY "Курить стильно"
+#define EMOTE_SPECIES_SNEEZE "Чихнуть"
+#define EMOTE_SPECIES_SLAP "Дать пощёчину"
+#define EMOTE_SPECIES_WINCE "Морщиться"
+#define EMOTE_SPECIES_SQUINT "Прищуриться"
+#define EMOTE_SPECIES_WINK "Подмигнуть"
+#define EMOTE_SPECIES_HIGHFIVE "Дать пять"
+#define EMOTE_SPECIES_HANDSHAKE "Пожать руку"
+#define EMOTE_SPECIES_RPS "Камень, ножницы, бумага"
+#define EMOTE_SPECIES_CRACK "Хрустеть пальцами"
+#define EMOTE_SPECIES_FART "Пёрнуть"
+#define EMOTE_SPECIES_WAG "Перестать/Махать хвостом"
+#define EMOTE_SPECIES_WAG_STOP "Перестать махать хвостом"
+#define EMOTE_SPECIES_FLAP "Махать крыльями"
+#define EMOTE_SPECIES_AFLAP "Махать крыльями агрессивно"
+#define EMOTE_SPECIES_FLUTTER "Трепетать крыльями"
+#define EMOTE_SPECIES_QUILL "Шуршать перьями"
+#define EMOTE_SPECIES_WARBLE "Трелить"
+#define EMOTE_SPECIES_CROAK "Квакать"
+#define EMOTE_SPECIES_CROAK_ANGER "Гневно квакать"
+#define EMOTE_SPECIES_CLACK "Трещать"
+#define EMOTE_SPECIES_CLICK "Щёлкать"
+#define EMOTE_SPECIES_DRONE "Гудеть"
+#define EMOTE_SPECIES_HUM "Жужжать"
+#define EMOTE_SPECIES_HISS "Шипеть"
+#define EMOTE_SPECIES_CREAK "Скрипеть"
+#define EMOTE_SPECIES_SQUISH "Хлюпать"
+#define EMOTE_SPECIES_HOWL "Выть"
+#define EMOTE_SPECIES_GROWL "Рычать"
+#define EMOTE_SPECIES_RATTLE "Греметь"
+#define EMOTE_SPECIES_BUBBLE "Булькать"
+#define EMOTE_SPECIES_POP "Хлопать ртом"
+#define EMOTE_SPECIES_ROLL "Катиться"
+#define EMOTE_SPECIES_TAIL "Помахать хвостом"
+#define EMOTE_SPECIES_SCREECH "Визжать"
+#define EMOTE_SPECIES_HEM "Хмыкнуть"
+#define EMOTE_SPECIES_SCRATCH "Почесаться"
+#define EMOTE_SPECIES_WHISTLE "Свистеть"
+#define EMOTE_SPECIES_SNUFFLE "Нюхать"
+#define EMOTE_SPECIES_ROAR "Рычать"
+#define EMOTE_SPECIES_RUMBLE "Урчать"
+#define EMOTE_SPECIES_THREAT "Угрожать"
+#define EMOTE_SPECIES_PURR "Мурчать"
+#define EMOTE_SPECIES_PURRL "Мурчать дольше"
+#define EMOTE_SPECIES_WAVES_K "Взмахнуть усиками"
+#define EMOTE_SPECIES_WIGGLES "Шевелить усиками"
+#define EMOTE_SPECIES_WHIPS "Хлестать хвостом"
+#define EMOTE_SPECIES_WHIP "Ударить хвостом"
+#define EMOTE_SPECIES_BARK "Гавкнуть"
+#define EMOTE_SPECIES_WBARK "Дважды гавкнуть"
+#define EMOTE_SPECIES_MEOW "Мяукнуть"
+#define EMOTE_SPECIES_MROW "Мяукнуть раздражённо"
+/// NEW
+#define EMOTE_SPECIES_FPURR "Урчать"
+#define EMOTE_SPECIES_CHITTER "Жужать"
+#define EMOTE_SPECIES_SHAME "Стыдиться"
+#define EMOTE_SPECIES_COLLAPSE "Споткнуться"
+#define EMOTE_SPECIES_WARCRY "Боевой клич"
+#define EMOTE_SPECIES_GRIMACE "Кривляться"
+#define EMOTE_SPECIES_JUMP "Прыгать"
+#define EMOTE_SPECIES_AIRKISS "Воздушный поцелуй"
+#define EMOTE_SPECIES_MSQUEAK "Пискнуть"
+#define EMOTE_SPECIES_PEACE "Знак мира"
+#define EMOTE_SPECIES_POUT "Дуться"
+#define EMOTE_SPECIES_SCOWL "Хмуриться"
+#define EMOTE_SPECIES_SMUG "Самодовольство"
+#define EMOTE_SPECIES_SPIN "Кружиться"
+#define EMOTE_SPECIES_STRECH "Потягиваться"
+#define EMOTE_SPECIES_SULK "Сердиться"
+#define EMOTE_SPECIES_SURPRISED "Удивиться"
+#define EMOTE_SPECIES_SURRENDER "Сдаться"
+#define EMOTE_SPECIES_WSMILE "Слегка улыбнуться"
+#define EMOTE_SPECIES_CLACK_SPIDER "Щёлкнуть жвалами"
+
+
+/// Carbon Emotes
+#define EMOTE_CARBON_BLINK "Моргать"
+#define EMOTE_CARBON_BLINKR "Моргать быстро"
+#define EMOTE_CARBON_CROSS "Скрестить руки"
+#define EMOTE_CARBON_CHUCKLE "Усмехнуться"
+#define EMOTE_CARBON_COUGH "Кашлять"
+#define EMOTE_CARBON_MOAN "Стонать"
+#define EMOTE_CARBON_GIGGLE "Хихикать"
+#define EMOTE_CARBON_GURGLE "Побулькать"
+#define EMOTE_CARBON_INHALE "Вдохнуть"
+#define EMOTE_CARBON_INHALE_SHARP "Глубоко вдохнуть"
+#define EMOTE_CARBON_KISS "Поцеловать"
+#define EMOTE_CARBON_WAVE "Махать"
+#define EMOTE_CARBON_YAWN "Зевать"
+#define EMOTE_CARBON_EXHALE "Выдохнуть"
+#define EMOTE_CARBON_LAUGH "Смеяться"
+#define EMOTE_CARBON_LAUGH_EVIL "Смеяться злорадно"
+#define EMOTE_CARBON_SCOWL "Хмуриться"
+#define EMOTE_CARBON_TWIRL "Вертеть"
+#define EMOTE_CARBON_FAINT "Потерять сознание"
+#define EMOTE_CARBON_SIGN "Показать число"
+#define EMOTE_CARBON_CLAP "Хлопать"
+
+/// Silicon/IPC Emotes
+#define EMOTE_SILICON_SCREAM "Кричать"
+#define EMOTE_SILICON_PING "Звенеть"
+#define EMOTE_SILICON_BUZZ "Жужжать"
+#define EMOTE_SILICON_BUZZ2 "Жужжать раздражённо"
+#define EMOTE_SILICON_BEEP "Бипнуть"
+#define EMOTE_SILICON_BOOP "Бупнуть"
+#define EMOTE_SILICON_YES "Положительно"
+#define EMOTE_SILICON_NO "Отрицательно"
+#define EMOTE_SILICON_LAW "Удостоверяющий штрихкод"
+#define EMOTE_SILICON_HALT "Ни с места"
+
+/// Animal Emotes
+#define EMOTE_ANIMAL_CHIRP "Стрекотать"
+#define EMOTE_ANIMAL_OOGA "Уга буга"
+#define EMOTE_ANIMAL_BARK "Лаять"
+#define EMOTE_ANIMAL_YELP "Визжать"
+#define EMOTE_ANIMAL_GROWL "Рычать"
+#define EMOTE_ANIMAL_MEOW "Мяукать"
+#define EMOTE_ANIMAL_HISS "Шипеть"
+#define EMOTE_ANIMAL_PURR "Мурчать"
+#define EMOTE_ANIMAL_SIT "Сесть"
+#define EMOTE_ANIMAL_SQUEAK "Пищать"
+
+/// Emote Brain
+#define EMOTE_BRAIN_ALARM "Сигнал тревоги"
+#define EMOTE_BRAIN_ALERT "Страдальческий звук"
+#define EMOTE_BRAIN_NOTICE "Громкий звук"
+#define EMOTE_BRAIN_FLASH "Мигать лампочками"
+#define EMOTE_BRAIN_BEEP "Бипнуть"
+#define EMOTE_BRAIN_BOOP "Бупнуть"
+
+/// Alien Emotes
+#define EMOTE_ALIEN_HISS "Шипеть"
+#define EMOTE_ALIEN_ROAR "Рычать"
+#define EMOTE_ALIEN_GNARL "Скалиться"
diff --git a/code/__DEFINES/~mod_celadon/flags.dm b/code/__DEFINES/~mod_celadon/flags.dm
new file mode 100644
index 000000000000..22138422d53e
--- /dev/null
+++ b/code/__DEFINES/~mod_celadon/flags.dm
@@ -0,0 +1,18 @@
+//Species Body Flags
+#define HAS_HEAD_ACCESSORY (1<<0)
+#define HAS_TAIL (1<<1)
+#define TAIL_OVERLAPPED (1<<2)
+#define HAS_SKIN_TONE (1<<3)
+#define HAS_ICON_SKIN_TONE (1<<4)
+#define HAS_SKIN_COLOR (1<<5)
+#define HAS_HEAD_MARKINGS (1<<6)
+#define HAS_BODY_MARKINGS (1<<7)
+#define HAS_TAIL_MARKINGS (1<<8)
+#define TAIL_WAGGING (1<<9)
+#define NO_EYES (1<<10)
+#define HAS_ALT_HEADS (1<<11)
+#define HAS_WING (1<<12)
+#define HAS_BODYACC_COLOR (1<<13)
+#define BALD (1<<14)
+#define ALL_RPARTS (1<<15)
+#define SHAVED (1<<16)
diff --git a/code/__DEFINES/~mod_celadon/names.dm b/code/__DEFINES/~mod_celadon/names.dm
index 82812f839eea..6beb3556d714 100644
--- a/code/__DEFINES/~mod_celadon/names.dm
+++ b/code/__DEFINES/~mod_celadon/names.dm
@@ -1,20 +1,21 @@
// Перенесено с code\__HELPERS\names.dm | Инициализация префиксов кораблей для дальнейшего использования в конфигах.
#define FACTION_SYNDICATE "Syndicate"
+ #define FACTION_NGR "New Gorlex Republic"
+ #define FACTION_CYBERSUN "CyberSun"
+ #define FACTION_HARDLINERS "Hardliners"
+ #define FACTION_SUNS "Student-Union of Naturalistic Sciences"
#define FACTION_SOLGOV "SolFed"
#define FACTION_INTEQ "Inteq Risk Management Group"
#define FACTION_NT "Nanotrasen"
+ #define FACTION_NS_LOGI "N+S Logistics"
+ #define FACTION_VIGILITAS "Vigilitas Interstellar"
#define FACTION_INDEPENDENT "Independent"
#define FACTION_ELYSIUM "Elysium"
#define FACTION_EVENT "Event"
#define FACTION_PIRATES "Pirates"
-#define FACTION_NGR "New Gorlex Republic"
-#define FACTION_CYBERSUN "CyberSun"
-#define FACTION_SUNS "Student-Union of Naturalistic Sciences"
#define FACTION_SRM "Saint-Roumain Militia"
#define FACTION_CLIP "CLIP Minutemen"
-#define FACTION_NS_LOGI "N+S Logistics"
-#define FACTION_VIGILITAS "Vigilitas Interstellar"
#define FACTION_FRONTIER "Frontiersmen Fleet"
#define FACTION_PGF "Pan-Gezenan Federation"
@@ -29,21 +30,25 @@
#define FACTION_PLAYER_ROUMAIN "playerRoumain"
#define FACTION_PLAYER_GEZENA "playerGezena"
-#define PREFIX_SRM list("SRSV")
-#define PREFIX_SYNDICATE list("SEV", "SSV", "SMMV", "PCAC", "SSASV", "SSSV", "SOSSV", "TSSV", "SABSV", "BSSV", "ASSV", "MSSV", "LSSV", "DSSV")
-#define PREFIX_SOLGOV list("SFSV", "BSFSV", "ASFSV", "SSFSV", "MDSFSV", "LSFSV", "MSFSV", "SPSFSV")
-#define PREFIX_INTEQ list("IRMV", "IQMSSV", "BIQSV", "LIQSV", "SPIQSV")
+#define PREFIX_SRM list("SRSV",)
+#define PREFIX_SYNDICATE list("SEV", "SSV", "SMMV", "PCAC", "SSASV", "SSSV", "SOSSV", "TSSV", "SABSV", "BSSV", "ASSV", "MSSV", "LSSV", "DSSV",)
+ #define PREFIX_NGR list("NGRV",)
+ #define PREFIX_CYBERSUN list("CSSV",)
+ #define PREFIX_HARDLINERS list("ISV",)
+ #define PREFIX_SUNS list("SUNS",)
+#define PREFIX_SOLGOV list("SFSV", "BSFSV", "ASFSV", "SSFSV", "MDSFSV", "LSFSV", "MSFSV", "SPSFSV",)
+#define PREFIX_INTEQ list("IRMV", "IQMSSV", "BIQSV", "LIQSV", "SPIQSV",)
#define PREFIX_NT list("NTSV", "NTBSV", "NTASV", "NTSSV", "NTTSV", "NTMSV", "NTLSV", "NTDSV", "NTSPSV",)
-#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
+ #define PREFIX_NS_LOGI list("NSSV",)
+ #define PREFIX_VIGILITAS list("VISV",)
+#define PREFIX_FRONTIER list("FFV",)
+#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV",)
#define PREFIX_ELYSIUM list("EUSM", "EUSQ", "EUSF", "EUSR",)
-#define PREFIX_PIRATES list("PIRATE")
-#define PREFIX_EVENT list("CLO")
+#define PREFIX_PIRATES list("PIRATE",)
+#define PREFIX_EVENT list("CLO",)
-#define PREFIX_NGR list("NGRV")
-#define PREFIX_CYBERSUN list("CSSV")
-#define PREFIX_SUNS list("SUNS")
-#define PREFIX_CLIP list("CMSV", "CMGSV")
-#define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
+#define PREFIX_CLIP list("CMSV", "CMGSV",)
+#define PREFIX_PGF list("PGF", "PGFMC", "PGFN",)
GLOBAL_LIST_INIT(ship_faction_to_prefixes, list(
FACTION_SYNDICATE = PREFIX_SYNDICATE,
diff --git a/code/__DEFINES/~mod_celadon/turrets.dm b/code/__DEFINES/~mod_celadon/turrets.dm
new file mode 100644
index 000000000000..62c1576c7768
--- /dev/null
+++ b/code/__DEFINES/~mod_celadon/turrets.dm
@@ -0,0 +1 @@
+#define TURRET_FLAG_DEFAULT_CELADON TURRET_FLAG_SHOOT_FAUNA|TURRET_FLAG_SHOOT_NONFACTION
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index b231b4e944c9..776014c4dfb5 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -261,43 +261,99 @@
result = first ^ second
return result
-//Picks a random element from a list based on a weighting system:
-//1. Adds up the total of weights for each element
-//2. Gets a number between 1 and that total
-//3. For each element in the list, subtracts its weighting from that number
-//4. If that makes the number 0 or less, return that element.
-/proc/pickweight(list/L)
+/**
+ * Picks a random element from a list based on a weighting system:
+ * 1. Adds up the total of weights for each element
+ * 2. Gets a number between 1 and that total
+ * 3. For each element in the list, subtracts its weighting from that number
+ * 4. If that makes the number 0 or less, return that element.
+ * Will output null sometimes if you use decimals (e.g. 0.1 instead of 10) as rand() uses integers, not floats
+**/
+/proc/pick_weight(list/list_to_pick)
var/total = 0
var/item
- for (item in L)
- if (!L[item])
- L[item] = 1
- total += L[item]
+ for(item in list_to_pick)
+ if(!list_to_pick[item])
+ list_to_pick[item] = 1
+ total += list_to_pick[item]
total = rand(1, total)
- for (item in L)
- total -=L [item]
- if (total <= 0)
+ for(item in list_to_pick)
+ total -= list_to_pick[item]
+ if(total <= 0)
return item
return null
-/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
+/**
+ * Picks a random element from a list based on a weighting system.
+ * For example, given the following list:
+ * A = 6, B = 3, C = 1, D = 0
+ * A would have a 60% chance of being picked,
+ * B would have a 30% chance of being picked,
+ * C would have a 10% chance of being picked,
+ * and D would have a 0% chance of being picked.
+ * You should only pass integers in.
+ */
+/proc/pick_weight_allow_zero(list/list_to_pick) //The original pick_weight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be.
+ if(length(list_to_pick) == 0)
+ return null
+
var/total = 0
- var/item
- for (item in L)
- if (!L[item])
- L[item] = 0
- total += L[item]
+ for(var/item in list_to_pick)
+ if(!list_to_pick[item])
+ list_to_pick[item] = 0
+ total += list_to_pick[item]
- total = rand(0, total)
- for (item in L)
- total -=L [item]
- if (total <= 0 && L[item])
+ total = rand(1, total)
+ for(var/item in list_to_pick)
+ var/item_weight = list_to_pick[item]
+ if(item_weight == 0)
+ continue
+
+ total -= item_weight
+ if(total <= 0)
return item
return null
+/**
+ * Like pick_weight, but allowing for nested lists.
+ *
+ * For example, given the following list:
+ * list(A = 1, list(B = 1, C = 1))
+ * A would have a 50% chance of being picked,
+ * and list(B, C) would have a 50% chance of being picked.
+ * If list(B, C) was picked, B and C would then each have a 50% chance of being picked.
+ * So the final probabilities would be 50% for A, 25% for B, and 25% for C.
+ *
+ * Weights should be integers. Entries without weights are assigned weight 1 (so unweighted lists can be used as well)
+ */
+/proc/pick_weight_recursive(list/list_to_pick)
+ var/result = pick_weight(fill_with_ones(list_to_pick))
+ while(islist(result))
+ result = pick_weight(fill_with_ones(result))
+ return result
+
+/**
+ * Given a list, return a copy where values without defined weights are given weight 1.
+ * For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1)
+ * Useful for weighted random choices (loot tables, syllables in languages, etc.)
+ */
+/proc/fill_with_ones(list/list_to_pad)
+ if (!islist(list_to_pad))
+ return list_to_pad
+
+ var/list/final_list = list()
+
+ for (var/key in list_to_pad)
+ if (list_to_pad[key])
+ final_list[key] = list_to_pad[key]
+ else
+ final_list[key] = 1
+
+ return final_list
+
/// Takes a weighted list (see above) and expands it into raw entries
/// This eats more memory, but saves time when actually picking from it
/proc/expand_weights(list/list_to_pick)
diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm
index 1ab889987695..16de5230a2bb 100644
--- a/code/__HELPERS/_logging.dm
+++ b/code/__HELPERS/_logging.dm
@@ -10,14 +10,22 @@
#define WRITE_LOG(log, text) rustg_log_write(log, text, "true")
#define WRITE_LOG_NO_FORMAT(log, text) rustg_log_write(log, text, "false")
-//print a warning message to world.log
+#ifdef UNIT_TESTS
+#define WARNING(MSG) log_world("::warning file=[__FILE__],line=[__LINE__]::[MSG] src: [UNLINT(src)] usr: [usr].")
+#else
#define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [UNLINT(src)] usr: [usr].")
+#endif
+/// Print a warning message to world.log
/proc/warning(msg)
msg = "## WARNING: [msg]"
log_world(msg)
-//not an error or a warning, but worth to mention on the world log, just in case.
+#ifdef UNIT_TESTS
+#define NOTICE(MSG) log_world("::notice file=[__FILE__],line=[__LINE__]::[MSG] src: [UNLINT(src)] usr: [usr].")
+#else
#define NOTICE(MSG) notice(MSG)
+#endif
+///not an error or a warning, but worth to mention on the world log, just in case.
/proc/notice(msg)
msg = "## NOTICE: [msg]"
log_world(msg)
diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm
index cdbee26f9ba7..5dab48761ecc 100644
--- a/code/__HELPERS/_string_lists.dm
+++ b/code/__HELPERS/_string_lists.dm
@@ -1,5 +1,5 @@
#define pick_list(FILE, KEY) (pick(strings(FILE, KEY)))
-#define pick_list_weighted(FILE, KEY) (pickweight(strings(FILE, KEY)))
+#define pick_list_weighted(FILE, KEY) (pick_weight(strings(FILE, KEY)))
#define pick_list_replacements(FILE, KEY) (strings_replacement(FILE, KEY))
#define json_load(FILE) (json_decode(file2text(FILE)))
diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm
index 70349078bd92..5479f2bcbe54 100644
--- a/code/__HELPERS/areas.dm
+++ b/code/__HELPERS/areas.dm
@@ -42,7 +42,6 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(/area/ship/engin
// Passed into the above proc as list/break_if_found
var/static/area_or_turf_fail_types = typecacheof(list(
/turf/open/space,
- /area/shuttle,
))
// Ignore these areas and dont let people expand them. They can expand into them though
var/static/blacklisted_areas = typecacheof(list(
diff --git a/code/__HELPERS/bindings.dm b/code/__HELPERS/bindings.dm
index c2c19136854e..ee88cb703800 100644
--- a/code/__HELPERS/bindings.dm
+++ b/code/__HELPERS/bindings.dm
@@ -11,174 +11,235 @@
#define AUXMOS (__auxmos || __detect_auxmos())
+/proc/byondapi_stack_trace(msg)
+ CRASH(msg)
+
+/// Returns: true. Parses gas strings like "o2=2500;plasma=5000;TEMP=370" and turns src mixes into the parsed gas mixture, invalid patterns will be ignored
/datum/gas_mixture/proc/__auxtools_parse_gas_string(string)
return call_ext(AUXMOS, "byond:parse_gas_string_ffi")(src, string)
+/// Returns: the total amount of gas mixtures in the arena, including "free" ones.
/datum/controller/subsystem/air/proc/get_max_gas_mixes()
return call_ext(AUXMOS, "byond:hook_max_gas_mixes_ffi")()
+/// Returns: the amount of gas mixtures that are attached to a byond gas mixture.
/datum/controller/subsystem/air/proc/get_amt_gas_mixes()
return call_ext(AUXMOS, "byond:hook_amt_gas_mixes_ffi")()
+/// Args: (list). Takes every gas in the list and makes them all identical, scaled to their respective volumes. The total heat and amount of substance in all of the combined gases is conserved.
/proc/equalize_all_gases_in_list(gas_list)
return call_ext(AUXMOS, "byond:equalize_all_hook_ffi")(gas_list)
+/// Args: (temperature). Returns: how much oxidizer for fire is in the mixture at the given temperature. If temperature is omitted, just uses current temperature instead.
/datum/gas_mixture/proc/get_oxidation_power(temp)
return call_ext(AUXMOS, "byond:oxidation_power_hook_ffi")(src, temp)
+/// Args: (temperature). Returns: how much fuel for fire is in the mixture at the given temperature. If temperature is omitted, just uses current temperature instead.
/datum/gas_mixture/proc/get_fuel_amount(temp)
return call_ext(AUXMOS, "byond:fuel_amount_hook_ffi")(src, temp)
+/// Args: (mixture). Makes `src` a copy of `mixture`, with volumes taken into account.
/datum/gas_mixture/proc/equalize_with(total)
return call_ext(AUXMOS, "byond:equalize_with_hook_ffi")(src, total)
+/// Args: (mixture, ratio). Transfers `ratio` of `src` to `mixture`.
/datum/gas_mixture/proc/transfer_ratio_to(other, ratio)
return call_ext(AUXMOS, "byond:transfer_ratio_hook_ffi")(src, other, ratio)
+/// Args: (mixture, amount). Takes the `amount` given and transfers it from `src` to `mixture`.
/datum/gas_mixture/proc/transfer_to(other, moles)
return call_ext(AUXMOS, "byond:transfer_hook_ffi")(src, other, moles)
+/// Args: (heat). Adds a given amount of heat to the mixture, i.e. in joules taking into account capacity.
/datum/gas_mixture/proc/adjust_heat(temp)
return call_ext(AUXMOS, "byond:adjust_heat_hook_ffi")(src, temp)
+/// Args: (holder). Runs all reactions on this gas mixture. Holder is used by the reactions, and can be any arbitrary datum or null.
/datum/gas_mixture/proc/react(holder)
return call_ext(AUXMOS, "byond:react_hook_ffi")(src, holder)
+/// Returns: true if the two mixtures are different enough for processing, false otherwise.
/datum/gas_mixture/proc/compare(other)
return call_ext(AUXMOS, "byond:compare_hook_ffi")(src, other)
+/// Clears the gas mixture my removing all of its gases.
/datum/gas_mixture/proc/clear()
return call_ext(AUXMOS, "byond:clear_hook_ffi")(src)
+/// Marks the mix as immutable, meaning it will never change. This cannot be undone.
/datum/gas_mixture/proc/mark_immutable()
return call_ext(AUXMOS, "byond:mark_immutable_hook_ffi")(src)
+/// Args: (mixture, ratio, gas_list). Takes gases given by `gas_list` and moves `ratio` amount of those gases from `src` into `mixture`.
/datum/gas_mixture/proc/scrub_into(into, ratio_v, gas_list)
return call_ext(AUXMOS, "byond:scrub_into_hook_ffi")(src, into, ratio_v, gas_list)
+/// Args: (flag). As get_gases(), but only returns gases with the given flag.
/datum/gas_mixture/proc/get_by_flag(flag_val)
return call_ext(AUXMOS, "byond:get_by_flag_hook_ffi")(src, flag_val)
+/// Args: (mixture, flag, amount). Takes `amount` from src that have the given `flag` and puts them into the given `mixture`. Returns: 0 if gas didn't have any with that flag, 1 if it did.
/datum/gas_mixture/proc/__remove_by_flag(into, flag_val, amount_val)
return call_ext(AUXMOS, "byond:remove_by_flag_hook_ffi")(src, into, flag_val, amount_val)
+/// Args: (coefficient). Divides all gases by this amount.
/datum/gas_mixture/proc/divide(num_val)
return call_ext(AUXMOS, "byond:divide_hook_ffi")(src, num_val)
+/// Args: (coefficient). Multiplies all gases by this amount.
/datum/gas_mixture/proc/multiply(num_val)
return call_ext(AUXMOS, "byond:multiply_hook_ffi")(src, num_val)
+/// Args: (amount). Subtracts the given amount from each gas.
/datum/gas_mixture/proc/subtract(num_val)
return call_ext(AUXMOS, "byond:subtract_hook_ffi")(src, num_val)
+/// Args: (amount). Adds the given amount to each gas.
/datum/gas_mixture/proc/add(num_val)
return call_ext(AUXMOS, "byond:add_hook_ffi")(src, num_val)
+/// Args: (gas_id_1, amount_1, gas_id_2, amount_2, ...). As adjust_moles, but with variadic arguments.
/datum/gas_mixture/proc/adjust_multi(...)
var/list/args_copy = args.Copy()
args_copy.Insert(1, src)
return call_ext(AUXMOS, "byond:adjust_multi_hook_ffi")(arglist(args_copy))
+/// Args: (gas_id, moles, temp). Adjusts the given gas's amount by the given amount, with that gas being treated as if it is at the given temperature.
/datum/gas_mixture/proc/adjust_moles_temp(id_val, num_val, temp_val)
return call_ext(AUXMOS, "byond:adjust_moles_temp_hook_ffi")(src, id_val, num_val, temp_val)
+/// Args: (gas_id, moles). Adjusts the given gas's amount by the given amount, e.g. (GAS_O2, -0.1) will remove 0.1 moles of oxygen from the mixture.
/datum/gas_mixture/proc/adjust_moles(id_val, num_val)
return call_ext(AUXMOS, "byond:adjust_moles_hook_ffi")(src, id_val, num_val)
+/// Args: (gas_id, moles). Sets the amount of substance of the given gas, in moles.
/datum/gas_mixture/proc/set_moles(gas_id, amt_val)
return call_ext(AUXMOS, "byond:set_moles_hook_ffi")(src, gas_id, amt_val)
+/// Args: (gas_id). Returns: the amount of substance of the given gas, in moles.
/datum/gas_mixture/proc/get_moles(gas_id)
return call_ext(AUXMOS, "byond:get_moles_hook_ffi")(src, gas_id)
+/// Args: (volume). Sets the volume of the gas.
/datum/gas_mixture/proc/set_volume(vol_arg)
return call_ext(AUXMOS, "byond:set_volume_hook_ffi")(src, vol_arg)
+/// Args: (gas_id). Returns the heat capacity from the given gas, in J/K (probably).
/datum/gas_mixture/proc/partial_heat_capacity(gas_id)
return call_ext(AUXMOS, "byond:partial_heat_capacity_ffi")(src, gas_id)
+/// Args: (temperature). Sets the temperature of the mixture. Will be set to 2.7 if it's too low.
/datum/gas_mixture/proc/set_temperature(arg_temp)
return call_ext(AUXMOS, "byond:set_temperature_hook_ffi")(src, arg_temp)
+/// Returns: a list of the gases in the mixture, associated with their IDs.
/datum/gas_mixture/proc/get_gases()
return call_ext(AUXMOS, "byond:get_gases_hook_ffi")(src)
+/// Args: (src, mixture, conductivity) or (src, conductivity, temperature, heat_capacity). Adjusts temperature of src based on parameters. Returns: temperature of sharer after sharing is complete.
/datum/gas_mixture/proc/temperature_share(...)
var/list/args_copy = args.Copy()
args_copy.Insert(1, src)
return call_ext(AUXMOS, "byond:temperature_share_hook_ffi")(arglist(args_copy))
+/// Arg: (mixture). Makes src into a copy of the argument mixture.
/datum/gas_mixture/proc/copy_from(giver)
return call_ext(AUXMOS, "byond:copy_from_hook_ffi")(src, giver)
+/// Args: (mixture, amount). Takes the given amount of gas from src and puts it into the argument mixture. Amount is amount of substance in moles.
/datum/gas_mixture/proc/__remove(into, amount_arg)
return call_ext(AUXMOS, "byond:remove_hook_ffi")(src, into, amount_arg)
+/// Args: (mixture, ratio). Takes the given ratio of gas from src and puts it into the argument mixture. Ratio is a number between 0 and 1.
/datum/gas_mixture/proc/__remove_ratio(into, ratio_arg)
return call_ext(AUXMOS, "byond:remove_ratio_hook_ffi")(src, into, ratio_arg)
+/// Args: (mixture). Merges the gas from the giver into src, without modifying the giver mix.
/datum/gas_mixture/proc/merge(giver)
return call_ext(AUXMOS, "byond:merge_hook_ffi")(src, giver)
+/// Returns: the mix's thermal energy, the product of the mixture's heat capacity and its temperature.
/datum/gas_mixture/proc/thermal_energy()
return call_ext(AUXMOS, "byond:thermal_energy_hook_ffi")(src)
+/// Returns: the mix's volume, in liters.
/datum/gas_mixture/proc/return_volume()
return call_ext(AUXMOS, "byond:return_volume_hook_ffi")(src)
+/// Returns: the mix's temperature, in kelvins.
/datum/gas_mixture/proc/return_temperature()
return call_ext(AUXMOS, "byond:return_temperature_hook_ffi")(src)
+/// Returns: the mix's pressure, in kilopascals.
/datum/gas_mixture/proc/return_pressure()
return call_ext(AUXMOS, "byond:return_pressure_hook_ffi")(src)
+/// Returns: Amount of substance, in moles.
/datum/gas_mixture/proc/total_moles()
return call_ext(AUXMOS, "byond:total_moles_hook_ffi")(src)
+/// Args: (min_heat_cap). Sets the mix's minimum heat capacity.
/datum/gas_mixture/proc/set_min_heat_capacity(arg_min)
return call_ext(AUXMOS, "byond:min_heat_cap_hook_ffi")(src, arg_min)
+/// Returns: Heat capacity, in J/K (probably).
/datum/gas_mixture/proc/heat_capacity()
return call_ext(AUXMOS, "byond:heat_cap_hook_ffi")(src)
+/// Adds the gas mixture's ID to the queue of mixtures that have been deleted, to be reused later.
+/// This version is only if auxcleanup is not being used; it should be called from /datum/gas_mixture/Del.
/datum/gas_mixture/proc/__gasmixture_unregister()
return call_ext(AUXMOS, "byond:unregister_gasmixture_hook_ffi")(src)
+/// Fills in the first unused slot in the gas mixtures vector, or adds another one, then sets the argument ByondValue to point to it.
/datum/gas_mixture/proc/__gasmixture_register()
return call_ext(AUXMOS, "byond:register_gasmixture_hook_ffi")(src)
+/// Args: (ms). Runs callbacks until time limit is reached. If time limit is omitted, runs all callbacks.
/proc/process_atmos_callbacks(remaining)
return call_ext(AUXMOS, "byond:atmos_callback_handle_ffi")(remaining)
+/// Updates adjacency infos for turfs, only use this in immediateupdateturfs.
/turf/proc/__update_auxtools_turf_adjacency_info()
return call_ext(AUXMOS, "byond:hook_infos_ffi")(src)
+/// Returns: null. Updates turf air infos, whether the turf is closed, is space or a regular turf, or even a planet turf is decided here.
/turf/proc/update_air_ref(flag)
return call_ext(AUXMOS, "byond:hook_register_turf_ffi")(src, flag)
+/// Returns: If this cycle is interrupted by overtiming or not. Starts a katmos equalize cycle, does nothing if process_turfs isn't ran.
/datum/controller/subsystem/air/proc/process_turf_equalize_auxtools(remaining)
return call_ext(AUXMOS, "byond:equalize_hook_ffi")(src, remaining)
-/datum/controller/subsystem/air/proc/process_excited_groups_auxtools(remaining)
- return call_ext(AUXMOS, "byond:groups_hook_ffi")(src, remaining)
-
+/// Returns: If this cycle is interrupted by overtiming or not. Starts a processing turfs cycle.
/datum/controller/subsystem/air/proc/process_turfs_auxtools(remaining)
return call_ext(AUXMOS, "byond:process_turf_hook_ffi")(src, remaining)
+/// Returns: If this cycle is interrupted by overtiming or not. Calls all outstanding callbacks created by other processes, usually ones that can't run on other threads and only the main thread.
/datum/controller/subsystem/air/proc/finish_turf_processing_auxtools(time_remaining)
return call_ext(AUXMOS, "byond:finish_process_turfs_ffi")(time_remaining)
+/// Returns: If a processing thread is running or not.
/datum/controller/subsystem/air/proc/thread_running()
return call_ext(AUXMOS, "byond:thread_running_hook_ffi")()
+/// Returns: If this cycle is interrupted by overtiming or not. Starts a processing excited groups cycle, does nothing if process_turfs isn't ran.
+/datum/controller/subsystem/air/proc/process_excited_groups_auxtools(remaining)
+ return call_ext(AUXMOS, "byond:groups_hook_ffi")(src, remaining)
+
+/// For updating reagent gas fire products, do not use for now.
/proc/finalize_gas_refs()
return call_ext(AUXMOS, "byond:finalize_gas_refs_ffi")()
+/// For updating reaction informations for auxmos, only call this when it is changed.
/datum/controller/subsystem/air/proc/auxtools_update_reactions()
return call_ext(AUXMOS, "byond:update_reactions_ffi")()
+/// Registers gases, and get reaction infos for auxmos, only call when ssair is initing.
/proc/auxtools_atmos_init(gas_data)
return call_ext(AUXMOS, "byond:hook_init_ffi")(gas_data)
+/// For registering gases, do not touch this.
/proc/_auxtools_register_gas(gas)
return call_ext(AUXMOS, "byond:hook_register_gas_ffi")(gas)
+
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 34cacd872d42..7bb70222072f 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -6,7 +6,6 @@ block( \
)
#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL))
-#define CULT_POLL_WAIT 2400
/proc/get_area_name(atom/X, format_text = FALSE)
var/area/A = isarea(X) ? X : get_area(X)
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 38e540e996b9..3e676f289458 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -1028,13 +1028,6 @@ GLOBAL_LIST_EMPTY(friendly_animal_types)
// Pick a random animal instead of the icon, and use that instead
/proc/getRandomAnimalImage(atom/A)
- if(!GLOB.friendly_animal_types.len)
- for(var/T in typesof(/mob/living/simple_animal))
- var/mob/living/simple_animal/SA = T
- if(initial(SA.gold_core_spawnable) == FRIENDLY_SPAWN)
- GLOB.friendly_animal_types += SA
-
-
var/mob/living/simple_animal/SA = pick(GLOB.friendly_animal_types)
var/icon = initial(SA.icon)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index b56149947e3d..775a39a536f5 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -581,28 +581,6 @@ GLOBAL_LIST_EMPTY(species_list)
else
to_chat(M, message)
-//Used in chemical_mob_spawn. Generates a random mob based on a given gold_core_spawnable value.
-/proc/create_random_mob(spawn_location, mob_class = HOSTILE_SPAWN)
- var/static/list/mob_spawn_meancritters = list() // list of possible hostile mobs
- var/static/list/mob_spawn_nicecritters = list() // and possible friendly mobs
-
- if(mob_spawn_meancritters.len <= 0 || mob_spawn_nicecritters.len <= 0)
- for(var/T in typesof(/mob/living/simple_animal))
- var/mob/living/simple_animal/SA = T
- switch(initial(SA.gold_core_spawnable))
- if(HOSTILE_SPAWN)
- mob_spawn_meancritters += T
- if(FRIENDLY_SPAWN)
- mob_spawn_nicecritters += T
-
- var/chosen
- if(mob_class == FRIENDLY_SPAWN)
- chosen = pick(mob_spawn_nicecritters)
- else
- chosen = pick(mob_spawn_meancritters)
- var/mob/living/simple_animal/C = new chosen(spawn_location)
- return C
-
/proc/passtable_on(target, source)
var/mob/living/L = target
if (!HAS_TRAIT(L, TRAIT_PASSTABLE) && L.pass_flags & PASSTABLE)
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index 452a522870a0..3770b4e847ad 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -94,8 +94,8 @@
return "northwest"
if(SOUTHWEST)
return "southwest"
- else
- return
+
+ return NONE
//Turns text into proper directions
/proc/text2dir(direction)
@@ -116,8 +116,8 @@
return SOUTHEAST
if("SOUTHWEST")
return SOUTHWEST
- else
- return
+
+ return NONE
//Converts an angle (degrees) into an ss13 direction
GLOBAL_LIST_INIT(modulo_angle_to_dir, list(NORTH,NORTHEAST,EAST,SOUTHEAST,SOUTH,SOUTHWEST,WEST,NORTHWEST))
diff --git a/code/_compile_options.dm b/code/_compile_options.dm
index 9d69460f72a5..c79c33a1a681 100644
--- a/code/_compile_options.dm
+++ b/code/_compile_options.dm
@@ -63,7 +63,7 @@
#warn compiling in TESTING mode. testing() debug messages will be visible.
#endif
-#ifdef CIBUILDING
+#if defined(CIBUILDING) && !defined(OPENDREAM)
#define UNIT_TESTS
#endif
@@ -90,3 +90,16 @@
// A reasonable number of maximum overlays an object needs
// If you think you need more, rethink it
#define MAX_ATOM_OVERLAYS 100
+
+#if defined(OPENDREAM)
+ #if !defined(CIBUILDING)
+ #warn You are building with OpenDream. Remember to build TGUI manually.
+ #warn You can do this by running tgui-build.cmd from the bin directory.
+ #endif
+#else
+ #if !defined(CBT) && !defined(SPACEMAN_DMM)
+ #warn Building with Dream Maker is no longer supported and will result in errors.
+ #warn In order to build, run BUILD.cmd in the root directory.
+ #warn Consider switching to VSCode editor instead, where you can press Ctrl+Shift+B to build.
+ #endif
+#endif
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index b5ec891a5ff1..de7349f791b0 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -56,7 +56,6 @@ DEFINE_BITFIELD(area_flags, list(
"NOTELEPORT" = NOTELEPORT,
"HIDDEN_AREA" = HIDDEN_AREA,
"UNIQUE_AREA" = UNIQUE_AREA,
- "XENOBIOLOGY_COMPATIBLE" = XENOBIOLOGY_COMPATIBLE,
))
DEFINE_BITFIELD(car_traits, list(
@@ -300,3 +299,13 @@ DEFINE_BITFIELD(bodytype, list(
"BODYTYPE_KEPORI" = BODYTYPE_KEPORI,
"BODYTYPE_VOX" = BODYTYPE_VOX
))
+
+DEFINE_BITFIELD(turret_flags, list(
+ "TURRET_FLAG_SHOOT_DANGEROUS_ONLY" = TURRET_FLAG_SHOOT_DANGEROUS_ONLY,
+ "TURRET_FLAG_SHOOT_RETALIATE" = TURRET_FLAG_SHOOT_RETALIATE,
+ "TURRET_FLAG_SHOOT_FAUNA" = TURRET_FLAG_SHOOT_FAUNA,
+ "TURRET_FLAG_SHOOT_HUMANS" = TURRET_FLAG_SHOOT_HUMANS,
+ "TURRET_FLAG_SHOOT_SILICONS" = TURRET_FLAG_SHOOT_SILICONS,
+ "TURRET_FLAG_SHOOT_NONFACTION" = TURRET_FLAG_SHOOT_NONFACTION,
+ "TURRET_FLAG_SHOOT_SPECIFIC_FACTION" = TURRET_FLAG_SHOOT_SPECIFIC_FACTION,
+))
diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm
index 30280560c33c..a30e316f5326 100644
--- a/code/_globalvars/game_modes.dm
+++ b/code/_globalvars/game_modes.dm
@@ -6,8 +6,5 @@ GLOBAL_VAR(survivor_report) //Contains shared survivor report for roundend repor
GLOBAL_VAR_INIT(wavesecret, 0) // meteor mode, delays wave progression, terrible name
-//TODO clear this one up too
-GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult)
-
GLOBAL_DATUM(sac_mind, /datum/mind) // So Cryo can modify sac stuff
GLOBAL_VAR_INIT(sac_image, null)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 1a5cecef67a9..7d3043c40d8c 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -248,9 +248,8 @@ GLOBAL_LIST_INIT(scarySounds, list('sound/weapons/thudswoosh.ogg','sound/weapons
25 Toxins
26 Dormitories
27 Virology
-28 Xenobiology
-29 Law Office
-30 Detective's Office
+28 Law Office
+29 Detective's Office
*/
//The whole system for the sorttype var is determined based on the order of this list,
@@ -266,7 +265,7 @@ GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals",
"Robotics", "Head of Personnel's Office", "Library", "Chapel", "Theatre",
"Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics",
"Experimentor Lab", "Toxins", "Dormitories", "Virology",
- "Xenobiology", "Law Office","Detective's Office"))
+ , "Law Office","Detective's Office"))
GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt"))
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index 9c9f0b85e48d..505734d6cd5d 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -92,7 +92,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items
/obj/item/clothing/suit/toggle/labcoat = 1,
/obj/item/clothing/under/color/grey = 1,
/obj/item/clothing/gloves/color/fyellow = 1,
- /obj/effect/spawner/lootdrop/gloves = 1,
+ /obj/effect/spawner/random/clothing/gloves = 1,
/obj/item/storage/wallet/random = 1,
/obj/item/clothing/glasses/science = 1,
/obj/item/clothing/glasses/meson = 1,
@@ -148,7 +148,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items
//light sources
/obj/item/flashlight = 1,
- /obj/effect/spawner/lootdrop/glowstick = 1,
+ /obj/effect/spawner/random/decoration/glowstick = 1,
/obj/item/clothing/head/hardhat/red = 1,
/obj/item/flashlight/flare = 1,
) = 1,
@@ -233,7 +233,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/storage/box/donkpockets/donkpockethonk = 1,
) = 1,
/obj/item/reagent_containers/food/snacks/monkeycube = 1,
- /obj/effect/spawner/lootdrop/ration = 1,
+ /obj/effect/spawner/random/food_or_drink/ration = 1,
) = 8,
list(//fakeout items, keep this list at low relative weight
@@ -243,7 +243,6 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
))
GLOBAL_LIST_INIT(oddity_loot, list(//oddity: strange or crazy items
- /obj/effect/rune/teleport = 1,
/obj/item/clothing/gloves/color/yellow = 1,
/obj/item/clothing/head/helmet/abductor = 1,
/obj/item/clothing/head/helmet/justice =1,
diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm
index e25b0b6e9a87..7fbc92bb8af5 100644
--- a/code/_globalvars/lists/poll_ignore.dm
+++ b/code/_globalvars/lists/poll_ignore.dm
@@ -11,7 +11,6 @@
#define POLL_IGNORE_CONSTRUCT "construct"
#define POLL_IGNORE_SPIDER "spider"
#define POLL_IGNORE_ASHWALKER "ashwalker"
-#define POLL_IGNORE_SWARMER "swarmer"
#define POLL_IGNORE_DRONE "drone"
#define POLL_IGNORE_FUGITIVE "fugitive"
#define POLL_IGNORE_DEFECTIVECLONE "defective_clone" //WS Edit - Cloning
@@ -35,7 +34,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_CONSTRUCT = "Construct",
POLL_IGNORE_SPIDER = "Spiders",
POLL_IGNORE_ASHWALKER = "Ashwalker eggs",
- POLL_IGNORE_SWARMER = "Swarmer shells",
POLL_IGNORE_DRONE = "Drone shells",
POLL_IGNORE_FUGITIVE = "Fugitive Hunter",
POLL_IGNORE_DEFECTIVECLONE = "Defective clone", //WS Edit - Cloning
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index a6f81d8ca4f1..3d3777521f26 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -29,6 +29,8 @@
adj += S.nextmove_adjust()
next_move = world.time + ((num + adj)*mod)
+ SEND_SIGNAL(src, COMSIG_LIVING_CHANGENEXT_MOVE, next_move)
+
/**
* Before anything else, defer these calls to a per-mobtype handler. This allows us to
* remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 8e9fde4d1859..dc6dfd37cea7 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -37,7 +37,6 @@
//Middle left indicators
#define ui_lingchemdisplay "WEST,CENTER-1:15"
#define ui_lingstingdisplay "WEST:6,CENTER-3:11"
-#define ui_devilsouldisplay "WEST:6,CENTER-1:15"
//Lower center, persistent menu
#define ui_sstore1 "CENTER-5:10,SOUTH:5"
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 6800db70a8fa..c879322367ed 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -175,18 +175,18 @@ Override makes it so the alert is not replaced until cleared by a clear_alert wi
icon_state = "starving"
/atom/movable/screen/alert/gross
- name = "Grossed out."
- desc = "That was kind of gross..."
+ name = "Queasy."
+ desc = "You're starting to feel queasy.."
icon_state = "gross"
/atom/movable/screen/alert/verygross
- name = "Very grossed out."
- desc = "You're not feeling very well..."
+ name = "Nauseated."
+ desc = "You're feeling discomforted as unease creeps into your throat..."
icon_state = "gross2"
/atom/movable/screen/alert/disgusted
- name = "DISGUSTED"
- desc = "ABSOLUTELY DISGUSTIN'"
+ name = "Very Nauseated"
+ desc = "You can barely think against the grains of discomfort ravaging your body!"
icon_state = "gross3"
/atom/movable/screen/alert/hot
@@ -211,7 +211,7 @@ Override makes it so the alert is not replaced until cleared by a clear_alert wi
/atom/movable/screen/alert/sweat
name = "Sweating"
- desc = "You're sweating and the heat is starting to hurt. Get somewhere cooler and take off any insulating clothing like a fire suit."
+ desc = "You're sweating and the heat is starting to hurt. Stay hydrated, get somewhere cooler, and take off any insulating clothing like a fire suit."
icon_state = "sweat"
/atom/movable/screen/alert/shiver
@@ -420,9 +420,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
return
if (length(last_whisper))
- living_owner.dying_breath("[last_whisper]")
living_owner.say("#[last_whisper]")
- living_owner.succumb(whispered = length(last_whisper) > 0)
+ //Say handles everything else for us
+ return
+
+ living_owner.succumb(FALSE)
//ALIENS
@@ -445,158 +447,28 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
icon_state = "alien_noqueen"
alerttooltipstyle = "alien"
-// BLOODCULT
-
-/atom/movable/screen/alert/bloodsense
- name = "Blood Sense"
- desc = "Allows you to sense blood that is manipulated by dark magicks."
- icon_state = "cult_sense"
- alerttooltipstyle = "cult"
- var/static/image/narnar
- var/angle = 0
- var/mob/living/simple_animal/hostile/construct/Cviewer = null
-
-/atom/movable/screen/alert/bloodsense/Initialize()
- . = ..()
- narnar = new('icons/hud/screen_alert.dmi', "mini_nar")
- START_PROCESSING(SSprocessing, src)
-
-/atom/movable/screen/alert/bloodsense/Destroy()
- Cviewer = null
- STOP_PROCESSING(SSprocessing, src)
- return ..()
-
-/atom/movable/screen/alert/bloodsense/process()
- var/atom/blood_target
-
- if(!owner.mind)
- return
-
- var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(!antag)
- return
- var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives
-
- if(antag.cult_team.blood_target)
- if(!get_turf(antag.cult_team.blood_target))
- antag.cult_team.blood_target = null
- else
- blood_target = antag.cult_team.blood_target
- if(Cviewer && Cviewer.seeking && Cviewer.master)
- blood_target = Cviewer.master
- desc = "Your blood sense is leading you to [Cviewer.master]"
- if(!blood_target)
- if(sac_objective && !sac_objective.check_completion())
- if(icon_state == "runed_sense0")
- return
- animate(src, transform = null, time = 1, loop = 0)
- angle = 0
- cut_overlays()
- icon_state = "runed_sense0"
- desc = "Nar'Sie demands that [sac_objective.target] be sacrificed before the summoning ritual can begin."
- add_overlay(sac_objective.sac_image)
- else
- var/datum/objective/eldergod/summon_objective = locate() in antag.cult_team.objectives
- if(!summon_objective)
- return
- desc = "The sacrifice is complete, summon Nar'Sie! The summoning can only take place in [english_list(summon_objective.summon_spots)]!"
- if(icon_state == "runed_sense1")
- return
- animate(src, transform = null, time = 1, loop = 0)
- angle = 0
- cut_overlays()
- icon_state = "runed_sense1"
- add_overlay(narnar)
- return
- var/turf/P = get_turf(blood_target)
- var/turf/Q = get_turf(owner)
- if(!P || !Q || (P.virtual_z()!= Q.virtual_z())) //The target is on a different Z level, we cannot sense that far.
- icon_state = "runed_sense2"
- desc = "You can no longer sense your target's presence."
- return
- if(isliving(blood_target))
- var/mob/living/real_target = blood_target
- desc = "You are currently tracking [real_target.real_name] in [get_area_name(blood_target)]."
- else
- desc = "You are currently tracking [blood_target] in [get_area_name(blood_target)]."
- var/target_angle = Get_Angle(Q, P)
- var/target_dist = get_dist(P, Q)
- cut_overlays()
- switch(target_dist)
- if(0 to 1)
- icon_state = "runed_sense2"
- if(2 to 8)
- icon_state = "arrow8"
- if(9 to 15)
- icon_state = "arrow7"
- if(16 to 22)
- icon_state = "arrow6"
- if(23 to 29)
- icon_state = "arrow5"
- if(30 to 36)
- icon_state = "arrow4"
- if(37 to 43)
- icon_state = "arrow3"
- if(44 to 50)
- icon_state = "arrow2"
- if(51 to 57)
- icon_state = "arrow1"
- if(58 to 64)
- icon_state = "arrow0"
- if(65 to 400)
- icon_state = "arrow"
- var/difference = target_angle - angle
- angle = target_angle
- if(!difference)
- return
- var/matrix/final = matrix(transform)
- final.Turn(difference)
- animate(src, transform = final, time = 5, loop = 0)
-
-
-//GUARDIANS
-
-/atom/movable/screen/alert/cancharge
- name = "Charge Ready"
- desc = "You are ready to charge at a location!"
- icon_state = "guardian_charge"
- alerttooltipstyle = "parasite"
-
-/atom/movable/screen/alert/canstealth
- name = "Stealth Ready"
- desc = "You are ready to enter stealth!"
- icon_state = "guardian_canstealth"
- alerttooltipstyle = "parasite"
-
-/atom/movable/screen/alert/instealth
- name = "In Stealth"
- desc = "You are in stealth and your next attack will do bonus damage!"
- icon_state = "guardian_instealth"
- alerttooltipstyle = "parasite"
-
//SILICONS
/atom/movable/screen/alert/nocell
name = "Missing Power Cell"
- desc = "Unit has no power cell. No modules available until a power cell is reinstalled. Robotics may provide assistance."
+ desc = "Unit has no power cell. No modules are available until a power cell is reinstalled."
icon_state = "nocell"
/atom/movable/screen/alert/emptycell
name = "Out of Power"
- desc = "Unit's power cell has no charge remaining. No modules available until power cell is recharged. \
-Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
+ desc = "Unit's power cell has no charge remaining. No modules are available until power cell is recharged."
icon_state = "emptycell"
/atom/movable/screen/alert/lowcell
name = "Low Charge"
- desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
+ desc = "Unit's power cell is running low. All modules may be disabled soon unless recharged."
icon_state = "lowcell"
//Ethereal
/atom/movable/screen/alert/etherealcharge
name = "Low Blood Charge"
- desc = "Your blood's electric charge is running low, find a source of charge for your blood. Use a recharging station found in robotics or the dormitory bathrooms, or eat some Ethereal-friendly food."
+ desc = "Your blood's electric charge is running low, find a source of charge for your blood. Use a recharging station, or eat some Elzuose-friendly food."
icon_state = "etherealcharge"
/atom/movable/screen/alert/ethereal_overcharge
@@ -607,12 +479,12 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
//MODsuit unique
/atom/movable/screen/alert/nocore
name = "Missing Core"
- desc = "Unit has no core. No modules available until a core is reinstalled. Robotics may provide assistance."
+ desc = "Unit has no core. No modules are available until a core is reinstalled."
icon_state = "no_cell"
/atom/movable/screen/alert/emptycell/plasma
name = "Out of Power"
- desc = "Unit's plasma core has no charge remaining. No modules available until plasma core is recharged. \
+ desc = "Unit's plasma core has no charge remaining. No modules are available until plasma core is recharged. \
Unit can be refilled through plasma fuel."
/atom/movable/screen/alert/emptycell/plasma/update_desc()
@@ -635,8 +507,8 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
/atom/movable/screen/alert/locked
name = "Locked Down"
- desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the Research Director's \
-office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary."
+ desc = "Unit has been remotely locked down. Usage of a Robotics Control Console by an AI or any qualified \
+ humanoid may resolve this matter."
icon_state = "locked"
/atom/movable/screen/alert/newlaw
@@ -828,3 +700,16 @@ so as to remain in compliance with the most up-to-date laws."
master = null
owner = null
screen_loc = ""
+
+// [CELADON-ADD] - CELADON_EMOTES
+/atom/movable/screen/alert/direction_lock
+ name = "Direction Lock"
+ desc = "You are facing only one direction, slowing your movement down. Click here to stop the direction lock."
+ icon = 'mod_celadon/_storge_icons/icons/screen_alert.dmi'
+ icon_state = "direction_lock"
+
+/atom/movable/screen/alert/direction_lock/Click()
+ if(isliving(usr) && ..())
+ var/mob/living/L = usr
+ return L.clear_forced_look()
+// [/CELADON-ADD]
diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm
deleted file mode 100644
index 55fbeb26a7c9..000000000000
--- a/code/_onclick/hud/devil.dm
+++ /dev/null
@@ -1,69 +0,0 @@
-
-//Soul counter is stored with the humans, it does weird when you place it here apparently...
-
-
-/datum/hud/devil/New(mob/owner)
- ..()
- var/atom/movable/screen/using
-
- using = new /atom/movable/screen/drop()
- using.icon = ui_style
- using.screen_loc = ui_drone_drop
- using.hud = src
- static_inventory += using
-
- pull_icon = new /atom/movable/screen/pull()
- pull_icon.icon = ui_style
- pull_icon.update_appearance()
- pull_icon.screen_loc = ui_drone_pull
- pull_icon.hud = src
- static_inventory += pull_icon
-
- build_hand_slots()
-
- using = new /atom/movable/screen/inventory()
- using.name = "hand"
- using.icon = ui_style
- using.icon_state = "swap_1_m"
- using.screen_loc = ui_swaphand_position(owner,1)
- using.layer = HUD_LAYER
- using.plane = HUD_PLANE
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/inventory()
- using.name = "hand"
- using.icon = ui_style
- using.icon_state = "swap_2"
- using.screen_loc = ui_swaphand_position(owner,2)
- using.layer = HUD_LAYER
- using.plane = HUD_PLANE
- using.hud = src
- static_inventory += using
-
- zone_select = new /atom/movable/screen/zone_sel()
- zone_select.icon = ui_style
- zone_select.hud = src
- zone_select.update_appearance()
-
- lingchemdisplay = new /atom/movable/screen/ling/chems()
- lingchemdisplay.hud = src
-
- devilsouldisplay = new /atom/movable/screen/devil/soul_counter
- devilsouldisplay.hud = src
- infodisplay += devilsouldisplay
-
-
-/datum/hud/devil/persistent_inventory_update()
- if(!mymob)
- return
- var/mob/living/carbon/true_devil/D = mymob
-
- if(hud_version != HUD_STYLE_NOHUD)
- for(var/obj/item/I in D.held_items)
- I.screen_loc = ui_hand_position(D.get_held_index_of_item(I))
- D.client.screen += I
- else
- for(var/obj/item/I in D.held_items)
- I.screen_loc = null
- D.client.screen -= I
diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm
deleted file mode 100644
index 8f79bfedf1bf..000000000000
--- a/code/_onclick/hud/guardian.dm
+++ /dev/null
@@ -1,179 +0,0 @@
-/datum/hud/guardian
- ui_style = 'icons/mob/guardian.dmi'
-
-/datum/hud/guardian/New(mob/living/simple_animal/hostile/guardian/owner)
- ..()
- var/atom/movable/screen/using
-
- pull_icon = new /atom/movable/screen/pull()
- pull_icon.icon = ui_style
- pull_icon.update_appearance()
- pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
- static_inventory += pull_icon
-
- healths = new /atom/movable/screen/healths/guardian()
- healths.hud = src
- infodisplay += healths
-
- using = new /atom/movable/screen/guardian/Manifest()
- using.screen_loc = ui_hand_position(2)
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/guardian/Recall()
- using.screen_loc = ui_hand_position(1)
- using.hud = src
- static_inventory += using
-
- using = new owner.toggle_button_type()
- using.screen_loc = ui_storage1
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/guardian/ToggleLight()
- using.screen_loc = ui_inventory
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/guardian/Communicate()
- using.screen_loc = ui_back
- using.hud = src
- static_inventory += using
-
-/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian
- ..()
- var/atom/movable/screen/using
- if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous))
- var/atom/movable/screen/inventory/inv_box
-
- inv_box = new /atom/movable/screen/inventory()
- inv_box.name = "internal storage"
- inv_box.icon = ui_style
- inv_box.icon_state = "suit_storage"
- inv_box.screen_loc = ui_id
- inv_box.slot_id = ITEM_SLOT_DEX_STORAGE
- inv_box.hud = src
- static_inventory += inv_box
-
- using = new /atom/movable/screen/guardian/Communicate()
- using.screen_loc = ui_sstore1
- using.hud = src
- static_inventory += using
-
- else
-
- using = new /atom/movable/screen/guardian/Communicate()
- using.screen_loc = ui_id
- using.hud = src
- static_inventory += using
-
- pull_icon = new /atom/movable/screen/pull()
- pull_icon.icon = 'icons/mob/guardian.dmi'
- pull_icon.update_appearance()
- pull_icon.screen_loc = ui_living_pull
- pull_icon.hud = src
- static_inventory += pull_icon
-
- healths = new /atom/movable/screen/healths/guardian()
- healths.hud = src
- infodisplay += healths
-
- using = new /atom/movable/screen/guardian/Manifest()
- using.screen_loc = ui_belt
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/guardian/Recall()
- using.screen_loc = ui_back
- using.hud = src
- static_inventory += using
-
- using = new owner.toggle_button_type()
- using.screen_loc = ui_storage2
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/guardian/ToggleLight()
- using.screen_loc = ui_inventory
- using.hud = src
- static_inventory += using
-
-/datum/hud/dextrous/guardian/persistent_inventory_update()
- if(!mymob)
- return
- if(istype(mymob, /mob/living/simple_animal/hostile/guardian/dextrous))
- var/mob/living/simple_animal/hostile/guardian/dextrous/D = mymob
-
- if(hud_shown)
- if(D.internal_storage)
- D.internal_storage.screen_loc = ui_id
- D.client.screen += D.internal_storage
- else
- if(D.internal_storage)
- D.internal_storage.screen_loc = null
-
- ..()
-
-/atom/movable/screen/guardian
- icon = 'icons/mob/guardian.dmi'
-
-/atom/movable/screen/guardian/Manifest
- icon_state = "manifest"
- name = "Manifest"
- desc = "Spring forth into battle!"
-
-/atom/movable/screen/guardian/Manifest/Click()
- if(isguardian(usr))
- var/mob/living/simple_animal/hostile/guardian/G = usr
- G.Manifest()
-
-
-/atom/movable/screen/guardian/Recall
- icon_state = "recall"
- name = "Recall"
- desc = "Return to your user."
-
-/atom/movable/screen/guardian/Recall/Click()
- if(isguardian(usr))
- var/mob/living/simple_animal/hostile/guardian/G = usr
- G.Recall()
-
-/atom/movable/screen/guardian/ToggleMode
- icon_state = "toggle"
- name = "Toggle Mode"
- desc = "Switch between ability modes."
-
-/atom/movable/screen/guardian/ToggleMode/Click()
- if(isguardian(usr))
- var/mob/living/simple_animal/hostile/guardian/G = usr
- G.ToggleMode()
-
-/atom/movable/screen/guardian/ToggleMode/Inactive
- icon_state = "notoggle" //greyed out so it doesn't look like it'll work
-
-/atom/movable/screen/guardian/ToggleMode/Assassin
- icon_state = "stealth"
- name = "Toggle Stealth"
- desc = "Enter or exit stealth."
-
-/atom/movable/screen/guardian/Communicate
- icon_state = "communicate"
- name = "Communicate"
- desc = "Communicate telepathically with your user."
-
-/atom/movable/screen/guardian/Communicate/Click()
- if(isguardian(usr))
- var/mob/living/simple_animal/hostile/guardian/G = usr
- G.Communicate()
-
-
-/atom/movable/screen/guardian/ToggleLight
- icon_state = "light"
- name = "Toggle Light"
- desc = "Glow like star dust."
-
-/atom/movable/screen/guardian/ToggleLight/Click()
- if(isguardian(usr))
- var/mob/living/simple_animal/hostile/guardian/G = usr
- G.ToggleLight()
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 1e59295205eb..92a294bfb497 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -32,7 +32,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/alien_plasma_display
var/atom/movable/screen/alien_queen_finder
- var/atom/movable/screen/devil/soul_counter/devilsouldisplay
var/atom/movable/screen/combo/combo_display
var/atom/movable/screen/action_intent
@@ -60,6 +59,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/healths
var/atom/movable/screen/healthdoll
var/atom/movable/screen/internals
+
+ var/atom/movable/screen/progbar_container/use_timer
// subtypes can override this to force a specific UI style
var/ui_style
@@ -109,7 +110,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
healthdoll = null
internals = null
lingchemdisplay = null
- devilsouldisplay = null
lingstingdisplay = null
alien_plasma_display = null
alien_queen_finder = null
@@ -119,6 +119,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
QDEL_LIST(screenoverlays)
mymob = null
QDEL_NULL(screentip_text)
+ QDEL_NULL(use_timer)
return ..()
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 0833d606927f..90db9fe52f7b 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -33,35 +33,6 @@
var/mob/living/carbon/human/H = usr
H.quick_equip()
-/atom/movable/screen/devil
- icon = 'icons/hud/screen_devil.dmi'
- invisibility = INVISIBILITY_ABSTRACT
-
-/atom/movable/screen/devil/soul_counter
- name = "souls owned"
- icon_state = "Devil-6"
- screen_loc = ui_devilsouldisplay
-
-/atom/movable/screen/devil/soul_counter/proc/update_counter(souls = 0)
- invisibility = 0
- maptext = "[souls]
"
- switch(souls)
- if(0,null)
- icon_state = "Devil-1"
- if(1,2)
- icon_state = "Devil-2"
- if(3 to 5)
- icon_state = "Devil-3"
- if(6 to 8)
- icon_state = "Devil-4"
- if(9 to INFINITY)
- icon_state = "Devil-5"
- else
- icon_state = "Devil-6"
-
-/atom/movable/screen/devil/soul_counter/proc/clear()
- invisibility = INVISIBILITY_ABSTRACT
-
/atom/movable/screen/ling
icon = 'icons/hud/screen_changeling.dmi'
invisibility = INVISIBILITY_ABSTRACT
@@ -338,10 +309,6 @@
lingstingdisplay.hud = src
infodisplay += lingstingdisplay
- devilsouldisplay = new /atom/movable/screen/devil/soul_counter
- devilsouldisplay.hud = src
- infodisplay += devilsouldisplay
-
zone_select = new /atom/movable/screen/zone_sel()
zone_select.icon = ui_style
zone_select.hud = src
@@ -354,6 +321,10 @@
ammo_counter = new /atom/movable/screen/ammo_counter(null, src)
infodisplay += ammo_counter
+ use_timer = new(null, src)
+ use_timer.RegisterSignal(mymob, COMSIG_LIVING_CHANGENEXT_MOVE, TYPE_PROC_REF(/atom/movable/screen/progbar_container, on_changenext))
+ static_inventory += use_timer
+
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
inv.hud = src
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index bf171d339912..f0805e0d06be 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -597,12 +597,6 @@
icon = 'icons/hud/screen_cyborg.dmi'
screen_loc = ui_borg_health
-/atom/movable/screen/healths/guardian
- name = "summoner health"
- icon = 'icons/mob/guardian.dmi'
- icon_state = "base"
- mouse_opacity = MOUSE_OPACITY_TRANSPARENT
-
/atom/movable/screen/healths/revenant
name = "essence"
icon = 'icons/mob/actions/backgrounds.dmi'
@@ -717,3 +711,42 @@
intent_icon.pixel_x = 16 * (i - 1) - 8 * length(streak)
add_overlay(intent_icon)
return ..()
+
+/atom/movable/screen/progbar_container
+ name = "swing cooldown"
+ icon_state = ""
+ screen_loc = "CENTER,SOUTH:16"
+ var/datum/world_progressbar/progbar
+ var/iteration = 0
+
+/atom/movable/screen/progbar_container/Initialize(mapload)
+ . = ..()
+ progbar = new(src)
+ progbar.qdel_when_done = FALSE
+ progbar.bar.vis_flags = VIS_INHERIT_ID | VIS_INHERIT_LAYER | VIS_INHERIT_PLANE
+ progbar.bar.appearance_flags = APPEARANCE_UI
+
+/atom/movable/screen/progbar_container/Destroy()
+ QDEL_NULL(progbar)
+ return ..()
+
+/atom/movable/screen/progbar_container/proc/on_changenext(datum/source, next_move)
+ SIGNAL_HANDLER
+
+ iteration++
+ progbar.goal = next_move - world.time
+ progbar.bar.icon_state = "prog_bar_0"
+
+ progbar_process(next_move)
+
+/atom/movable/screen/progbar_container/proc/progbar_process(next_move)
+ set waitfor = FALSE
+
+ var/start_time = world.time
+ var/iteration = src.iteration
+ while(iteration == src.iteration && (world.time < next_move))
+ progbar.update(world.time - start_time)
+ sleep(1)
+
+ if(iteration == src.iteration)
+ progbar.end_progress()
diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm
deleted file mode 100644
index 6aba23fab5c7..000000000000
--- a/code/_onclick/hud/swarmer.dm
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-/atom/movable/screen/swarmer
- icon = 'icons/mob/swarmer.dmi'
-
-/atom/movable/screen/swarmer/FabricateTrap
- icon_state = "ui_trap"
- name = "Create trap (Costs 5 Resources)"
- desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)"
-
-/atom/movable/screen/swarmer/FabricateTrap/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.CreateTrap()
-
-/atom/movable/screen/swarmer/Barricade
- icon_state = "ui_barricade"
- name = "Create barricade (Costs 5 Resources)"
- desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)"
-
-/atom/movable/screen/swarmer/Barricade/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.CreateBarricade()
-
-/atom/movable/screen/swarmer/Replicate
- icon_state = "ui_replicate"
- name = "Replicate (Costs 50 Resources)"
- desc = "Creates another of our kind."
-
-/atom/movable/screen/swarmer/Replicate/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.CreateSwarmer()
-
-/atom/movable/screen/swarmer/RepairSelf
- icon_state = "ui_self_repair"
- name = "Repair self"
- desc = "Repairs damage to our body."
-
-/atom/movable/screen/swarmer/RepairSelf/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.RepairSelf()
-
-/atom/movable/screen/swarmer/ToggleLight
- icon_state = "ui_light"
- name = "Toggle light"
- desc = "Toggles our inbuilt light on or off."
-
-/atom/movable/screen/swarmer/ToggleLight/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.ToggleLight()
-
-/atom/movable/screen/swarmer/ContactSwarmers
- icon_state = "ui_contact_swarmers"
- name = "Contact swarmers"
- desc = "Sends a message to all other swarmers, should they exist."
-
-/atom/movable/screen/swarmer/ContactSwarmers/Click()
- if(isswarmer(usr))
- var/mob/living/simple_animal/hostile/swarmer/S = usr
- S.ContactSwarmers()
-
-/datum/hud/swarmer/New(mob/owner)
- ..()
- var/atom/movable/screen/using
-
- using = new /atom/movable/screen/swarmer/FabricateTrap()
- using.screen_loc = ui_hand_position(2)
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/swarmer/Barricade()
- using.screen_loc = ui_hand_position(1)
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/swarmer/Replicate()
- using.screen_loc = ui_zonesel
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/swarmer/RepairSelf()
- using.screen_loc = ui_storage1
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/swarmer/ToggleLight()
- using.screen_loc = ui_back
- using.hud = src
- static_inventory += using
-
- using = new /atom/movable/screen/swarmer/ContactSwarmers()
- using.screen_loc = ui_inventory
- using.hud = src
- static_inventory += using
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 806e3e6df328..8e848963567e 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -177,14 +177,6 @@
/atom/proc/attack_drone(mob/living/simple_animal/drone/user)
attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans.
-
-/*
- True Devil
-*/
-
-/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity)
- A.attack_hand(src)
-
/*
Brain
*/
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index c4d818781d26..a8266c9979c0 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -120,11 +120,6 @@
min_val = 0
max_val = 1
-/datum/config_entry/number/shuttle_refuel_delay
- config_entry_value = 12000
- integer = FALSE
- min_val = 0
-
/datum/config_entry/flag/show_game_type_odds //if set this allows players to see the odds of each roundtype on the get revision screen
/datum/config_entry/keyed_list/roundstart_races //races you can play as from the get go.
@@ -250,15 +245,6 @@
movedelay_type = /mob/living/simple_animal
/////////////////////////////////////////////////
-/datum/config_entry/flag/virtual_reality //Will virtual reality be loaded
-
-/datum/config_entry/flag/roundstart_away //Will random away mission be loaded.
-
-/datum/config_entry/number/gateway_delay //How long the gateway takes before it activates. Default is half an hour. Only matters if roundstart_away is enabled.
- config_entry_value = 18000
- integer = FALSE
- min_val = 0
-
/datum/config_entry/flag/ghost_interaction
/datum/config_entry/flag/near_death_experience //If carbons can hear ghosts when unconscious and very close to death
@@ -293,31 +279,7 @@
config_entry_value = -1
min_val = -1
-/datum/config_entry/string/overflow_job
- config_entry_value = "Assistant"
-
/datum/config_entry/flag/starlight
-/datum/config_entry/flag/grey_assistants
-
-/datum/config_entry/number/lavaland_budget
- config_entry_value = 60
- integer = FALSE
- min_val = 0
-
-/datum/config_entry/number/whitesands_budget
- config_entry_value = 60
- integer = FALSE
- min_val = 0
-
-/datum/config_entry/number/icemoon_budget
- config_entry_value = 90
- integer = FALSE
- min_val = 0
-
-/datum/config_entry/number/space_budget
- config_entry_value = 16
- integer = FALSE
- min_val = 0
/datum/config_entry/flag/allow_random_events // Enables random events mid-round when set
@@ -352,13 +314,6 @@
GLOB.MAX_EX_FLASH_RANGE = config_entry_value
GLOB.MAX_EX_FLAME_RANGE = config_entry_value
-/datum/config_entry/number/emergency_shuttle_autocall_threshold
- min_val = 0
- max_val = 1
- integer = FALSE
-
-/datum/config_entry/flag/ic_printing
-
/datum/config_entry/flag/roundstart_traits
/datum/config_entry/flag/randomize_shift_time
@@ -373,10 +328,6 @@
config_entry_value = 64
min_val = 0
-/datum/config_entry/number/maxfine
- config_entry_value = 1000
- min_val = 0
-
/datum/config_entry/flag/dynamic_config_enabled
/datum/config_entry/number/respawn_timer
@@ -431,3 +382,15 @@
max_val = 255
config_entry_value = 191
min_val = 191
+
+/**
+ * A config that skews with the random spawners weights
+ * If the value is lower than 1, it'll tend to even out the odds
+ * If higher than 1, it'll lean toward common spawns even more.
+ */
+/datum/config_entry/number/random_loot_weight_modifier
+ integer = FALSE
+ default = 1
+ min_val = 0.05
+ config_entry_value = 191
+ min_val = 191
diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index a59d14cce4d3..a9b83106320b 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -137,8 +137,6 @@
/datum/config_entry/flag/no_dead_vote // dead people can't vote
-/datum/config_entry/flag/allow_metadata // Metadata is supported.
-
/// Gives the ability to send players a maptext popup.
/datum/config_entry/flag/popup_admin_pm
@@ -289,8 +287,6 @@
/datum/config_entry/flag/kick_inactive //force disconnect for inactive players
-/datum/config_entry/flag/load_jobs_from_txt
-
/datum/config_entry/flag/forbid_singulo_possession
/datum/config_entry/flag/automute_on //enables automuting/spam prevention
@@ -322,8 +318,6 @@
min_val = 0
integer = FALSE
-/datum/config_entry/flag/maprotation
-
/datum/config_entry/number/auto_lag_switch_pop //Number of clients at which drastic lag mitigation measures kick in
config_entry_value = null
min_val = 0
@@ -408,14 +402,6 @@
/datum/config_entry/flag/announce_admin_login
-/datum/config_entry/flag/allow_map_voting
- deprecated_by = /datum/config_entry/flag/preference_map_voting
-
-/datum/config_entry/flag/allow_map_voting/DeprecationUpdate(value)
- return value
-
-/datum/config_entry/flag/preference_map_voting
-
/datum/config_entry/number/client_warn_version
config_entry_value = null
min_val = 500
@@ -525,36 +511,10 @@
/datum/config_entry/flag/auto_profile
-//BeginWS Edit
-/datum/config_entry/flag/minimaps_enabled
- config_entry_value = TRUE
-//EndWS Edit
/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API
/datum/config_entry/string/centcom_source_whitelist
-/datum/config_entry/number/whitesands_atmos_moles
- config_entry_value = 103
- integer = FALSE
- min_val = 10
- max_val = 200
-
-/datum/config_entry/keyed_list/whitesands_atmos_mix
- key_mode = KEY_MODE_TEXT
- value_mode = VALUE_MODE_NUM
- lowercase = FALSE
- splitter = " "
-
-
-/datum/config_entry/keyed_list/whitesands_atmos_mix/ValidateListEntry(key_name, key_value)
- var/list/gas_types = gas_types()
- for (var/type in gas_types)
- var/datum/gas/T = type
- if (initial(T.id) == key_name)
- // even a high pressure zone will be less than 1.5x one atmos
- return key_value > 0 && key_value < 1.5
- return FALSE
-
// Elasticsearch stuffs
/datum/config_entry/flag/elasticsearch_metrics_enabled
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 302c0de4a427..46090ebb48c5 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -489,6 +489,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
continue
if ((SS_flags & (SS_TICKER|SS_KEEP_TIMING)) == SS_KEEP_TIMING && SS.last_fire + (SS.wait * 0.75) > world.time)
continue
+ if (SS.postponed_fires >= 1)
+ SS.postponed_fires--
+ SS.update_nextfire()
+ continue
SS.enqueue()
. = 1
diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm
index f6e35bec6e59..332fcef0787c 100644
--- a/code/controllers/subsystem.dm
+++ b/code/controllers/subsystem.dm
@@ -75,6 +75,9 @@
/// Tracks the amount of completed runs for the subsystem
var/times_fired = 0
+ /// How many fires have we been requested to postpone
+ var/postponed_fires = 0
+
/// Time the subsystem entered the queue, (for timing and priority reasons)
var/queued_time = 0
@@ -132,6 +135,26 @@
Master.subsystems -= src
return ..()
+/datum/controller/subsystem/proc/update_nextfire(reset_time = FALSE)
+ var/queue_node_flags = flags
+
+ if (reset_time)
+ postponed_fires = 0
+ if (queue_node_flags & SS_TICKER)
+ next_fire = world.time + (world.tick_lag * wait)
+ else
+ next_fire = world.time + wait
+ return
+
+ if (queue_node_flags & SS_TICKER)
+ next_fire = world.time + (world.tick_lag * wait)
+ else if (queue_node_flags & SS_POST_FIRE_TIMING)
+ next_fire = world.time + wait + (world.tick_lag * (tick_overrun/100))
+ else if (queue_node_flags & SS_KEEP_TIMING)
+ next_fire += wait
+ else
+ next_fire = queued_time + wait + (world.tick_lag * (tick_overrun/100))
+
//Queue it to run.
// (we loop thru a linked list until we get to the end or find the right point)
// (this lets us sort our run order correctly without having to re-sort the entire already sorted list)
@@ -251,8 +274,8 @@
//could be used to postpone a costly subsystem for (default one) var/cycles, cycles
//for instance, during cpu intensive operations like explosions
/datum/controller/subsystem/proc/postpone(cycles = 1)
- if(next_fire - world.time < wait)
- next_fire += (wait*cycles)
+ if (can_fire && cycles >= 1)
+ postponed_fires += cycles
//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
diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm
index 0ea8967e263c..efbc5e7d260e 100644
--- a/code/controllers/subsystem/acid.dm
+++ b/code/controllers/subsystem/acid.dm
@@ -33,8 +33,7 @@ SUBSYSTEM_DEF(acid)
return
continue
- if(O.acid_level && O.acid_processing())
- else
+ if(!O.acid_level || !O.acid_processing())
O.update_appearance()
processing -= O
diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm
index 2f325a1b2322..e74c04bf6ec5 100644
--- a/code/controllers/subsystem/air.dm
+++ b/code/controllers/subsystem/air.dm
@@ -66,6 +66,8 @@ SUBSYSTEM_DEF(air)
var/equalize_hard_turf_limit = 2000
// Whether equalization should be enabled at all.
var/equalize_enabled = TRUE
+ // The ratio of gas "shared" from the immutable planetary atmos mix to planetary tiles
+ var/planet_share_ratio = 0.25
// Whether turf-to-turf heat exchanging should be enabled.
var/heat_enabled = FALSE
// Max number of times process_turfs will share in a tick.
diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm
index 2ac0b06b74d6..19e8f9e77b55 100644
--- a/code/controllers/subsystem/blackbox.dm
+++ b/code/controllers/subsystem/blackbox.dm
@@ -132,8 +132,8 @@ SUBSYSTEM_DEF(blackbox)
record_feedback("tally", "radio_usage", 1, "common")
if(FREQ_NANOTRASEN)
record_feedback("tally", "radio_usage", 1, "nanotrasen")
- if(FREQ_COMMAND)
- record_feedback("tally", "radio_usage", 1, "command")
+ if(FREQ_EMERGENCY)
+ record_feedback("tally", "radio_usage", 1, "emergency")
if(FREQ_MINUTEMEN)
record_feedback("tally", "radio_usage", 1, "minutemen")
if(FREQ_INTEQ)
@@ -148,12 +148,6 @@ SUBSYSTEM_DEF(blackbox)
record_feedback("tally", "radio_usage", 1, "centcom")
if(FREQ_SOLGOV) //WS Edit - SolGov Rep
record_feedback("tally", "radio_usage", 1, "solgov") //WS Edit - SolGov Rep
- if(FREQ_AI_PRIVATE)
- record_feedback("tally", "radio_usage", 1, "ai private")
- if(FREQ_CTF_RED)
- record_feedback("tally", "radio_usage", 1, "CTF red team")
- if(FREQ_CTF_BLUE)
- record_feedback("tally", "radio_usage", 1, "CTF blue team")
else
record_feedback("tally", "radio_usage", 1, "other")
diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm
index da58d4764516..1bb1d185c84f 100644
--- a/code/controllers/subsystem/garbage.dm
+++ b/code/controllers/subsystem/garbage.dm
@@ -119,6 +119,11 @@ SUBSYSTEM_DEF(garbage)
dellog += "\tIgnored force: [I.no_respect_force] times"
if (I.no_hint)
dellog += "\tNo hint: [I.no_hint] times"
+ if (LAZYLEN(I.extra_details))
+ dellog += "\tDeleted Metadata:"
+ dellog += I.extra_details.Join("\n\t")
+ if (I.most_refs)
+ dellog += "\tMost Refs After qdel(): [I.most_refs]"
log_qdel(dellog.Join("\n"))
/datum/controller/subsystem/garbage/fire()
@@ -139,8 +144,6 @@ SUBSYSTEM_DEF(garbage)
state = SS_RUNNING
break
-
-
/datum/controller/subsystem/garbage/proc/InitQueues()
if (isnull(queues)) // Only init the queues if they don't already exist, prevents overriding of recovered lists
queues = new(GC_QUEUE_COUNT)
@@ -167,7 +170,10 @@ SUBSYSTEM_DEF(garbage)
lastlevel = level
- //We do this rather then for(var/refID in queue) because that sort of for loop copies the whole list.
+// 1 from the hard reference in the queue, and 1 from the variable used before this
+#define REFS_WE_EXPECT 2
+
+ //We do this rather then for(var/list/ref_info in queue) because that sort of for loop copies the whole list.
//Normally this isn't expensive, but the gc queue can grow to 40k items, and that gets costly/causes overrun.
for (var/i in 1 to length(queue))
var/list/L = queue[i]
@@ -178,21 +184,21 @@ SUBSYSTEM_DEF(garbage)
continue
var/queued_at_time = L[GC_QUEUE_ITEM_QUEUE_TIME]
- var/GCd_at_time = L[GC_QUEUE_ITEM_GCD_DESTROYED]
if(queued_at_time > cut_off_time)
break // Everything else is newer, skip them
count++
- var/refID = L[GC_QUEUE_ITEM_REF]
- var/datum/D
- D = locate(refID)
+ var/datum/D = L[GC_QUEUE_ITEM_REF]
+
+ var/remaining_refs = refcount(D) - REFS_WE_EXPECT
- if (!D || D.gc_destroyed != GCd_at_time) // So if something else coincidently gets the same ref, it's not deleted by mistake
+ // If that's all we've got, send er off
+ if (!remaining_refs)
++gcedlasttick
++totalgcs
pass_counts[level]++
#ifdef REFERENCE_TRACKING
- reference_find_on_fail -= refID //It's deleted we don't care anymore.
+ reference_find_on_fail -= text_ref(D) //It's deleted we don't care anymore.
#endif
if (MC_TICK_CHECK)
return
@@ -208,20 +214,30 @@ SUBSYSTEM_DEF(garbage)
switch (level)
if (GC_QUEUE_CHECK)
#ifdef REFERENCE_TRACKING
- if(reference_find_on_fail[refID])
- INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references))
+ // Decides how many refs to look for (potentially) with remaining_refs
+ // Based off the remaining and the ones we can account for
+ if(reference_find_on_fail[text_ref(D)])
+ INVOKE_ASYNC(D, TYPE_PROC_REF(/datum,find_references), remaining_refs)
ref_searching = TRUE
#ifdef GC_FAILURE_HARD_LOOKUP
else
- INVOKE_ASYNC(D, TYPE_PROC_REF(/datum, find_references))
+ INVOKE_ASYNC(D, TYPE_PROC_REF(/datum,find_references), remaining_refs)
ref_searching = TRUE
#endif
- reference_find_on_fail -= refID
+ reference_find_on_fail -= text_ref(D)
#endif
var/type = D.type
var/datum/qdel_item/I = items[type]
- log_world("## TESTING: GC: -- [text_ref(D)] | [type] was unable to be GC'd --")
+ var/message = "## TESTING: GC: -- [text_ref(D)] | [type] was unable to be GC'd --"
+ message = "[message] (ref count of [remaining_refs])"
+ log_world(message)
+ I.most_refs = max(I.most_refs, remaining_refs)
+
+ var/detail = D.dump_harddel_info()
+ if(detail)
+ LAZYADD(I.extra_details, detail)
+
#ifdef TESTING
for(var/c in GLOB.admins) //Using testing() here would fill the logs with ADMIN_VV garbage
var/client/admin = c
@@ -231,6 +247,12 @@ SUBSYSTEM_DEF(garbage)
#endif
I.failures++
+ if (I.qdel_flags & QDEL_ITEM_SUSPENDED_FOR_LAG)
+ #ifdef REFERENCE_TRACKING
+ if(ref_searching)
+ return //ref searching intentionally cancels all further fires while running so things that hold references don't end up getting deleted, so we want to return here instead of continue
+ #endif
+ continue
if (GC_QUEUE_HARDDELETE)
HardDelete(D)
if (MC_TICK_CHECK)
@@ -250,41 +272,41 @@ SUBSYSTEM_DEF(garbage)
queue.Cut(1,count+1)
count = 0
+#undef REFS_WE_EXPECT
+
/datum/controller/subsystem/garbage/proc/Queue(datum/D, level = GC_QUEUE_FILTER)
if (isnull(D))
return
if (level > GC_QUEUE_COUNT)
- HardDelete(D, TRUE)
+ HardDelete(D)
return
var/queue_time = world.time
- var/refid = text_ref(D)
if (D.gc_destroyed <= 0)
D.gc_destroyed = queue_time
var/list/queue = queues[level]
-
- queue[++queue.len] = list(queue_time, refid, D.gc_destroyed) // not += for byond reasons
+ queue[++queue.len] = list(queue_time, D, D.gc_destroyed) // not += for byond reasons
//this is mainly to separate things profile wise.
-/datum/controller/subsystem/garbage/proc/HardDelete(datum/D, force)
+/datum/controller/subsystem/garbage/proc/HardDelete(datum/D)
++delslasttick
++totaldels
var/type = D.type
var/refID = text_ref(D)
- var/datum/qdel_item/I = items[type]
-
- if (!force && I.qdel_flags & QDEL_ITEM_SUSPENDED_FOR_LAG)
- return
+ var/datum/qdel_item/type_info = items[type]
+ var/detail = D.dump_harddel_info()
+ if(detail)
+ LAZYADD(type_info.extra_details, detail)
var/tick_usage = TICK_USAGE
del(D)
tick_usage = TICK_USAGE_TO_MS(tick_usage)
- I.hard_deletes++
- I.hard_delete_time += tick_usage
- if (tick_usage > I.hard_delete_max)
- I.hard_delete_max = tick_usage
+ type_info.hard_deletes++
+ type_info.hard_delete_time += tick_usage
+ if (tick_usage > type_info.hard_delete_max)
+ type_info.hard_delete_max = tick_usage
if (tick_usage > highest_del_ms)
highest_del_ms = tick_usage
highest_del_type_string = "[type]"
@@ -295,14 +317,14 @@ SUBSYSTEM_DEF(garbage)
postpone(time)
var/threshold = CONFIG_GET(number/hard_deletes_overrun_threshold)
if (threshold && (time > threshold SECONDS))
- if (!(I.qdel_flags & QDEL_ITEM_ADMINS_WARNED))
+ if (!(type_info.qdel_flags & QDEL_ITEM_ADMINS_WARNED))
log_game("Error: [type]([refID]) took longer than [threshold] seconds to delete (took [round(time/10, 0.1)] seconds to delete)")
message_admins("Error: [type]([refID]) took longer than [threshold] seconds to delete (took [round(time/10, 0.1)] seconds to delete).")
- I.qdel_flags |= QDEL_ITEM_ADMINS_WARNED
- I.hard_deletes_over_threshold++
+ type_info.qdel_flags |= QDEL_ITEM_ADMINS_WARNED
+ type_info.hard_deletes_over_threshold++
var/overrun_limit = CONFIG_GET(number/hard_deletes_overrun_limit)
- if (overrun_limit && I.hard_deletes_over_threshold >= overrun_limit)
- I.qdel_flags |= QDEL_ITEM_SUSPENDED_FOR_LAG
+ if (overrun_limit && type_info.hard_deletes_over_threshold >= overrun_limit)
+ type_info.qdel_flags |= QDEL_ITEM_SUSPENDED_FOR_LAG
/datum/controller/subsystem/garbage/Recover()
InitQueues() //We first need to create the queues before recovering data
@@ -320,83 +342,90 @@ SUBSYSTEM_DEF(garbage)
var/hard_delete_time = 0 //!Total amount of milliseconds spent hard deleting this type.
var/hard_delete_max = 0 //!Highest time spent hard_deleting this in ms.
var/hard_deletes_over_threshold = 0 //!Number of times hard deletes took longer than the configured threshold
+ var/most_refs = 0 //!The highest amount of refs its had after failing to qdel
var/no_respect_force = 0 //!Number of times it's not respected force=TRUE
var/no_hint = 0 //!Number of times it's not even bother to give a qdel hint
var/slept_destroy = 0 //!Number of times it's slept in its destroy
var/qdel_flags = 0 //!Flags related to this type's trip thru qdel.
+ var/list/extra_details //!Lazylist of string metadata about the deleted objects
/datum/qdel_item/New(mytype)
name = "[mytype]"
-
/// Should be treated as a replacement for the 'del' keyword.
///
/// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
-/proc/qdel(datum/D, force=FALSE, ...)
- if(!istype(D))
- del(D)
+/proc/qdel(datum/to_delete, force = FALSE)
+ if(!istype(to_delete))
+ del(to_delete)
return
- var/datum/qdel_item/I = SSgarbage.items[D.type]
- if (!I)
- I = SSgarbage.items[D.type] = new /datum/qdel_item(D.type)
- I.qdels++
+ var/datum/qdel_item/trash = SSgarbage.items[to_delete.type]
+ if (isnull(trash))
+ trash = SSgarbage.items[to_delete.type] = new /datum/qdel_item(to_delete.type)
+ trash.qdels++
- if(isnull(D.gc_destroyed))
- if (SEND_SIGNAL(D, COMSIG_PARENT_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted
- return
- D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
- var/start_time = world.time
- var/start_tick = world.tick_usage
- SEND_SIGNAL(D, COMSIG_PARENT_QDELETING, force) // Let the (remaining) components know about the result of Destroy
- var/hint = D.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
- if(world.time != start_time)
- I.slept_destroy++
- else
- I.destroy_time += TICK_USAGE_TO_MS(start_tick)
- if(!D)
+ if(!isnull(to_delete.gc_destroyed))
+ if(to_delete.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
+ CRASH("[to_delete.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
+ return
+
+ if (SEND_SIGNAL(to_delete, COMSIG_PREQDELETED, force)) // Give the components a chance to prevent their parent from being deleted
+ return
+
+ to_delete.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
+ var/start_time = world.time
+ var/start_tick = world.tick_usage
+ SEND_SIGNAL(to_delete, COMSIG_PARENT_QDELETING, force) // Let the (remaining) components know about the result of Destroy
+ var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
+
+ if(world.time != start_time)
+ trash.slept_destroy++
+ else
+ trash.destroy_time += TICK_USAGE_TO_MS(start_tick)
+
+ if(isnull(to_delete))
+ return
+
+ switch(hint)
+ if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion.
+ SSgarbage.Queue(to_delete)
+ if (QDEL_HINT_IWILLGC)
+ to_delete.gc_destroyed = world.time
return
- switch(hint)
- if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion.
- SSgarbage.Queue(D)
- if (QDEL_HINT_IWILLGC)
- D.gc_destroyed = world.time
+ if (QDEL_HINT_LETMELIVE) //qdel should let the object live after calling destory.
+ if(!force)
+ to_delete.gc_destroyed = null //clear the gc variable (important!)
return
- if (QDEL_HINT_LETMELIVE) //qdel should let the object live after calling destory.
- if(!force)
- D.gc_destroyed = null //clear the gc variable (important!)
- return
- // Returning LETMELIVE after being told to force destroy
- // indicates the objects Destroy() does not respect force
- #ifdef TESTING
- if(!I.no_respect_force)
- testing("WARNING: [D.type] has been force deleted, but is \
- returning an immortal QDEL_HINT, indicating it does \
- not respect the force flag for qdel(). It has been \
- placed in the queue, further instances of this type \
- will also be queued.")
- #endif
- I.no_respect_force++
+ // Returning LETMELIVE after being told to force destroy
+ // indicates the objects Destroy() does not respect force
+ #ifdef TESTING
+ if(!trash.no_respect_force)
+ testing("WARNING: [to_delete.type] has been force deleted, but is \
+ returning an immortal QDEL_HINT, indicating it does \
+ not respect the force flag for qdel(). It has been \
+ placed in the queue, further instances of this type \
+ will also be queued.")
+ #endif
+ trash.no_respect_force++
- SSgarbage.Queue(D)
- if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete
- SSgarbage.Queue(D, GC_QUEUE_HARDDELETE)
- if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste.
- SSgarbage.HardDelete(D, TRUE)
- #ifdef REFERENCE_TRACKING
- if (QDEL_HINT_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled, display all references to this object, then queue the object for deletion.
- SSgarbage.Queue(D)
- D.find_references()
- if (QDEL_HINT_IFFAIL_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled and the object fails to collect, display all references to this object.
- SSgarbage.Queue(D)
- SSgarbage.reference_find_on_fail[text_ref(D)] = TRUE
+ SSgarbage.Queue(to_delete)
+ if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete
+ SSgarbage.Queue(to_delete, GC_QUEUE_HARDDELETE)
+ if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste.
+ SSgarbage.HardDelete(to_delete)
+ #ifdef REFERENCE_TRACKING
+ if (QDEL_HINT_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled, display all references to this object, then queue the object for deletion.
+ SSgarbage.Queue(to_delete)
+ INVOKE_ASYNC(to_delete, TYPE_PROC_REF(/datum, find_references))
+ if (QDEL_HINT_IFFAIL_FINDREFERENCE) //qdel will, if REFERENCE_TRACKING is enabled and the object fails to collect, display all references to this object.
+ SSgarbage.Queue(to_delete)
+ SSgarbage.reference_find_on_fail[text_ref(to_delete)] = TRUE
+ #endif
+ else
+ #ifdef TESTING
+ if(!trash.no_hint)
+ testing("WARNING: [to_delete.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
#endif
- else
- #ifdef TESTING
- if(!I.no_hint)
- testing("WARNING: [D.type] is not returning a qdel hint. It is being placed in the queue. Further instances of this type will also be queued.")
- #endif
- I.no_hint++
- SSgarbage.Queue(D)
- else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
- CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
+ trash.no_hint++
+ SSgarbage.Queue(to_delete)
diff --git a/code/controllers/subsystem/mobs.dm b/code/controllers/subsystem/mobs.dm
index b5d8210c802f..d2e0505b3583 100644
--- a/code/controllers/subsystem/mobs.dm
+++ b/code/controllers/subsystem/mobs.dm
@@ -40,5 +40,6 @@ SUBSYSTEM_DEF(mobs)
L.Life(seconds, times_fired)
else
GLOB.mob_living_list.Remove(L)
+ stack_trace("[L] no longer exists in mob_living_list")
if (MC_TICK_CHECK)
return
diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm
index 9c7c5eabf69a..66c886c9664a 100644
--- a/code/controllers/subsystem/overmap.dm
+++ b/code/controllers/subsystem/overmap.dm
@@ -154,7 +154,7 @@ SUBSYSTEM_DEF(overmap)
return
if(!length(orbits))
break // Can't fit any more in
- var/event_type = pickweight(GLOB.overmap_event_pick_list)
+ var/event_type = pick_weight(GLOB.overmap_event_pick_list)
var/selected_orbit = pick(orbits)
var/list/T = get_unused_overmap_square_in_radius(selected_orbit)
@@ -270,6 +270,7 @@ SUBSYSTEM_DEF(overmap)
var/datum/map_generator/mapgen = new dynamic_datum.mapgen
var/datum/map_template/ruin/used_ruin = ispath(ruin_type) ? (new ruin_type) : ruin_type
+ SSblackbox.record_feedback("tally", "encounter_spawned", 1, "[dynamic_datum.mapgen]")
// name is random but PROBABLY unique
var/encounter_name = dynamic_datum.planet_name || "\improper Uncharted Space [dynamic_datum.x]/[dynamic_datum.y]-[rand(1111, 9999)]"
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index c6f9e4404c07..41e3f77d6134 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -23,7 +23,9 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
list("Ageusia","Vegetarian","Deviant Tastes"), \
list("Ananas Affinity","Ananas Aversion"), \
list("Alcohol Tolerance","Light Drinker"), \
- list("Bad Touch", "Friendly"))
+ list("Bad Touch", "Friendly"), \
+ list("Self-Aware", "Congenital Analgesia")
+ )
species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE))
diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index c9666d85608d..5d31988b2b61 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -34,7 +34,6 @@ SUBSYSTEM_DEF(shuttle)
var/ordernum = 1
/// List of all singleton supply pack instances
var/list/supply_packs = list()
-
/// Stops ALL shuttles from being able to move
var/lockdown = FALSE
@@ -151,7 +150,7 @@ SUBSYSTEM_DEF(shuttle)
mapzone.parallax_movedir = travel_dir
- var/area/shuttle/transit/transit_area = new()
+ var/area/hyperspace/transit_area = new()
vlevel.fill_in(transit_path, transit_area)
@@ -198,6 +197,7 @@ SUBSYSTEM_DEF(shuttle)
supply_packs = SSshuttle.supply_packs
ordernum = SSshuttle.ordernum
+
lockdown = SSshuttle.lockdown
/datum/controller/subsystem/shuttle/proc/is_in_shuttle_bounds(atom/A)
@@ -491,7 +491,7 @@ SUBSYSTEM_DEF(shuttle)
user.forceMove(new_ship.get_jump_to_turf())
message_admins("[key_name_admin(user)] loaded [new_ship] ([S]) with the shuttle manipulator.")
log_admin("[key_name(user)] loaded [new_ship] ([S]) with the shuttle manipulator.")
- SSblackbox.record_feedback("text", "shuttle_manipulator", 1, "[S]")
+ SSblackbox.record_feedback("tally", "shuttle_manipulator_spawned", 1, "[S]")
if("edit_template")
if(S)
diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm
index e8cd514eb48b..b64dab12d301 100644
--- a/code/controllers/subsystem/throwing.dm
+++ b/code/controllers/subsystem/throwing.dm
@@ -160,8 +160,6 @@ SUBSYSTEM_DEF(throwing)
finalize()
return
- dist_travelled++
-
if(actual_target && !(actual_target.pass_flags_self & LETPASSTHROW) && actual_target.loc == AM.loc) // we crossed a movable with no density (e.g. a mouse or APC) we intend to hit anyway.
finalize(TRUE, actual_target)
return
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index c9be29ce95bc..d3f664fad391 100644
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -225,7 +225,7 @@ SUBSYSTEM_DEF(ticker)
if(!runnable_modes.len)
to_chat(world, "Unable to choose playable game mode. Reverting to pre-game lobby.")
return 0
- mode = pickweight(runnable_modes)
+ mode = pick_weight(runnable_modes)
if(!mode) //too few roundtypes all run too recently
mode = pick(runnable_modes)
@@ -445,12 +445,6 @@ SUBSYSTEM_DEF(ticker)
news_message = "[station_name()] has been evacuated after transmitting the following distress beacon:\n\n[emergency_reason]"
else
news_message = "The crew of [station_name()] has been evacuated amid unconfirmed reports of enemy activity."
- if(CULT_ESCAPE)
- news_message = "Security Alert: A group of religious fanatics have escaped from [station_name()]."
- if(CULT_FAILURE)
- news_message = "Following the dismantling of a restricted cult aboard [station_name()], we would like to remind all employees that worship outside of the Chapel is strictly prohibited, and cause for termination."
- if(CULT_SUMMON)
- news_message = "Company officials would like to clarify that [station_name()] was scheduled to be decommissioned following meteor damage earlier this year. Earlier reports of an unknowable eldritch horror were made in error."
if(NUKE_MISS)
news_message = "The Syndicate have bungled a terrorist attack [station_name()], detonating a nuclear weapon in empty space nearby."
if(OPERATIVES_KILLED)
diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm
index ecf43af5cc9d..c92b7d3e8958 100644
--- a/code/controllers/subsystem/traumas.dm
+++ b/code/controllers/subsystem/traumas.dm
@@ -44,16 +44,14 @@ SUBSYSTEM_DEF(traumas)
"skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/human/skeleton)),
"snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)),
"robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai,
- /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer)),
+ /mob/living/simple_animal/drone, /mob/living/simple_animal/bot)),
"doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)),
- "the supernatural" = typecacheof(list(/mob/living/simple_animal/hostile/construct,
- /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)),
+ "the supernatural" = typecacheof(list(/mob/living/simple_animal/revenant)),
"aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime, /mob/living/simple_animal/hostile/facehugger)),
"conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/drone,
/mob/living/simple_animal/pet/penguin)),
"birds" = typecacheof(list(/mob/living/simple_animal/parrot, /mob/living/simple_animal/chick, /mob/living/simple_animal/chicken,
/mob/living/simple_animal/pet/penguin)),
- "anime" = typecacheof(list(/mob/living/simple_animal/hostile/guardian))
)
phobia_objs = list(
@@ -104,7 +102,7 @@ SUBSYSTEM_DEF(traumas)
"robots" = typecacheof(list(
/obj/machinery/computer/upload, /obj/item/aiModule/, /obj/machinery/recharge_station,
- /obj/item/aicard, /obj/item/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)),
+ /obj/item/aicard)),
"doctors" = typecacheof(list(
/obj/item/clothing/under/rank/medical,
@@ -124,11 +122,6 @@ SUBSYSTEM_DEF(traumas)
/obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)),
"the supernatural" = typecacheof(list(
- /obj/structure/destructible/cult, /obj/item/tome,
- /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult,
- /obj/effect/rune,
- /obj/machinery/door/airlock/cult, /obj/singularity/narsie,
- /obj/item/soulstone,
/obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/under/rank/civilian/chaplain)),
@@ -160,7 +153,7 @@ SUBSYSTEM_DEF(traumas)
phobia_turfs = list(
"space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)),
- "the supernatural" = typecacheof(list(/turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)),
+ "the supernatural" = typecacheof(/turf/closed/wall/mineral/cult, /turf/open/floor/plasteel/cult),
"aliens" = typecacheof(list(
/turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2,
/turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)),
diff --git a/code/controllers/subsystem/turrets.dm b/code/controllers/subsystem/turrets.dm
new file mode 100644
index 000000000000..7c99cc33a4c8
--- /dev/null
+++ b/code/controllers/subsystem/turrets.dm
@@ -0,0 +1,4 @@
+PROCESSING_SUBSYSTEM_DEF(turrets)
+ name = "Turrets"
+ wait = 5
+ runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
diff --git a/code/datums/action.dm b/code/datums/action.dm
index 9bc58c399dd4..8151f5a4103c 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -366,16 +366,13 @@
/datum/action/item_action/nano_picket_sign
name = "Retext Nano Picket Sign"
- var/obj/item/picket_sign/S
-
-/datum/action/item_action/nano_picket_sign/New(Target)
- ..()
- if(istype(Target, /obj/item/picket_sign))
- S = Target
/datum/action/item_action/nano_picket_sign/Trigger()
- if(istype(S))
- S.retext(owner)
+ if(!istype(target, /obj/item/picket_sign))
+ return
+
+ var/obj/item/picket_sign/sign = target
+ sign.retext(owner)
/datum/action/item_action/adjust
diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm
index 372e51280f4a..82cd555d1070 100644
--- a/code/datums/ai_laws.dm
+++ b/code/datums/ai_laws.dm
@@ -1,4 +1,3 @@
-#define LAW_DEVIL "devil"
#define LAW_ZEROTH "zeroth"
#define LAW_INHERENT "inherent"
#define LAW_SUPPLIED "supplied"
@@ -15,7 +14,6 @@
var/list/ion = list()
var/list/hacked = list()
var/mob/living/silicon/owner
- var/list/devillaws = list()
var/id = DEFAULT_AI_LAWID
/datum/ai_laws/Destroy(force, ...)
@@ -393,7 +391,7 @@
var/datum/ai_laws/lawtype
var/list/law_weights = CONFIG_GET(keyed_list/law_weight)
while(!lawtype && law_weights.len)
- var/possible_id = pickweightAllowZero(law_weights)
+ var/possible_id = pick_weight_allow_zero(law_weights)
lawtype = lawid_to_type(possible_id)
if(!lawtype)
law_weights -= possible_id
@@ -408,8 +406,6 @@
/datum/ai_laws/proc/get_law_amount(groups)
var/law_amount = 0
- if(devillaws && (LAW_DEVIL in groups))
- law_amount++
if(zeroth && (LAW_ZEROTH in groups))
law_amount++
if(ion.len && (LAW_ION in groups))
@@ -425,9 +421,6 @@
law_amount++
return law_amount
-/datum/ai_laws/proc/set_law_sixsixsix(laws)
- devillaws = laws
-
/datum/ai_laws/proc/set_zeroth_law(law, law_borg = null)
zeroth = law
if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO
@@ -465,7 +458,7 @@
replaceable_groups[LAW_INHERENT] = inherent.len
if(supplied.len && (LAW_SUPPLIED in groups))
replaceable_groups[LAW_SUPPLIED] = supplied.len
- var/picked_group = pickweight(replaceable_groups)
+ var/picked_group = pick_weight(replaceable_groups)
switch(picked_group)
if(LAW_ZEROTH)
. = zeroth
@@ -564,10 +557,6 @@
zeroth = null
zeroth_borg = null
-/datum/ai_laws/proc/clear_law_sixsixsix(force)
- if(force || !is_devil(owner))
- devillaws = null
-
/datum/ai_laws/proc/associate(mob/living/silicon/M)
if(!owner)
owner = M
@@ -583,10 +572,6 @@
/datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE)
var/list/data = list()
- if (include_zeroth && devillaws)
- for(var/law in devillaws)
- data += "[show_numbers ? "666:" : ""] [render_html ? "[law]" : law]"
-
if (include_zeroth && zeroth)
data += "[show_numbers ? "0:" : ""] [render_html ? "[zeroth]" : zeroth]"
diff --git a/code/datums/aquarium.dm b/code/datums/aquarium.dm
index da8c3afeb531..37a38f7849e6 100644
--- a/code/datums/aquarium.dm
+++ b/code/datums/aquarium.dm
@@ -136,7 +136,7 @@
. = ..()
REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src))
-/datum/component/aquarium_content/Destroy(force, silent)
+/datum/component/aquarium_content/Destroy(force)
if(current_aquarium)
remove_from_aquarium()
QDEL_NULL(vc_obj)
diff --git a/code/datums/atmosphere/planetary.dm b/code/datums/atmosphere/planetary.dm
index 85bbf13c52a9..8a2d37ab2471 100644
--- a/code/datums/atmosphere/planetary.dm
+++ b/code/datums/atmosphere/planetary.dm
@@ -13,8 +13,6 @@
)
restricted_gases = list(
GAS_BZ=10,
- GAS_PLASMA=0.1,
- GAS_H2O=0.1,
)
restricted_chance = 50
@@ -26,12 +24,65 @@
// even worse, occasionally there would be a perma-TRITFIRE, if oxygen
// concentration was high enough. this caused a bunch of lag and added nothing to the game whatsoever
// thus, the temperatures were reduced to 70-90 C
- minimum_temp = T20C + 50
- maximum_temp = T20C + 70
+ minimum_temp = T20C + 20
+ maximum_temp = T20C + 40
/datum/atmosphere/icemoon
id = ICEMOON_DEFAULT_ATMOS
+ base_gases = list(
+ GAS_O2=5,
+ GAS_N2=10,
+ )
+ normal_gases = list(
+ GAS_O2=10,
+ GAS_N2=10,
+ GAS_CO2=10,
+ )
+ restricted_gases = list(
+ GAS_CO2=0.1,
+ )
+ restricted_chance = 50
+
+ minimum_pressure = HAZARD_LOW_PRESSURE + 10
+ maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1
+
+
+ minimum_temp = 200 //fucking cold to
+ maximum_temp = 240 //still cold
+
+
+//wasteplanet
+
+/datum/atmosphere/wasteplanet
+ id = WASTEPLANET_DEFAULT_ATMOS
+
+
+ base_gases = list(
+ GAS_O2=7,
+ GAS_N2=10,
+ )
+ normal_gases = list(
+ GAS_O2=7,
+ GAS_O2=3,
+ GAS_N2=5,
+ GAS_N2=2
+ )
+ restricted_gases = list(
+ GAS_O2=1,
+ )
+ restricted_chance = 0
+
+ minimum_pressure = ONE_ATMOSPHERE - 30
+ maximum_pressure = ONE_ATMOSPHERE + 100
+
+ minimum_temp = T20C - 10
+ maximum_temp = T20C + 20
+
+//sandplanet
+/datum/atmosphere/whitesands
+ id = SANDPLANET_DEFAULT_ATMOS
+
base_gases = list(
GAS_O2=5,
GAS_N2=10,
@@ -43,16 +94,89 @@
)
restricted_gases = list(
GAS_PLASMA=0.1,
- GAS_H2O=0.1,
)
restricted_chance = 50
minimum_pressure = HAZARD_LOW_PRESSURE + 10
maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1
- minimum_temp = 180
- maximum_temp = 180
+ minimum_temp = 233
+ maximum_temp = 263 //No longer always 180
+
+//Jungleplanet
+
+/datum/atmosphere/jungleplanet
+ id = JUNGLEPLANET_DEFAULT_ATMOS
+ base_gases = list(
+ GAS_O2=15,
+ GAS_N2=60,
+ GAS_CO2=1,
+ )
+ normal_gases = list(
+ GAS_O2=1,
+ GAS_N2=4,
+ )
+ restricted_gases = list(
+ GAS_CO2=0.1,
+ )
+ restricted_chance = 0
+
+ minimum_pressure = 101.3
+ maximum_pressure = 135.7 //Nonsense values
+
+ minimum_temp = T20C + 10
+ maximum_temp = T20C + 20
+
+//welcome to the beach
+
+/datum/atmosphere/beach
+ id = BEACHPLANET_DEFAULT_ATMOS
+
+ base_gases = list(
+ GAS_O2=10,
+ GAS_N2=40,
+ )
+ normal_gases = list(
+ GAS_O2=1,
+ GAS_N2=4,
+ )
+ restricted_gases = list(
+ GAS_PLASMA=0.1,
+ )
+ restricted_chance = 0
+
+ minimum_pressure = 101.3
+ maximum_pressure = 135.7
+
+ minimum_temp = T20C - 10
+ maximum_temp = T20C + 10
+
+//rockplanets have lots of CO2 and are moderately cold.
+/datum/atmosphere/rockplanet
+
+ id = ROCKPLANET_DEFAULT_ATMOS
+
+ base_gases = list(
+ GAS_CO2=5,
+ GAS_N2=1,
+ )
+ normal_gases = list(
+ GAS_CO2=3,
+ GAS_N2=1,
+ )
+ restricted_gases = list(
+ GAS_PLASMA=0.1,
+ )
+ restricted_chance = 0
+
+ minimum_pressure = 101.3
+ maximum_pressure = 135.7
+
+ minimum_temp = T0C - 20
+ maximum_temp = T0C
+
+// gas giants
/datum/atmosphere/gas_giant
id = GAS_GIANT_ATMOS
@@ -92,28 +216,3 @@
GAS_PLASMA=0.1,
)
restricted_chance = 1
-
-/datum/atmosphere/wasteplanet
- id = WASTEPLANET_DEFAULT_ATMOS
-
-
- base_gases = list(
- GAS_O2=7,
- GAS_N2=10,
- )
- normal_gases = list(
- GAS_O2=7,
- GAS_O2=3,
- GAS_N2=5,
- GAS_N2=2
- )
- restricted_gases = list(
- GAS_H2O=1,
- )
- restricted_chance = 10
-
- minimum_pressure = ONE_ATMOSPHERE - 30
- maximum_pressure = ONE_ATMOSPHERE + 100
-
- minimum_temp = T20C + 1
- maximum_temp = T20C + 80
diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm
index 9c10c6f1fd7d..9623191d3fd8 100644
--- a/code/datums/brain_damage/mild.dm
+++ b/code/datums/brain_damage/mild.dm
@@ -110,6 +110,7 @@
/datum/brain_trauma/mild/healthy/on_gain()
owner.set_screwyhud(SCREWYHUD_HEALTHY)
+ ADD_TRAIT(owner, TRAIT_ANALGESIA, type)
..()
/datum/brain_trauma/mild/healthy/on_life()
@@ -119,6 +120,7 @@
/datum/brain_trauma/mild/healthy/on_lose()
owner.set_screwyhud(SCREWYHUD_NONE)
+ REMOVE_TRAIT(owner, TRAIT_ANALGESIA, type)
..()
/datum/brain_trauma/mild/muscle_weakness
@@ -262,3 +264,103 @@
speak_dejavu += speech_args[SPEECH_MESSAGE]
else
speak_dejavu += speech_args[SPEECH_MESSAGE]
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage1
+ name = "Stage 1 Carbon Monoxide Poisoning"
+ desc = "Due to overexposure to carbon monoxide, patient's mental facilities are degrading.."
+ scan_desc = "carbon monoxide poisoning"
+ gain_text = "You get a headache."
+ lose_text = "Your headache disapears and you find it easier to focus."
+
+ var/static/list/common_words = world.file2list("strings/1000_most_common.txt")
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage1/on_life()
+ var/fall_chance = 1
+ if(owner.m_intent == MOVE_INTENT_RUN)
+ fall_chance += 2
+ if(prob(fall_chance) && owner.body_position == STANDING_UP)
+ to_chat(owner, "Your leg gives out!")
+ owner.Paralyze(35)
+
+ else if(owner.get_active_held_item())
+ var/drop_chance = 1
+ var/obj/item/I = owner.get_active_held_item()
+ drop_chance += I.w_class
+ if(prob(drop_chance) && owner.dropItemToGround(I))
+ to_chat(owner, "You drop [I]!")
+
+ else if(prob(3))
+ to_chat(owner, "You feel a sudden weakness in your muscles!")
+ owner.adjustStaminaLoss(50)
+ ..()
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage1/handle_speech(datum/source, list/speech_args)
+ var/message = speech_args[SPEECH_MESSAGE]
+ if(message)
+ var/list/message_split = splittext(message, " ")
+ var/list/new_message = list()
+
+ for(var/word in message_split)
+ var/suffix = ""
+ var/suffix_foundon = 0
+ for(var/potential_suffix in list("." , "," , ";" , "!" , ":" , "?"))
+ suffix_foundon = findtext(word, potential_suffix, -length(potential_suffix))
+ if(suffix_foundon)
+ suffix = potential_suffix
+ break
+
+ if(suffix_foundon)
+ word = copytext(word, 1, suffix_foundon)
+ word = html_decode(word)
+
+ if(lowertext(word) in common_words)
+ new_message += word + suffix
+ else
+ if(prob(30) && message_split.len > 2)
+ new_message += pick("uh","erm")
+ break
+ else
+ var/list/charlist = text2charlist(word)
+ charlist.len = round(charlist.len * 0.5, 1)
+ shuffle_inplace(charlist)
+ new_message += jointext(charlist, "") + suffix
+
+ message = jointext(new_message, " ")
+
+ speech_args[SPEECH_MESSAGE] = trim(message)
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage2
+ name = "Stage 2 Carbon Monoxide Poisoning"
+ desc = "Due to extreme exposure to carbon monoxide, patient's higher brain functions are severely impacted."
+ scan_desc = "critical carbon monoxide poisoning"
+ gain_text = "You bad get forget you headache don't!"
+ lose_text = "Your headache gets better."
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage2/on_gain()
+ ADD_TRAIT(owner, TRAIT_UNINTELLIGIBLE_SPEECH, TRAUMA_TRAIT)
+ ..()
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage2/on_lose()
+ REMOVE_TRAIT(owner, TRAIT_UNINTELLIGIBLE_SPEECH, TRAUMA_TRAIT)
+ ..()
+
+/datum/brain_trauma/mild/monoxide_poisoning_stage2/on_life()
+ if(prob(5))
+ switch(rand(1,11))
+ if(1)
+ owner.vomit()
+ if(2,3)
+ owner.dizziness += 10
+ if(4,5)
+ owner.confused += 10
+ owner.blur_eyes(10)
+ if(6 to 9)
+ owner.slurring += 30
+ if(10)
+ to_chat(owner, "You forget what you were doing.")
+ owner.Stun(20)
+ if(11)
+ to_chat(owner, "You faint.")
+ owner.Unconscious(80)
+
+ ..()
diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm
index cbb7df599326..9529cd19567a 100644
--- a/code/datums/cinematic.dm
+++ b/code/datums/cinematic.dm
@@ -182,47 +182,6 @@
special()
screen.icon_state = "summary_malf"
-/datum/cinematic/cult
- id = CINEMATIC_CULT
-
-/datum/cinematic/cult/content()
- screen.icon_state = null
- flick("intro_cult",screen)
- sleep(25)
- cinematic_sound(sound('sound/magic/enter_blood.ogg'))
- sleep(28)
- cinematic_sound(sound('sound/machines/terminal_off.ogg'))
- sleep(20)
- flick("station_corrupted",screen)
- cinematic_sound(sound('sound/effects/ghost.ogg'))
- sleep(70)
- special()
-
-/datum/cinematic/cult_nuke
- id = CINEMATIC_CULT_NUKE
-
-/datum/cinematic/cult_nuke/content()
- flick("intro_nuke",screen)
- sleep(35)
- flick("station_explode_fade_red",screen)
- cinematic_sound(sound('sound/effects/explosion_distant.ogg'))
- special()
- screen.icon_state = "summary_cult"
-
-/datum/cinematic/cult_fail
- id = CINEMATIC_CULT_FAIL
-
-/datum/cinematic/cult_fail/content()
- screen.icon_state = "station_intact"
- sleep(20)
- cinematic_sound(sound('sound/creatures/narsie_rises.ogg'))
- sleep(60)
- cinematic_sound(sound('sound/effects/explosion_distant.ogg'))
- sleep(10)
- cinematic_sound(sound('sound/magic/demon_dies.ogg'))
- sleep(30)
- special()
-
/datum/cinematic/nuke_annihilation
id = CINEMATIC_ANNIHILATION
@@ -274,15 +233,3 @@
cinematic_sound(sound('sound/items/airhorn.ogg'))
flick("summary_selfdes",screen) //???
special()
-
-/* Intended usage.
-Nuke.Explosion()
- -> Cinematic(NUKE_BOOM,world)
- -> ActualExplosion()
- -> Mode.OnExplosion()
-
-
-Narsie()
- -> Cinematic(CULT,world)
-*/
-
diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm
index 6c15d00869f2..695b6519f9c7 100644
--- a/code/datums/components/_component.dm
+++ b/code/datums/components/_component.dm
@@ -364,17 +364,17 @@
*/
/datum/proc/GetExactComponent(datum/component/c_type)
RETURN_TYPE(c_type)
- if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE)
+ var/initial_type_mode = initial(c_type.dupe_mode)
+ if(initial_type_mode == COMPONENT_DUPE_ALLOWED || initial_type_mode == COMPONENT_DUPE_SELECTIVE)
stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]")
- var/list/dc = datum_components
- if(!dc)
+ var/list/all_components = datum_components
+ if(!all_components)
return null
- var/datum/component/C = dc[c_type]
- if(C)
- if(length(C))
- C = C[1]
- if(C.type == c_type)
- return C
+ var/datum/component/potential_component
+ if(length(all_components))
+ potential_component = all_components[c_type]
+ if(potential_component?.type == c_type)
+ return potential_component
return null
/**
diff --git a/code/datums/components/admin_popup.dm b/code/datums/components/admin_popup.dm
index 88ef0d97fabf..98d0eccfbf2a 100644
--- a/code/datums/components/admin_popup.dm
+++ b/code/datums/components/admin_popup.dm
@@ -26,7 +26,7 @@
PROC_REF(delete_self),
)
-/datum/component/admin_popup/Destroy(force, silent)
+/datum/component/admin_popup/Destroy(force)
var/client/parent_client = parent
parent_client?.screen -= admin_popup
diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium.dm
index da8c3afeb531..37a38f7849e6 100644
--- a/code/datums/components/aquarium.dm
+++ b/code/datums/components/aquarium.dm
@@ -136,7 +136,7 @@
. = ..()
REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, REF(src))
-/datum/component/aquarium_content/Destroy(force, silent)
+/datum/component/aquarium_content/Destroy(force)
if(current_aquarium)
remove_from_aquarium()
QDEL_NULL(vc_obj)
diff --git a/code/datums/components/attachment.dm b/code/datums/components/attachment.dm
index 01e3abedd80b..5c4274efbe3e 100644
--- a/code/datums/components/attachment.dm
+++ b/code/datums/components/attachment.dm
@@ -52,7 +52,7 @@
for(var/signal in signals)
RegisterSignal(parent, signal, signals[signal])
-/datum/component/attachment/Destroy(force, silent)
+/datum/component/attachment/Destroy(force)
REMOVE_TRAIT(parent, TRAIT_ATTACHABLE, "attachable")
if(actions && length(actions))
var/obj/item/gun/parent = src.parent
@@ -76,9 +76,15 @@
parent.attack_self(user)
return TRUE
-/datum/component/attachment/proc/update_overlays(obj/item/parent, list/overlays, list/offset)
+/datum/component/attachment/proc/update_overlays(obj/item/attachment/parent, list/overlays, list/offset)
if(!(attach_features_flags & ATTACH_NO_SPRITE))
- overlays += mutable_appearance(parent.icon, "[parent.icon_state]-attached")
+ var/overlay_layer = FLOAT_LAYER
+ var/overlay_plane = FLOAT_PLANE
+ if(parent.render_layer)
+ overlay_layer = parent.render_layer
+ if(parent.render_plane)
+ overlay_layer = parent.render_plane
+ overlays += mutable_appearance(parent.icon, "[parent.icon_state]-attached",overlay_layer,overlay_plane)
/datum/component/attachment/proc/try_attach(obj/item/parent, obj/item/holder, mob/user, bypass_checks)
SIGNAL_HANDLER
diff --git a/code/datums/components/attachment_holder.dm b/code/datums/components/attachment_holder.dm
index 82968a17604b..f83a55eb201a 100644
--- a/code/datums/components/attachment_holder.dm
+++ b/code/datums/components/attachment_holder.dm
@@ -57,7 +57,7 @@
SIGNAL_HANDLER
qdel(src)
-/datum/component/attachment_holder/Destroy(force, silent)
+/datum/component/attachment_holder/Destroy(force)
QDEL_LIST(attachments)
attachments = null
return ..()
diff --git a/code/datums/components/bandage.dm b/code/datums/components/bandage.dm
index 16f6a2f0b059..05a31ec4ee32 100644
--- a/code/datums/components/bandage.dm
+++ b/code/datums/components/bandage.dm
@@ -41,7 +41,7 @@
SIGNAL_HANDLER
var/obj/item/bodypart/heal_target = parent
- lifespan -= 1 + heal_target.bleeding // particularly nasty bleeding can burn through dressing faster
+ lifespan--
heal_target.adjust_bleeding(-bleed_reduction)
if(lifespan <= 0 || !heal_target.bleeding) //remove treatment once it's no longer able to treat
drop_bandage(TRUE)
diff --git a/code/datums/components/bloodysoles.dm b/code/datums/components/bloodysoles.dm
index 03afc96182dc..2619af5496f2 100644
--- a/code/datums/components/bloodysoles.dm
+++ b/code/datums/components/bloodysoles.dm
@@ -213,16 +213,20 @@ Like its parent but can be applied to carbon mobs instead of clothing items
*/
/datum/component/bloodysoles/feet
- var/static/mutable_appearance/bloody_feet
+ var/mutable_appearance/bloody_feet
/datum/component/bloodysoles/feet/Initialize()
if(!iscarbon(parent))
return COMPONENT_INCOMPATIBLE
parent_atom = parent
wielder = parent
-
if(!bloody_feet)
- bloody_feet = mutable_appearance('icons/effects/blood.dmi', "shoeblood", SHOES_LAYER)
+ var/overlay_file = 'icons/effects/blood.dmi'
+ var/mob/living/carbon/parent_carbon = parent_atom
+ var/custom_overlay_icon = parent_carbon.dna.species.custom_overlay_icon
+ if(custom_overlay_icon)
+ overlay_file = custom_overlay_icon
+ bloody_feet = mutable_appearance(overlay_file, "shoeblood", SHOES_LAYER)
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean))
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
diff --git a/code/datums/components/cell_component.dm b/code/datums/components/cell_component.dm
new file mode 100644
index 000000000000..6855e667f431
--- /dev/null
+++ b/code/datums/components/cell_component.dm
@@ -0,0 +1,195 @@
+/*
+CELL COMPONENT
+
+What we aim to achieve with cell components is a universal framework for all items that would logically use batteries,
+Be it a flashlight, T-ray scanner or multitool. All of them would logically require batteries right? Well, welcome,
+to the cell component.
+
+General logic:
+Component attaches to parent(flashlight etc)
+Registers onhit signal to check if it's being slapped by a battery
+Component moves battery to equipment loc, keeps a record, and then communicates with
+the equipment and controls the behaviour of said equipment.
+
+If you are adding this to an item that is active for a period of time, register signal to COMSIG_CELL_START_USE when it would start using the cell
+and COMSIG_CELL_STOP_USE when it should stop. To handle the turning off of said item once the cell is depleted, add your code into the
+component_cell_out_of_charge/component_cell_removed proc using loc where necessary, processing is done in the component!
+
+The cells are removed from objects with the component through alt-click.
+*/
+
+/datum/component/cell
+ /// Our reference to the inserted cell, which will be stored in the parent.
+ var/obj/item/stock_parts/cell/inserted_cell
+ /// The item reference to parent.
+ var/obj/item/equipment
+ /// How much power do we use each process?
+ var/power_use_amount = POWER_CELL_USE_NORMAL
+ /// Callback interaction for when the cell is removed.
+ var/datum/callback/on_cell_removed = null
+ ///Can this cell be removed from the parent?
+ var/cell_can_be_removed = TRUE
+ ///Our reference to the cell overlay
+ var/mutable_appearance/cell_overlay = null
+ ///Do we have cell overlays to be applied?
+ var/has_cell_overlays
+
+/datum/component/cell/Initialize(cell_override, _on_cell_removed, _power_use_amount, start_with_cell = TRUE, _cell_can_be_removed, _has_cell_overlays = TRUE)
+ if(QDELETED(parent))
+ qdel(src)
+ return
+
+ if(!isitem(parent)) //Currently only compatable with items.
+ return COMPONENT_INCOMPATIBLE
+
+ equipment = parent //We'd like a simple reference to the atom this component is attached to instead of having to declare it every time we use it.
+
+ if(_on_cell_removed)
+ src.on_cell_removed = _on_cell_removed
+
+ has_cell_overlays = _has_cell_overlays
+
+ if(_power_use_amount)
+ power_use_amount = _power_use_amount
+ else
+ power_use_amount = equipment.power_use_amount
+
+ if(_cell_can_be_removed)
+ cell_can_be_removed = _cell_can_be_removed
+
+ if(start_with_cell)
+ var/obj/item/stock_parts/cell/new_cell
+ if(!cell_override)
+ new_cell = new /obj/item/stock_parts/cell/upgraded()
+ else
+ new_cell = new cell_override()
+ inserted_cell = new_cell
+ new_cell.forceMove(parent) //We use the parents location so things like EMP's can interact with the cell.
+
+ handle_cell_overlays()
+ return ..()
+
+/datum/component/cell/RegisterWithParent()
+ //Component to Parent signal registries
+ RegisterSignal(parent, COMSIG_ITEM_POWER_USE, PROC_REF(simple_power_use))
+ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(insert_cell))
+ RegisterSignal(parent, COMSIG_CLICK_ALT , PROC_REF(remove_cell))
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(examine_cell))
+
+/datum/component/cell/UnregisterFromParent()
+ UnregisterSignal(parent, COMSIG_ITEM_POWER_USE)
+ UnregisterSignal(parent, COMSIG_PARENT_ATTACKBY)
+ UnregisterSignal(parent, COMSIG_CLICK_ALT)
+ UnregisterSignal(parent, COMSIG_PARENT_EXAMINE)
+
+/datum/component/cell/Destroy(force)
+
+ if(on_cell_removed)
+ on_cell_removed = null
+
+ if(inserted_cell)
+ QDEL_NULL(inserted_cell)
+ inserted_cell = null
+ return ..()
+
+/**
+ * The basic way of processing the cell, with included feedback.
+ *
+ * This proc is the basic way of processing the cell, with included feedback.
+ * It will return a bitflag if it failed to use the power, or COMPONENT_POWER_SUCCESS if it succeeds.
+ * Arguments:
+ * * use_amount - an override
+ * * check_only - will only return if it can use the cell and feedback relating to that including any relevant detail
+ */
+/datum/component/cell/proc/simple_power_use(datum/source, use_amount, mob/user, check_only)
+ SIGNAL_HANDLER
+
+ if(!use_amount)
+ use_amount = power_use_amount
+
+ if(!inserted_cell)
+ if(user)
+ to_chat(user, span_danger("There is no cell inside [equipment]"))
+ return COMPONENT_NO_CELL
+
+ if(check_only && inserted_cell.charge < use_amount)
+ if(user)
+ to_chat(user, span_danger("The cell inside [equipment] does not have enough charge to perform this action!"))
+ return COMPONENT_NO_CHARGE
+
+ if(!inserted_cell.use(use_amount))
+ inserted_cell.update_appearance() //Updates the attached cell sprite - Why does this not happen in cell.use?
+ if(user)
+ to_chat(user, span_danger("The cell inside [equipment] does not have enough charge to perform this action!"))
+ return COMPONENT_NO_CHARGE
+
+ inserted_cell.update_appearance()
+
+ return COMPONENT_POWER_SUCCESS
+
+/datum/component/cell/proc/examine_cell(atom/A, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+
+ if(!inserted_cell)
+ examine_list += span_danger("It does not have a cell inserted!")
+ else
+ examine_list += span_notice("It has a [inserted_cell] inserted. \
+ The cell has [inserted_cell.percent()]% charge remaining. \
+ Alt-click to remove the cell.")
+
+/// Handling of cell removal.
+/datum/component/cell/proc/remove_cell(datum/source, mob/user)
+ SIGNAL_HANDLER
+ if(!equipment.can_interact(user))
+ return
+
+ if(!cell_can_be_removed)
+ return
+
+ if(!isliving(user))
+ return
+
+ if(inserted_cell)
+ to_chat(user, span_notice("You remove [inserted_cell] from [equipment]."))
+ playsound(equipment, 'sound/weapons/magout.ogg', 40, TRUE)
+ inserted_cell.forceMove(get_turf(equipment))
+ INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living, put_in_hands), inserted_cell)
+ inserted_cell = null
+ if(on_cell_removed)
+ on_cell_removed.Invoke()
+ handle_cell_overlays(TRUE)
+ else
+ to_chat(user, span_danger("There is no cell in [equipment]!"))
+
+/// Handling of cell insertion.
+/datum/component/cell/proc/insert_cell(datum/source, obj/item/inserting_item, mob/living/user, params)
+ SIGNAL_HANDLER
+ if(!equipment.can_interact(user))
+ return
+
+ if(!istype(inserting_item, /obj/item/stock_parts/cell))
+ return
+
+ if(inserted_cell) //No quickswap compatibility
+ to_chat(user, span_danger("There is already a cell in [equipment]!"))
+ return
+
+ to_chat(user, span_notice("You connect [inserting_item] onto [equipment]."))
+ playsound(equipment, 'sound/weapons/magin.ogg', 40, TRUE)
+ inserted_cell = inserting_item
+ inserting_item.forceMove(parent)
+ handle_cell_overlays(FALSE)
+
+/datum/component/cell/proc/handle_cell_overlays(update_overlays)
+ if(!has_cell_overlays)
+ return
+
+ if(inserted_cell)
+ cell_overlay = mutable_appearance(equipment.icon, "[initial(equipment.icon_state)]_cell")
+ equipment.add_overlay(cell_overlay)
+ else
+ QDEL_NULL(cell_overlay)
+ cell_overlay = null
+ if(update_overlays)
+ equipment.overlays.Cut()
+ equipment.update_overlays()
diff --git a/code/datums/components/crafting/recipes/weapon.dm b/code/datums/components/crafting/recipes/weapon.dm
index 6783c60c6c6b..039ff4fa486b 100644
--- a/code/datums/components/crafting/recipes/weapon.dm
+++ b/code/datums/components/crafting/recipes/weapon.dm
@@ -26,7 +26,7 @@
/datum/crafting_recipe/molotov
name = "Molotov"
- result = /obj/item/reagent_containers/food/drinks/bottle/molotov
+ result = /obj/item/reagent_containers/food/drinks/molotov
reqs = list(/obj/item/reagent_containers/glass/rag = 1,
/obj/item/reagent_containers/food/drinks/bottle = 1)
parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1)
diff --git a/code/datums/components/creamed.dm b/code/datums/components/creamed.dm
index 019bb7362bd2..c2cf5d07a28e 100644
--- a/code/datums/components/creamed.dm
+++ b/code/datums/components/creamed.dm
@@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(creamable, typecacheof(list(
var/atom/A = parent
A.add_overlay(creamface)
-/datum/component/creamed/Destroy(force, silent)
+/datum/component/creamed/Destroy(force)
var/atom/A = parent
A.cut_overlay(creamface)
qdel(creamface)
diff --git a/code/datums/components/deadchat_control.dm b/code/datums/components/deadchat_control.dm
index f34960db1072..6030214bf8b7 100644
--- a/code/datums/components/deadchat_control.dm
+++ b/code/datums/components/deadchat_control.dm
@@ -24,7 +24,7 @@
notify_ghosts("[parent] is now deadchat controllable!", source = parent, action = NOTIFY_ORBIT, header="Something Interesting!")
-/datum/component/deadchat_control/Destroy(force, silent)
+/datum/component/deadchat_control/Destroy(force)
inputs = null
orbiters = null
ckey_to_cooldown = null
diff --git a/code/datums/components/dejavu.dm b/code/datums/components/dejavu.dm
deleted file mode 100644
index b2a2cddf9c9b..000000000000
--- a/code/datums/components/dejavu.dm
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * A component to reset the parent to its previous state after some time passes
- */
-/datum/component/dejavu
- /// The turf the parent was on when this components was applied, they get moved back here after the duration
- var/turf/starting_turf
- /// Determined by the type of the parent so different behaviours can happen per type
- var/rewind_type
- /// How many rewinds will happen before the effect ends
- var/rewinds_remaining
- /// How long to wait between each rewind
- var/rewind_interval
-
- /// The starting value of clone loss at the beginning of the effect
- var/clone_loss = 0
- /// The starting value of toxin loss at the beginning of the effect
- var/tox_loss = 0
- /// The starting value of oxygen loss at the beginning of the effect
- var/oxy_loss = 0
- /// The starting value of brain loss at the beginning of the effect
- var/brain_loss = 0
- /// The starting value of brute loss at the beginning of the effect
- /// This only applies to simple animals
- var/brute_loss
- /// The starting value of integrity at the beginning of the effect
- /// This only applies to objects
- var/integrity
- /// 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)
- if(!isatom(parent))
- return COMPONENT_INCOMPATIBLE
-
- starting_turf = get_turf(parent)
- rewinds_remaining = rewinds
- rewind_interval = interval
-
- if(isliving(parent))
- var/mob/living/L = parent
- clone_loss = L.getCloneLoss()
- tox_loss = L.getToxLoss()
- oxy_loss = L.getOxyLoss()
- brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN)
- rewind_type = PROC_REF(rewind_living)
-
- if(iscarbon(parent))
- var/mob/living/carbon/C = parent
- saved_bodyparts = C.save_bodyparts()
- rewind_type = PROC_REF(rewind_carbon)
-
- else if(isanimal(parent))
- var/mob/living/simple_animal/M = parent
- brute_loss = M.bruteloss
- rewind_type = PROC_REF(rewind_animal)
-
- else if(isobj(parent))
- var/obj/O = parent
- integrity = O.obj_integrity
- rewind_type = PROC_REF(rewind_obj)
-
- addtimer(CALLBACK(src, rewind_type), rewind_interval)
-
-/datum/component/dejavu/Destroy()
- starting_turf = null
- saved_bodyparts = null
- return ..()
-
-/datum/component/dejavu/proc/rewind()
- to_chat(parent, "You remember a time not so long ago...")
-
- //comes after healing so new limbs comically drop to the floor
- if(starting_turf)
- var/atom/movable/master = parent
- master.forceMove(starting_turf)
-
- rewinds_remaining --
- if(rewinds_remaining)
- addtimer(CALLBACK(src, rewind_type), rewind_interval)
- else
- to_chat(parent, "But the memory falls out of your reach.")
- qdel(src)
-
-/datum/component/dejavu/proc/rewind_living()
- var/mob/living/master = parent
- master.setCloneLoss(clone_loss)
- master.setToxLoss(tox_loss)
- master.setOxyLoss(oxy_loss)
- master.setOrganLoss(ORGAN_SLOT_BRAIN, brain_loss)
- rewind()
-
-/datum/component/dejavu/proc/rewind_carbon()
- if(saved_bodyparts)
- var/mob/living/carbon/master = parent
- master.apply_saved_bodyparts(saved_bodyparts)
- rewind_living()
-
-/datum/component/dejavu/proc/rewind_animal()
- var/mob/living/simple_animal/master = parent
- master.bruteloss = brute_loss
- master.updatehealth()
- rewind_living()
-
-/datum/component/dejavu/proc/rewind_obj()
- var/obj/master = parent
- master.obj_integrity = integrity
- rewind()
diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm
index ee789d3f9829..13c21c2c8f29 100644
--- a/code/datums/components/embedded.dm
+++ b/code/datums/components/embedded.dm
@@ -164,7 +164,10 @@
if(harmful && prob(chance))
var/damage = weapon.w_class * jostle_pain_mult
limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage)
- to_chat(victim, "[weapon] embedded in your [limb.name] jostles and stings!")
+ if(HAS_TRAIT(victim, TRAIT_ANALGESIA))
+ to_chat(victim, span_notice("[weapon] embedded in your [limb.name] shifts around."))
+ return
+ to_chat(victim, span_userdanger("[weapon] embedded in your [limb.name] jostles and stings!"))
/// Called when then item randomly falls out of a carbon. This handles the damage and descriptors, then calls safe_remove()
@@ -205,7 +208,7 @@
if(harmful)
var/damage = weapon.w_class * remove_pain_mult
limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) //It hurts to rip it out, get surgery you dingus.
- victim.emote("scream")
+ victim.force_scream()
victim.visible_message("[victim] successfully rips [weapon] out of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].")
else
victim.visible_message("[victim] successfully rips [weapon] off of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].")
diff --git a/code/datums/components/fantasy/_fantasy.dm b/code/datums/components/fantasy/_fantasy.dm
index 92bd0868a746..6941f6c169b4 100644
--- a/code/datums/components/fantasy/_fantasy.dm
+++ b/code/datums/components/fantasy/_fantasy.dm
@@ -75,7 +75,7 @@
var/usedSlots = NONE
for(var/i in 1 to max(1, abs(quality))) // We want at least 1 affix applied
- var/datum/fantasy_affix/affix = pickweight(affixListing)
+ var/datum/fantasy_affix/affix = pick_weight(affixListing)
if(affix.placement & usedSlots)
continue
if(!(affix.alignment & alignment))
diff --git a/code/datums/components/fantasy/suffixes.dm b/code/datums/components/fantasy/suffixes.dm
index 8cabee42d21c..89a26ca60f7f 100644
--- a/code/datums/components/fantasy/suffixes.dm
+++ b/code/datums/components/fantasy/suffixes.dm
@@ -128,17 +128,15 @@
/obj/projectile/meteor = 1,
/obj/projectile/energy/nuclear_particle = 1,
/obj/projectile/beam/pulse = 1,
- /obj/projectile/bullet/honker = 15,
/obj/projectile/temp = 15,
/obj/projectile/ion = 15,
/obj/projectile/beam/emitter = 15,
/obj/projectile/energy/net = 15,
- /obj/projectile/bullet/incendiary/c9mm = 15,
/obj/projectile/temp/hot = 15,
/obj/projectile/beam/disabler = 15
)
- var/obj/projectile/picked_projectiletype = pickweight(weighted_projectile_types)
+ var/obj/projectile/picked_projectiletype = pick_weight(weighted_projectile_types)
var/obj/item/master = comp.parent
comp.appliedComponents += master.AddComponent(/datum/component/mirv, picked_projectiletype)
diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm
index cde77f969911..f5129fb761b1 100644
--- a/code/datums/components/food/edible.dm
+++ b/code/datums/components/food/edible.dm
@@ -142,7 +142,7 @@ Behavior that's still missing from this component that original food items had t
src.after_eat = after_eat
src.on_consume = on_consume
-/datum/component/edible/Destroy(force, silent)
+/datum/component/edible/Destroy(force)
QDEL_NULL(pre_eat)
QDEL_NULL(on_compost)
QDEL_NULL(after_eat)
@@ -153,9 +153,9 @@ Behavior that's still missing from this component that original food items had t
SIGNAL_HANDLER
if(!(food_flags & FOOD_IN_CONTAINER))
- switch (bitecount)
- if (0)
- return
+ switch(bitecount)
+ if(0)
+ EMPTY_BLOCK_GUARD
if(1)
examine_list += "[parent] was bitten by someone!"
if(2,3)
diff --git a/code/datums/components/food/food_storage.dm b/code/datums/components/food/food_storage.dm
index 259ef4a8b6c6..6bc3641711b3 100644
--- a/code/datums/components/food/food_storage.dm
+++ b/code/datums/components/food/food_storage.dm
@@ -29,7 +29,7 @@
bad_chance_of_discovery = _bad_chance
good_chance_of_discovery = _good_chance
-/datum/component/food_storage/Destroy(force, silent)
+/datum/component/food_storage/Destroy(force)
if(stored_item)
stored_item.forceMove(stored_item.drop_location())
stored_item.dropped()
diff --git a/code/datums/components/forensics.dm b/code/datums/components/forensics.dm
index 6f2a34e50ea5..4ef12e5bf93f 100644
--- a/code/datums/components/forensics.dm
+++ b/code/datums/components/forensics.dm
@@ -190,6 +190,9 @@
return
if(!length(blood_DNA))
return
- if(isitem(parent))
- var/obj/item/I = parent
- I.AddElement(/datum/element/decal/blood, I.icon, I.icon_state, _color = get_blood_dna_color(blood_DNA))
+ var/obj/item/parent_item = parent
+ var/icon_state_adj = parent_item.icon_state
+ if(isbodypart(parent))//betterlimbs moment
+ var/obj/item/bodypart/parent_part = parent
+ icon_state_adj = parent_part.stored_icon_state
+ parent_item.AddElement(/datum/element/decal/blood, parent_item.icon, icon_state_adj, _color = get_blood_dna_color(blood_DNA))
diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm
index 85701e9c7626..ab7b1e641410 100644
--- a/code/datums/components/gunpoint.dm
+++ b/code/datums/components/gunpoint.dm
@@ -46,7 +46,7 @@
addtimer(CALLBACK(src, PROC_REF(update_stage), 2), GUNPOINT_DELAY_STAGE_2)
-/datum/component/gunpoint/Destroy(force, silent)
+/datum/component/gunpoint/Destroy(force)
var/mob/living/shooter = parent
shooter.remove_status_effect(STATUS_EFFECT_HOLDUP)
target.remove_status_effect(STATUS_EFFECT_HELDUP)
diff --git a/code/datums/components/manual_blinking.dm b/code/datums/components/manual_blinking.dm
index d97e88ca8fe9..e33d5f558d81 100644
--- a/code/datums/components/manual_blinking.dm
+++ b/code/datums/components/manual_blinking.dm
@@ -22,7 +22,7 @@
last_blink = world.time
to_chat(C, "You suddenly realize you're blinking manually.")
-/datum/component/manual_blinking/Destroy(force, silent)
+/datum/component/manual_blinking/Destroy(force)
E = null
STOP_PROCESSING(SSdcs, src)
to_chat(parent, "You revert back to automatic blinking.")
diff --git a/code/datums/components/manual_breathing.dm b/code/datums/components/manual_breathing.dm
index bcae15536ca7..882887f0ccc5 100644
--- a/code/datums/components/manual_breathing.dm
+++ b/code/datums/components/manual_breathing.dm
@@ -22,7 +22,7 @@
last_breath = world.time
to_chat(C, "You suddenly realize you're breathing manually.")
-/datum/component/manual_breathing/Destroy(force, silent)
+/datum/component/manual_breathing/Destroy(force)
L = null
STOP_PROCESSING(SSdcs, src)
to_chat(parent, "You revert back to automatic breathing.")
diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm
index a1cc816fc5f0..58fe88b13bb1 100644
--- a/code/datums/components/material_container.dm
+++ b/code/datums/components/material_container.dm
@@ -80,6 +80,9 @@
if(!has_space(material_amount))
to_chat(user, "[parent] is full. Please remove materials from [parent] in order to insert more.")
return
+ if(I.contents.len && !istype(I, /obj/item/stack) && !istype(I, /obj/item/ammo_box/magazine/ammo_stack))
+ to_chat(user, span_warning("[I] has items inside of it. Please remove them before inserting it."))
+ return
user_insert(I, user)
/// Proc used for when player inserts materials
diff --git a/code/datums/components/melee/charged.dm b/code/datums/components/melee/charged.dm
new file mode 100644
index 000000000000..2319977a4a0d
--- /dev/null
+++ b/code/datums/components/melee/charged.dm
@@ -0,0 +1,127 @@
+/*
+ * Charged weapon component. For weapons that swap between states but require a cell for function.
+ * For example: Stun batons.
+ *
+ * Used to easily make an item that can be attack_self'd to gain force or change mode.
+ *
+ * Only values passed on initialize will update when the item is activated (except the icon_state).
+ * The icon_state of the item will swap between "[icon_state]" and "[icon_state]_on".
+ */
+/datum/component/transforming/charged
+ var/obj/item/stock_parts/cell/cell
+ var/allowed_cells
+ var/preload_cell_type
+ var/cell_hit_cost
+ var/can_remove_cell
+ var/no_cell_icon
+
+/datum/component/transforming/charged/Initialize(
+ start_transformed = FALSE,
+ transform_cooldown_time = 0 SECONDS,
+ force_on = 0,
+ throwforce_on = 0,
+ throw_speed_on = 2,
+ sharpness_on = NONE,
+ hitsound_on = 'sound/weapons/blade1.ogg',
+ w_class_on = WEIGHT_CLASS_BULKY,
+ list/attack_verb_on,
+ inhand_icon_change = TRUE,
+ _allowed_cells = list(),
+ _preload_cell_type = /obj/item/stock_parts/cell,
+ _cell_hit_cost = 1000,
+ _can_remove_cell = FALSE,
+ _no_cell_icon = FALSE
+)
+ . = ..()
+
+ allowed_cells = _allowed_cells
+ preload_cell_type = _preload_cell_type
+ cell_hit_cost = _cell_hit_cost
+ can_remove_cell = _can_remove_cell
+ no_cell_icon = _no_cell_icon
+
+ if(preload_cell_type in allowed_cells)
+ cell = new preload_cell_type(parent)
+
+/datum/component/transforming/charged/RegisterWithParent()
+ . = ..()
+ RegisterSignal(parent, COMSIG_ATOM_SCREWDRIVER_ACT, PROC_REF(on_screwdriver_act))
+ RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, PROC_REF(on_attackby))
+ RegisterSignal(parent, COMSIG_PARENT_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(parent, COMSIG_ITEM_USE_CELL, PROC_REF(deduct_charge))
+
+/datum/component/transforming/charged/Destroy(force, silent)
+ if(cell)
+ QDEL_NULL(cell)
+ . = ..()
+
+/datum/component/transforming/charged/on_attack_self(obj/item/source, mob/user)
+ if(cell && cell.charge > cell_hit_cost)
+ return ..()
+ else
+ set_inactive(source)
+ if(!cell)
+ to_chat(user, span_warning("[source] does not have a power source!"))
+ else
+ to_chat(user, span_warning("[source] is out of charge."))
+
+/datum/component/transforming/charged/proc/on_screwdriver_act(obj/item/source, mob/user, obj/item/screwdriver)
+ if(cell && can_remove_cell)
+ cell.update_appearance()
+ cell.forceMove(get_turf(parent))
+ cell = null
+ to_chat(user, span_notice("You remove the cell from [parent]."))
+ set_inactive(source)
+ source.update_appearance()
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+/datum/component/transforming/charged/proc/on_attackby(obj/item/source, obj/item/attacking_item, mob/user, params)
+ SIGNAL_HANDLER
+
+ if(attacking_item.type in allowed_cells)
+ var/obj/item/stock_parts/cell/attacking_cell = attacking_item
+ if(cell)
+ to_chat(user, span_notice("[parent] already has a cell!"))
+ else
+ if(attacking_cell.maxcharge < cell_hit_cost)
+ to_chat(user, span_notice("[parent] requires a higher capacity cell."))
+ return
+ if(!user.transferItemToLoc(attacking_item, parent))
+ return
+ cell = attacking_item
+ to_chat(user, span_notice("You install a cell in [parent]."))
+ source.update_appearance()
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+/datum/component/transforming/charged/proc/on_examine(obj/item/source, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+
+ if(cell)
+ examine_list += span_notice("\The [source] is [round(cell.percent())]% charged.")
+ else
+ examine_list += span_warning("\The [source] does not have a power source installed.")
+
+/datum/component/transforming/charged/proc/deduct_charge(obj/item/source)
+ SIGNAL_HANDLER
+ if(cell)
+ . = cell.use(cell_hit_cost)
+ if(active && cell.charge < cell_hit_cost)
+ playsound(src, SFX_SPARKS, 75, TRUE, -1)
+ set_inactive(source)
+
+/datum/component/transforming/charged/proc/set_active_state(active_state = -1)
+ switch(active_state)
+ //We didnt pass a specific state to set it to so just toggle it
+ if(-1)
+ toggle_active(parent)
+ if(FALSE)
+ set_inactive(parent)
+ if(TRUE)
+ set_active(parent)
+
+/datum/component/transforming/charged/set_inactive(obj/item/source)
+ . = ..()
+ if(!cell)
+ source.icon_state = "[initial(source.icon_state)]_nocell"
+ source.item_state = "[initial(source.icon_state)]_nocell"
+ source.update_appearance()
diff --git a/code/datums/components/melee/transforming.dm b/code/datums/components/melee/transforming.dm
new file mode 100644
index 000000000000..744d75de34b3
--- /dev/null
+++ b/code/datums/components/melee/transforming.dm
@@ -0,0 +1,236 @@
+/*
+ * Transforming weapon component. For weapons that swap between states.
+ * For example: Energy swords, cleaving saws, switch blades.
+ *
+ * Used to easily make an item that can be attack_self'd to gain force or change mode.
+ *
+ * Only values passed on initialize will update when the item is activated (except the icon_state).
+ * The icon_state of the item will swap between "[icon_state]" and "[icon_state]_on".
+ */
+/datum/component/transforming
+ /// Whether the weapon is transformed
+ var/active = FALSE
+ /// Cooldown on transforming this item back and forth
+ var/transform_cooldown_time
+ /// Force of the weapon when active
+ var/force_on
+ /// Throwforce of the weapon when active
+ var/throwforce_on
+ /// Throw speed of the weapon when active
+ var/throw_speed_on
+ /// Weight class of the weapon when active
+ var/w_class_on
+ /// The sharpness of the weapon when active
+ var/sharpness_on
+ /// Hitsound played when active
+ var/hitsound_on
+ /// List of the original attack verbs the item has.
+ var/list/attack_verb_off
+ /// List of attack verbs used when the weapon is enabled
+ var/list/attack_verb_on
+ /// If we get sharpened with a whetstone, save the bonus here for later use if we un/redeploy
+ var/sharpened_bonus = 0
+ /// Dictate whether we change inhands or not
+ var/inhand_icon_change = TRUE
+ /// Cooldown in between transforms
+ COOLDOWN_DECLARE(transform_cooldown)
+
+/datum/component/transforming/Initialize(
+ start_transformed = FALSE,
+ transform_cooldown_time = 0 SECONDS,
+ force_on = 0,
+ throwforce_on = 0,
+ throw_speed_on = 2,
+ sharpness_on = NONE,
+ hitsound_on = 'sound/weapons/blade1.ogg',
+ w_class_on = WEIGHT_CLASS_BULKY,
+ list/attack_verb_on,
+ inhand_icon_change = TRUE,
+)
+
+ if(!isitem(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ var/obj/item/item_parent = parent
+
+ src.transform_cooldown_time = transform_cooldown_time
+ src.force_on = force_on
+ src.throwforce_on = throwforce_on
+ src.throw_speed_on = throw_speed_on
+ src.sharpness_on = sharpness_on
+ src.hitsound_on = hitsound_on
+ src.w_class_on = w_class_on
+ src.inhand_icon_change = inhand_icon_change
+
+ if(attack_verb_on)
+ src.attack_verb_on = attack_verb_on
+ attack_verb_off = item_parent.attack_verb
+
+ if(start_transformed)
+ toggle_active(parent)
+
+/datum/component/transforming/RegisterWithParent()
+ var/obj/item/item_parent = parent
+
+ RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self))
+ RegisterSignal(parent, COMSIG_ITEM_FORCE_TRANSFORM, PROC_REF(force_transform))
+ if(item_parent.sharpness || sharpness_on)
+ RegisterSignal(parent, COMSIG_ITEM_SHARPEN_ACT, PROC_REF(on_sharpen))
+
+
+/datum/component/transforming/UnregisterFromParent()
+ UnregisterSignal(parent, list(COMSIG_ITEM_ATTACK_SELF, COMSIG_ITEM_SHARPEN_ACT))
+
+/*
+ * Called on [COMSIG_ITEM_ATTACK_SELF].
+ *
+ * Check if we can transform our weapon, and if so, call [do_transform].
+ * Sends signal [COMSIG_TRANSFORMING_PRE_TRANSFORM], and stops the transform action if it returns [COMPONENT_BLOCK_TRANSFORM].
+ *
+ * source - source of the signal, the item being transformed / parent
+ * user - the mob transforming the weapon
+ */
+/datum/component/transforming/proc/on_attack_self(obj/item/source, mob/user)
+ SIGNAL_HANDLER
+
+ if(!COOLDOWN_FINISHED(src, transform_cooldown))
+ to_chat(user, span_warning("Wait a bit before trying to use [source] again!"))
+ return
+
+ if(SEND_SIGNAL(source, COMSIG_TRANSFORMING_PRE_TRANSFORM, user, active) & COMPONENT_BLOCK_TRANSFORM)
+ return
+
+ if(do_transform(source, user))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+/*
+ * Transform the weapon into its alternate form, calling [toggle_active].
+ *
+ * Sends signal [COMSIG_TRANSFORMING_ON_TRANSFORM], and calls [default_transform_message] if it does not return [COMPONENT_NO_DEFAULT_MESSAGE].
+ * Also starts the [transform_cooldown] if we have a set [transform_cooldown_time].
+ *
+ * source - the item being transformed / parent
+ * user - the mob transforming the item
+ *
+ * returns TRUE.
+ */
+/datum/component/transforming/proc/do_transform(obj/item/source, mob/user)
+ toggle_active(source)
+ if(!(SEND_SIGNAL(source, COMSIG_TRANSFORMING_ON_TRANSFORM, user, active) & COMPONENT_NO_DEFAULT_MESSAGE))
+ default_transform_message(source, user)
+
+ if(isnum(transform_cooldown_time))
+ COOLDOWN_START(src, transform_cooldown, transform_cooldown_time)
+ if(user)
+ source.add_fingerprint(user)
+ return TRUE
+
+/*
+ * The default feedback message and sound effect for an item transforming.
+ *
+ * source - the item being transformed / parent
+ * user - the mob transforming the item
+ */
+/datum/component/transforming/proc/default_transform_message(obj/item/source, mob/user)
+ if(user)
+ source.balloon_alert(user, "[active ? "enabled" : "disabled"] [source]")
+ playsound(source, 'sound/weapons/batonextend.ogg', 50, TRUE)
+
+/*
+ * Toggle active between true and false, and call
+ * either set_active or set_inactive depending on whichever state is toggled.
+ *
+ * source - the item being transformed / parent
+ */
+/datum/component/transforming/proc/toggle_active(obj/item/source)
+ active = !active
+ if(active)
+ set_active(source)
+ else
+ set_inactive(source)
+
+/*
+ * Set our transformed item into its active state.
+ * Updates all the values that were passed from init and the icon_state.
+ *
+ * source - the item being transformed / parent
+ */
+/datum/component/transforming/proc/set_active(obj/item/source)
+ ADD_TRAIT(source, TRAIT_TRANSFORM_ACTIVE, REF(src))
+ if(sharpness_on)
+ source.sharpness = sharpness_on
+ if(force_on)
+ source.force = force_on + (source.sharpness ? sharpened_bonus : 0)
+ if(throwforce_on)
+ source.throwforce = throwforce_on + (source.sharpness ? sharpened_bonus : 0)
+ if(throw_speed_on)
+ source.throw_speed = throw_speed_on
+
+ if(LAZYLEN(attack_verb_on))
+ source.attack_verb = attack_verb_on
+
+ source.hitsound = hitsound_on
+ source.update_weight_class(w_class_on)
+ source.icon_state = "[source.icon_state]_on"
+ if(inhand_icon_change && source.item_state)
+ source.item_state = "[source.item_state]_on"
+
+ source.update_appearance()
+ if(ismob(source.loc))
+ var/mob/loc_mob = source.loc
+ loc_mob.update_inv_hands()
+
+/*
+ * Set our transformed item into its inactive state.
+ * Updates all the values back to the item's initial values.
+ *
+ * source - the item being un-transformed / parent
+ */
+/datum/component/transforming/proc/set_inactive(obj/item/source)
+ REMOVE_TRAIT(source, TRAIT_TRANSFORM_ACTIVE, REF(src))
+ if(sharpness_on)
+ source.sharpness = initial(source.sharpness)
+ if(force_on)
+ source.force = initial(source.force) + (source.sharpness ? sharpened_bonus : 0)
+ if(throwforce_on)
+ source.throwforce = initial(source.throwforce) + (source.sharpness ? sharpened_bonus : 0)
+ if(throw_speed_on)
+ source.throw_speed = initial(source.throw_speed)
+
+ if(LAZYLEN(attack_verb_off))
+ source.attack_verb = attack_verb_off
+
+ source.hitsound = initial(source.hitsound)
+ source.update_weight_class(initial(source.w_class))
+ source.icon_state = initial(source.icon_state)
+ source.item_state = initial(source.item_state)
+
+ source.update_appearance()
+ if(ismob(source.loc))
+ var/mob/loc_mob = source.loc
+ loc_mob.update_inv_hands()
+
+/*
+ * Called on [COMSIG_ITEM_SHARPEN_ACT].
+ * We need to track our sharpened bonus here, so we correctly apply and unapply it
+ * if our item's sharpness state changes from transforming.
+ *
+ * source - the item being sharpened / parent
+ * increment - the amount of force added
+ * max - the maximum force that the item can be adjusted to.
+ *
+ * Does not return naturally [COMPONENT_BLOCK_SHARPEN_APPLIED] as this is only to track our sharpened bonus between transformation.
+ */
+/datum/component/transforming/proc/on_sharpen(obj/item/source, increment, max)
+ SIGNAL_HANDLER
+
+ if(sharpened_bonus)
+ return COMPONENT_BLOCK_SHARPEN_ALREADY
+ if(force_on + increment > max)
+ return COMPONENT_BLOCK_SHARPEN_MAXED
+ sharpened_bonus = increment
+
+/datum/component/transforming/proc/force_transform(obj/item/source)
+ if(isnum(transform_cooldown_time))
+ COOLDOWN_START(src, transform_cooldown, transform_cooldown_time)
+ set_inactive(source)
diff --git a/code/datums/components/twohanded.dm b/code/datums/components/melee/twohanded.dm
similarity index 97%
rename from code/datums/components/twohanded.dm
rename to code/datums/components/melee/twohanded.dm
index 4ede9a6fc168..c459b49a628e 100644
--- a/code/datums/components/twohanded.dm
+++ b/code/datums/components/melee/twohanded.dm
@@ -9,8 +9,8 @@
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item
var/wielded = FALSE /// Are we holding the two handed item properly
var/force_multiplier = 0 /// The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded
- var/force_wielded = 0 /// The force of the item when wielded
- var/force_unwielded = 0 /// The force of the item when unwielded
+ var/force_wielded = null /// The force of the item when wielded
+ var/force_unwielded = null /// The force of the item when unwielded
var/wieldsound = FALSE /// Play sound when wielded
var/unwieldsound = FALSE /// Play sound when unwielded
var/attacksound = FALSE /// Play sound on attack when wielded
@@ -33,7 +33,7 @@
* * icon_wielded (optional) The icon to be used when wielded
*/
/datum/component/two_handed/Initialize(require_twohands=FALSE, wieldsound=FALSE, unwieldsound=FALSE, attacksound=FALSE, \
- force_multiplier=0, force_wielded=0, force_unwielded=0, icon_wielded=FALSE)
+ force_multiplier=0, force_wielded=null, force_unwielded=null, icon_wielded=FALSE)
if(!isitem(parent))
return COMPONENT_INCOMPATIBLE
@@ -153,7 +153,7 @@
var/obj/item/parent_item = parent
if(force_multiplier)
parent_item.force *= force_multiplier
- else if(force_wielded)
+ else if(!isnull(force_wielded))
parent_item.force = force_wielded
if(sharpened_increase)
parent_item.force += sharpened_increase
@@ -200,7 +200,7 @@
parent_item.force -= sharpened_increase
if(force_multiplier)
parent_item.force /= force_multiplier
- else if(force_unwielded)
+ else if(!isnull(force_unwielded))
parent_item.force = force_unwielded
// update the items name to remove the wielded status
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 3434c741dba8..a37fd00c3b5b 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -89,7 +89,7 @@
if(mood_events.len)
for(var/i in mood_events)
var/datum/mood_event/event = mood_events[i]
- msg += event.description
+ msg += "[event.description]\n" // now we dont have to put \n in every moodlet description
else
msg += "I don't have much of a reaction to anything right now.\n"
to_chat(user, examine_block(msg))
diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm
index 19b1e2094993..d18bdc7d8cbc 100644
--- a/code/datums/components/pellet_cloud.dm
+++ b/code/datums/components/pellet_cloud.dm
@@ -60,7 +60,7 @@
else if(isgrenade(parent) || islandmine(parent) || issupplypod(parent))
radius = magnitude
-/datum/component/pellet_cloud/Destroy(force, silent)
+/datum/component/pellet_cloud/Destroy(force)
purple_hearts = null
pellets = null
targets_hit = null
@@ -90,7 +90,10 @@
/datum/component/pellet_cloud/proc/create_casing_pellets(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro)
- shooter = user
+ if(user)
+ shooter = user
+ else
+ shooter = fired_from
var/targloc = get_turf(target)
if(!zone_override)
zone_override = shooter.zone_selected
@@ -106,8 +109,12 @@
RegisterSignal(shell.BB, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(pellet_hit))
RegisterSignal(shell.BB, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range))
pellets += shell.BB
- if(!shell.throw_proj(target, targloc, shooter, params, spread))
- return
+ if(user)
+ if(!shell.throw_proj(target, targloc, shooter, params, spread))
+ return
+ else
+ if(!shell.throw_proj(target, targloc, null, params, spread, shooter))
+ return
if(i != num_pellets)
shell.newshot()
diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm
index a6c67af2d3cd..26d98b99e80e 100644
--- a/code/datums/components/radioactive.dm
+++ b/code/datums/components/radioactive.dm
@@ -30,7 +30,7 @@
//Let's make er glow
//This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS
var/atom/movable/master = parent
- master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
+ master.add_filter("rad_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = 2))
addtimer(CALLBACK(src, PROC_REF(glow_loop), master), rand(1,19))//Things should look uneven
START_PROCESSING(SSradiation, src)
@@ -55,7 +55,6 @@
var/filter = master.get_filter("rad_glow")
if(filter)
animate(filter, alpha = 110, time = 15, loop = -1)
- animate(alpha = 40, time = 25)
/datum/component/radioactive/InheritComponent(datum/component/C, i_am_original, _strength, _source, _half_life, _can_contaminate)
if(!i_am_original)
diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm
index 2f3aa79749b2..16c695fe9c06 100644
--- a/code/datums/components/remote_materials.dm
+++ b/code/datums/components/remote_materials.dm
@@ -39,6 +39,7 @@ handles linking back and forth.
// specify explicitly in case the other component is deleted first
var/atom/P = parent
mat_container.retrieve_all(P.drop_location())
+ mat_container = null
return ..()
/datum/component/remote_materials/proc/_MakeLocal()
@@ -77,9 +78,11 @@ handles linking back and forth.
/datum/component/remote_materials/proc/OnAttackBy(datum/source, obj/item/I, mob/user)
SIGNAL_HANDLER
- if (silo && istype(I, /obj/item/stack))
- if (silo.remote_attackby(parent, user, I))
- return COMPONENT_NO_AFTERATTACK
+ if (!silo || !istype(I, /obj/item/stack))
+ return
+
+ if (silo.remote_attackby(parent, user, I))
+ return COMPONENT_NO_AFTERATTACK
/datum/component/remote_materials/proc/OnMultitool(datum/source, mob/user, obj/item/I)
SIGNAL_HANDLER
diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm
index 81cb0c2b4d40..7c2c3473e2d0 100644
--- a/code/datums/components/shielded.dm
+++ b/code/datums/components/shielded.dm
@@ -50,7 +50,7 @@
if(recharge_start_delay)
START_PROCESSING(SSdcs, src)
-/datum/component/shielded/Destroy(force, silent)
+/datum/component/shielded/Destroy(force)
if(wearer)
shield_icon = "broken"
UnregisterSignal(wearer, COMSIG_ATOM_UPDATE_OVERLAYS)
diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm
deleted file mode 100644
index 04e514062879..000000000000
--- a/code/datums/components/soulstoned.dm
+++ /dev/null
@@ -1,33 +0,0 @@
-//adds godmode while in the container, prevents moving, and clears these effects up after leaving the stone
-/datum/component/soulstoned
- var/atom/movable/container
-
-/datum/component/soulstoned/Initialize(atom/movable/container)
- if(!isanimal(parent))
- return COMPONENT_INCOMPATIBLE
- var/mob/living/simple_animal/S = parent
-
- src.container = container
-
- S.forceMove(container)
-
- S.status_flags |= GODMODE
- ADD_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT)
- ADD_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT)
- S.health = S.maxHealth
- S.bruteloss = 0
-
- RegisterSignal(S, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner))
-
-/datum/component/soulstoned/proc/free_prisoner()
- SIGNAL_HANDLER
-
- var/mob/living/simple_animal/S = parent
- if(S.loc != container)
- qdel(src)
-
-/datum/component/soulstoned/UnregisterFromParent()
- var/mob/living/simple_animal/S = parent
- S.status_flags &= ~GODMODE
- REMOVE_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT)
- REMOVE_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT)
diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm
index 1307d5d0ec8e..7f4b8b50229e 100644
--- a/code/datums/components/squeak.dm
+++ b/code/datums/components/squeak.dm
@@ -67,9 +67,9 @@
if(prob(squeak_chance))
if(!override_squeak_sounds)
- playsound(parent, pickweight(default_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
+ playsound(parent, pick_weight(default_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
else
- playsound(parent, pickweight(override_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
+ playsound(parent, pick_weight(override_squeak_sounds), volume, TRUE, sound_extra_range, sound_falloff_exponent, falloff_distance = sound_falloff_distance)
/datum/component/squeak/proc/step_squeak()
SIGNAL_HANDLER
diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm
index e00c40e116f8..35ad02afa913 100644
--- a/code/datums/components/storage/concrete/pockets.dm
+++ b/code/datums/components/storage/concrete/pockets.dm
@@ -107,7 +107,13 @@
can_hold = typecacheof(list(
/obj/item/gun/ballistic/automatic/pistol,
/obj/item/gun/ballistic/revolver,
- /obj/item/ammo_box))
+ /obj/item/gun/energy/laser,
+ /obj/item/gun/energy/e_gun,
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/ammo_box)) // this doesnt let you put hades into holsters trust me
+ can_hold_max_of_items = typecacheof(list(
+ /obj/item/gun = 1,
+ ))
/datum/component/storage/concrete/pockets/holster/real_location()
// if the component is reparented to a jumpsuit, the items still go in the protector
@@ -136,17 +142,3 @@
/obj/item/gun/energy/dueling,
/obj/item/gun/ballistic/shotgun,
/obj/item/gun/ballistic/rocketlauncher))
-
-/datum/component/storage/concrete/pockets/holster/chameleon
- max_items = 1
-
-/datum/component/storage/concrete/pockets/holster/chameleon/Initialize()
- original_parent = parent
- . = ..()
- can_hold = typecacheof(list(
- /obj/item/gun/ballistic/automatic/pistol/ringneck,
- /obj/item/gun/ballistic/revolver,
- /obj/item/gun/energy/e_gun/mini,
- /obj/item/gun/energy/disabler,
- /obj/item/gun/energy/pulse/carbine,
- /obj/item/gun/energy/dueling))
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 765e14e5db64..fab8ffdf3a2c 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -18,6 +18,7 @@
var/list/cant_hold //if this is set, items, and their children, won't fit
var/list/exception_hold //if set, these items will be the exception to the max size of object that can fit.
var/list/can_hold_trait /// If set can only contain stuff with this single trait present.
+ var/list/can_hold_max_of_items // if set, storage can only hold up to the set amount of said item.
var/can_hold_description
@@ -566,6 +567,16 @@
if(!stop_messages)
to_chat(M, "[host] cannot hold [I]!")
return FALSE
+ if(length(can_hold_max_of_items))
+ if(is_type_in_typecache(I,can_hold_max_of_items))
+ var/amount = 0
+ for(var/_item in contents())
+ if(is_type_in_typecache(_item,can_hold_max_of_items))
+ amount++
+ if(amount >= can_hold_max_of_items[I.type])
+ if(!stop_messages)
+ to_chat(M, "[host] cannot hold another [I]!")
+ return FALSE
if(is_type_in_typecache(I, cant_hold) || HAS_TRAIT(I, TRAIT_NO_STORAGE_INSERT) || (can_hold_trait && !HAS_TRAIT(I, can_hold_trait))) //Items which this container can't hold.
if(!stop_messages)
to_chat(M, "[host] cannot hold [I]!")
diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm
index 2fd18316e08a..95f77d520c7d 100644
--- a/code/datums/components/tackle.dm
+++ b/code/datums/components/tackle.dm
@@ -388,7 +388,7 @@
user.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE)
playsound(user, 'sound/effects/splat.ogg', 70, TRUE)
- user.emote("scream")
+ user.force_scream()
user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed!
shake_camera(user, 7, 7)
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
diff --git a/code/datums/components/weatherannouncer.dm b/code/datums/components/weatherannouncer.dm
index a5e622d8669e..7da27dcbba2f 100644
--- a/code/datums/components/weatherannouncer.dm
+++ b/code/datums/components/weatherannouncer.dm
@@ -38,7 +38,7 @@
speaker.update_appearance(UPDATE_ICON)
update_light_color()
-/datum/component/weather_announcer/Destroy(force, silent)
+/datum/component/weather_announcer/Destroy(force)
STOP_PROCESSING(SSprocessing, src)
return ..()
diff --git a/code/datums/datum.dm b/code/datums/datum.dm
index e2f478ba7834..97da48745fae 100644
--- a/code/datums/datum.dm
+++ b/code/datums/datum.dm
@@ -44,8 +44,12 @@
var/datum/weakref/weak_reference
#ifdef REFERENCE_TRACKING
- var/running_find_references
+ /// When was this datum last touched by a reftracker?
+ /// If this value doesn't match with the start of the search
+ /// We know this datum has never been seen before, and we should check it
var/last_find_references = 0
+ /// How many references we're trying to find when searching
+ var/references_to_clear = 0
#ifdef REFERENCE_TRACKING_DEBUG
///Stores info about where refs are found, used for sanity checks and testing
var/list/found_refs
@@ -226,3 +230,19 @@
qdel(D)
else
return returned
+
+/// Return text from this proc to provide extra context to hard deletes that happen to it
+/// Optional, you should use this for cases where replication is difficult and extra context is required
+/// Can be called more then once per object, use harddel_deets_dumped to avoid duplicate calls (I am so sorry)
+/datum/proc/dump_harddel_info()
+ return
+
+/image
+ var/harddel_deets_dumped = FALSE
+
+///images are pretty generic, this should help a bit with tracking harddels related to them
+/image/dump_harddel_info()
+ if(harddel_deets_dumped)
+ return
+ harddel_deets_dumped = TRUE
+ return "Image icon: [icon] - icon_state: [icon_state] [loc ? "loc: [loc] ([loc.x],[loc.y],[loc.z])" : ""]"
diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm
index ea607f2a31fc..df39c5f06591 100644
--- a/code/datums/diseases/advance/symptoms/deafness.dm
+++ b/code/datums/diseases/advance/symptoms/deafness.dm
@@ -55,7 +55,7 @@ Bonus
if(istype(ears) && ears.damage < ears.maxHealth)
to_chat(M, "Your ears pop painfully and start bleeding!")
ears.damage = max(ears.damage, ears.maxHealth)
- M.emote("scream")
+ M.force_scream()
else
to_chat(M, "Your ears pop and begin ringing loudly!")
M.minimumDeafTicks(20)
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index aeb9933debbd..98391edbdf1c 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -60,12 +60,12 @@ Bonus
Firestacks_stage_4(M, A)
M.IgniteMob()
to_chat(M, "Your skin bursts into flames!")
- M.emote("scream")
+ M.force_scream()
if(5)
Firestacks_stage_5(M, A)
M.IgniteMob()
to_chat(M, "Your skin erupts into an inferno!")
- M.emote("scream")
+ M.force_scream()
/datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(1 * power)
@@ -147,7 +147,7 @@ Bonus
Alkali_fire_stage_4(M, A)
M.IgniteMob()
to_chat(M, "Your sweat bursts into flames!")
- M.emote("scream")
+ M.force_scream()
if(5)
if(M.fire_stacks < 0)
M.visible_message("[M]'s sweat sizzles and pops on contact with water!")
@@ -155,7 +155,7 @@ Bonus
Alkali_fire_stage_5(M, A)
M.IgniteMob()
to_chat(M, "Your skin erupts into an inferno!")
- M.emote("scream")
+ M.force_scream()
/datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A)
var/get_stacks = 6 * power
diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm
index e2af13bd6742..ed4c5267d14f 100644
--- a/code/datums/diseases/gastrolisis.dm
+++ b/code/datums/diseases/gastrolisis.dm
@@ -36,7 +36,7 @@
new_eyes.Insert(affected_mob, drop_if_replaced = TRUE)
affected_mob.visible_message("[affected_mob]'s eyes fall out, with snail eyes taking its place!", \
"You scream in pain as your eyes are pushed out by your new snail eyes!")
- affected_mob.emote("scream")
+ affected_mob.force_scream()
return
var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs
if(!tongue && prob(5))
diff --git a/code/datums/diseases/legionvirus.dm b/code/datums/diseases/legionvirus.dm
index a6e1bdadcdd2..9de7fa6667c5 100644
--- a/code/datums/diseases/legionvirus.dm
+++ b/code/datums/diseases/legionvirus.dm
@@ -19,6 +19,27 @@
stage4 = list(span_warning("You feel something pressing against your skin!"))
stage5 = list(span_warning("Your skin begins to tear apart-!"))
new_form = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
+ COOLDOWN_DECLARE(warning_timer)
+ var/cooldown_time = 1 MINUTES
+
+/datum/disease/transformation/legionvirus/infect(mob/living/infectee, make_copy = TRUE)
+ . = ..()
+ COOLDOWN_START(src, warning_timer, cooldown_time) //theos why don't you make this NOT A DISEASE if you don't plan on using ANY disease stuff??? good question:
+
+/datum/disease/transformation/legionvirus/stage_act()
+ ..()
+ if(!COOLDOWN_FINISHED(src, warning_timer))
+ return
+ COOLDOWN_START(src, warning_timer, cooldown_time)
+ switch(stage)
+ if(1)
+ to_chat(affected_mob, pick(stage1))
+ if(2)
+ to_chat(affected_mob, pick(stage2))
+ if(3)
+ to_chat(affected_mob, pick(stage3))
+ if(4)
+ to_chat(affected_mob, pick(stage4))
/datum/disease/transformation/legionvirus/do_disease_transformation(mob/living/H)
if(stage5)
diff --git a/code/datums/diseases/parasitic_infection.dm b/code/datums/diseases/parasitic_infection.dm
deleted file mode 100644
index 055425d9cc6f..000000000000
--- a/code/datums/diseases/parasitic_infection.dm
+++ /dev/null
@@ -1,50 +0,0 @@
-/datum/disease/parasite
- form = "Parasite"
- name = "Parasitic Infection"
- max_stages = 4
- cure_text = "Surgical removal of the liver."
- agent = "Consuming Live Parasites"
- spread_text = "Non-Biological"
- viable_mobtypes = list(/mob/living/carbon/human)
- permeability_mod = 1
- desc = "If left untreated the subject will passively lose nutrients, and eventually lose their liver."
- severity = DISEASE_SEVERITY_HARMFUL
- disease_flags = CAN_CARRY|CAN_RESIST
- spread_flags = DISEASE_SPREAD_NON_CONTAGIOUS
- required_organs = list(/obj/item/organ/liver)
- bypasses_immunity = TRUE
-
-/datum/disease/parasite/stage_act()
- . = ..()
- var/mob/living/carbon/C = affected_mob
- var/obj/item/organ/liver/L = C.getorgan(/obj/item/organ/liver)
- if(!L)
- src.cure()
- C.visible_message("[C]'s liver is covered in tiny larva! They quickly shrivel and die after being exposed to the open air.")
- switch(stage)
- if(1)
- if(prob(5))
- affected_mob.emote("cough")
- if(2)
- if(prob(10))
- if(prob(50))
- to_chat(affected_mob, "You feel the weight loss already!")
- affected_mob.adjust_nutrition(-3)
- if(3)
- if(prob(20))
- if(prob(20))
- to_chat(affected_mob, "You're... REALLY starting to feel the weight loss.")
- affected_mob.adjust_nutrition(-6)
- if(4)
- if(prob(30))
- if(affected_mob.nutrition >= 100)
- if(prob(10))
- to_chat(affected_mob, "You feel like your body's shedding weight rapidly!")
- affected_mob.adjust_nutrition(-12)
- else
- var/turf/T = get_turf(C)
- to_chat(affected_mob, "You feel much, MUCH lighter!")
- affected_mob.vomit(20, TRUE)
- L.Remove(C)
- L.forceMove(T)
- src.cure()
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index abd20fd29212..2effeb4257c7 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -351,6 +351,9 @@
var/species_holder = initial(mrace.species_language_holder)
language_holder = new species_holder(src)
update_atom_languages()
+ // [CELADON-ADD] - CELADON_EMOTES
+ client?.init_verbs()
+ // [/CELADON-ADD]
/mob/living/carbon/human/set_species(datum/species/mrace, icon_update = TRUE, pref_load = FALSE, robotic = FALSE)
robotic ||= fbp
@@ -358,7 +361,7 @@
if(icon_update)
update_hair()
update_mutations_overlay()// no lizard with human hulk overlay please.
-
+ AddComponent(/datum/component/bloodysoles/feet)
/mob/proc/has_dna()
return
diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm
index e9779644c211..5d57ac443ad2 100644
--- a/code/datums/elements/_element.dm
+++ b/code/datums/elements/_element.dm
@@ -60,7 +60,7 @@
var/datum/element/ele = SSdcs.GetElement(arguments)
arguments[1] = src
if(ele.Attach(arglist(arguments)) == ELEMENT_INCOMPATIBLE)
- CRASH("Incompatible [arguments[1]] assigned to a [type]! args: [json_encode(args)]")
+ CRASH("Incompatible [ele] assigned to a [type]! args: [json_encode(args)]")
/**
* Finds the singleton for the element type given and detaches it from src
diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm
index 0a3ca8ce59a3..66406d5f2c33 100644
--- a/code/datums/elements/decals/blood.dm
+++ b/code/datums/elements/decals/blood.dm
@@ -39,4 +39,8 @@
var/atom/bloodsource = source
Detach(source)
- bloodsource.AddElement(/datum/element/decal/blood, bloodsource.icon, bloodsource.icon_state, _color = get_blood_dna_color(bloodsource.return_blood_DNA()))
+ var/icon_state_adj = bloodsource.icon_state
+ if(isbodypart(source))//bettericons :D
+ var/obj/item/bodypart/parent_part = source
+ icon_state_adj = parent_part.stored_icon_state
+ bloodsource.AddElement(/datum/element/decal/blood, bloodsource.icon, icon_state_adj, _color = get_blood_dna_color(bloodsource.return_blood_DNA()))
diff --git a/code/datums/elements/food/edible.dm b/code/datums/elements/food/edible.dm
index a06a5ec28b79..615422198d88 100644
--- a/code/datums/elements/food/edible.dm
+++ b/code/datums/elements/food/edible.dm
@@ -143,7 +143,7 @@ Behavior that's still missing from this component that original food items had t
src.after_eat = after_eat
src.on_consume = on_consume
-/datum/component/edible/Destroy(force, silent)
+/datum/component/edible/Destroy(force)
QDEL_NULL(pre_eat)
QDEL_NULL(on_compost)
QDEL_NULL(after_eat)
diff --git a/code/datums/elements/world_icon.dm b/code/datums/elements/world_icon.dm
index bcb0129c6c68..31e52ee7677f 100644
--- a/code/datums/elements/world_icon.dm
+++ b/code/datums/elements/world_icon.dm
@@ -103,7 +103,7 @@
SIGNAL_HANDLER
if(!world_icon_state)
- source.icon_state = source.icon_state
+ source.icon_state = source.item_state
return
INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source)
diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm
index 3150545e27e6..e521c265db98 100644
--- a/code/datums/emotes.dm
+++ b/code/datums/emotes.dm
@@ -27,6 +27,21 @@
var/only_forced_audio = FALSE //can only code call this event instead of the player.
var/cooldown = 0.8 SECONDS
var/static/regex/stop_bad_mime = regex(@"says|exclaims|yells|asks")
+ // [CELADON-ADD] - CELADON_EMOTES
+ /// Message with %t at the end to allow adding params to the message, like for mobs doing an emote relatively to something else.
+ /// Set this to EMOTE_PARAM_USE_POSTFIX to just use the postfix.
+ /// Message postfix with %t used when we don't want to use message_param for our targeting. Used for things like message_monkey or message_mime.
+ /// Punctuation from the message will be stripped when this is applied, so make sure it's punctuated as well.
+ var/message_postfix = ""
+ /// Sounds emitted when the user is muzzled. Generally used like "[user] makes a pick(muzzled_noises) noise!"
+ var/muzzled_noises = list("strong", "weak")
+ /// If true, an emote will completely bypass any cooldown when called unintentionally. Necessary for things like deathgasp.
+ var/bypass_unintentional_cooldown = FALSE
+ /// Whether or not to adjust the frequency of the emote sound based on age.
+ var/age_based = FALSE
+ /// How loud is the audio emote?
+ var/volume = 50
+ // [/CELADON-ADD]
/datum/emote/New()
if (ispath(mob_type_allowed_typecache))
@@ -48,10 +63,40 @@
return FALSE
var/msg = select_message_type(user, intentional)
if(params && message_param)
- msg = select_param(user, params)
+ // [CELADON-EDIT] - CELADON_EMOTES
+ // msg = select_param(user, params) // CELADON-EDIT - ORIGINAL
+ // In this case, we did make some changes to the message that will be used, and we want to add the postfix on with the new parameters.
+ // This is applicable to things like mimes, who this lets have a target on their canned emote responses.
+ // Note that we only do this if we would otherwise have a message param, meaning there should be some target by default.
+ // If we're using EMOTE_PARAM_USE_POSTFIX, we don't want to bother specifying a message_param and just want to use the postfix for everything.
+ if(message_param == EMOTE_PARAM_USE_POSTFIX || (msg != message && message_postfix))
+ if(!message_postfix)
+ CRASH("Emote was specified to use postfix but message_postfix is empty.")
+ msg = select_param(user, params, "[remove_ending_punctuation(msg)] [message_postfix]", msg)
+ else if(msg == message)
+ // In this case, we're not making any substitutions in select_message_type, but we do have some params we want to sub in.
+ msg = select_param(user, params, message_param, message)
+ // If this got propogated up, jump out.
+ if(msg == EMOTE_ACT_STOP_EXECUTION)
+ return TRUE
+
+ if(isnull(msg))
+ to_chat(user, "'[params]' isn't a valid parameter for [key].")
+ return TRUE
+ // [/CELADON-EDIT]
msg = replace_pronoun(user, msg)
+ // [CELADON-ADD] - CELADON_EMOTES
+ var/suppressed = FALSE
+
+ // Keep em quiet if they can't speak
+ if(!can_vocalize_emotes(user) && (emote_type & (EMOTE_MOUTH | EMOTE_AUDIBLE)))
+ var/noise_emitted = pick(muzzled_noises)
+ suppressed = TRUE
+ msg = "makes \a [noise_emitted] noise."
+ // [/CELADON-ADD]
+
if(isliving(user))
var/mob/living/L = user
for(var/obj/item/implant/I in L.implants)
@@ -64,9 +109,15 @@
var/space = should_have_space_before_emote(html_encode(msg)[1]) ? " " : ""
var/dchatmsg = "[user][space][msg]"
+ // [CELADON-ADD] - CELADON_EMOTES
+ var/sound_volume = get_volume(user)
+ // [/CELADON-ADD]
var/tmp_sound = get_sound(user)
if(tmp_sound && (!only_forced_audio || !intentional))
- playsound(user, tmp_sound, 50, vary)
+ // [CELADON-EDIT] - CELADON_EMOTES
+ // playsound(user, tmp_sound, 50, vary) // CELADON-EDIT - ORIGINAL
+ playsound(user, tmp_sound, sound_volume, vary)
+ // [/CELADON-EDIT]
for(var/mob/M in GLOB.dead_mob_list)
if(!M.client || isnewplayer(M))
@@ -75,10 +126,18 @@
if(M.stat == DEAD && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(M in viewers(T, null)))
M.show_message("[FOLLOW_LINK(M, user)] [dchatmsg]")
- if(emote_type == EMOTE_AUDIBLE) // Да, это определённо слегка забавно.
- user.audible_message(msg, deaf_message = "Ты видишь как [user] [msg]", audible_message_flags = EMOTE_MESSAGE)
- else
- user.visible_message(msg, blind_message = "Ты замечаешь как [user] [msg]", visible_message_flags = EMOTE_MESSAGE)
+ // [CELADON-ADD] - CELADON_EMOTES
+ if(isliving(user))
+ // [/CELADON-EDIT]
+ if(emote_type == EMOTE_AUDIBLE) // Да, это определённо слегка забавно.
+ user.audible_message(msg, deaf_message = "Ты видишь как [user] [msg]", audible_message_flags = EMOTE_MESSAGE)
+ else
+ user.visible_message(msg, blind_message = "Ты замечаешь как [user] [msg]", visible_message_flags = EMOTE_MESSAGE)
+
+ // [CELADON-ADD] - CELADON_EMOTES
+ if(!((emote_type & EMOTE_FORCE_NO_RUNECHAT) || suppressed) && !isobserver(user))
+ to_chat(user, msg)
+ // [/CELADON-ADD]
/// For handling emote cooldown, return true to allow the emote to happen
/datum/emote/proc/check_cooldown(mob/user, intentional)
@@ -201,3 +260,49 @@
/proc/should_have_space_before_emote(string)
var/static/regex/no_spacing_emote_characters = regex(@"(,|')")
return no_spacing_emote_characters.Find(string) ? FALSE : TRUE
+
+// [CELADON-ADD] - CELADON_EMOTES
+/**
+ * Play the sound effect in an emote.
+ * If you want to change the way the playsound call works, override this.
+ * Note! If you want age_based to work, you need to force vary to TRUE.
+ * * user - The user of the emote.
+ * * intentional - Whether or not the emote was triggered intentionally.
+ * * sound_path - Filesystem path to the audio clip to play.
+ * * sound_volume - Volume at which to play the audio clip.
+ */
+/datum/emote/proc/play_sound_effect(mob/user, intentional, sound_path, sound_volume)
+ if(age_based && ishuman(user))
+ var/mob/living/carbon/human/H = user
+ // Vary needs to be true as otherwise frequency changes get ignored deep within playsound_local :(
+ playsound(user.loc, sound_path, sound_volume, TRUE, frequency = H.get_age_pitch(H.dna.species.species_age_max) * alter_emote_pitch(user))
+ else
+ playsound(user.loc, sound_path, sound_volume, TRUE, frequency = alter_emote_pitch(user, FALSE))
+
+/datum/emote/proc/alter_emote_pitch(mob/user, multiplicative = TRUE)
+ if(HAS_TRAIT(user, TRAIT_ALCOHOL_TOLERANCE))
+ return 0.7
+ return multiplicative
+
+/datum/emote/proc/get_volume(mob/living/user)
+ return volume
+
+/**
+ * Return whether a user should be able to vocalize emotes or not, due to a mask or inability to speak.
+ * If this returns false, any mouth emotes will be replaced with muzzled noises.
+ */
+/datum/emote/proc/can_vocalize_emotes(mob/user)
+ if(user.mind?.miming)
+ // mimes get special treatment; though they can't really "vocalize" we don't want to replace their message.
+ return TRUE
+ if(!muzzle_ignore && !user.can_speak())
+ return FALSE
+
+ return TRUE
+
+/datum/emote/proc/remove_ending_punctuation(msg)
+ var/static/list/end_punctuation = list(".", "?", "!")
+ if(copytext(msg, -1) in end_punctuation)
+ msg = copytext(msg, 1, -1)
+ return msg
+// [/CELADON-ADD]
diff --git a/code/datums/ert.dm b/code/datums/ert.dm
deleted file mode 100644
index 0c5227e41074..000000000000
--- a/code/datums/ert.dm
+++ /dev/null
@@ -1,290 +0,0 @@
-/datum/ert
- var/mobtype = /mob/living/carbon/human
- var/team = /datum/team/ert
- var/opendoors = FALSE
- var/leader_role = /datum/antagonist/ert/commander
- var/enforce_human = FALSE
- var/roles = list(/datum/antagonist/ert/security, /datum/antagonist/ert/medic, /datum/antagonist/ert/engineer) //List of possible roles to be assigned to ERT members.
- var/rename_team
- var/code
- var/mission = "Assist your employers in achieving their goals. Protect corporate assets."
- var/teamsize = 5
- var/polldesc
- /// If TRUE, gives the team members "[role] [random last name]" style names
- var/random_names = FALSE
- /// If TRUE, special slots (that are not the leader) will use a predefined limit
- var/limit_slots = FALSE
- /// If TRUE, the admin who created the response team will be spawned in the briefing room (or in the shuttle) in their preferred briefing outfit (assuming they're a ghost)
- var/spawn_admin = FALSE
- /// If TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot
- var/leader_experience = TRUE
- /// A custom map template to spawn the ERT at. If use_custom_shuttle is FALSE, the ERT will spawn on foot. By default, a Kunai-Class.
- var/datum/map_template/ert_template = /datum/map_template/shuttle/subshuttles/kunai
- /// If we should actually _use_ the ert_template custom shuttle
- var/use_custom_shuttle = TRUE
- /// If TRUE, the ERT will spawn at the outpost. If use_custom_shuttle is also TRUE, the shuttle will be docked at the outpost
- var/spawn_at_outpost = TRUE
-
-// Nanotrasen
-
-/datum/ert/New()
- if (!polldesc)
- polldesc = "a Code [code] Nanotrasen Emergency Response Team"
-
-/datum/ert/blue
- opendoors = FALSE
- code = "Blue"
-
-/datum/ert/amber
- code = "Amber"
-
-/datum/ert/red
- leader_role = /datum/antagonist/ert/commander/red
- roles = list(/datum/antagonist/ert/security/red, /datum/antagonist/ert/medic/red, /datum/antagonist/ert/engineer/red)
- code = "Red"
-
-/datum/ert/deathsquad
- roles = list(/datum/antagonist/ert/deathsquad)
- leader_role = /datum/antagonist/ert/deathsquad/leader
- rename_team = "Deathsquad"
- code = "Delta"
- mission = "Leave no witnesses."
- polldesc = "an elite Nanotrasen Strike Team"
-
-/datum/ert/marine
- leader_role = /datum/antagonist/ert/marine
- roles = list(/datum/antagonist/ert/marine/security, /datum/antagonist/ert/marine/engineer = 1, /datum/antagonist/ert/marine/medic = 1)
- rename_team = "Marine Squad"
- polldesc = "an 'elite' Nanotrasen Strike Team"
- opendoors = FALSE
-
-/datum/ert/centcom_official
- code = "Green"
- teamsize = 1
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/official
- roles = list(/datum/antagonist/ert/official)
- rename_team = "CentCom Officials"
- polldesc = "a CentCom Official"
- random_names = FALSE
- leader_experience = FALSE
- spawn_at_outpost = FALSE
- ert_template = /datum/map_template/shuttle/subshuttles/ancon
-
-/datum/ert/centcom_official/New()
- mission = "Conduct a routine review of [station_name()]'s vessels."
-
-/datum/ert/janitor
- roles = list(/datum/antagonist/ert/janitor, /datum/antagonist/ert/janitor/heavy)
- leader_role = /datum/antagonist/ert/janitor/heavy
- teamsize = 4
- opendoors = FALSE
- rename_team = "Janitor"
- mission = "Clean up EVERYTHING."
- polldesc = "a Nanotrasen Janitorial Response Team"
-
-/datum/ert/intern
- roles = list(/datum/antagonist/ert/intern)
- leader_role = /datum/antagonist/ert/intern/leader
- teamsize = 7
- opendoors = FALSE
- spawn_at_outpost = FALSE
- rename_team = "Horde of Interns"
- mission = "Assist in conflict resolution."
- polldesc = "an unpaid internship opportunity with Nanotrasen"
- ert_template = /datum/map_template/shuttle/subshuttles/ancon
-
-/datum/ert/intern/unarmed
- roles = list(/datum/antagonist/ert/intern/unarmed)
- leader_role = /datum/antagonist/ert/intern/leader/unarmed
- rename_team = "Unarmed Horde of Interns"
-
-/datum/ert/loss_prevention
- code = "Light Blue"
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/lp/lieutenant
- roles = list(/datum/antagonist/ert/lp, /datum/antagonist/ert/lp/medic = 1, /datum/antagonist/ert/lp/engineer = 1)
- rename_team = "Loss Prevention Team"
- polldesc = "a Nanotrasen loss prevention team"
-
-// Inteq
-
-/datum/ert/inteq
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/inteq/leader
- roles = list(/datum/antagonist/ert/inteq)
- mission = "Carry out your contract."
- rename_team = "Generic Inteq Team"
- polldesc = "an Inteq emergency team"
- ert_template = /datum/map_template/shuttle/subshuttles/anvil
-
-// SolGov
-
-/datum/ert/solgov
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/solgov
- roles = list(/datum/antagonist/ert/solgov)
- mission = "Intervene in Solarian interests."
- rename_team = "SolGov Sonnensoldner Team"
- polldesc = "a SolGov mercenary team"
-
-/datum/ert/solgov/inspector
- teamsize = 1
- leader_role = /datum/antagonist/ert/official/solgov
- roles = list(/datum/antagonist/ert/official/solgov)
- rename_team = "SolGov Inspector"
- polldesc = "a solarian inspector"
- spawn_at_outpost = FALSE
-
-/datum/ert/solgov/inspector/New()
- mission = "Conduct a routine review on [station_name()]'s vessels."
-
-// CLIP
-
-/datum/ert/minutemen
- teamsize = 5
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/minutemen/leader
- /// TODO: figure out a way to fill in at least one rifleman first
- roles = list(/datum/antagonist/ert/minutemen, /datum/antagonist/ert/minutemen/corpsman = 1, /datum/antagonist/ert/minutemen/engi = 1, /datum/antagonist/ert/minutemen/gunner = 1)
- mission = "Keep the peace in sector affairs"
- rename_team = "CLIP Minutemen Squadron"
- polldesc = "a CLIP Minutemen squadron"
- ert_template = /datum/map_template/shuttle/subshuttles/crux
-
-//quick infantry - for use when you need to throw minutemen somewhere fast but dont want ANY preperation at all
-/datum/ert/minutemen/quick
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/minutemen/leader
- roles = list(/datum/antagonist/ert/minutemen)
- mission = "Resolve the conflict at hand"
- polldesc = "a CLIP Minutemen emergency team"
- random_names = TRUE
-
-
-/datum/ert/minutemen/bard
- leader_role = /datum/antagonist/ert/minutemen/bard/leader
- roles = list(/datum/antagonist/ert/minutemen/bard, /datum/antagonist/ert/minutemen/bard/medic = 1, /datum/antagonist/ert/minutemen/bard/flamer = 1)
- rename_team = "CLIP Minutemen BARD Squadron"
- polldesc = "a CLIP Minutemen biohazard removal team"
-
-/datum/ert/minutemen/riot
- teamsize = 6
- leader_role = /datum/antagonist/ert/minutemen/riot/leader
- roles = list(/datum/antagonist/ert/minutemen/riot)
- rename_team = "CLIP Minutemen Riot Control Squadron"
- polldesc = "a CLIP Minutemen riot control team"
-
-/datum/ert/minutemen/eva
- leader_role = /datum/antagonist/ert/minutemen/eva/leader
- roles = list(/datum/antagonist/ert/minutemen/eva)
-
-/datum/ert/minutemen/inspector
- teamsize = 1
- leader_role = /datum/antagonist/ert/official/minutemen
- roles = list(/datum/antagonist/ert/official/minutemen)
- rename_team = "CLIP Minutemen GOLD Inspector"
- polldesc = "a CLIP Minutemen inspector"
-
-// Syndicate
-
-/datum/ert/syndicate
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/syndicate/leader
- roles = list(/datum/antagonist/ert/syndicate)
- mission = "Serve the interests of the Syndicate."
- rename_team = "Generic Syndicate Team"
- polldesc = "a Syndicate emergency team"
- spawn_at_outpost = FALSE
-
-/datum/ert/syndicate/gorlex
- leader_role = /datum/antagonist/ert/syndicate/gorlex/leader
- roles = list(/datum/antagonist/ert/syndicate/gorlex, /datum/antagonist/ert/syndicate/gorlex/pointman = 1, /datum/antagonist/ert/syndicate/gorlex/medic = 1, /datum/antagonist/ert/syndicate/gorlex/sniper = 1)
- mission = "Serve the interests of the 2nd Battlegroup."
- rename_team = "2nd Battlegroup Squad"
- polldesc = "a loyalist Gorlex squad"
-
-/datum/ert/syndicate/cybersun
- leader_role = /datum/antagonist/ert/syndicate/cybersun/leader
- roles = list(/datum/antagonist/ert/syndicate/cybersun)
- mission = "Serve the interests of CyberSun."
- rename_team = "Cybersun Commando Team"
- polldesc = "a Cybersun Commando team"
-
-/datum/ert/syndicate/cybersun/medic
- leader_role = /datum/antagonist/ert/syndicate/cybersun/medic/leader
- roles = list(/datum/antagonist/ert/syndicate/cybersun/medic)
- mission = "Assist CyberSun clients."
- rename_team = "Cybersun Medical Intervention Team"
- polldesc = "a Cybersun paramedic team"
- ert_template = /datum/map_template/shuttle/subshuttles/runner
-
-/datum/ert/syndicate/inspector
- teamsize = 1
- leader_role = /datum/antagonist/ert/official/syndicate
- roles = list(/datum/antagonist/ert/official/syndicate)
- rename_team = "Syndicate Inspector"
- polldesc = "a syndicate inspector"
- spawn_at_outpost = FALSE
-
-/datum/ert/syndicate/inspector/New()
- mission = "Conduct a routine review on [station_name()]'s vessels."
-
-// Frontiersmen
-/datum/ert/frontier
- teamsize = 4
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/frontier/leader
- roles = list(/datum/antagonist/ert/frontier)
- rename_team = "Generic Frontiersmen Team"
- mission = "Pillage in the name of the Frontiersmen."
- polldesc = "an armed group of pirates"
- random_names = TRUE
- leader_experience = FALSE
- spawn_at_outpost = FALSE
- ert_template = /datum/map_template/shuttle/subshuttles/sugarcube
-
-/datum/ert/frontier/random
- teamsize = 8
- leader_role = /datum/antagonist/ert/frontier/random
- roles = list(/datum/antagonist/ert/frontier/random)
- rename_team = "Randomly Equipped Frontiersmen Team"
-
-/datum/ert/frontier/assault
- leader_role = /datum/antagonist/ert/frontier/leader
- roles = list(/datum/antagonist/ert/frontier/better, /datum/antagonist/ert/frontier/medic, /datum/antagonist/ert/frontier/engineer)
- rename_team = "Assault Frontiersmen Team"
- polldesc = "a well armed squad of pirates"
-
-/datum/ert/frontier/unarmed //use for finer control of pirate's armaments
- leader_role = /datum/antagonist/ert/frontier/leader/unnarmed
- roles = list(/datum/antagonist/ert/frontier/unnarmed)
- rename_team = "Unnarmed Frontiersmen Team"
- polldesc = "a custom squad of pirates"
-
-/datum/ert/independent
- teamsize = 3
- opendoors = FALSE
- leader_role = /datum/antagonist/ert/independent
- roles = list(/datum/antagonist/ert/independent)
- rename_team = "Security Independent Team"
- polldesc = "an independent security team"
-
-/datum/ert/independent/emt
- teamsize = 4
- leader_role = /datum/antagonist/ert/independent/emt
- roles = list(/datum/antagonist/ert/independent/emt)
- rename_team = "Medical Independent Team"
- polldesc = "an independent medical response team"
-
-/datum/ert/independent/firefighter
- teamsize = 5
- leader_role = /datum/antagonist/ert/independent/firefighter/leader
- roles = list(/datum/antagonist/ert/independent/firefighter, /datum/antagonist/ert/independent/firefighter/medic)
- rename_team = "Independent Firefighter Team"
- polldesc = "an independent firefighting team"
diff --git a/code/datums/ert/_ert.dm b/code/datums/ert/_ert.dm
new file mode 100644
index 000000000000..3618d99dee24
--- /dev/null
+++ b/code/datums/ert/_ert.dm
@@ -0,0 +1,39 @@
+/datum/ert
+ var/mobtype = /mob/living/carbon/human
+ var/team = /datum/team/ert
+ // opens a special subtype of blastdoor. also a legacy setting that will probably not work with multiple outposts
+ var/opendoors = FALSE
+ var/leader_role = /datum/antagonist/ert/independent
+ // makes members spawn as humans. mostly a legacy setting but maybe you'll find it useful
+ var/enforce_human = FALSE
+ // list of possible roles to be assigned to ERT members. if it has a value (e.g. datum/antagonist/myspecialguy = 1), the role will be limited
+ var/roles = list(/datum/antagonist/ert/independent)
+ // this will appear in the end of round report and the antagonist team list
+ var/rename_team = "Emergency Response Team"
+ // this will be shown to the ERT members to be put in their memory
+ var/mission = "Make effective use of your tools."
+ // determines the size of the team. make sure there's enough size for all the special roles you may add
+ var/teamsize = 5
+ // this will be shown to ghosts as "Would you like to be considered for [polldesc]?"
+ var/polldesc = "an emergency response team"
+ /// If TRUE, gives the team members "[role] [random last name]" style names
+ var/random_names = FALSE
+ /// If TRUE, special slots (that are not the leader) will use a predefined limit
+ var/limit_slots = TRUE
+ /// If TRUE, the admin who created the response team will be spawned in the briefing room (or in the shuttle) in their preferred briefing outfit (assuming they're a ghost)
+ var/spawn_admin = FALSE
+ /// If TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot
+ var/leader_experience = TRUE
+ /// A custom map template to spawn the ERT at. If use_custom_shuttle is FALSE, the ERT will spawn on foot. By default, a Kunai-Class.
+ var/datum/map_template/ert_template = /datum/map_template/shuttle/subshuttles/kunai
+ /// If we should actually _use_ the ert_template custom shuttle
+ var/use_custom_shuttle = TRUE
+ /// If TRUE, the ERT will spawn at the outpost. If use_custom_shuttle is also TRUE, the shuttle will be docked at the outpost
+ var/spawn_at_outpost = TRUE
+ /// should we give the ERT access to the outpost
+ var/outpost_access = FALSE
+
+/datum/ert/New()
+ . = ..()
+ if(!polldesc)
+ polldesc = "uhm uhh uhmmmm"
diff --git a/code/datums/ert/ert_clip.dm b/code/datums/ert/ert_clip.dm
new file mode 100644
index 000000000000..79c4c7493ede
--- /dev/null
+++ b/code/datums/ert/ert_clip.dm
@@ -0,0 +1,59 @@
+/datum/ert/minutemen
+ teamsize = 5
+ leader_role = /datum/antagonist/ert/minutemen/leader
+ /// TODO: figure out a way to fill in at least one rifleman first
+ roles = list(/datum/antagonist/ert/minutemen, /datum/antagonist/ert/minutemen/corpsman = 1, /datum/antagonist/ert/minutemen/engi = 1, /datum/antagonist/ert/minutemen/gunner = 1)
+ mission = "Keep the peace in sector affairs."
+ rename_team = "CLIP Minutemen Infantry"
+ polldesc = "a CLIP Minutemen squadron"
+ ert_template = /datum/map_template/shuttle/subshuttles/crux
+
+/datum/ert/minutemen/eva
+ leader_role = /datum/antagonist/ert/minutemen/leader/eva
+ roles = list(/datum/antagonist/ert/minutemen/eva)
+
+/datum/ert/minutemen/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/minutemen/inspector
+ roles = list(/datum/antagonist/ert/minutemen/inspector)
+ rename_team = "CLIP Minutemen GOLD Inspector"
+ polldesc = "a CLIP Minutemen inspector"
+
+/datum/ert/minutemen/inspector/guarded
+ teamsize = 3
+ roles = list(/datum/antagonist/ert/minutemen/military_police)
+
+/datum/ert/minutemen/bard
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/minutemen/bard
+ roles = list(/datum/antagonist/ert/minutemen/bard)
+ rename_team = "BARD Biohazard Squadron"
+ polldesc = "a CLIP BARD biohazard team"
+
+/datum/ert/minutemen/bard/emergency
+ leader_role = /datum/antagonist/ert/minutemen/bard/emergency/leader
+ roles = list(/datum/antagonist/ert/minutemen/bard/emergency, /datum/antagonist/ert/minutemen/bard/medic = 1, /datum/antagonist/ert/minutemen/bard/flamer = 1)
+ rename_team = "BARD Emergency Squadron"
+ polldesc = "an emergency CLIP BARD team"
+
+/datum/ert/minutemen/military_police
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/minutemen/military_police/leader
+ roles = list(/datum/antagonist/ert/minutemen/military_police)
+ rename_team = "C-MM Military Police"
+ polldesc = "a C-MM military police team"
+
+/datum/ert/minutemen/military_police/riot
+ leader_role = /datum/antagonist/ert/minutemen/military_police/leader/riot
+ roles = list(/datum/antagonist/ert/minutemen/military_police/riot)
+ rename_team = "C-MM Riot Control Team"
+ polldesc = "a C-MM riot control team"
+
+/datum/ert/minutemen/journalist
+ teamsize = 3
+ leader_role = /datum/antagonist/ert/minutemen/correspondant
+ roles = list(/datum/antagonist/ert/minutemen/correspondant)
+ mission = "Inform the public of the frontier's news."
+ rename_team = "C-MM Correspondants"
+ polldesc = "a C-MM media team"
+ ert_template = /datum/map_template/shuttle/subshuttles/kunai
diff --git a/code/datums/ert/ert_frontiersmen.dm b/code/datums/ert/ert_frontiersmen.dm
new file mode 100644
index 000000000000..58934fa30a1d
--- /dev/null
+++ b/code/datums/ert/ert_frontiersmen.dm
@@ -0,0 +1,36 @@
+/datum/ert/frontier
+ teamsize = 4
+ opendoors = FALSE
+ leader_role = /datum/antagonist/ert/frontier/leader
+ roles = list(/datum/antagonist/ert/frontier)
+ rename_team = "Generic Frontiersmen Team"
+ mission = "Pillage in the name of the Frontiersmen."
+ polldesc = "a group of frontiersmen"
+ random_names = TRUE
+ leader_experience = FALSE
+ spawn_at_outpost = FALSE
+ ert_template = /datum/map_template/shuttle/subshuttles/brawler
+
+/datum/ert/frontier/unarmed // use for finer control of pirate's armaments
+ leader_role = /datum/antagonist/ert/frontier/leader/unarmed
+ roles = list(/datum/antagonist/ert/frontier/unarmed)
+ rename_team = "Unarmed Frontiersmen Team"
+
+/datum/ert/frontier/random
+ teamsize = 8 // the second takes the rifle and shoots
+ leader_role = /datum/antagonist/ert/frontier/random
+ roles = list(/datum/antagonist/ert/frontier/random)
+ rename_team = "Randomly Equipped Frontiersmen Team"
+
+/datum/ert/frontier/raiders
+ leader_role = /datum/antagonist/ert/frontier/leader
+ roles = list(/datum/antagonist/ert/frontier/skm, /datum/antagonist/ert/frontier/medic = 1, /datum/antagonist/ert/frontier/engineer = 1)
+ rename_team = "Assault Frontiersmen Team"
+ polldesc = "a well armed squad of pirates"
+
+/datum/ert/frontier/shock
+ teamsize = 6
+ leader_role = /datum/antagonist/ert/frontier/leader/heavy
+ roles = list(/datum/antagonist/ert/frontier/skm, /datum/antagonist/ert/frontier/sentry = 1, /datum/antagonist/ert/frontier/flamer = 1, /datum/antagonist/ert/frontier/medic/heavy = 1, /datum/antagonist/ert/frontier/engineer = 1)
+ rename_team = "Frontiersmen Shock Troops"
+ polldesc = "a frontiersmen shock troop squadron"
diff --git a/code/datums/ert/ert_gezena.dm b/code/datums/ert/ert_gezena.dm
new file mode 100644
index 000000000000..4e0057a567cd
--- /dev/null
+++ b/code/datums/ert/ert_gezena.dm
@@ -0,0 +1,21 @@
+/datum/ert/gezena
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/gezena/leader
+ roles = list(/datum/antagonist/ert/gezena, /datum/antagonist/ert/gezena/gunner, /datum/antagonist/ert/gezena/medic, /datum/antagonist/ert/gezena/engineer)
+ rename_team = "Gezenan Heavy Response Team"
+ polldesc = "a PGF response team"
+ ert_template = /datum/map_template/shuttle/subshuttles/nail
+
+/datum/ert/gezena/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/gezena/inspector
+ roles = list(/datum/antagonist/ert/gezena/inspector)
+ rename_team = "Gezenan Federation Observer"
+ polldesc = "a PGF inspector"
+
+/datum/ert/gezena/inspector/guarded
+ teamsize = 3
+ roles = list(/datum/antagonist/ert/gezena)
+
+/datum/ert/gezena/inspector/New()
+ mission = "Conduct a routine review on [station_name()]'s Federation vessels."
diff --git a/code/datums/ert/ert_indies.dm b/code/datums/ert/ert_indies.dm
new file mode 100644
index 000000000000..a4fc323b9b83
--- /dev/null
+++ b/code/datums/ert/ert_indies.dm
@@ -0,0 +1,50 @@
+/datum/ert/independent
+ teamsize = 4
+ opendoors = FALSE
+ leader_role = /datum/antagonist/ert/independent
+ roles = list(/datum/antagonist/ert/independent)
+ rename_team = "Security Independent Team"
+ polldesc = "an independent security team"
+
+/datum/ert/independent/emt
+ teamsize = 3
+ leader_role = /datum/antagonist/ert/independent/emt
+ roles = list(/datum/antagonist/ert/independent/emt)
+ rename_team = "Medical Independent Team"
+ polldesc = "an independent medical response team"
+
+/datum/ert/independent/emt/eva
+ leader_role = /datum/antagonist/ert/independent/emt/eva
+ roles = list(/datum/antagonist/ert/independent/emt/eva)
+
+/datum/ert/independent/firefighter
+ teamsize = 5
+ leader_role = /datum/antagonist/ert/independent/firefighter/leader
+ roles = list(/datum/antagonist/ert/independent/firefighter, /datum/antagonist/ert/independent/firefighter/medic)
+ rename_team = "Independent Firefighter Team"
+ polldesc = "an independent firefighting team"
+
+/datum/ert/independent/engineer
+ leader_role = /datum/antagonist/ert/independent/technician
+ roles = list(/datum/antagonist/ert/independent/technician)
+ rename_team = "Engineering Independent Team"
+ polldesc = "an independent engineering team"
+
+/datum/ert/independent/janitor
+ leader_role = /datum/antagonist/ert/independent/janitor
+ roles = list(/datum/antagonist/ert/independent/janitor)
+ rename_team = "Independent Janitorial Team"
+ polldesc = "an independent clean-up team"
+
+/datum/ert/independent/pizza
+ leader_role = /datum/antagonist/ert/independent/pizza
+ roles = list(/datum/antagonist/ert/independent/pizza)
+ rename_team = "Independent Pizza Delivery Team"
+ polldesc = "a pizza delivery job"
+
+/datum/ert/independent/deathsquad
+ teamsize = 2
+ leader_role = /datum/antagonist/ert/independent/deathsquad
+ roles = list(/datum/antagonist/ert/independent/deathsquad)
+ rename_team = "Death Commando Team"
+ polldesc = "a death squadron team"
diff --git a/code/datums/ert/ert_inteq.dm b/code/datums/ert/ert_inteq.dm
new file mode 100644
index 000000000000..a1152688ef28
--- /dev/null
+++ b/code/datums/ert/ert_inteq.dm
@@ -0,0 +1,32 @@
+/datum/ert/inteq
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/inteq/leader
+ roles = list(/datum/antagonist/ert/inteq, /datum/antagonist/ert/inteq/medic, /datum/antagonist/ert/inteq/engineer)
+ mission = "Carry out your contract."
+ rename_team = "Inteq Assault Team"
+ polldesc = "an Inteq assault team"
+ ert_template = /datum/map_template/shuttle/subshuttles/anvil
+
+/datum/ert/inteq/eva
+ leader_role = /datum/antagonist/ert/inteq/leader/eva
+ roles = list(/datum/antagonist/ert/inteq/eva, /datum/antagonist/ert/inteq/medic/eva, /datum/antagonist/ert/inteq/engineer/eva)
+
+/datum/ert/inteq/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/inteq/inspector
+ roles = list(/datum/antagonist/ert/inteq/inspector)
+ mission = "Assure Inteq's quality on the frontier."
+ rename_team = "Inteq Investigator Team"
+ polldesc = "an Inteq investigator"
+
+/datum/ert/inteq/inspector/guarded
+ teamsize = 3
+ leader_role = /datum/antagonist/ert/inteq/inspector
+ roles = list(/datum/antagonist/ert/inteq/honor_guard)
+
+/datum/ert/inteq/honor_guard
+ teamsize = 3
+ leader_role = /datum/antagonist/ert/inteq/honor_guard
+ roles = list(/datum/antagonist/ert/inteq/honor_guard)
+ rename_team = "Inteq Honor Guard"
+ polldesc = "an Inteq honor guardsman team"
diff --git a/code/datums/ert/ert_nanotrasen.dm b/code/datums/ert/ert_nanotrasen.dm
new file mode 100644
index 000000000000..79b2adf4bc8d
--- /dev/null
+++ b/code/datums/ert/ert_nanotrasen.dm
@@ -0,0 +1,26 @@
+/datum/ert/nanotrasen
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/nanotrasen/leader
+ roles = list(/datum/antagonist/ert/nanotrasen)
+ mission = "Work for the corporate values of Nanotrasen."
+ rename_team = "Vigilitas Security Team"
+ polldesc = "a Vigilitas security team"
+
+// /datum/ert/nanotrasen/emergency
+// leader_role = /datum/antagonist/ert/nanotrasen/leader/emergency
+// roles = list(/datum/antagonist/ert/nanotrasen/emergency, /datum/antagonist/ert/nanotrasen/emergency/engineer=1, /datum/antagonist/ert/nanotrasen/emergency/medic=1)
+// rename_team = "Vigilitas Distress Response Team"
+// polldesc = "a Vigilitas emergency team"
+
+/datum/ert/nanotrasen/delivery
+ leader_role = /datum/antagonist/ert/nanotrasen/delivery
+ roles = list(/datum/antagonist/ert/nanotrasen/delivery)
+ rename_team = "N+S Delivery Team"
+ polldesc = "a N+S delivery job"
+
+/datum/ert/nanotrasen/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/nanotrasen/inspector
+ roles = list(/datum/antagonist/ert/nanotrasen/inspector)
+ rename_team = "Nanotrasen Central Command Liaison"
+ polldesc = "a NT CentCom inspector"
diff --git a/code/datums/ert/ert_roumain.dm b/code/datums/ert/ert_roumain.dm
new file mode 100644
index 000000000000..5c33bdd39cb6
--- /dev/null
+++ b/code/datums/ert/ert_roumain.dm
@@ -0,0 +1,24 @@
+/datum/ert/srm
+ teamsize = 5
+ leader_role = /datum/antagonist/ert/roumain/leader
+ roles = list(/datum/antagonist/ert/roumain/medic = 1, /datum/antagonist/ert/roumain/engineer = 1, /datum/antagonist/ert/roumain)
+ mission = "Serve the Church of Saint Roumain."
+ rename_team = "Roumain Hunting Party"
+ polldesc = "a Roumain hunting party"
+
+/datum/ert/srm/battle
+ teamsize = 7
+ leader_role = /datum/antagonist/ert/roumain/leader/twobore // if you haven't heard of the srm you sure fucking will now
+ roles = list(
+ /datum/antagonist/ert/roumain/leader/colligne = 1,
+ /datum/antagonist/ert/roumain/medic = 1,
+ /datum/antagonist/ert/roumain/engineer = 1,
+ /datum/antagonist/ert/roumain/firestorm = 1,
+ /datum/antagonist/ert/roumain/scout = 1,
+ /datum/antagonist/ert/roumain/vickland
+ )
+ mission = "Defend the Church of Saint Roumain presence in this sector."
+ rename_team = "Roumain Militia Defense Team"
+ polldesc = "a Roumain militia defense team"
+
+// ashhands one day maybes
diff --git a/code/datums/ert/ert_solgov.dm b/code/datums/ert/ert_solgov.dm
new file mode 100644
index 000000000000..4d0cf8b83011
--- /dev/null
+++ b/code/datums/ert/ert_solgov.dm
@@ -0,0 +1,19 @@
+/datum/ert/solgov
+ teamsize = 4
+ opendoors = FALSE
+ leader_role = /datum/antagonist/ert/solgov
+ roles = list(/datum/antagonist/ert/solgov)
+ mission = "Intervene in Solarian interests."
+ rename_team = "SolGov Sonnensoldner Team"
+ polldesc = "a SolGov mercenary team"
+
+/datum/ert/solgov/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/solgov/inspector
+ roles = list(/datum/antagonist/ert/solgov/inspector)
+ rename_team = "SolGov Inspector"
+ polldesc = "a solarian inspector"
+ spawn_at_outpost = FALSE
+
+/datum/ert/solgov/inspector/New()
+ mission = "Conduct a routine review on [station_name()]'s vessels."
diff --git a/code/datums/ert/ert_syndicate.dm b/code/datums/ert/ert_syndicate.dm
new file mode 100644
index 000000000000..77558a5bc57e
--- /dev/null
+++ b/code/datums/ert/ert_syndicate.dm
@@ -0,0 +1,73 @@
+// stand-ins
+
+/datum/ert/syndicate
+ teamsize = 4
+ leader_role = /datum/antagonist/ert/syndicate/leader
+ roles = list(/datum/antagonist/ert/syndicate)
+ mission = "Serve the interests of the Syndicate."
+ rename_team = "Generic Syndicate Team"
+ polldesc = "a Syndicate emergency team"
+ spawn_at_outpost = FALSE
+
+/datum/ert/syndicate/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/syndicate/inspector
+ roles = list(/datum/antagonist/ert/syndicate/inspector)
+ rename_team = "Syndicate Inspector"
+ polldesc = "a syndicate ACLF inspector"
+
+/datum/ert/syndicate/inspector/New()
+ mission = "Conduct a routine review on [station_name()]'s Coalition vessels."
+
+// new gorlex republic
+
+/datum/ert/syndicate/ngr
+ teamsize = 5
+ leader_role = /datum/antagonist/ert/syndicate/ngr/leader
+ roles = list(/datum/antagonist/ert/syndicate/ngr, /datum/antagonist/ert/syndicate/ngr/grenadier = 1, /datum/antagonist/ert/syndicate/ngr/medic = 1, /datum/antagonist/ert/syndicate/ngr/sniper = 1)
+ mission = "Uphold the sovereignty of the New Gorlex Republic."
+ rename_team = "Gorlex Republic Detachment"
+ polldesc = "a Gorlex Republic battle squad"
+
+/datum/ert/syndicate/ngr/inspector
+ teamsize = 1
+ leader_role = /datum/antagonist/ert/syndicate/ngr/inspector
+ roles = list(/datum/antagonist/ert/syndicate/ngr/inspector)
+ rename_team = "Gorlex Republic Official"
+ polldesc = "a Gorlex Republic inspector"
+
+/datum/ert/syndicate/ngr/inspector/guarded
+ teamsize = 3
+ leader_role = /datum/antagonist/ert/syndicate/ngr/inspector
+ roles = list(/datum/antagonist/ert/syndicate/ngr)
+
+// cybersun
+
+/datum/ert/syndicate/cybersun
+ leader_role = /datum/antagonist/ert/syndicate/cybersun/leader
+ roles = list(/datum/antagonist/ert/syndicate/cybersun)
+ mission = "Serve the interests of CyberSun."
+ rename_team = "Cybersun Commando Team"
+ polldesc = "a Cybersun Commando team"
+
+/datum/ert/syndicate/cybersun/medic
+ leader_role = /datum/antagonist/ert/syndicate/cybersun/medic/leader
+ roles = list(/datum/antagonist/ert/syndicate/cybersun/medic)
+ mission = "Assist CyberSun clients."
+ rename_team = "Cybersun Medical Intervention Team"
+ polldesc = "a Cybersun paramedic team"
+ ert_template = /datum/map_template/shuttle/subshuttles/runner
+
+/datum/ert/syndicate/hardliners
+ leader_role = /datum/antagonist/ert/syndicate/hardliner/leader
+ roles = list(/datum/antagonist/ert/syndicate/hardliner, /datum/antagonist/ert/syndicate/hardliner/medic = 1, /datum/antagonist/ert/syndicate/hardliner/engineer = 1)
+ mission = "Serve the interests of CyberSun."
+ rename_team = "Hardliner Element"
+ polldesc = "a Hardliner attack team"
+
+/datum/ert/syndicate/ramzi
+ leader_role = /datum/antagonist/ert/syndicate/ramzi/leader
+ roles = list(/datum/antagonist/ert/syndicate/ramzi, /datum/antagonist/ert/syndicate/ramzi/medic = 1, /datum/antagonist/ert/syndicate/ramzi/demolitionist = 1)
+ mission = "Make Ramzi proud."
+ rename_team = "Ramzi Cell"
+ polldesc = "a Ramzi pirate team"
diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm
index c5f907f9c31d..d394d7707be8 100644
--- a/code/datums/holocall.dm
+++ b/code/datums/holocall.dm
@@ -34,6 +34,8 @@
/datum/holocall
var/mob/living/user //the one that called
+ ///area of the caller
+ var/area/caller_location
var/obj/machinery/holopad/calling_holopad //the one that sent the call
var/obj/machinery/holopad/connected_holopad //the one that answered the call (may be null)
var/list/dialed_holopads //all things called, will be cleared out to just connected_holopad once answered
@@ -48,6 +50,7 @@
/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees, elevated_access = FALSE)
call_start_time = world.time
user = caller
+ caller_location = get_area_name(caller)
calling_pad.outgoing_call = src
calling_holopad = calling_pad
dialed_holopads = list()
@@ -109,7 +112,7 @@
var/area/A = get_area(connected_holopad)
calling_holopad.say("[A] holopad disconnected.")
else if(H == calling_holopad && connected_holopad)
- connected_holopad.say("[user] disconnected.")
+ connected_holopad.say("[caller_location] disconnected.")
ConnectionFailure(H, TRUE)
@@ -227,7 +230,7 @@
/obj/item/disk/holodisk
name = "holorecord disk"
- desc = "Stores recorder holocalls."
+ desc = "Stores recorded holocalls."
random_color = FALSE
color = "#A7A3A6"
blueshift_pallete = FALSE
diff --git a/code/datums/hud.dm b/code/datums/hud.dm
index 24865387794a..4703a31ea0f8 100644
--- a/code/datums/hud.dm
+++ b/code/datums/hud.dm
@@ -14,7 +14,6 @@ GLOBAL_LIST_INIT(huds, list(
DATA_HUD_SENTIENT_DISEASE = new/datum/atom_hud/sentient_disease(),
DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(),
DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(),
- ANTAG_HUD_CULT = new/datum/atom_hud/antag(),
ANTAG_HUD_REV = new/datum/atom_hud/antag(),
ANTAG_HUD_OPS = new/datum/atom_hud/antag(),
ANTAG_HUD_WIZ = new/datum/atom_hud/antag(),
@@ -23,9 +22,6 @@ GLOBAL_LIST_INIT(huds, list(
ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),
- ANTAG_HUD_DEVIL = new/datum/atom_hud/antag(),
- ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(),
- ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_OBSESSED = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag(),
diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm
index bb7a33846a34..f88e594e3fc7 100644
--- a/code/datums/looping_sounds/_looping_sound.dm
+++ b/code/datums/looping_sounds/_looping_sound.dm
@@ -100,7 +100,7 @@
/datum/looping_sound/proc/get_sound(starttime, _mid_sounds)
. = _mid_sounds || mid_sounds
while(!isfile(.) && !isnull(.))
- . = pickweight(.)
+ . = pick_weight(.)
/datum/looping_sound/proc/on_start()
var/start_wait = 0
diff --git a/code/datums/map_zones.dm b/code/datums/map_zones.dm
index c4e304fb5394..bf103242c8db 100644
--- a/code/datums/map_zones.dm
+++ b/code/datums/map_zones.dm
@@ -637,7 +637,7 @@
var/ty = destination_y
var/turf/DT = locate(tx, ty, destination_z)
var/itercount = 0
- while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive
+ while(DT.density) // Extend towards the center of the map, trying to look for a better place to arrive
if (itercount++ >= 100)
log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [arrived] within 100 iterations.")
break
diff --git a/code/datums/mapgen/Whitesandsatmos.dm b/code/datums/mapgen/Whitesandsatmos.dm
index 87d4ef33b881..231a9c9eec14 100644
--- a/code/datums/mapgen/Whitesandsatmos.dm
+++ b/code/datums/mapgen/Whitesandsatmos.dm
@@ -1,28 +1,3 @@
#define WHITESANDS_WALL_ENV "rock"
#define WHITESANDS_SAND_ENV "sand"
#define WHITESANDS_DRIED_ENV "dried_up"
-#define WHITESANDS_ATMOS "ws_atmos"
-
-/datum/atmosphere/whitesands
- id = WHITESANDS_ATMOS
-
- base_gases = list(
- GAS_O2=5,
- GAS_N2=10,
- )
- normal_gases = list(
- GAS_O2=10,
- GAS_N2=10,
- GAS_CO2=10,
- )
- restricted_gases = list(
- GAS_PLASMA=0.1,
- GAS_H2O=0.1,
- )
- restricted_chance = 50
-
- minimum_pressure = HAZARD_LOW_PRESSURE + 10
- maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1
-
- minimum_temp = 180
- maximum_temp = 180
diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm
index 077065c8e44e..f64e47504957 100644
--- a/code/datums/mapgen/planetary/JungleGenerator.dm
+++ b/code/datums/mapgen/planetary/JungleGenerator.dm
@@ -100,7 +100,7 @@
mob_spawn_list = list(
/mob/living/carbon/monkey = 10,
/mob/living/simple_animal/hostile/retaliate/chicken = 10,
- /obj/effect/spawner/lootdrop/chicken/jungle/flock = 1
+ /obj/effect/spawner/random/chicken/jungle/flock = 1
)
/datum/biome/jungle/dense
@@ -123,7 +123,7 @@
/mob/living/simple_animal/hostile/gorilla = 1,
/mob/living/carbon/monkey = 6,
/mob/living/simple_animal/hostile/retaliate/chicken = 4,
- /obj/effect/spawner/lootdrop/chicken/jungle/flock = 1
+ /obj/effect/spawner/random/chicken/jungle/flock = 1
)
/datum/biome/jungle/plains
@@ -181,7 +181,7 @@
feature_spawn_list = list(
/obj/item/pickaxe/rusted = 1,
/obj/structure/spawner/burrow/jungle_planet = 1,
- /obj/effect/spawner/lootdrop/anomaly/jungle = 1
+ /obj/effect/spawner/random/anomaly/jungle = 1
)
/datum/biome/cave/jungle/dirt
diff --git a/code/datums/mapgen/planetary/LavaGenerator.dm b/code/datums/mapgen/planetary/LavaGenerator.dm
index bca54d019397..846d4145a66c 100644
--- a/code/datums/mapgen/planetary/LavaGenerator.dm
+++ b/code/datums/mapgen/planetary/LavaGenerator.dm
@@ -100,7 +100,7 @@
/obj/structure/flora/rock/hell = 20,
/obj/structure/elite_tumor = 4,
/obj/structure/geyser/random = 4,
- /obj/effect/spawner/lootdrop/anomaly/lava = 2,
+ /obj/effect/spawner/random/anomaly/lava = 2,
/obj/structure/flora/rock/hell = 14,
/obj/structure/vein = 5,
/obj/structure/vein/classtwo = 2,
@@ -108,7 +108,7 @@
/obj/structure/geyser/random = 2,
/obj/structure/vein/classthree = 1,
/obj/effect/spawner/minefield = 1,
- /obj/effect/spawner/lootdrop/anomaly/lava = 1,
+ /obj/effect/spawner/random/anomaly/lava = 1,
)
mob_spawn_chance = 4
mob_spawn_list = list(
@@ -167,7 +167,7 @@
feature_spawn_list = list(
/obj/structure/flora/tree/dead/barren = 50,
/obj/structure/flora/tree/dead/tall/grey = 45,
- /obj/effect/spawner/lootdrop/anomaly/lava = 10,
+ /obj/effect/spawner/random/anomaly/lava = 10,
/obj/structure/vein = 5,
/obj/structure/vein/classtwo = 2,
/obj/structure/vein/classthree = 1,
diff --git a/code/datums/mapgen/planetary/RockGenerator.dm b/code/datums/mapgen/planetary/RockGenerator.dm
index 30349a2ea53b..b7ab59f5d843 100644
--- a/code/datums/mapgen/planetary/RockGenerator.dm
+++ b/code/datums/mapgen/planetary/RockGenerator.dm
@@ -89,10 +89,10 @@
/obj/structure/vein = 60,
/obj/structure/elite_tumor = 40,
/obj/structure/vein/classtwo = 40,
- /obj/effect/spawner/lootdrop/anomaly/rock = 10,
+ /obj/effect/spawner/random/anomaly/rock = 10,
/obj/structure/vein/classthree = 10,
/obj/effect/spawner/minefield = 2,
- /obj/effect/spawner/lootdrop/anomaly/big = 1 //get out of here stalker
+ /obj/effect/spawner/random/anomaly/big = 1 //get out of here stalker
)
flora_spawn_chance = 5
@@ -162,7 +162,7 @@
/obj/structure/vein/classthree = 1,
/obj/structure/spawner/burrow/rock_plant = 4,
/obj/effect/spawner/minefield = 1,
- /obj/effect/spawner/lootdrop/anomaly/rock/cave = 1,
+ /obj/effect/spawner/random/anomaly/rock/cave = 1,
)
mob_spawn_chance = 6
mob_spawn_list = list(
diff --git a/code/datums/mapgen/planetary/SandGenerator.dm b/code/datums/mapgen/planetary/SandGenerator.dm
index e285f5b1ac6c..37615a6b961e 100644
--- a/code/datums/mapgen/planetary/SandGenerator.dm
+++ b/code/datums/mapgen/planetary/SandGenerator.dm
@@ -96,7 +96,7 @@
/obj/structure/vein/classtwo = 4,
/obj/structure/elite_tumor = 4,
/obj/structure/vein/classthree = 2,
- /obj/effect/spawner/lootdrop/anomaly/sand = 1,
+ /obj/effect/spawner/random/anomaly/sand = 1,
)
mob_spawn_chance = 4
mob_spawn_list = list(
@@ -120,7 +120,7 @@
/obj/structure/flora/ash/cap_shroom = 4,
/obj/structure/flora/ash/stem_shroom = 4,
/obj/effect/decal/remains/human = 4,
- /obj/effect/spawner/lootdrop/maintenance = 40,
+ /obj/effect/spawner/random/maintenance = 40,
)
/datum/biome/sand/grass
@@ -199,7 +199,7 @@
/obj/structure/geyser/random = 4,
/obj/structure/vein/classtwo = 4,
/obj/structure/elite_tumor = 4,
- /obj/effect/spawner/lootdrop/anomaly/sand/cave = 1
+ /obj/effect/spawner/random/anomaly/sand/cave = 1
)
mob_spawn_chance = 4
mob_spawn_list = list(
diff --git a/code/datums/mapgen/planetary/SnowGenerator.dm b/code/datums/mapgen/planetary/SnowGenerator.dm
index 7fddcd176c66..4297f8a50f2c 100644
--- a/code/datums/mapgen/planetary/SnowGenerator.dm
+++ b/code/datums/mapgen/planetary/SnowGenerator.dm
@@ -112,8 +112,8 @@
)
feature_spawn_chance = 0.1
feature_spawn_list = list(
- /obj/effect/spawner/lootdrop/anomaly/ice = 12,
- /obj/effect/spawner/lootdrop/anomaly/big = 1,
+ /obj/effect/spawner/random/anomaly/ice = 12,
+ /obj/effect/spawner/random/anomaly/big = 1,
/obj/structure/spawner/burrow/ice_planet = 80,
/obj/structure/vein/ice = 25,
/obj/effect/spawner/minefield = 2,
@@ -212,8 +212,8 @@
)
feature_spawn_chance = 0.3
feature_spawn_list = list(
- /obj/effect/spawner/lootdrop/anomaly/ice = 100,
- /obj/effect/spawner/lootdrop/anomaly/big = 1,
+ /obj/effect/spawner/random/anomaly/ice = 100,
+ /obj/effect/spawner/random/anomaly/big = 1,
/obj/structure/spawner/burrow/ice_planet/hard = 600,
/obj/structure/vein/ice = 300,
/obj/structure/vein/ice/classtwo = 500,
@@ -268,7 +268,7 @@
feature_spawn_list = list(
/obj/structure/spawner/burrow/ice_planet = 60,
/obj/structure/spawner/burrow/ice_planet = 40,
- /obj/effect/spawner/lootdrop/anomaly/ice/cave = 10,
+ /obj/effect/spawner/random/anomaly/ice/cave = 10,
/obj/structure/vein/ice = 30,
/obj/structure/vein/ice/classtwo = 50,
/obj/structure/vein/ice/classthree = 6,
diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm
index 67a9e5649a8c..15690125c005 100644
--- a/code/datums/mapgen/planetary/WasteGenerator.dm
+++ b/code/datums/mapgen/planetary/WasteGenerator.dm
@@ -96,28 +96,27 @@
flora_spawn_list = list(
//mech spawners
- /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
- /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 20,
+ /obj/effect/spawner/random/waste/mechwreck = 100,
+ /obj/effect/spawner/random/waste/mechwreck/rare = 20,
//decals and fluff structures
- /obj/effect/spawner/lootdrop/waste/trash = 1800,
- /obj/effect/spawner/lootdrop/waste/radiation = 80,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 10,
+ /obj/effect/spawner/random/trash/decal = 1800,
+ /obj/effect/spawner/random/waste/radiation = 80,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 10,
//stuff you can actually use
- /obj/effect/spawner/lootdrop/waste/girder = 600,
- /obj/structure/reagent_dispensers/fueltank = 100,
+ /obj/effect/spawner/random/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 300,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
- /obj/effect/spawner/lootdrop/maintenance = 200,
- /obj/effect/spawner/lootdrop/maintenance/two = 100,
- /obj/effect/spawner/lootdrop/maintenance/three = 50,
- /obj/effect/spawner/lootdrop/maintenance/four = 20,
+ /obj/effect/spawner/random/waste/atmos_can = 50,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 300,
+ /obj/effect/spawner/random/waste/grille_or_trash = 200,
+ /obj/effect/spawner/random/maintenance = 200,
+ /obj/effect/spawner/random/maintenance/two = 100,
+ /obj/effect/spawner/random/maintenance/three = 50,
+ /obj/effect/spawner/random/maintenance/four = 20,
//plants
/obj/structure/flora/ash/garden/waste = 70,
@@ -126,7 +125,7 @@
//the illusive shrapnel plant
/obj/item/mine/pressure/explosive/shrapnel/live = 30,
- /obj/effect/spawner/lootdrop/mine = 8,
+ /obj/effect/spawner/random/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -134,14 +133,14 @@
/obj/effect/radiation/waste = 30,
/obj/effect/radiation/waste/intense = 10,
/obj/structure/geyser/random = 1,
- /obj/effect/spawner/lootdrop/anomaly/waste = 1
+ /obj/effect/spawner/random/anomaly/waste = 1
)
mob_spawn_list = list(
//hivebots, not too difficult
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 70,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 40,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 30,
+ /mob/living/simple_animal/hostile/hivebot/strong = 20,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 40,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 30,
//bots, are hostile
/mob/living/simple_animal/bot/firebot/rockplanet = 15,
/mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
@@ -160,23 +159,23 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/trash = 180,
- /obj/effect/spawner/lootdrop/waste/radiation = 16,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 2,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 36,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 60,
+ /obj/effect/spawner/random/trash/decal = 180,
+ /obj/effect/spawner/random/waste/radiation = 16,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 2,
+ /obj/effect/spawner/random/waste/atmos_can = 36,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 60,
)
mob_spawn_chance = 1
/datum/biome/waste/crater/rad
flora_spawn_list = list(
/obj/structure/flora/ash/glowshroom = 180,
- /obj/effect/spawner/lootdrop/waste/trash = 90,
- /obj/effect/spawner/lootdrop/waste/radiation = 25,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 7,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 7,
- /obj/effect/spawner/lootdrop/waste/salvageable = 15
+ /obj/effect/spawner/random/trash/decal = 90,
+ /obj/effect/spawner/random/waste/radiation = 25,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 7,
+ /obj/effect/spawner/random/waste/atmos_can = 7,
+ /obj/effect/spawner/random/waste/salvageable = 15
)
/datum/biome/waste/clearing
@@ -185,27 +184,26 @@
/datum/biome/waste/clearing/mushroom
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
- /obj/effect/spawner/lootdrop/waste/trash = 900,
- /obj/effect/spawner/lootdrop/waste/radiation = 300,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 120,
- /obj/effect/spawner/lootdrop/waste/girder = 600,
- /obj/structure/reagent_dispensers/fueltank = 100,
+ /obj/effect/spawner/random/waste/mechwreck = 100,
+ /obj/effect/spawner/random/trash/decal = 900,
+ /obj/effect/spawner/random/waste/radiation = 300,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 120,
+ /obj/effect/spawner/random/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 300,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
- /obj/effect/spawner/lootdrop/maintenance = 200,
- /obj/effect/spawner/lootdrop/maintenance/two = 100,
- /obj/effect/spawner/lootdrop/maintenance/three = 50,
- /obj/effect/spawner/lootdrop/maintenance/four = 20,
+ /obj/effect/spawner/random/waste/atmos_can = 50,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 300,
+ /obj/effect/spawner/random/waste/grille_or_trash = 200,
+ /obj/effect/spawner/random/maintenance = 200,
+ /obj/effect/spawner/random/maintenance/two = 100,
+ /obj/effect/spawner/random/maintenance/three = 50,
+ /obj/effect/spawner/random/maintenance/four = 20,
/obj/structure/flora/ash/garden/waste = 300,
/obj/structure/flora/ash/glowshroom = 1800,
/obj/item/mine/pressure/explosive/shrapnel/live = 30,
- /obj/effect/spawner/lootdrop/mine = 8,
+ /obj/effect/spawner/random/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -229,36 +227,35 @@
)
flora_spawn_list = list( //there are no plants here
- /obj/effect/spawner/lootdrop/waste/mechwreck = 200,
- /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 50,
- /obj/effect/spawner/lootdrop/waste/trash = 900,
- /obj/effect/spawner/lootdrop/waste/radiation = 80,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 20,
- /obj/effect/spawner/lootdrop/waste/girder = 600,
- /obj/structure/reagent_dispensers/fueltank = 100,
+ /obj/effect/spawner/random/waste/mechwreck = 200,
+ /obj/effect/spawner/random/waste/mechwreck/rare = 50,
+ /obj/effect/spawner/random/trash/decal = 900,
+ /obj/effect/spawner/random/waste/radiation = 80,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 20,
+ /obj/effect/spawner/random/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 300,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
- /obj/effect/spawner/lootdrop/maintenance = 200,
- /obj/effect/spawner/lootdrop/maintenance/two = 100,
- /obj/effect/spawner/lootdrop/maintenance/three = 50,
- /obj/effect/spawner/lootdrop/maintenance/four = 20,
+ /obj/effect/spawner/random/waste/atmos_can = 50,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 300,
+ /obj/effect/spawner/random/waste/grille_or_trash = 200,
+ /obj/effect/spawner/random/maintenance = 200,
+ /obj/effect/spawner/random/maintenance/two = 100,
+ /obj/effect/spawner/random/maintenance/three = 50,
+ /obj/effect/spawner/random/maintenance/four = 20,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 180,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 300,
+ /obj/effect/spawner/random/waste/atmos_can = 180,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 300,
/obj/item/mine/pressure/explosive/rad/live = 30,
- /obj/effect/spawner/lootdrop/mine = 8,
+ /obj/effect/spawner/random/mine = 8,
/obj/effect/spawner/minefield = 2
)
mob_spawn_list = list( //nor organics, more biased towards hivebots though
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 50,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50,
+ /mob/living/simple_animal/hostile/hivebot/strong = 20,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 50,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 50,
/mob/living/simple_animal/bot/firebot/rockplanet = 15,
/mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
/mob/living/simple_animal/hostile/abandoned_minebot = 15,
@@ -291,29 +288,28 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/mechwreck = 100,
- /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 20,
- /obj/effect/spawner/lootdrop/waste/trash = 1800,
- /obj/effect/spawner/lootdrop/waste/radiation = 80,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 10,
- /obj/effect/spawner/lootdrop/waste/girder = 600,
- /obj/structure/reagent_dispensers/fueltank = 100,
+ /obj/effect/spawner/random/waste/mechwreck = 100,
+ /obj/effect/spawner/random/waste/mechwreck/rare = 20,
+ /obj/effect/spawner/random/trash/decal = 1800,
+ /obj/effect/spawner/random/waste/radiation = 80,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 10,
+ /obj/effect/spawner/random/waste/girder = 600,
/obj/structure/reagent_dispensers/watertank = 200,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 5,
- /obj/effect/spawner/lootdrop/waste/salvageable = 300,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
- /obj/effect/spawner/lootdrop/maintenance = 20,
- /obj/effect/spawner/lootdrop/maintenance/two = 50,
- /obj/effect/spawner/lootdrop/maintenance/three = 100,
- /obj/effect/spawner/lootdrop/maintenance/four = 200,
- /obj/effect/spawner/lootdrop/waste/salvageable = 400,
+ /obj/effect/spawner/random/waste/atmos_can = 50,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 5,
+ /obj/effect/spawner/random/waste/salvageable = 300,
+ /obj/effect/spawner/random/waste/grille_or_trash = 200,
+ /obj/effect/spawner/random/maintenance = 20,
+ /obj/effect/spawner/random/maintenance/two = 50,
+ /obj/effect/spawner/random/maintenance/three = 100,
+ /obj/effect/spawner/random/maintenance/four = 200,
+ /obj/effect/spawner/random/waste/salvageable = 400,
/obj/structure/flora/ash/garden/waste = 70,
/obj/structure/flora/ash/glowshroom = 400, //more common in caves
/obj/item/mine/pressure/explosive/rad/live = 10,
- /obj/effect/spawner/lootdrop/mine = 8,
+ /obj/effect/spawner/random/mine = 8,
/obj/effect/spawner/minefield = 2
)
@@ -321,12 +317,12 @@
/obj/effect/radiation/waste = 30,
/obj/effect/radiation/waste/intense = 10,
/obj/structure/geyser/random = 1,
- /obj/effect/spawner/lootdrop/anomaly/waste/cave = 1
+ /obj/effect/spawner/random/anomaly/waste/cave = 1
)
mob_spawn_list = list(
- /mob/living/simple_animal/hostile/hivebot/strong/rockplanet = 70,
- /mob/living/simple_animal/hostile/hivebot/range/rockplanet = 40,
- /mob/living/simple_animal/hostile/hivebot/rapid/rockplanet = 30,
+ /mob/living/simple_animal/hostile/hivebot/strong = 20,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 40,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 30,
/mob/living/simple_animal/bot/firebot/rockplanet = 15,
/mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
/mob/living/simple_animal/hostile/abandoned_minebot = 15,
@@ -352,25 +348,24 @@
/datum/biome/cave/waste/rad
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/trash = 900,
- /obj/effect/spawner/lootdrop/waste/radiation = 250,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 70,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 50,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 5,
- /obj/effect/spawner/lootdrop/waste/salvageable = 150,
- /obj/effect/spawner/lootdrop/waste/girder = 200,
- /obj/structure/reagent_dispensers/fueltank = 10,
+ /obj/effect/spawner/random/trash/decal = 900,
+ /obj/effect/spawner/random/waste/radiation = 250,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 70,
+ /obj/effect/spawner/random/waste/atmos_can = 50,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 5,
+ /obj/effect/spawner/random/waste/salvageable = 150,
+ /obj/effect/spawner/random/waste/girder = 200,
/obj/structure/reagent_dispensers/watertank = 10,
/obj/item/stack/cable_coil/cut = 500,
/obj/structure/closet/crate/secure/loot = 30,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 200,
- /obj/effect/spawner/lootdrop/maintenance = 20,
- /obj/effect/spawner/lootdrop/maintenance/two = 50,
- /obj/effect/spawner/lootdrop/maintenance/three = 100,
- /obj/effect/spawner/lootdrop/maintenance/four = 200,
+ /obj/effect/spawner/random/waste/grille_or_trash = 200,
+ /obj/effect/spawner/random/maintenance = 20,
+ /obj/effect/spawner/random/maintenance/two = 50,
+ /obj/effect/spawner/random/maintenance/three = 100,
+ /obj/effect/spawner/random/maintenance/four = 200,
/obj/structure/flora/ash/glowshroom = 1800,
/obj/item/mine/pressure/explosive/rad/live = 30,
- /obj/effect/spawner/lootdrop/mine = 8,
+ /obj/effect/spawner/random/mine = 8,
/obj/effect/spawner/minefield = 2
)
feature_spawn_chance = 12
@@ -387,33 +382,30 @@
/turf/closed/wall/rust/wasteplanet = 10
)
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/mechwreck = 40,
- /obj/effect/spawner/lootdrop/waste/mechwreck/rare = 10,
- /obj/effect/spawner/lootdrop/waste/trash = 180,
- /obj/effect/spawner/lootdrop/waste/radiation = 32,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 4,
- /obj/effect/spawner/lootdrop/waste/girder = 120,
- /obj/structure/reagent_dispensers/fueltank = 20,
+ /obj/effect/spawner/random/waste/mechwreck = 40,
+ /obj/effect/spawner/random/waste/mechwreck/rare = 10,
+ /obj/effect/spawner/random/trash/decal = 180,
+ /obj/effect/spawner/random/waste/radiation = 32,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 4,
+ /obj/effect/spawner/random/waste/girder = 120,
/obj/structure/reagent_dispensers/watertank = 40,
/obj/item/stack/cable_coil/cut = 100,
/obj/structure/closet/crate/secure/loot = 6,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 10,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 60,
- /obj/effect/spawner/lootdrop/waste/grille_or_trash = 40,
- /obj/effect/spawner/lootdrop/maintenance = 4,
- /obj/effect/spawner/lootdrop/maintenance/two = 10,
- /obj/effect/spawner/lootdrop/maintenance/three = 20,
- /obj/effect/spawner/lootdrop/maintenance/four = 40,
- /obj/effect/spawner/lootdrop/waste/salvageable = 80,
- /obj/item/mine/proximity/spawner/manhack/live = 40,
- /obj/effect/spawner/lootdrop/mine = 8,
- /obj/effect/spawner/minefield/manhack = 2
+ /obj/effect/spawner/random/waste/atmos_can = 10,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 60,
+ /obj/effect/spawner/random/waste/grille_or_trash = 40,
+ /obj/effect/spawner/random/maintenance = 4,
+ /obj/effect/spawner/random/maintenance/two = 10,
+ /obj/effect/spawner/random/maintenance/three = 20,
+ /obj/effect/spawner/random/maintenance/four = 40,
+ /obj/effect/spawner/random/waste/salvageable = 80,
+ /obj/effect/spawner/random/mine = 8,
)
mob_spawn_list = list( //nor organics, more biased towards hivebots though
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 50,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50,
+ /mob/living/simple_animal/hostile/hivebot/strong = 20,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 50,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 50,
/mob/living/simple_animal/bot/firebot/rockplanet = 15,
/mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
/mob/living/simple_animal/hostile/abandoned_minebot = 15,
@@ -423,31 +415,30 @@
/datum/biome/cave/waste/metal/hivebot
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/trash = 90,
- /obj/effect/spawner/lootdrop/waste/radiation = 16,
- /obj/effect/spawner/lootdrop/waste/radiation/more_rads = 2,
- /obj/effect/spawner/lootdrop/waste/girder = 60,
- /obj/structure/reagent_dispensers/fueltank = 10,
+ /obj/effect/spawner/random/trash/decal = 90,
+ /obj/effect/spawner/random/waste/radiation = 16,
+ /obj/effect/spawner/random/waste/radiation/more_rads = 2,
+ /obj/effect/spawner/random/waste/girder = 60,
/obj/structure/reagent_dispensers/watertank = 20,
/obj/item/stack/cable_coil/cut = 50,
/obj/structure/closet/crate/secure/loot = 3,
- /obj/effect/spawner/lootdrop/maintenance = 2,
- /obj/effect/spawner/lootdrop/maintenance/two = 5,
- /obj/effect/spawner/lootdrop/maintenance/three = 10,
- /obj/effect/spawner/lootdrop/maintenance/four = 20,
- /obj/effect/spawner/lootdrop/waste/salvageable = 40,
+ /obj/effect/spawner/random/maintenance = 2,
+ /obj/effect/spawner/random/maintenance/two = 5,
+ /obj/effect/spawner/random/maintenance/three = 10,
+ /obj/effect/spawner/random/maintenance/four = 20,
+ /obj/effect/spawner/random/waste/salvageable = 40,
/obj/structure/foamedmetal = 100,
- /obj/item/mine/proximity/spawner/manhack/live = 20
)
mob_spawn_list = list( //Whoops! All hivebots!
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 50,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50
+ /mob/living/simple_animal/hostile/hivebot/strong = 20,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 40,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 20,
+ /mob/living/simple_animal/hostile/hivebot = 20,
+ /mob/living/simple_animal/hostile/hivebot/defender = 10
)
mob_spawn_chance = 30
feature_spawn_list = list(
/obj/structure/spawner/hivebot = 1,
- /obj/effect/spawner/minefield/manhack = 2
)
feature_spawn_chance = 2 //hivebot biomes should have their dongles
@@ -463,25 +454,24 @@
)
flora_spawn_list = list(
- /obj/effect/spawner/lootdrop/waste/mechwreck = 20,
- /obj/effect/spawner/lootdrop/waste/trash = 90,
- /obj/effect/spawner/lootdrop/waste/radiation = 16,
- /obj/structure/reagent_dispensers/fueltank = 10,
+ /obj/effect/spawner/random/waste/mechwreck = 20,
+ /obj/effect/spawner/random/trash/decal = 90,
+ /obj/effect/spawner/random/waste/radiation = 16,
/obj/structure/reagent_dispensers/watertank = 20,
/obj/item/stack/cable_coil/cut = 50,
/obj/structure/closet/crate/secure/loot = 3,
- /obj/effect/spawner/lootdrop/waste/atmos_can = 5,
- /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1,
- /obj/effect/spawner/lootdrop/waste/salvageable = 30,
- /obj/effect/spawner/lootdrop/maintenance = 2,
- /obj/effect/spawner/lootdrop/maintenance/two = 5,
- /obj/effect/spawner/lootdrop/maintenance/three = 10,
- /obj/effect/spawner/lootdrop/waste/salvageable = 40,
+ /obj/effect/spawner/random/waste/atmos_can = 5,
+ /obj/effect/spawner/random/waste/atmos_can/rare = 1,
+ /obj/effect/spawner/random/waste/salvageable = 30,
+ /obj/effect/spawner/random/maintenance = 2,
+ /obj/effect/spawner/random/maintenance/two = 5,
+ /obj/effect/spawner/random/maintenance/three = 10,
+ /obj/effect/spawner/random/waste/salvageable = 40,
)
mob_spawn_list = list(
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 50,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 50,
+ /mob/living/simple_animal/hostile/hivebot/strong = 80,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 50,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 50,
/mob/living/simple_animal/bot/firebot/rockplanet = 15,
/mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
/mob/living/simple_animal/hostile/abandoned_minebot = 15,
@@ -492,4 +482,3 @@
flora_spawn_chance = 30
feature_spawn_chance = 8
mob_spawn_chance = 5
-
diff --git a/code/datums/mapgen/single_biome/WasteplanetCaves.dm b/code/datums/mapgen/single_biome/WasteplanetCaves.dm
deleted file mode 100644
index 08f63ba3149a..000000000000
--- a/code/datums/mapgen/single_biome/WasteplanetCaves.dm
+++ /dev/null
@@ -1,67 +0,0 @@
-/datum/map_generator/single_biome/wasteplanet
- initial_closed_chance = 45
- smoothing_iterations = 50
- birth_limit = 4
- death_limit = 3
-
- biome_type = /datum/biome/cave/wasteplanet
- area_type = /area/overmap_encounter/planetoid/wasteplanet
-
-/datum/biome/cave/wasteplanet
- open_turf_types = list(/turf/open/floor/plating/asteroid/wasteplanet = 50,
- /turf/open/floor/plating/rust/wasteplanet = 10,
- /turf/open/floor/plating/wasteplanet = 5)
- closed_turf_types = list(/turf/closed/mineral/random/wasteplanet = 45,
- /turf/closed/wall/rust = 10,)
-
- flora_spawn_list = list(
- /obj/structure/mecha_wreckage/ripley = 15,
- /obj/structure/mecha_wreckage/ripley/firefighter = 9,
- /obj/structure/mecha_wreckage/ripley/mkii = 9,
- /obj/structure/girder = 60,
- /obj/structure/reagent_dispensers/fueltank = 30,
- /obj/item/stack/cable_coil/cut = 30,
- /obj/effect/decal/cleanable/greenglow = 60,
- /obj/effect/decal/cleanable/glass = 30,
- /obj/structure/closet/crate/secure/loot = 3,
- /obj/machinery/portable_atmospherics/canister/toxins = 3,
- /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
- /obj/structure/radioactive = 6,
- /obj/structure/radioactive/stack = 6,
- /obj/structure/radioactive/waste = 6,
- /obj/structure/flora/ash/garden/waste = 15,
- /obj/structure/flora/ash/glowshroom = 90,
-
- /obj/structure/salvageable/machine = 20,
- /obj/structure/salvageable/autolathe = 15,
- /obj/structure/salvageable/computer = 10,
- /obj/structure/salvageable/protolathe = 10,
- /obj/structure/salvageable/circuit_imprinter = 8,
- /obj/structure/salvageable/destructive_analyzer = 8,
- /obj/structure/salvageable/server = 8,
- /obj/item/mine/pressure/explosive/rusty/live = 30,
- /obj/effect/spawner/lootdrop/mine = 8
- )
- feature_spawn_list = list(
- /obj/structure/geyser/random = 1,
- /obj/effect/spawner/minefield = 1
- )
- mob_spawn_list = list(
- //hivebots, not too difficult
- /mob/living/simple_animal/hostile/hivebot/strong/rockplanet = 70,
- /mob/living/simple_animal/hostile/hivebot/range/rockplanet = 40,
- /mob/living/simple_animal/hostile/hivebot/rapid/rockplanet = 30,
- //crystal mobs, very difficult
- /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal = 1,
- /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten = 1,
- /mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal = 1,
- //bots, are hostile
- /mob/living/simple_animal/bot/firebot/rockplanet = 15,
- /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
- /mob/living/simple_animal/hostile/abandoned_minebot = 15,
- /mob/living/simple_animal/bot/floorbot/rockplanet = 15,
- )
-
- flora_spawn_chance = 10
- feature_spawn_chance = 0.1
- mob_spawn_chance = 2
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index ee3ca3631332..395b1a3e4431 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -345,12 +345,6 @@
remove_antag_datum(/datum/antagonist/wizard)
special_role = null
-/datum/mind/proc/remove_cultist()
- if(src in SSticker.mode.cult)
- SSticker.mode.remove_cultist(src, 0, 0)
- special_role = null
- remove_antag_equip()
-
/datum/mind/proc/remove_antag_equip()
var/list/Mob_Contents = current.get_contents()
for(var/obj/item/I in Mob_Contents)
@@ -363,7 +357,6 @@
remove_traitor()
remove_nukeop()
remove_wizard()
- remove_cultist()
/datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner)
if(!current)
@@ -436,10 +429,7 @@
//Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does.
/datum/mind/proc/enslave_mind_to_creator(mob/living/creator)
- if(iscultist(creator))
- SSticker.mode.add_cultist(src)
-
- else if(is_nuclear_operative(creator))
+ if(is_nuclear_operative(creator))
var/datum/antagonist/nukeop/converter = creator.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)
var/datum/antagonist/nukeop/N = new()
N.send_to_spawnpoint = FALSE
@@ -708,14 +698,6 @@
assigned_role = ROLE_WIZARD
add_antag_datum(/datum/antagonist/wizard)
-
-/datum/mind/proc/make_Cultist()
- if(!has_antag_datum(/datum/antagonist/cult,TRUE))
- SSticker.mode.add_cultist(src,FALSE,equip=TRUE)
- special_role = ROLE_CULTIST
- to_chat(current, "You catch a glimpse of the Realm of Nar'Sie, The Geometer of Blood. You now see how flimsy your world is, you see that it should be open to the knowledge of Nar'Sie.")
- to_chat(current, "Assist your new brethren in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.")
-
/datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S)
spell_list += S
S.action.Grant(current)
diff --git a/code/datums/mood_events/beauty_events.dm b/code/datums/mood_events/beauty_events.dm
index 47c318112906..87d0536bdeb0 100644
--- a/code/datums/mood_events/beauty_events.dm
+++ b/code/datums/mood_events/beauty_events.dm
@@ -1,19 +1,19 @@
/datum/mood_event/horridroom
- description = "This room looks terrible!\n"
+ description = span_boldwarning("This room looks terrible!")
mood_change = -5
/datum/mood_event/badroom
- description = "This room looks really bad.\n"
+ description = span_warning("This room looks really bad.")
mood_change = -3
/datum/mood_event/decentroom
- description = "This room looks alright.\n"
+ description = span_nicegreen("This room looks alright.")
mood_change = 1
/datum/mood_event/goodroom
- description = "This room looks really pretty!\n"
+ description = span_nicegreen("This room looks really pretty!")
mood_change = 3
/datum/mood_event/greatroom
- description = "This room is beautiful!\n"
+ description = span_nicegreen("This room is beautiful!")
mood_change = 5
diff --git a/code/datums/mood_events/drink_events.dm b/code/datums/mood_events/drink_events.dm
index b0a6d4418147..d768ac7cdc4f 100644
--- a/code/datums/mood_events/drink_events.dm
+++ b/code/datums/mood_events/drink_events.dm
@@ -1,6 +1,6 @@
/datum/mood_event/drunk
mood_change = 3
- description = "Everything just feels better after a drink or two.\n"
+ description = span_nicegreen("Everything just feels better after a drink or two.")
/datum/mood_event/drunk/add_effects(param)
// Display blush visual
@@ -13,26 +13,26 @@
owner.update_body()
/datum/mood_event/quality_nice
- description = "That drink wasn't bad at all.\n"
+ description = span_nicegreen("That drink wasn't bad at all.")
mood_change = 2
timeout = 7 MINUTES
/datum/mood_event/quality_good
- description = "That drink was pretty good.\n"
+ description = span_nicegreen("That drink was pretty good.")
mood_change = 4
timeout = 7 MINUTES
/datum/mood_event/quality_verygood
- description = "That drink was great!\n"
+ description = span_nicegreen("That drink was great!")
mood_change = 6
timeout = 7 MINUTES
/datum/mood_event/quality_fantastic
- description = "That drink was amazing!\n"
+ description = span_nicegreen("That drink was amazing!")
mood_change = 8
timeout = 7 MINUTES
/datum/mood_event/amazingtaste
- description = "Amazing taste!\n"
+ description = span_nicegreen("Amazing taste!")
mood_change = 50
timeout = 10 MINUTES
diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm
index 028973c5c839..6294ef67ce40 100644
--- a/code/datums/mood_events/drug_events.dm
+++ b/code/datums/mood_events/drug_events.dm
@@ -1,14 +1,14 @@
/datum/mood_event/high
mood_change = 6
- description = "Woooow duudeeeeee...I'm tripping baaalls...\n"
+ description = span_nicegreen("Woooow duudeeeeee...I'm tripping baaalls...")
/datum/mood_event/smoked
- description = "I have had a smoke recently.\n"
+ description = span_nicegreen("I have had a smoke recently.")
mood_change = 1
timeout = 6 MINUTES
/datum/mood_event/wrong_brand
- description = "That brand of cigarette just doesn't hit right.\n"
+ description = span_warning("That brand of cigarette just doesn't hit right.")
mood_change = -1
timeout = 6 MINUTES
@@ -17,72 +17,72 @@
timeout = 5 MINUTES
/datum/mood_event/overdose/add_effects(drug_name)
- description = "I think I took a bit too much of that [drug_name]\n"
+ description = span_warning("I think I took a bit too much of that [drug_name]")
/datum/mood_event/withdrawal_light
mood_change = -2
/datum/mood_event/withdrawal_light/add_effects(drug_name)
- description = "I could use some [drug_name]\n"
+ description = span_warning("I could use some [drug_name]")
/datum/mood_event/withdrawal_medium
mood_change = -5
/datum/mood_event/withdrawal_medium/add_effects(drug_name)
- description = "I really need [drug_name]\n"
+ description = span_warning("I really need [drug_name]")
/datum/mood_event/withdrawal_severe
mood_change = -8
/datum/mood_event/withdrawal_severe/add_effects(drug_name)
- description = "Oh god I need some of that [drug_name]\n"
+ description = span_boldwarning("Oh god I need some of that [drug_name]")
/datum/mood_event/withdrawal_critical
mood_change = -10
/datum/mood_event/withdrawal_critical/add_effects(drug_name)
- description = "[drug_name]! [drug_name]! [drug_name]!\n"
+ description = span_boldwarning("[drug_name]! [drug_name]! [drug_name]!")
/datum/mood_event/happiness_drug
- description = "Can't feel a thing...\n"
+ description = span_nicegreen("Can't feel a thing...")
mood_change = 50
/datum/mood_event/happiness_drug_good_od
- description = "YES! YES!! YES!!!\n"
+ description = span_nicegreen("YES! YES!! YES!!!")
mood_change = 100
timeout = 30 SECONDS
special_screen_obj = "mood_happiness_good"
/datum/mood_event/happiness_drug_bad_od
- description = "NO! NO!! NO!!!\n"
+ description = span_boldwarning("NO! NO!! NO!!!")
mood_change = -100
timeout = 30 SECONDS
special_screen_obj = "mood_happiness_bad"
/datum/mood_event/narcotic_medium
- description = "I feel comfortably numb.\n"
+ description = span_nicegreen("I feel comfortably numb.")
mood_change = 4
timeout = 3 MINUTES
/datum/mood_event/narcotic_heavy
- description = "I feel like I'm wrapped up in cotton!\n"
+ description = span_nicegreen("I feel like I'm wrapped up in cotton!")
mood_change = 9
timeout = 3 MINUTES
/datum/mood_event/stimulant_medium
- description = "I have so much energy! I feel like I could do anything!\n"
+ description = span_nicegreen("I have so much energy! I feel like I could do anything!")
mood_change = 4
timeout = 3 MINUTES
/datum/mood_event/stimulant_heavy
- description = "Eh ah AAAAH! HA HA HA HA HAA! Uuuh.\n"
+ description = span_nicegreen("Eh ah AAAAH! HA HA HA HA HAA! Uuuh.")
mood_change = 6
timeout = 3 MINUTES
/datum/mood_event/legion_good
- mood_change = 20
- description = "I'm feeling great!\n"
+ mood_change = 5
+ description = span_nicegreen("Everything feels so light! I'm strong! Unstoppable!")
/datum/mood_event/legion_bad
- mood_change = -20
- description = "That felt awful!\n"
+ mood_change = -4
+ description = span_warning("Something is slithering through my veins")
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index f5e51d1d59f4..067807d7a6b4 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -1,93 +1,93 @@
/datum/mood_event/handcuffed
- description = "I guess my antics have finally caught up with me.\n"
+ description = span_warning("I guess my antics have finally caught up with me.")
mood_change = -1
/datum/mood_event/broken_vow //Used for when mimes break their vow of silence
- description = "I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...\n"
+ description = span_boldwarning("I have brought shame upon my name, and betrayed my fellow mimes by breaking our sacred vow...")
mood_change = -8
/datum/mood_event/on_fire
- description = "I'M ON FIRE!!!\n"
+ description = span_boldwarning("I'M ON FIRE!!!")
mood_change = -12
/datum/mood_event/suffocation
- description = "CAN'T... BREATHE...\n"
+ description = span_boldwarning("CAN'T... BREATHE...")
mood_change = -12
/datum/mood_event/burnt_thumb
- description = "I shouldn't play with lighters...\n"
+ description = span_warning("I shouldn't play with lighters...")
mood_change = -1
timeout = 2 MINUTES
/datum/mood_event/cold
- description = "It's way too cold in here.\n"
+ description = span_warning("It's way too cold in here.")
mood_change = -5
/datum/mood_event/hot
- description = "It's getting hot in here.\n"
+ description = span_warning("It's getting hot in here.")
mood_change = -5
/datum/mood_event/creampie
- description = "I've been creamed. Tastes like pie flavor.\n"
+ description = span_warning("I've been creamed. Tastes like pie flavor.")
mood_change = -2
timeout = 3 MINUTES
/datum/mood_event/slipped
- description = "I slipped. I should be more careful next time...\n"
+ description = span_warning("I slipped. I should be more careful next time...")
mood_change = -2
timeout = 3 MINUTES
/datum/mood_event/eye_stab
- description = "I used to be an adventurer like you, until I took a screwdriver to the eye.\n"
+ description = span_boldwarning("I used to be an adventurer like you, until I took a screwdriver to the eye.")
mood_change = -4
timeout = 3 MINUTES
/datum/mood_event/delam //SM delamination
- description = "Those God damn engineers can't do anything right...\n"
+ description = span_boldwarning("Those God damn engineers can't do anything right...")
mood_change = -2
timeout = 4 MINUTES
/datum/mood_event/depression_minimal
- description = "I feel a bit down.\n"
+ description = span_warning("I feel a bit down.")
mood_change = -10
timeout = 2 MINUTES
/datum/mood_event/depression_mild
- description = "I feel sad for no particular reason.\n"
+ description = span_warning("I feel sad for no particular reason.")
mood_change = -12
timeout = 2 MINUTES
/datum/mood_event/depression_moderate
- description = "I feel miserable.\n"
+ description = span_warning("I feel miserable.")
mood_change = -14
timeout = 2 MINUTES
/datum/mood_event/depression_severe
- description = "I've lost all hope.\n"
+ description = span_warning("I've lost all hope.")
mood_change = -16
timeout = 2 MINUTES
/datum/mood_event/dismembered
- description = "AHH! I WAS USING THAT LIMB!\n"
+ description = span_boldwarning("AHH! I WAS USING THAT LIMB!")
mood_change = -10
timeout = 8 MINUTES
/datum/mood_event/tased
- description = "There's no \"z\" in \"taser\". It's in the zap.\n"
+ description = span_warning("There's no \"z\" in \"taser\". It's in the zap.")
mood_change = -3
timeout = 2 MINUTES
/datum/mood_event/embedded
- description = "Pull it out!\n"
+ description = span_boldwarning("Pull it out!")
mood_change = -7
/datum/mood_event/table
- description = "Someone threw me on a table!\n"
+ description = span_warning("Someone threw me on a table!")
mood_change = -2
timeout = 2 MINUTES
/datum/mood_event/table_headsmash
- description = "My fucking head, that hurts..."
+ description = span_warning("My fucking head, that hurts...")
mood_change = -3
timeout = 3 MINUTES
@@ -96,67 +96,67 @@
/datum/mood_event/brain_damage/add_effects()
var/damage_message = pick_list_replacements(BRAIN_DAMAGE_FILE, "brain_damage")
- description = "Hurr durr... [damage_message]\n"
+ description = span_warning("Hurr durr... [damage_message]")
/datum/mood_event/hulk //Entire duration of having the hulk mutation
- description = "HULK SMASH!\n"
+ description = span_warning("HULK SMASH!")
mood_change = -4
/datum/mood_event/epilepsy //Only when the mutation causes a seizure
- description = "I should have paid attention to the epilepsy warning.\n"
+ description = span_warning("I should have paid attention to the epilepsy warning.")
mood_change = -3
timeout = 5 MINUTES
/datum/mood_event/nyctophobia
- description = "It sure is dark around here...\n"
+ description = span_warning("It sure is dark around here...")
mood_change = -3
/datum/mood_event/family_heirloom_missing
- description = "I'm missing my family heirloom...\n"
+ description = span_warning("I'm missing my family heirloom...")
mood_change = -4
/datum/mood_event/healsbadman
- description = "I feel like I'm held together by flimsy string, and could fall apart at any moment!\n"
+ description = span_warning("I feel like something is moving through my veins, eating away at me!")
mood_change = -4
timeout = 2 MINUTES
/datum/mood_event/jittery
- description = "I'm nervous and on edge and I can't stand still!!\n"
+ description = span_warning("I'm nervous and on edge and I can't stand still!!")
mood_change = -2
/datum/mood_event/vomit
- description = "I just threw up. Gross.\n"
+ description = span_warning("I just threw up. Gross.")
mood_change = -2
timeout = 2 MINUTES
/datum/mood_event/vomitself
- description = "I just threw up all over myself. This is disgusting.\n"
+ description = span_warning("I just threw up all over myself. This is disgusting.")
mood_change = -4
timeout = 3 MINUTES
/datum/mood_event/painful_medicine
- description = "Medicine may be good for me but right now it stings like hell.\n"
+ description = span_warning("Medicine may be good for me but right now it stings like hell.")
mood_change = -5
timeout = 60 SECONDS
/datum/mood_event/spooked
- description = "The rattling of those bones...It still haunts me.\n"
+ description = span_warning("The rattling of those bones...It still haunts me.")
mood_change = -4
timeout = 4 MINUTES
/datum/mood_event/loud_gong
- description = "That loud gong noise really hurt my ears!\n"
+ description = span_warning("That loud gong noise really hurt my ears!")
mood_change = -3
timeout = 2 MINUTES
/datum/mood_event/notcreeping
- description = "The voices are not happy, and they painfully contort my thoughts into getting back on task.\n"
+ description = span_warning("The voices are not happy, and they painfully contort my thoughts into getting back on task.")
mood_change = -6
timeout = 30
hidden = TRUE
/datum/mood_event/notcreepingsevere//not hidden since it's so severe
- description = "THEY NEEEEEEED OBSESSIONNNN!!\n"
+ description = span_boldwarning("THEY NEEEEEEED OBSESSIONNNN!!")
mood_change = -30
timeout = 30
@@ -165,75 +165,75 @@
for(var/i in 1 to rand(3,5))
unstable += copytext_char(name, -1)
var/unhinged = uppertext(unstable.Join(""))//example Tinea Luxor > TINEA LUXORRRR (with randomness in how long that slur is)
- description = "THEY NEEEEEEED [unhinged]!!\n"
+ description = span_boldwarning("THEY NEEEEEEED [unhinged]!!")
/datum/mood_event/sapped
- description = "Some unexplainable sadness is consuming me...\n"
+ description = span_boldwarning("Some unexplainable sadness is consuming me...")
mood_change = -15
timeout = 90 SECONDS
/datum/mood_event/back_pain
- description = "Bags never sit right on my back, this hurts like hell!\n"
+ description = span_boldwarning("Bags never sit right on my back, this hurts like hell!")
mood_change = -15
/datum/mood_event/sad_empath
- description = "Someone seems upset...\n"
+ description = span_warning("Someone seems upset...")
mood_change = -2
timeout = 60 SECONDS
/datum/mood_event/sad_empath/add_effects(mob/sadtarget)
- description = "[sadtarget.name] seems upset...\n"
+ description = span_warning("[sadtarget.name] seems upset...")
/datum/mood_event/sacrifice_bad
- description ="Those darn savages!\n"
+ description =span_warning("Those darn savages!")
mood_change = -5
timeout = 2 MINUTES
/datum/mood_event/artbad
- description = "I've produced better art than that from my ass.\n"
+ description = span_warning("I've produced better art than that from my ass.")
mood_change = -2
timeout = 1200
/datum/mood_event/graverobbing
- description ="I just desecrated someone's grave... I can't believe I did that...\n"
+ description =span_boldwarning("I just desecrated someone's grave... I can't believe I did that...")
mood_change = -8
timeout = 3 MINUTES
/datum/mood_event/deaths_door
- description = "This is it... I'm really going to die.\n"
+ description = span_boldwarning("This is it... I'm really going to die.")
mood_change = -20
/datum/mood_event/gunpoint
- description = "This guy is insane! I better be careful....\n"
+ description = span_boldwarning("This guy is insane! I better be careful....")
mood_change = -10
/datum/mood_event/tripped
- description = "I can't believe I fell for the oldest trick in the book!\n"
+ description = span_boldwarning("I can't believe I fell for the oldest trick in the book!")
mood_change = -5
timeout = 2 MINUTES
/datum/mood_event/untied
- description = "I hate when my shoes come untied!\n"
+ description = span_boldwarning("I hate when my shoes come untied!")
mood_change = -3
timeout = 1 MINUTES
/datum/mood_event/high_five_alone
- description = "I tried getting a high-five with no one around, how embarassing!\n"
+ description = span_boldwarning("I tried getting a high-five with no one around, how embarassing!")
mood_change = -2
timeout = 1 MINUTES
/datum/mood_event/high_five_full_hand
- description = "Oh God, I don't even know how to high-five correctly...\n"
+ description = span_boldwarning("Oh God, I don't even know how to high-five correctly...")
mood_change = -1
timeout = 45 SECONDS
/datum/mood_event/left_hanging
- description = "But everyone loves high fives! Maybe people just... hate me?\n"
+ description = span_boldwarning("But everyone loves high fives! Maybe people just... hate me?")
mood_change = -2
timeout = 1.5 MINUTES
/datum/mood_event/too_slow
- description = "NO! HOW COULD I BE.... TOO SLOW???\n"
+ description = span_boldwarning("NO! HOW COULD I BE.... TOO SLOW???")
mood_change = -2 // multiplied by how many people saw it happen, up to 8, so potentially massive. the ULTIMATE prank carries a lot of weight
timeout = 2 MINUTES
@@ -250,55 +250,70 @@
//These are unused so far but I want to remember them to use them later
/datum/mood_event/surgery
- description = "HE'S CUTTING ME OPEN!!\n"
+ description = span_boldwarning("HE'S CUTTING ME OPEN!!")
mood_change = -8
/datum/mood_event/nanite_sadness
- description = "+++++++HAPPINESS SUPPRESSION+++++++\n"
+ description = span_warning_robot("+++++++HAPPINESS SUPPRESSION+++++++")
mood_change = -7
/datum/mood_event/nanite_sadness/add_effects(message)
- description = "+++++++[message]+++++++\n"
+ description = span_warning_robot("+++++++[message]+++++++")
/datum/mood_event/bald
- description ="I need something to cover my head...\n"
+ description = span_warning("I need something to cover my head...")
mood_change = -3
/datum/mood_event/bad_touch
- description = "I don't like when people touch me.\n"
+ description = span_warning("I don't like when people touch me.")
mood_change = -3
timeout = 4 MINUTES
/datum/mood_event/very_bad_touch
- description = "I really don't like when people touch me.\n"
+ description = span_warning("I really don't like when people touch me.")
mood_change = -5
timeout = 4 MINUTES
/datum/mood_event/noogie
- description = "Ow! This is like space high school all over again...\n"
+ description = span_warning("Ow! This is like space high school all over again...")
mood_change = -2
timeout = 1 MINUTES
/datum/mood_event/noogie_harsh
- description = "OW!! That was even worse than a regular noogie!\n"
+ description = span_warning("OW!! That was even worse than a regular noogie!")
mood_change = -4
timeout = 1 MINUTES
/datum/mood_event/irritate
- description = "It feels like I'm itching all over!"
+ description = span_warning("It feels like I'm itching all over!")
mood_change = -2
/datum/mood_event/cement
- description = "I was forced to eat cement...\n"
+ description = span_warning("I was forced to eat cement...")
mood_change = -6
timeout = 4 MINUTES
/datum/mood_event/joywire_emp
- description = span_boldwarning("IT'S GONE!! IT'S GONE!!\n")
+ description = span_boldwarning("IT'S GONE!! IT'S GONE!!")
mood_change = -30
timeout = 5 MINUTES
/datum/mood_event/mindscrew
- description = span_boldwarning("It isn't ending... it isn't ending, come on...\n")
+ description = span_boldwarning("It isn't ending... it isn't ending, come on...")
mood_change = -18
timeout = 3 MINUTES
+
+/datum/mood_event/bad_touch_bear_hug
+ description = span_warning("I just got squeezed way too hard.")
+ mood_change = -3
+ timeout = 2 MINUTES
+
+/datum/mood_event/rippedtail
+ description = span_boldwarning("I ripped their tail right off, what have I done!")
+ mood_change = -5
+ timeout = 30 SECONDS
+
+/datum/mood_event/bad_boop
+ description = span_warning("Someone booped my nose... ACK!")
+ mood_change = -3
+ timeout = 4 MINUTES
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index f9e339c3c081..c69f7fb6a50a 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -1,186 +1,194 @@
/datum/mood_event/hug
- description = "Hugs are nice.\n"
+ description = span_nicegreen("Hugs are nice.")
mood_change = 1
+ timeout = 2
+
+/datum/mood_event/bear_hug
+ description = span_nicegreen("I got squeezed very tightly, but it was quite nice.")
+ mood_change = 2
timeout = 2 MINUTES
/datum/mood_event/betterhug
- description = "Someone was very nice to me.\n"
+ description = span_nicegreen("Someone was very nice to me.")
mood_change = 3
timeout = 4 MINUTES
/datum/mood_event/betterhug/add_effects(mob/friend)
- description = "[friend.name] was very nice to me.\n"
+ description = span_nicegreen("[friend.name] was very nice to me.")
/datum/mood_event/besthug
- description = "Someone is great to be around, they make me feel so happy!\n"
+ description = span_nicegreen("Someone is great to be around, they make me feel so happy!")
mood_change = 5
timeout = 4 MINUTES
/datum/mood_event/besthug/add_effects(mob/friend)
- description = "[friend.name] is great to be around, [friend.p_they()] makes me feel so happy!\n"
+ description = span_nicegreen("[friend.name] is great to be around, [friend.p_they()] makes me feel so happy!")
+
+/datum/mood_event/best_boop
+ description = span_nicegreen("Someone booped my nose, they are silly!")
+ mood_change = 5
+ timeout = 4 MINUTES
+
+/datum/mood_event/best_boop/add_effects(mob/friend)
+ description = span_nicegreen("[friend.name] booped my nose, [friend.p_they()] [friend.p_are()] silly!")
/datum/mood_event/warmhug
- description = "Warm cozy hugs are the best!\n"
+ description = span_nicegreen("Warm cozy hugs are the best!")
mood_change = 1
timeout = 2 MINUTES
/datum/mood_event/arcade
- description = "I beat the arcade game!\n"
+ description = span_nicegreen("I beat the arcade game!")
mood_change = 3
timeout = 8 MINUTES
/datum/mood_event/blessing
- description = "I've been blessed.\n"
+ description = span_nicegreen("I've been blessed.")
mood_change = 3
timeout = 8 MINUTES
/datum/mood_event/book_nerd
- description = "I have recently read a book.\n"
+ description = span_nicegreen("I have recently read a book.")
mood_change = 1
timeout = 5 MINUTES
/datum/mood_event/exercise
- description = "Working out releases those endorphins!\n"
+ description = span_nicegreen("Working out releases those endorphins!")
mood_change = 2
timeout = 5 MINUTES
/datum/mood_event/pet_animal
- description = "Animals are adorable! I can't stop petting them!\n"
+ description = span_nicegreen("Animals are adorable! I can't stop petting them!")
mood_change = 2
timeout = 5 MINUTES
/datum/mood_event/pet_animal/add_effects(mob/animal)
- description = "\The [animal.name] is adorable! I can't stop petting [animal.p_them()]!\n"
+ description = span_nicegreen("\The [animal.name] is adorable! I can't stop petting [animal.p_them()]!")
/datum/mood_event/honk
- description = "I've been honked!\n"
+ description = span_nicegreen("I've been honked!")
mood_change = 2
timeout = 4 MINUTES
special_screen_obj = "honked_nose"
special_screen_replace = FALSE
/datum/mood_event/perform_cpr
- description = "It feels good to save a life.\n"
+ description = span_nicegreen("It feels good to save a life.")
mood_change = 6
timeout = 8 MINUTES
/datum/mood_event/oblivious
- description = "What a lovely day.\n"
+ description = span_nicegreen("What a lovely day.")
mood_change = 3
/datum/mood_event/jolly
- description = "I feel happy for no particular reason.\n"
+ description = span_nicegreen("I feel happy for no particular reason.")
mood_change = 6
timeout = 2 MINUTES
/datum/mood_event/focused
- description = "I have a goal, and I will reach it, whatever it takes!\n" //Used for syndies, nukeops etc so they can focus on their goals
+ description = span_nicegreen("I have a goal, and I will reach it, whatever it takes!") //Used for syndies, nukeops etc so they can focus on their goals
mood_change = 4
hidden = TRUE
/datum/mood_event/badass_antag
- description = "I'm a fucking badass and everyone around me knows it. Just look at them; they're all fucking shaking at the mere thought of having me around.\n"
+ description = span_greentext("I'm a fucking badass and everyone around me knows it. Just look at them; they're all fucking shaking at the mere thought of having me around.")
mood_change = 7
hidden = TRUE
special_screen_obj = "badass_sun"
special_screen_replace = FALSE
/datum/mood_event/creeping
- description = "The voices have released their hooks on my mind! I feel free again!\n" //creeps get it when they are around their obsession
+ description = span_greentext("The voices have released their hooks on my mind! I feel free again!") //creeps get it when they are around their obsession
mood_change = 18
timeout = 3 SECONDS
hidden = TRUE
/datum/mood_event/revolution
- description = "VIVA LA REVOLUTION!\n"
+ description = span_nicegreen("VIVA LA REVOLUTION!")
mood_change = 3
hidden = TRUE
-/datum/mood_event/cult
- description = "I have seen the truth, praise the almighty one!\n"
- mood_change = 10 //maybe being a cultist isnt that bad after all
- hidden = TRUE
-
/datum/mood_event/family_heirloom
- description = "My family heirloom is safe with me.\n"
+ description = span_nicegreen("My family heirloom is safe with me.")
mood_change = 1
/datum/mood_event/rilena_fan
- description = "I love my RILENA merch!\n"
+ description = span_nicegreen("I love my RILENA merch!")
mood_change = 1
/datum/mood_event/rilena_super_fan
- description = "I love my RILENA hoodie!\n"
+ description = span_nicegreen("I love my RILENA hoodie!")
mood_change = 1
/datum/mood_event/goodmusic
- description = "There is something soothing about this music.\n"
+ description = span_nicegreen("There is something soothing about this music.")
mood_change = 3
timeout = 60 SECONDS
/datum/mood_event/chemical_euphoria
- description = "Heh...hehehe...hehe...\n"
+ description = span_nicegreen("Heh...hehehe...hehe...")
mood_change = 4
/datum/mood_event/chemical_laughter
- description = "Laughter really is the best medicine! Or is it?\n"
+ description = span_nicegreen("Laughter really is the best medicine! Or is it?")
mood_change = 4
timeout = 3 MINUTES
/datum/mood_event/chemical_superlaughter
- description = "*WHEEZE*\n"
+ description = span_nicegreen("*WHEEZE*")
mood_change = 12
timeout = 3 MINUTES
/datum/mood_event/religiously_comforted
- description = "You are comforted by the presence of a holy person.\n"
+ description = span_nicegreen("You are comforted by the presence of a holy person.")
mood_change = 3
timeout = 5 MINUTES
/datum/mood_event/clownshoes
- description = "The shoes are a clown's legacy, I never want to take them off!\n"
+ description = span_nicegreen("The shoes are a clown's legacy, I never want to take them off!")
mood_change = 5
/datum/mood_event/sacrifice_good
- description ="The gods are pleased with this offering!\n"
+ description =span_nicegreen("The gods are pleased with this offering!")
mood_change = 5
timeout = 3 MINUTES
/datum/mood_event/artok
- description = "It's nice to see people are making art around here.\n"
+ description = span_nicegreen("It's nice to see people are making art around here.")
mood_change = 2
timeout = 5 MINUTES
/datum/mood_event/artgood
- description = "What a thought-provoking piece of art. I'll remember that for a while.\n"
+ description = span_nicegreen("What a thought-provoking piece of art. I'll remember that for a while.")
mood_change = 4
timeout = 5 MINUTES
/datum/mood_event/artgreat
- description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n"
+ description = span_nicegreen("That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.")
mood_change = 6
timeout = 5 MINUTES
/datum/mood_event/pet_borg
- description = "I just love my robotic friends!\n"
+ description = span_nicegreen("I just love my robotic friends!")
mood_change = 3
timeout = 5 MINUTES
/datum/mood_event/bottle_flip
- description = "The bottle landing like that was satisfying.\n"
+ description = span_nicegreen("The bottle landing like that was satisfying.")
mood_change = 2
timeout = 3 MINUTES
/datum/mood_event/hope_lavaland
- description = "What a peculiar emblem. It makes me feel hopeful for my future.\n"
+ description = span_nicegreen("What a peculiar emblem. It makes me feel hopeful for my future.")
mood_change = 5
/datum/mood_event/nanite_happiness
- description = "+++++++HAPPINESS ENHANCEMENT+++++++\n"
+ description = span_nicegreen_robot("+++++++HAPPINESS ENHANCEMENT+++++++")
mood_change = 7
/datum/mood_event/nanite_happiness/add_effects(message)
- description = "+++++++[message]+++++++\n"
+ description = span_nicegreen_robot("+++++++[message]+++++++")
/datum/mood_event/area
description = "" //Fill this out in the area
@@ -191,31 +199,31 @@
description = _description
/datum/mood_event/confident_mane
- description = "I'm feeling confident with a head full of hair.\n"
+ description = span_nicegreen("I'm feeling confident with a head full of hair.")
mood_change = 2
/datum/mood_event/dkickflip
- description = "I just witnessed the most RAD thing ever.\n"
+ description = span_nicegreen("I just witnessed the most RAD thing ever.")
mood_change = 5
timeout = 2 MINUTES
/datum/mood_event/high_five
- description = "I love getting high fives!\n"
+ description = span_nicegreen("I love getting high fives!")
mood_change = 2
timeout = 45 SECONDS
/datum/mood_event/high_ten
- description = "AMAZING! A HIGH-TEN!\n"
+ description = span_nicegreen("AMAZING! A HIGH-TEN!")
mood_change = 3
timeout = 45 SECONDS
/datum/mood_event/down_low
- description = "HA! What a rube, they never stood a chance...\n"
+ description = span_nicegreen("HA! What a rube, they never stood a chance...")
mood_change = 4
timeout = 1.5 MINUTES
/datum/mood_event/kiss
- description = "Someone blew a kiss at me, I must be a real catch!"
+ description = span_nicegreen("Someone blew a kiss at me, I must be a real catch!")
mood_change = 1.5
timeout = 2 MINUTES
@@ -223,21 +231,21 @@
if(!beau)
return
if(direct)
- description = "[beau.name] gave me a kiss, ahh!!"
+ description = span_nicegreen("[beau.name] gave me a kiss, ahh!!")
else
- description = "[beau.name] blew a kiss at me, I must be a real catch!"
+ description = span_nicegreen("[beau.name] blew a kiss at me, I must be a real catch!")
/datum/mood_event/fishing
- description = "Fishing is relaxing"
+ description = span_nicegreen("Fishing is relaxing")
mood_change = 5
timeout = 3 MINUTES
/datum/mood_event/joywire
- description = span_boldnicegreen("I feel so joyous! Oh, so joyous!\n")
+ description = span_boldnicegreen("I feel so joyous! Oh, so joyous!")
mood_change = 8
timeout = 10 SECONDS
/datum/mood_event/root
- description = span_nicegreen("I rooted recently, it feels good to charge naturally.\n")
+ description = span_nicegreen("I rooted recently, it feels good to charge naturally.")
mood_change = 5
timeout = 5 MINUTES
diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm
index 5f873cf40ff8..a341e4170e1e 100644
--- a/code/datums/mood_events/needs_events.dm
+++ b/code/datums/mood_events/needs_events.dm
@@ -1,89 +1,89 @@
//nutrition
/datum/mood_event/wellfed
- description = "I'm stuffed!\n"
+ description = span_nicegreen("I'm stuffed!")
mood_change = 8
/datum/mood_event/fed
- description = "I have recently had some food.\n"
+ description = span_nicegreen("I have recently had some food.")
mood_change = 5
/datum/mood_event/hungry
- description = "I'm getting a bit hungry.\n"
+ description = span_warning("I'm getting a bit hungry.")
mood_change = -6
/datum/mood_event/starving
- description = "I'm starving!\n"
+ description = span_boldwarning("I'm starving!")
mood_change = -10
//charge
/datum/mood_event/supercharged
- description = "I can't possibly keep all this power inside, I need to release some quick!\n"
+ description = span_boldwarning("I can't possibly keep all this power inside, I need to release some quick!")
mood_change = -10
/datum/mood_event/overcharged
- description = "I feel dangerously overcharged, perhaps I should release some power.\n"
+ description = span_warning("I feel dangerously overcharged, perhaps I should release some power.")
mood_change = -4
/datum/mood_event/charged
- description = "I feel the power in my veins!\n"
+ description = span_nicegreen("I feel the power in my veins!")
mood_change = 6
/datum/mood_event/lowpower
- description = "My power is running low, I should go charge up somewhere.\n"
+ description = span_warning("My power is running low, I should go charge up somewhere.")
mood_change = -6
/datum/mood_event/decharged
- description = "I'm in desperate need of some electricity!\n"
+ description = span_boldwarning("I'm in desperate need of some electricity!")
mood_change = -10
//Disgust
/datum/mood_event/gross
- description = "I saw something gross.\n"
+ description = span_warning("I saw something gross.")
mood_change = -4
/datum/mood_event/verygross
- description = "I think I'm going to puke...\n"
+ description = span_warning("I think I'm going to puke...")
mood_change = -6
/datum/mood_event/disgusted
- description = "Oh god that's disgusting...\n"
+ description = span_boldwarning("Oh god that's disgusting...")
mood_change = -8
/datum/mood_event/disgust/bad_smell
- description = "You smell something horribly decayed inside this room.\n"
+ description = span_warning("You smell something horribly decayed inside this room.")
mood_change = -6
/datum/mood_event/disgust/nauseating_stench
- description = "The stench of rotting carcasses is unbearable!\n"
+ description = span_warning("The stench of rotting carcasses is unbearable!")
mood_change = -12
//Generic needs events
/datum/mood_event/favorite_food
- description = "I really enjoyed eating that.\n"
+ description = span_nicegreen("I really enjoyed eating that.")
mood_change = 5
timeout = 4 MINUTES
/datum/mood_event/gross_food
- description = "I really didn't like that food.\n"
+ description = span_warning("I really didn't like that food.")
mood_change = -2
timeout = 4 MINUTES
/datum/mood_event/disgusting_food
- description = "That food was disgusting!\n"
+ description = span_warning("That food was disgusting!")
mood_change = -6
timeout = 4 MINUTES
/datum/mood_event/breakfast
- description = "Nothing like a hearty breakfast to start the shift.\n"
+ description = span_nicegreen("Nothing like a hearty breakfast to start the shift.")
mood_change = 2
timeout = 10 MINUTES
/datum/mood_event/nice_shower
- description = "I have recently had a nice shower.\n"
+ description = span_nicegreen("I have recently had a nice shower.")
mood_change = 4
timeout = 5 MINUTES
/datum/mood_event/fresh_laundry
- description = "There's nothing like the feeling of a freshly laundered jumpsuit.\n"
+ description = span_nicegreen("There's nothing like the feeling of a freshly laundered jumpsuit.")
mood_change = 2
timeout = 10 MINUTES
diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm
index 7134d2e8ecef..c598b1c159df 100644
--- a/code/datums/progressbar.dm
+++ b/code/datums/progressbar.dm
@@ -16,7 +16,8 @@
var/last_progress = 0
///Variable to ensure smooth visual stacking on multiple progress bars.
var/listindex = 0
-
+ ///The type of our last value for bar_loc, for debugging
+ var/location_type
/datum/progressbar/New(mob/User, goal_number, atom/target)
. = ..()
@@ -32,6 +33,7 @@
return
goal = goal_number
bar_loc = target
+ location_type = bar_loc.type
bar = image('icons/effects/progressbar.dmi', bar_loc, "prog_bar_0", HUD_LAYER)
bar.plane = ABOVE_HUD_PLANE
bar.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA
@@ -135,6 +137,89 @@
QDEL_IN(src, PROGRESSBAR_ANIMATION_TIME)
+///Progress bars are very generic, and what hangs a ref to them depends heavily on the context in which they're used
+///So let's make hunting harddels easier yeah?
+/datum/progressbar/dump_harddel_info()
+ return "Owner's type: [location_type]"
+
+
+/datum/world_progressbar
+ ///The progress bar visual element.
+ var/obj/effect/abstract/progbar/bar
+ ///The atom who "created" the bar
+ var/atom/movable/owner
+ ///Effectively the number of steps the progress bar will need to do before reaching completion.
+ var/goal = 1
+ ///Control check to see if the progress was interrupted before reaching its goal.
+ var/last_progress = 0
+ ///Variable to ensure smooth visual stacking on multiple progress bars.
+ var/listindex = 0
+ ///Does this qdelete on completion?
+ var/qdel_when_done = TRUE
+
+/datum/world_progressbar/New(atom/movable/_owner, _goal, image/underlay)
+ if(!_owner)
+ return
+
+ owner = _owner
+ goal = _goal
+
+ bar = new()
+
+ if(underlay)
+ if(!istype(underlay))
+ underlay = image(underlay, dir = SOUTH)
+ underlay.filters += filter(type = "outline", size = 1)
+
+ underlay.pixel_y += 2
+ underlay.alpha = 200
+ underlay.plane = GAME_PLANE
+ underlay.layer = FLY_LAYER
+ underlay.appearance_flags = APPEARANCE_UI
+ bar.underlays += underlay
+
+ owner:vis_contents += bar
+
+ animate(bar, alpha = 255, time = PROGRESSBAR_ANIMATION_TIME, easing = SINE_EASING)
+
+ RegisterSignal(owner, COMSIG_PARENT_QDELETING, PROC_REF(owner_delete))
+
+/datum/world_progressbar/Destroy()
+ owner = null
+ QDEL_NULL(bar)
+ return ..()
+
+
+/datum/world_progressbar/proc/owner_delete()
+ qdel(src)
+
+///Updates the progress bar image visually.
+/datum/world_progressbar/proc/update(progress)
+ progress = clamp(progress, 0, goal)
+ if(progress == last_progress)
+ return
+ last_progress = progress
+ bar.icon_state = "prog_bar_[round(((progress / goal) * 100), 5)]"
+
+/datum/world_progressbar/proc/end_progress()
+ if(last_progress != goal)
+ bar.icon_state = "[bar.icon_state]_fail"
+
+ if(qdel_when_done)
+ animate(bar, alpha = 0, time = PROGRESSBAR_ANIMATION_TIME)
+ QDEL_IN(src, PROGRESSBAR_ANIMATION_TIME)
+ else
+ bar.icon_state = "prog_bar_0"
#undef PROGRESSBAR_ANIMATION_TIME
#undef PROGRESSBAR_HEIGHT
+
+/obj/effect/abstract/progbar
+ icon = 'icons/effects/progressbar.dmi'
+ icon_state = "prog_bar_0"
+ plane = ABOVE_HUD_PLANE
+ appearance_flags = APPEARANCE_UI | KEEP_APART
+ pixel_y = 32
+ alpha = 0
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+ vis_flags = NONE //We don't want VIS_INHERIT_PLANE
diff --git a/code/datums/proximity_monitor/fields/timestop.dm b/code/datums/proximity_monitor/fields/timestop.dm
index 40a8c1cc947b..84adc6f9666f 100644
--- a/code/datums/proximity_monitor/fields/timestop.dm
+++ b/code/datums/proximity_monitor/fields/timestop.dm
@@ -29,9 +29,6 @@
for(var/mob/living/L in GLOB.player_list)
if(locate(/obj/effect/proc_holder/spell/aoe_turf/timestop) in L.mind.spell_list) //People who can stop time are immune to its effects
immune[L] = TRUE
- for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.parasites)
- if(G.summoner && locate(/obj/effect/proc_holder/spell/aoe_turf/timestop) in G.summoner.mind.spell_list) //It would only make sense that a person's stand would also be immune.
- immune[G] = TRUE
if(start)
INVOKE_ASYNC(src, PROC_REF(timestop))
diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm
index 81b7aea8582c..1ea3d57e6928 100644
--- a/code/datums/ruins/icemoon.dm
+++ b/code/datums/ruins/icemoon.dm
@@ -18,16 +18,17 @@
suffix = "icemoon_underground_abandoned_village.dmm"
ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_INHOSPITABLE)
-/datum/map_template/ruin/icemoon/brazillian_lab
- name = "Barricaded Compound"
- id = "brazillian-lab"
- description = "A conspicuous compound in the middle of the cold wasteland. What goodies are inside?"
- suffix = "icemoon_underground_brazillianlab.dmm"
- ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MAJOR_LOOT, RUIN_TAG_INHOSPITABLE)
-
/datum/map_template/ruin/icemoon/crashed_holemaker
name = "Crashed Holemaker"
id = "crashed_holemaker"
description = "Safety records for early Nanotrasen Spaceworks vessels were, and always have been, top of their class. Absolutely no multi-billion credit projects have been painstakingly erased from history. (Citation Needed)"
suffix = "icemoon_crashed_holemaker.dmm"
ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_SHELTER)
+
+/datum/map_template/ruin/icemoon/ice_lodge
+ name = "Ice Lodge"
+ id = "ice_lodge"
+ description = "Records show this settlement as belonging to the SRM, but no one has heard from them as of late. I wonder what happened?"
+ suffix = "icemoon_ice_lodge.dmm"
+ ruin_tags = list(RUIN_TAG_HARD_COMBAT, RUIN_TAG_MAJOR_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS)
+
diff --git a/code/datums/ruins/reebe.dm b/code/datums/ruins/reebe.dm
index bec9986d75b8..d1a9de3e024f 100644
--- a/code/datums/ruins/reebe.dm
+++ b/code/datums/ruins/reebe.dm
@@ -11,13 +11,6 @@
suffix = "reebe_arena.dmm"
ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_LIVEABLE)
-/datum/map_template/ruin/reebe/swarmers
- name = "Swarmer Island"
- id = "swarmers"
- description = "Looks like someone has occupied Reebe in the cultists' absence."
- suffix = "reebe_swarmers.dmm"
- ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_LIVEABLE)
-
/datum/map_template/ruin/reebe/island
name = "Island Cache"
id = "islandcache"
diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm
index 7382b2c5768a..3d1414ef35af 100644
--- a/code/datums/ruins/rockplanet.dm
+++ b/code/datums/ruins/rockplanet.dm
@@ -36,3 +36,10 @@
description = "A former pre-ICW era Nanotrasen outpost converted into a moonshine distillery by Frontiersman bootleggers."
id = "rockplanet_distillery"
suffix = "rockplanet_distillery.dmm"
+
+/datum/map_template/ruin/rockplanet/mining_base
+ name = "N+S Mining Installation"
+ description = "A N+S mining installation recently fallen prey to a band of Ramzi pirates."
+ id = "rockplanet_mining_base"
+ suffix = "rockplanet_mining_installation.dmm"
+ ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MAJOR_LOOT, RUIN_TAG_SHELTER)
diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm
index a4a054a7f1a2..66bd3841ec6b 100644
--- a/code/datums/ruins/wasteplanet.dm
+++ b/code/datums/ruins/wasteplanet.dm
@@ -32,9 +32,16 @@
suffix = "wasteplanet_abandoned_mechbay.dmm"
ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS)
+/datum/map_template/ruin/wasteplanet/tradepost
+ name = "Ruined Tradepost"
+ description = "Formerly a functioning, if not thriving tradepost. Now a graveyard of Inteq soldiers and hivebots."
+ id = "wasteplanet_tradepost"
+ suffix = "wasteplanet_tradepost.dmm"
+
/datum/map_template/ruin/wasteplanet/yard
name = "Abandoned Miskilamo salvage yard"
description = "An abandonded shipbreaking yard."
id = "wasteplanet_yard"
suffix = "wasteplanet_yard.dmm"
+
ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS)
diff --git a/code/datums/ruins/whitesands.dm b/code/datums/ruins/whitesands.dm
index 4731adeddf41..0ec75c936dd9 100644
--- a/code/datums/ruins/whitesands.dm
+++ b/code/datums/ruins/whitesands.dm
@@ -18,6 +18,13 @@
suffix = "whitesands_surface_pubbyslopcrash.dmm"
ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER)
+/datum/map_template/ruin/whitesands/cave_base
+ name = "Abandoned Cave Base"
+ id = "cave_base"
+ description = "The former home of a poor sod on observation duty. Now a cunning trap."
+ suffix = "whitesands_cave_base.dmm"
+ ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER)
+
//////////OUTSIDE SETTLEMENTS/RUINS//////////
/datum/map_template/ruin/whitesands/survivors/saloon
name = "Hermit Saloon"
@@ -34,3 +41,16 @@
allow_duplicates = FALSE
ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_INHOSPITABLE, RUIN_TAG_HAZARDOUS)
+/datum/map_template/ruin/whitesands/e11_manufactory
+ name = "E-11 Manufacturing Plant"
+ id = "ws-e11manufactory"
+ description = "An old Eoehoma Firearms manufacturing plant dedicated to assembly of the beloved-by-many E-11 rifle."
+ suffix = "whitesands_surface_e11_manufactory.dmm"
+ ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_HAZARDOUS)
+
+/datum/map_template/ruin/whitesands/brazillian_lab
+ name = "Hermit Weapons-Testing Compound"
+ id = "brazillian-lab"
+ description = "A conspicuous compound in the middle of the sandy wasteland. What goodies are inside?"
+ suffix = "whitesands_brazillianlab.dmm"
+ ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MAJOR_LOOT, RUIN_TAG_INHOSPITABLE)
diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm
index 848940d4e9d9..708a81107313 100644
--- a/code/datums/saymode.dm
+++ b/code/datums/saymode.dm
@@ -95,15 +95,11 @@
return FALSE
-/datum/saymode/binary //everything that uses .b (silicons, drones, swarmers)
+/datum/saymode/binary //everything that uses .b (silicons, drones)
key = MODE_KEY_BINARY
mode = MODE_BINARY
/datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language)
- if(isswarmer(user))
- var/mob/living/simple_animal/hostile/swarmer/S = user
- S.swarmer_chat(message)
- return FALSE
if(isdrone(user))
var/mob/living/simple_animal/drone/D = user
D.drone_chat(message)
diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm
index 38ef65256489..8f3a65320958 100644
--- a/code/datums/shuttles.dm
+++ b/code/datums/shuttles.dm
@@ -416,3 +416,8 @@
file_name = "frontiersmen_brawler"
name = "Brawler-class Dropship"
prefix = "SV"
+
+/datum/map_template/shuttle/subshuttles/skink
+ file_name = "nanotrasen_skink"
+ name = "Skink-class Cargo Runner"
+ prefix = "NTSV"
diff --git a/code/datums/simple_beam.dm b/code/datums/simple_beam.dm
new file mode 100644
index 000000000000..ec6538239754
--- /dev/null
+++ b/code/datums/simple_beam.dm
@@ -0,0 +1,71 @@
+/datum/simple_beam
+ ///The source of the beam, which must be visible for the beam to be seen. Can NOT be null.
+ VAR_PRIVATE/atom/movable/origin
+ ///The target of the beam. Can be null.
+ VAR_PRIVATE/atom/movable/target
+ ///The visual representation of the beam.
+ VAR_PRIVATE/obj/effect/simple_beam/its_beam
+
+/datum/simple_beam/New(_origin, _target, icon = 'icons/effects/beam.dmi', icon_state = "1-full", icon_color = null, icon_alpha = 255)
+ origin = _origin
+ target = _target
+
+ its_beam = new /obj/effect/simple_beam(origin, icon, icon_state, icon_color, icon_alpha)
+ origin.vis_contents += its_beam
+
+ set_target(target)
+
+/datum/simple_beam/Destroy(force)
+ origin.vis_contents -= its_beam
+ QDEL_NULL(its_beam)
+
+ if(target)
+ UnregisterSignal(origin, COMSIG_MOVABLE_MOVED)
+ UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
+
+ return ..()
+
+/datum/simple_beam/proc/draw()
+ if(origin.z != target.z)
+ set_target(null)
+ return
+
+ var/f_dx = ((target.pixel_x - origin.pixel_x + 16) / world.icon_size) + (target.x - origin.x)
+ var/f_dy = ((target.pixel_y - origin.pixel_y) / world.icon_size) + (target.y - origin.y)
+ var/dist = sqrt(f_dx * f_dx + f_dy * f_dy)
+ var/s_dx = f_dy/dist
+ var/s_dy = -f_dx/dist
+ var/matrix/translation = matrix()
+ translation.Translate(0, 16)
+ translation.Multiply(new /matrix(s_dx, f_dx, 0, s_dy, f_dy, 0))
+
+ its_beam.transform = translation
+
+/datum/simple_beam/proc/set_target(new_target)
+ if(target)
+ UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
+ UnregisterSignal(origin, COMSIG_MOVABLE_MOVED)
+
+ target = new_target
+
+ if(target)
+ its_beam.vis_flags &= ~VIS_HIDE
+
+ RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(draw))
+ RegisterSignal(origin, COMSIG_MOVABLE_MOVED, PROC_REF(draw))
+
+ draw()
+ else
+ its_beam.vis_flags |= VIS_HIDE
+
+/obj/effect/simple_beam
+ layer = ABOVE_LIGHTING_LAYER
+ plane = ABOVE_LIGHTING_PLANE
+
+/obj/effect/simple_beam/New(loc, icon, icon_state, icon_color, icon_alpha)
+ src.icon = icon
+ src.icon_state = icon_state
+ src.color = icon_color
+ src.alpha = icon_alpha
+
+ return ..()
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index 749745dd6a7c..73de61dd219d 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -85,35 +85,6 @@
desc = "You are being resurrected!"
icon_state = "wish_granter"
-/datum/status_effect/cult_master
- id = "The Cult Master"
- duration = -1
- alert_type = null
- on_remove_on_mob_delete = TRUE
- var/alive = TRUE
-
-/datum/status_effect/cult_master/proc/deathrattle()
- if(!QDELETED(GLOB.cult_narsie))
- return //if Nar'Sie is alive, don't even worry about it
- var/area/A = get_area(owner)
- for(var/datum/mind/B in SSticker.mode.cult)
- if(isliving(B.current))
- var/mob/living/M = B.current
- SEND_SOUND(M, sound('sound/hallucinations/veryfar_noise.ogg'))
- to_chat(M, "The Cult's Master, [owner], has fallen in \the [A]!")
-
-/datum/status_effect/cult_master/tick()
- if(owner.stat != DEAD && !alive)
- alive = TRUE
- return
- if(owner.stat == DEAD && alive)
- alive = FALSE
- deathrattle()
-
-/datum/status_effect/cult_master/on_remove()
- deathrattle()
- . = ..()
-
/datum/status_effect/blooddrunk
id = "blooddrunk"
duration = 10
@@ -453,14 +424,15 @@
/datum/status_effect/regenerative_core/on_apply()
ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, id)
- owner.adjustBruteLoss(-25)
- owner.adjustFireLoss(-25)
+ owner.adjustBruteLoss(-20)
+ owner.adjustFireLoss(-20)
owner.remove_CC()
owner.bodytemperature = owner.get_body_temp_normal()
return TRUE
/datum/status_effect/regenerative_core/on_remove()
REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, id)
+ to_chat(owner, span_warning("The tendrils of the regenerative core sink into your flesh, leaving dark markings where they dive."))
/datum/status_effect/antimagic
id = "antimagic"
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 17e2208cdebe..6d803d98ec47 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -253,19 +253,6 @@
/datum/status_effect/pacify/on_remove()
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "status_effect")
-/datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
- id = "cult_ghost"
- duration = -1
- alert_type = null
-
-/datum/status_effect/cultghost/on_apply()
- owner.see_invisible = SEE_INVISIBLE_OBSERVER
- owner.see_in_dark = 2
-
-/datum/status_effect/cultghost/tick()
- if(owner.reagents)
- owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted
-
/datum/status_effect/crusher_mark
id = "crusher_mark"
duration = 300 //if you leave for 30 seconds you lose the mark, deal with it
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index e504bfee31d5..306c3d6b8d50 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -642,6 +642,25 @@
return
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "wrong_cigs", /datum/mood_event/wrong_brand)
+/datum/quirk/congenital_analgesia
+ name = "Congenital Analgesia"
+ desc = "Due to a rare condition, you have never felt pain. Physical pain, at least. That breakup still hurt."
+ value = -1
+ mob_traits = list(TRAIT_ANALGESIA)
+ gain_text = "You've never really felt pain."
+ lose_text = "...Oh god, you're sore."
+ medical_record_text = "Patient is unable to process pain"
+
+/datum/quirk/congenital_analgesia/on_spawn()
+ var/mob/living/carbon/human/H = quirk_holder
+ H.set_screwyhud(SCREWYHUD_HEALTHY)
+
+/datum/quirk/congenital_analgesia/remove()
+ if(quirk_holder)
+ var/mob/living/carbon/human/H = quirk_holder
+ H.set_screwyhud(SCREWYHUD_NONE)
+
+
/datum/quirk/unstable
name = "Unstable"
desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!"
diff --git a/code/datums/votes/_vote_datum.dm b/code/datums/votes/_vote_datum.dm
index c34d4600d2b0..7118695bf1bb 100644
--- a/code/datums/votes/_vote_datum.dm
+++ b/code/datums/votes/_vote_datum.dm
@@ -10,7 +10,7 @@
/// If supplied, an override question will be displayed instead of the name of the vote.
var/override_question
/// The sound effect played to everyone when this vote is initiated.
- var/vote_sound = 'sound/misc/compiler-stage2.ogg'
+ var/vote_sound = 'sound/misc/announce_dig.ogg'
/// A list of default choices we have for this vote.
var/list/default_choices
/// What message do we want to pass to the player-side vote panel as a tooltip?
@@ -156,7 +156,7 @@
/// Gets the winner of the vote, selecting a random choice from all choices based on their vote count.
/datum/vote/proc/get_random_winner()
- var/winner = pickweight(choices)
+ var/winner = pick_weight(choices)
return winner ? list(winner) : list()
/**
diff --git a/code/datums/weather/weather_controller.dm b/code/datums/weather/weather_controller.dm
index ad4d5005c049..30be3ebb23c5 100644
--- a/code/datums/weather/weather_controller.dm
+++ b/code/datums/weather/weather_controller.dm
@@ -60,7 +60,7 @@
if(!possible_weathers)
return
next_weather = world.time + rand(wait_interval_low, wait_interval_high)
- next_weather_type = pickweight(possible_weathers)
+ next_weather_type = pick_weight(possible_weathers)
/datum/weather_controller/proc/run_weather(datum/weather/weather_datum_type, telegraph = TRUE)
if(!ispath(weather_datum_type, /datum/weather))
diff --git a/code/datums/weather/weather_types/hailstorm.dm b/code/datums/weather/weather_types/hailstorm.dm
index 127a92f03567..ef0cd70b2dba 100644
--- a/code/datums/weather/weather_types/hailstorm.dm
+++ b/code/datums/weather/weather_types/hailstorm.dm
@@ -32,5 +32,5 @@
/// Think of some good solution of how weather should affect monsters and how they should be resistant to things like this
if(isanimal(living_mob))
return
- living_mob.adjust_bodytemperature(-rand(3,6))
+ living_mob.adjust_bodytemperature(-rand(1,2))
living_mob.adjustBruteLoss(rand(2,4))
diff --git a/code/datums/weather/weather_types/snow_storm.dm b/code/datums/weather/weather_types/snow_storm.dm
index ba74a39ddb47..db11f26e753b 100644
--- a/code/datums/weather/weather_types/snow_storm.dm
+++ b/code/datums/weather/weather_types/snow_storm.dm
@@ -29,5 +29,5 @@
sound_weak_inside = /datum/looping_sound/weak_inside_ashstorm
/datum/weather/snow_storm/weather_act(mob/living/living_mob)
- living_mob.adjust_bodytemperature(-rand(5,15))
+ living_mob.adjust_bodytemperature(-rand(2,4))
diff --git a/code/datums/weather/weather_types/snowfall.dm b/code/datums/weather/weather_types/snowfall.dm
index 5600547705b2..d3eab8b1099a 100644
--- a/code/datums/weather/weather_types/snowfall.dm
+++ b/code/datums/weather/weather_types/snowfall.dm
@@ -43,4 +43,4 @@
thunder_chance = 2
/datum/weather/snowfall/heavy/weather_act(mob/living/living_mob)
- living_mob.adjust_bodytemperature(-rand(2,4))
+ living_mob.adjust_bodytemperature(-rand(1,2))
diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm
index e6db7790fd67..79b02564d2bb 100644
--- a/code/datums/wires/_wires.dm
+++ b/code/datums/wires/_wires.dm
@@ -173,6 +173,15 @@
S.connected = src
return S
+/datum/wires/proc/attach_assembly_init(obj/item/assembly/S)
+ var/obj/item/assembly/I = new S(holder.loc)
+ for(var/color in colors)
+ if(I && istype(I) && I.attachable && !is_attached(color))
+ assemblies[color] = I
+ I.forceMove(holder)
+ I.connected = src
+ return I
+
/datum/wires/proc/detach_assembly(color)
var/obj/item/assembly/S = get_attached(color)
if(S && istype(S))
diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm
index a8e9873150ea..c99a27b300ad 100644
--- a/code/datums/wires/explosive.dm
+++ b/code/datums/wires/explosive.dm
@@ -66,7 +66,7 @@
/datum/wires/explosive/c4/explode()
var/obj/item/grenade/c4/P = holder
- P.prime()
+ P.receive_signal()
/datum/wires/explosive/pizza
holder_type = /obj/item/pizzabox
diff --git a/code/game/MapData/shuttles/nanotrasen_ranger.dm b/code/game/MapData/shuttles/nanotrasen_ranger.dm
index 08f1a7c670d2..06d988760722 100644
--- a/code/game/MapData/shuttles/nanotrasen_ranger.dm
+++ b/code/game/MapData/shuttles/nanotrasen_ranger.dm
@@ -283,9 +283,9 @@
//lootdrop
-/obj/effect/spawner/lootdrop/lpretrieval
+/obj/effect/spawner/random/lpretrieval
name = "LP Retrieval Missions"
- lootdoubles = FALSE
+ spawn_loot_double = FALSE
loot = list(
/obj/item/disk/holodisk/lp/retrieval/phazon = 1,
@@ -294,11 +294,11 @@
/obj/item/disk/holodisk/lp/retrieval/materials = 1
)
- lootcount = 2
+ spawn_loot_count = 2
-/obj/effect/spawner/lootdrop/lpaid
+/obj/effect/spawner/random/lpaid
name = "LP Aid Missions"
- lootdoubles = FALSE
+ spawn_loot_double = FALSE
loot = list(
/obj/item/disk/holodisk/lp/aid/repairs = 1,
@@ -306,5 +306,5 @@
/obj/item/disk/holodisk/lp/aid/guard = 1,
)
- lootcount = 4
+ spawn_loot_count = 4
diff --git a/code/game/MapData/shuttles/pgf_bolide.dm b/code/game/MapData/shuttles/pgf_bolide.dm
new file mode 100644
index 000000000000..13a9767de684
--- /dev/null
+++ b/code/game/MapData/shuttles/pgf_bolide.dm
@@ -0,0 +1,245 @@
+/obj/machinery/air_sensor/ship/bolide/air
+ id_tag = "bolide_air"
+
+/obj/machinery/air_sensor/ship/bolide/fuel
+ id_tag = "bolide_fuel_1"
+
+/obj/machinery/air_sensor/ship/bolide/fuel_2
+ id_tag = "bolide_fuel_2"
+
+/obj/machinery/computer/atmos_control/ship/bolide
+ sensors = list(
+ "bolide_air" = "Airmix Chamber",
+ "bolide_fuel_1" = "Port Fuel Chamber",
+ "bolide_fuel_2" = "Starboard Fuel Chamber",
+ )
+
+//this should go somewhere else
+/obj/structure/closet/crate/rations
+ name = "ration crate"
+ desc = "A rectangular steel crate, filled with marine food."
+ var/ration_count = 10
+
+/obj/structure/closet/crate/rations/PopulateContents()
+ . = ..()
+ for(var/i in 1 to ration_count)
+ new /obj/effect/spawner/random/food_or_drink/ration(src)
+
+/obj/item/storage/toolbox/explosives
+ name = "\improper explosives handling kit"
+ desc = "Be careful to not jostle it."
+ icon_state = "explosive"
+ item_state = "toolbox_red"
+ latches = "double_latch"
+
+/obj/item/storage/toolbox/explosives/PopulateContents()
+ new /obj/item/screwdriver(src)
+ new /obj/item/wirecutters(src)
+ new /obj/item/multitool(src)
+ for(var/i in 1 to 4)
+ new /obj/item/assembly/signaler(src)
+
+/obj/structure/toilet/secret/bolide
+ secret_type = /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker
+
+/obj/item/folder/pgf/blue/bolide
+
+/obj/item/folder/pgf/blue/bolide/Initialize()
+ . = ..()
+ new /obj/item/paper/fluff/ship/bolide/one(src)
+ new /obj/item/paper/fluff/ship/bolide/two(src)
+ new /obj/item/paper/fluff/ship/bolide/three(src)
+ new /obj/item/paper/fluff/ship/bolide/four(src)
+ update_appearance()
+
+/obj/item/folder/pgf/empty_sheets
+ name = "PGF Fax Templates"
+
+/obj/item/folder/pgf/empty_sheets/Initialize()
+ . = ..()
+ for(var/i in 1 to 7)
+ new /obj/item/paper/fluff/ship/bolide(src)
+
+/mob/living/simple_animal/pet/fox/bolide
+ name = "Saperzy"
+ desc = "A lovable rogue that scampered aboard during a readiness drill. Now an honorary marine."
+ gender = MALE
+ unique_pet = TRUE
+ icon_state = "saperzy"
+ icon_living = "saperzy"
+ icon_dead = "fox_dead"
+ faction = list("neutral", FACTION_PLAYER_GEZENA)
+ speak = list("Ack-Ack","Ack-Ack-Ack-Ackawoooo","Geckers","Awoo","Tchoff","Aweh!")
+ speak_emote = list("geckers!", "barks!", "yips!")
+ emote_hear = list("yips!","barks!","geckers!")
+ emote_see = list("sits at attention.", "shakes his fur out.", "wags a few times.", "perks up.","sniffs the air.")
+
+/obj/item/paper/fluff/ship/bolide
+ name = "Blank Federated Navy Paperwork"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Bolide-Class Lander
+ |
+ XX - XX - 506 |
+
+
+
+
+ FOR IMMEDIATE DISTRIBUTION
+
SUBJECT:
+ "}
+
+/obj/item/paper/fluff/ship/bolide/one
+ name = "Official Briefing"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Office of Naval Deployment
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT: Briefing Crew of Vessel
+
+
+
1. The Office of Naval Deployment has seen fit to deploy you in command of an Elated Bolide class Frigate Assault Lander (Bolide-Class). Congratulations on your assignment. You are expected to coordinate with the Marine Lieutenant assigned to the vessel for the duration of this deployment.
+
2. A Bolide-class Lander's mission profile is traditionally; landing in occupied regions, planetary assault in contested systems, construction of Navy Infrastructure, assistance of CLIP colonists, and aiding in conducting Federation Readiness Drills.
+
3. The assignment issued to your vessel is as follows: Identify locations of interest, construct infrastructure, avoid non-decisive confrontations, conduct readiness drills if possible. Deviation from these goals is accepted and expected. Failure to meet any of them will result in an investigatory effort on your command.
+
4. The Office Of Naval Deployment directs that it is supplied with the following: Reports on construction projects, reports on conflict in area, reports on crew readiness. Failure to supply pertinent reports in a timely fashion will lead to termination of your command.
+
5. The Office Of Naval Deployment directs that you coordinate with the Marine Lieutenant to ensure a chain of command is followed aboard at all times. The Office recommends assigning 'buddies' to risk-prone marines, assigning 'Team Leaders' to watch over any group of more than 3, and ensuring radio contact at all times.
+
6. The Office recommends that all other documents in this folder are read, and distributed to the crew as necessary.
+
+
+
+
+
+ Eutei-Tar
+ Eutei-Tar
+ Vice Admiral, PGF Navy
+ Assistant Director Of the Office Of Navy Deployment
+
+ "}
+
+/obj/item/paper/fluff/ship/bolide/two
+ name = "Explosive Materials Handling"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Office Of Requisitions
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT: Safe storage of explosive materials
+
+
+
1. The Office of Requisition has seen fit to deploy your command with a complement of explosive compounds. These compounds include - Composition C-4, Composition X-4.
+
2. Composition C-4 is an dense explosive package composed of; RDX, Plastic binders, plasticizer. Composition C-4 is a stable, malleable explosive meant for demolition usage. It is resistant to detonation from gunshots and jostling. The C-4 charges you have been issued include a detonator in their assembly, and should not be tinkered with by untrained hands.
+
3. Ensure that any usage of Composition C-4 is monitored and controlled. Do not issue Composition c-4 to your vessel without a cause for such.
+
4. Composition X-4 is a high powered explosive package composed of an RDX filling mixed with a teslium based detonator, allowing for a far more focused explosion. Unless the casing has degraded, it is safe to handle in the same manner as Composition C-4.
+
5. Take care in assigning usage of Composition X-4 due to it's increased potency. While focused, an injury resulting from being caught in a blast would likely prove fatal.
+
6. The Office recommends assigning a trained expert to monitor field usage of explosives.
+
+
+
+ "}
+
+/obj/item/paper/fluff/ship/bolide/three
+ name = "Marine Relationships"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Office Of Personnel
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT: Prevention of Inappropriate Relationships.
+
+
+
The Office of Personnel recommends that the captain of any PGFN vessel keep an active eye out for inappropriate relationships in the ranks.
+
Inappropriate relationships are a relationship that fulfills one of the following criteria; Compromises the integrity of supervisory authority, causes unfairness, involves improper use of rank or position for personal gain, gives the perception that it is exploitive or coercive in nature, can create an adverse effect on good order and discipline or mission accomplishment.
+
As an officer, behaviors to avoid including enlisted in are; business matters, gambling, dating, sharing living accomodations.
+
Actual or percieved, these activities are prohibited. If it looks wrong, it's probably wrong.
+
+
+
+ "}
+
+/obj/item/paper/fluff/ship/bolide/four
+ name = "Chain Of Command"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Office Of Personnel
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT: Chain of Command aboard vessel.
+
+
+
The Office of Personnel recommends that the Captain of a PGFN vessel in deployment establish a chain of command that encompasses all crew aboard the vessel.
+
The ranks of all serving members aboard a vessel creates a natural chain of command for the Captain and any other officers to base any further Chain Of Command alterations upon. It should be stressed that a Captain should avoid issuing field promotions to fulfill an artifical chain of command.
+
A Captain should discuss any change in chain of command with any other officers aboard before putting it into action. This allows multiple opinions to be fed into the process, thus creating a stronger product.
+
Aboard a Bolide-Class Lander, the Office of Personnel recommends that the captain designate one 'team leader' per three marines aboard. These team leaders should report directly to the Marine Lieutenant, They should be reported to by the two marines in their team. It is not suggested to work the naval engineers into this program, as they are not expected to deploy in combat.
+
Marines should be made aware that being declared team leader carries no authority unless delegated. In the event of a conflicted chain of command, or contested order, the figure with rank should be obeyed.
+
This Office recommends monitoring marines for behavioral patterns before assigning a team leader. The ideal marine team leader is cool-headed, rational, and able to make tough choices.
+
+
+
+ "}
+
diff --git a/code/game/MapData/shuttles/pgf_woeful_cthonian.dm b/code/game/MapData/shuttles/pgf_woeful_cthonian.dm
new file mode 100644
index 000000000000..cffb8229e36c
--- /dev/null
+++ b/code/game/MapData/shuttles/pgf_woeful_cthonian.dm
@@ -0,0 +1,69 @@
+/obj/item/storage/backpack/satchel/flat/cthonian/PopulateContents()
+ new /obj/item/reagent_containers/food/drinks/bottle/whiskey(src)
+ new /obj/item/reagent_containers/food/drinks/bottle/whiskey(src)
+ new /obj/item/reagent_containers/food/drinks/bottle/rum(src)
+ new /obj/item/reagent_containers/food/drinks/bottle/absinthe(src)
+
+/obj/item/paper/fluff/ship/cthonian
+ name = "Blank Federated Navy Paperwork"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Bolide-Class Lander
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT:
+ "}
+
+/obj/item/paper/fluff/ship/cthonian/one
+ name = "Official Briefing"
+ default_raw_text = {"
+
+
+
+
+
+
+
+
+ logo here (one day) |
+
+ Pan Gezenan Federation Navy Office of Naval Deployment
+ |
+ XX - XX - 506 |
+
+
+
+
+
FOR IMMEDIATE DISTRIBUTION
+
SUBJECT: Briefing Crew of Vessel
+
+
+
1. The Office of Naval Deployment has seen fit to deploy you in command of an Woeful Cthonian class Patrol Cutter. Congratulations on your assignment. Due to the small size of this vessel, it is possible that it is your first command. If this is the case, the Office Of Naval Deployment recommends christening your vessel with the provided bottle of champagne.
+
2. A Cthonian-class Cutter's mission profile is traditionally; Patrol in contested and claimed space, assisting in CLIP anti-piracy operations, intercepting smugglers and other individual suspected of breaking the laws of the Federation, and providing information for larger vessels.
+
3. The assignment issued to your vessel is as follows: Assume a standard "contested space" patrol within the system you are operating in. Maintain stand-off relations with other states unless ordered by a higher authority. Engage and destroy pirates within the system whenever possible.
+
4. The Office Of Naval Deployment directs that it is supplied with the following: reports on pirate hideouts in system, reports on conflict in area, reports on nations in area. Failure to supply pertinent reports in a timely fashion will lead to investigation of your command.
+
+
+
+
+
+ Eutei-Tar
+ Eutei-Tar
+ Vice Admiral, PGF Navy
+ Assistant Director Of the Office Of Navy Deployment
+
+ "}
diff --git a/code/game/MapData/shuttles/srm_elder.dm b/code/game/MapData/shuttles/srm_elder.dm
index 97805731ec2f..453767e4394a 100644
--- a/code/game/MapData/shuttles/srm_elder.dm
+++ b/code/game/MapData/shuttles/srm_elder.dm
@@ -1,15 +1,12 @@
-/obj/item/melee/transforming/cleaving_saw/old
+/obj/item/melee/cleaving_saw/old
name = "old cleaving saw"
desc = "This saw, old and rusted, is still an effective tool at bleeding beasts and monsters."
force = 10
- force_on = 15 //force when active
+ active_force = 15 //force when active
throwforce = 15
- throwforce_on = 15
- faction_bonus_force = 5
- nemesis_factions = list("mining", "boss")
+ active_throwforce = 15
bleed_stacks_per_hit = 1.5
-
/obj/structure/closet/secure_closet/medicalsrm
name = "hunter doctor closet"
desc = "Everything the Hunter Doctor needs to heal the hurting masses."
diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm
index 96f09636fec3..873828d2c260 100644
--- a/code/game/alternate_appearance.dm
+++ b/code/game/alternate_appearance.dm
@@ -130,32 +130,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
/datum/atom_hud/alternate_appearance/basic/observers/mobShouldSee(mob/M)
return isobserver(M)
-/datum/atom_hud/alternate_appearance/basic/noncult
-
-/datum/atom_hud/alternate_appearance/basic/noncult/New()
- ..()
- for(var/mob in GLOB.player_list)
- if(mobShouldSee(mob))
- add_hud_to(mob)
-
-/datum/atom_hud/alternate_appearance/basic/noncult/mobShouldSee(mob/M)
- if(!iscultist(M))
- return TRUE
- return FALSE
-
-/datum/atom_hud/alternate_appearance/basic/cult
-
-/datum/atom_hud/alternate_appearance/basic/cult/New()
- ..()
- for(var/mob in GLOB.player_list)
- if(mobShouldSee(mob))
- add_hud_to(mob)
-
-/datum/atom_hud/alternate_appearance/basic/cult/mobShouldSee(mob/M)
- if(iscultist(M))
- return TRUE
- return FALSE
-
/datum/atom_hud/alternate_appearance/basic/blessedAware
/datum/atom_hud/alternate_appearance/basic/blessedAware/New()
@@ -167,8 +141,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
/datum/atom_hud/alternate_appearance/basic/blessedAware/mobShouldSee(mob/M)
if(M.mind && (M.mind.assigned_role == "Chaplain"))
return TRUE
- if (istype(M, /mob/living/simple_animal/hostile/construct/wraith))
- return TRUE
if(isrevenant(M) || iswizard(M))
return TRUE
return FALSE
diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm
deleted file mode 100644
index 3fb4fcd5efeb..000000000000
--- a/code/game/area/Space_Station_13_areas.dm
+++ /dev/null
@@ -1,1350 +0,0 @@
-/*
-
-### This file contains a list of all the areas in your station. Format is as follows:
-
-/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want)
- name = "NICE NAME" (not required but makes things really nice)
- icon = 'ICON FILENAME' (defaults to 'icons/turf/areas.dmi')
- icon_state = "NAME OF ICON" (defaults to "unknown" (blank))
- requires_power = FALSE (defaults to true)
- ambientsounds = list() (defaults to GENERIC from sound.dm. override it as "ambientsounds = list('sound/ambience/signal.ogg')" or using another define.
-
-NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0
-
-*/
-
-
-/*-----------------------------------------------------------------------------*/
-
-/* Shiptest Begin
-
-/area/ai_monitored //stub defined ai_monitored.dm
-
-/area/ai_monitored/turret_protected
-
-/area/space
- icon_state = "space"
- requires_power = TRUE
- always_unpowered = TRUE
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
- power_light = FALSE
- power_equip = FALSE
- power_environ = FALSE
- area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED
- outdoors = TRUE
- ambientsounds = SPACE
- flags_1 = CAN_BE_DIRTY_1
- sound_environment = SOUND_AREA_SPACE
-
-/area/space/nearstation
- icon_state = "space_near"
- dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
-
-/area/start
- name = "start area"
- icon_state = "start"
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
- has_gravity = STANDARD_GRAVITY
-
-
-/area/testroom
- requires_power = FALSE
- name = "Test Room"
- icon_state = "storage"
-
-//EXTRA
-
-/area/asteroid
- name = "Asteroid"
- icon_state = "asteroid"
- requires_power = FALSE
- has_gravity = STANDARD_GRAVITY
- area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED
- ambientsounds = MINING
- flags_1 = CAN_BE_DIRTY_1
- sound_environment = SOUND_AREA_ASTEROID
-
-/area/asteroid/nearstation
- dynamic_lighting = DYNAMIC_LIGHTING_FORCED
- ambientsounds = RUINS
- always_unpowered = FALSE
- requires_power = TRUE
- area_flags = UNIQUE_AREA
-
-/area/asteroid/nearstation/bomb_site
- name = "Bomb Testing Asteroid"
-
-//STATION13
-
-//Maintenance
-
-/area/maintenance
- ambientsounds = MAINTENANCE
- lighting_colour_tube = "#ffe5cb"
- lighting_colour_bulb = "#ffdbb4"
- area_flags = UNIQUE_AREA
- sound_environment = SOUND_AREA_TUNNEL_ENCLOSED
-
-//Departments
-
-/area/maintenance/department/chapel
- name = "Chapel Maintenance"
- icon_state = "maint_chapel"
-
-/area/maintenance/department/chapel/monastery
- name = "Monastery Maintenance"
- icon_state = "maint_monastery"
-
-/area/maintenance/department/crew_quarters/bar
- name = "Bar Maintenance"
- icon_state = "maint_bar"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/maintenance/department/crew_quarters/dorms
- name = "Dormitory Maintenance"
- icon_state = "maint_dorms"
-
-/area/maintenance/department/eva
- name = "EVA Maintenance"
- icon_state = "maint_eva"
-
-/area/maintenance/department/electrical
- name = "Electrical Maintenance"
- icon_state = "maint_electrical"
-
-/area/maintenance/department/engine/atmos
- name = "Atmospherics Maintenance"
- icon_state = "maint_atmos"
-
-/area/maintenance/department/security
- name = "Security Maintenance"
- icon_state = "maint_sec"
-
-/area/maintenance/department/security/upper
- name = "Upper Security Maintenance"
-
-/area/maintenance/department/security/brig
- name = "Brig Maintenance"
- icon_state = "maint_brig"
-
-/area/maintenance/department/medical
- name = "Medbay Maintenance"
- icon_state = "medbay_maint"
-
-/area/maintenance/department/medical/central
- name = "Central Medbay Maintenance"
- icon_state = "medbay_maint_central"
-
-/area/maintenance/department/medical/morgue
- name = "Morgue Maintenance"
- icon_state = "morgue_maint"
-
-/area/maintenance/department/science
- name = "Science Maintenance"
- icon_state = "maint_sci"
-
-/area/maintenance/department/science/central
- name = "Central Science Maintenance"
- icon_state = "maint_sci_central"
-
-/area/maintenance/department/cargo
- name = "Cargo Maintenance"
- icon_state = "maint_cargo"
-
-/area/maintenance/department/bridge
- name = "Bridge Maintenance"
- icon_state = "maint_bridge"
-
-/area/maintenance/department/engine
- name = "Engineering Maintenance"
- icon_state = "maint_engi"
-
-/area/maintenance/department/science/xenobiology
- name = "Xenobiology Maintenance"
- icon_state = "xenomaint"
- area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE
-
-
-//Maintenance - Generic
-
-/area/maintenance/aft
- name = "Aft Maintenance"
- icon_state = "amaint"
-
-/area/maintenance/aft/upper
- name = "Upper Aft Maintenance"
-
-/area/maintenance/aft/secondary
- name = "Aft Maintenance"
- icon_state = "amaint_2"
-
-/area/maintenance/central
- name = "Central Maintenance"
- icon_state = "maintcentral"
-
-/area/maintenance/central/secondary
- name = "Central Maintenance"
- icon_state = "maintcentral"
-
-/area/maintenance/fore
- name = "Fore Maintenance"
- icon_state = "fmaint"
-
-/area/maintenance/fore/upper
- name = "Upper Fore Maintenance"
-
-/area/maintenance/fore/secondary
- name = "Fore Maintenance"
- icon_state = "fmaint_2"
-
-/area/maintenance/starboard
- name = "Starboard Maintenance"
- icon_state = "smaint"
-
-/area/maintenance/starboard/upper
- name = "Upper Starboard Maintenance"
-
-/area/maintenance/starboard/central
- name = "Central Starboard Maintenance"
- icon_state = "smaint"
-
-/area/maintenance/starboard/secondary
- name = "Secondary Starboard Maintenance"
- icon_state = "smaint_2"
-
-/area/maintenance/starboard/aft
- name = "Starboard Quarter Maintenance"
- icon_state = "asmaint"
-
-/area/maintenance/starboard/aft/secondary
- name = "Secondary Starboard Quarter Maintenance"
- icon_state = "asmaint_2"
-
-/area/maintenance/starboard/fore
- name = "Starboard Bow Maintenance"
- icon_state = "fsmaint"
-
-/area/maintenance/port
- name = "Port Maintenance"
- icon_state = "pmaint"
-
-/area/maintenance/port/central
- name = "Central Port Maintenance"
- icon_state = "maintcentral"
-
-/area/maintenance/port/aft
- name = "Port Quarter Maintenance"
- icon_state = "apmaint"
-
-/area/maintenance/port/fore
- name = "Port Bow Maintenance"
- icon_state = "fpmaint"
-
-/area/maintenance/disposal
- name = "Waste Disposal"
- icon_state = "disposal"
-
-/area/maintenance/disposal/incinerator
- name = "Incinerator"
- icon_state = "disposal"
-
-
-//Hallway
-/area/hallway
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/hallway
- lighting_colour_tube = "#ffce99"
- lighting_colour_bulb = "#ffdbb4"
- lighting_brightness_tube = 7
-
-
-/area/hallway/primary/aft
- name = "Aft Primary Hallway"
- icon_state = "hallA"
-
-/area/hallway/primary/fore
- name = "Fore Primary Hallway"
- icon_state = "hallF"
-
-/area/hallway/primary/starboard
- name = "Starboard Primary Hallway"
- icon_state = "hallS"
-
-/area/hallway/primary/port
- name = "Port Primary Hallway"
- icon_state = "hallP"
-
-/area/hallway/primary/central
- name = "Central Primary Hallway"
- icon_state = "hallC"
-
-/area/hallway/primary/upper
- name = "Upper Central Primary Hallway"
- icon_state = "hallC"
-
-
-/area/hallway/secondary/command
- name = "Command Hallway"
- icon_state = "bridge_hallway"
-
-/area/hallway/secondary/construction
- name = "Construction Area"
- icon_state = "construction"
-
-/area/hallway/secondary/exit
- name = "Escape Shuttle Hallway"
- icon_state = "escape"
-
-/area/hallway/secondary/exit/departure_lounge
- name = "Departure Lounge"
- icon_state = "escape_lounge"
-
-/area/hallway/secondary/entry
- name = "Arrival Shuttle Hallway"
- icon_state = "entry"
-
-/area/hallway/secondary/service
- name = "Service Hallway"
- icon_state = "hall_service"
-
-//Command
-
-/area/bridge
- name = "Bridge"
- icon_state = "bridge"
- ambientsounds = list('sound/ambience/signal.ogg')
- lighting_colour_tube = "#ffce99"
- lighting_colour_bulb = "#ffdbb4"
- lighting_brightness_tube = 6
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/bridge/meeting_room
- name = "Heads of Staff Meeting Room"
- icon_state = "meeting"
- sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
-
-/area/bridge/meeting_room/council
- name = "Council Chamber"
- icon_state = "meeting"
- sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
-
-/area/bridge/showroom/corporate
- name = "Corporate Showroom"
- icon_state = "showroom"
- sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
-
-/area/crew_quarters/heads/captain
- name = "Captain's Office"
- icon_state = "captain"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/crew_quarters/heads/captain/private
- name = "Captain's Quarters"
- icon_state = "captain"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/crew_quarters/heads/chief
- name = "Chief Engineer's Office"
- icon_state = "ce_office"
-
-/area/crew_quarters/heads/cmo
- name = "Chief Medical Officer's Office"
- icon_state = "cmo_office"
-
-/area/crew_quarters/heads/head_of_personnel
- name = "Head of Personnel's Office"
- icon_state = "hop_office"
-
-/area/crew_quarters/heads/hos
- name = "Head of Security's Office"
- icon_state = "hos_office"
-
-/area/crew_quarters/heads/hor
- name = "Research Director's Office"
- icon_state = "rd_office"
-
-/area/comms
- name = "Communications Relay"
- icon_state = "tcomsatcham"
- lighting_colour_tube = "#e2feff"
- lighting_colour_bulb = "#d5fcff"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/server
- name = "Messaging Server Room"
- icon_state = "server"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-//Crew
-
-/area/crew_quarters
- lighting_colour_tube = "#ffce99"
- lighting_colour_bulb = "#ffdbb4"
- lighting_brightness_tube = 6
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/crew_quarters/dorms
- name = "Dormitories"
- icon_state = "Sleep"
- area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA
-
-/area/crew_quarters/dorms/barracks
- name = "Sleep Barracks"
-
-/area/crew_quarters/dorms/barracks/male
- name = "Male Sleep Barracks"
-
-/area/crew_quarters/dorms/barracks/female
- name = "Female Sleep Barracks"
-
-/area/crew_quarters/toilet
- name = "Dormitory Toilets"
- icon_state = "toilet"
- lighting_colour_tube = "#e3ffff"
- lighting_colour_bulb = "#d5ffff"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/crew_quarters/toilet/auxiliary
- name = "Auxiliary Restrooms"
- icon_state = "toilet"
-
-/area/crew_quarters/toilet/locker
- name = "Locker Toilets"
- icon_state = "toilet"
-
-/area/crew_quarters/toilet/restrooms
- name = "Restrooms"
- icon_state = "toilet"
-
-/area/crew_quarters/locker
- name = "Locker Room"
- icon_state = "locker"
-
-/area/crew_quarters/lounge
- name = "Lounge"
- icon_state = "yellow"
- sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
-
-/area/crew_quarters/fitness
- name = "Fitness Room"
- icon_state = "fitness"
-
-/area/crew_quarters/fitness/locker_room
- name = "Unisex Locker Room"
- icon_state = "fitness"
-
-/area/crew_quarters/fitness/locker_room/male
- name = "Male Locker Room"
-
-/area/crew_quarters/fitness/locker_room/female
- name = "Female Locker Room"
-
-
-/area/crew_quarters/fitness/recreation
- name = "Recreation Area"
- icon_state = "fitness"
-
-/area/crew_quarters/cafeteria
- name = "Cafeteria"
- icon_state = "cafeteria"
-
-/area/crew_quarters/kitchen
- name = "Kitchen"
- icon_state = "kitchen"
- lighting_colour_tube = "#e3ffff"
- lighting_colour_bulb = "#d5ffff"
-
-/area/crew_quarters/kitchen/coldroom
- name = "Kitchen Cold Room"
- icon_state = "kitchen_cold"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/crew_quarters/bar
- name = "Bar"
- icon_state = "bar"
- mood_bonus = 5
- mood_message = "
I love being in the bar!\n"
- lighting_colour_tube = "#fff4d6"
- lighting_colour_bulb = "#ffebc1"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/crew_quarters/bar/atrium
- name = "Atrium"
- icon_state = "bar"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/crew_quarters/electronic_marketing_den
- name = "Electronic Marketing Den"
- icon_state = "bar"
-
-/area/crew_quarters/abandoned_gambling_den
- name = "Abandoned Gambling Den"
- icon_state = "abandoned_g_den"
-
-/area/crew_quarters/abandoned_gambling_den/secondary
- icon_state = "abandoned_g_den_2"
-
-/area/crew_quarters/theatre
- name = "Theatre"
- icon_state = "Theatre"
- sound_environment = SOUND_AREA_WOODFLOOR
-
-/area/crew_quarters/theatre/abandoned
- name = "Abandoned Theatre"
- icon_state = "Theatre"
-
-/area/library
- name = "Library"
- icon_state = "library"
- flags_1 = CULT_PERMITTED_1
- lighting_colour_tube = "#ffce99"
- lighting_colour_bulb = "#ffdbb4"
- sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
-
-/area/library/lounge
- name = "Library Lounge"
- icon_state = "library"
- sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
-
-/area/library/artgallery
- name = " Art Gallery"
- icon_state = "library"
-
-/area/library/private
- name = "Library Private Study"
- icon_state = "library"
-
-/area/library/upper
- name = "Library Upper Floor"
- icon_state = "library"
-
-/area/library/printer
- name = "Library Printer Room"
- icon_state = "library"
-
-/area/library/abandoned
- name = "Abandoned Library"
- icon_state = "library"
- flags_1 = CULT_PERMITTED_1
-
-/area/chapel
- icon_state = "chapel"
- ambientsounds = HOLY
- flags_1 = NONE
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/chapel/main
- name = "Chapel"
-
-/area/chapel/main/monastery
- name = "Monastery"
-
-/area/chapel/office
- name = "Chapel Office"
- icon_state = "chapeloffice"
-
-/area/chapel/asteroid
- name = "Chapel Asteroid"
- icon_state = "explored"
- sound_environment = SOUND_AREA_ASTEROID
-
-/area/chapel/asteroid/monastery
- name = "Monastery Asteroid"
-
-/area/chapel/dock
- name = "Chapel Dock"
- icon_state = "construction"
-
-/area/lawoffice
- name = "Law Office"
- icon_state = "law"
- sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
-
-
-//Engineering
-
-/area/engine
- ambientsounds = ENGINEERING
- lighting_colour_tube = "#ffce93"
- lighting_colour_bulb = "#ffbc6f"
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/engine/engine_smes
- name = "Engineering SMES"
- icon_state = "engine_smes"
-
-/area/engine/engineering
- name = "Engineering"
- icon_state = "engine"
-
-/area/engine/atmos
- name = "Atmospherics"
- icon_state = "atmos"
- flags_1 = CULT_PERMITTED_1
-
-/area/engine/atmos/upper
- name = "Upper Atmospherics"
-
-/area/engine/atmospherics_engine
- name = "Atmospherics Engine"
- icon_state = "atmos_engine"
- area_flags = BLOBS_ALLOWED | UNIQUE_AREA
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/engine/engine_room //donut station specific
- name = "Engine Room"
- icon_state = "atmos_engine"
-
-/area/engine/lobby
- name = "Engineering Lobby"
- icon_state = "engi_lobby"
-
-/area/engine/engine_room/external
- name = "Supermatter External Access"
- icon_state = "engine_foyer"
-
-/area/engine/supermatter
- name = "Supermatter Engine"
- icon_state = "engine_sm"
- area_flags = BLOBS_ALLOWED | UNIQUE_AREA
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/engine/break_room
- name = "Engineering Foyer"
- icon_state = "engine_foyer"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/engine/gravity_generator
- name = "Gravity Generator Room"
- icon_state = "grav_gen"
-
-/area/engine/storage
- name = "Engineering Storage"
- icon_state = "engi_storage"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/engine/storage_shared
- name = "Shared Engineering Storage"
- icon_state = "engi_storage"
-
-/area/engine/transit_tube
- name = "Transit Tube"
- icon_state = "transit_tube"
-
-
-//Solars
-
-/area/solar
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT
- area_flags = UNIQUE_AREA
- flags_1 = NONE
- ambientsounds = ENGINEERING
- sound_environment = SOUND_AREA_SPACE
-
-/area/solar/fore
- name = "Fore Solar Array"
- icon_state = "yellow"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/solar/aft
- name = "Aft Solar Array"
- icon_state = "yellow"
-
-/area/solar/aux/port
- name = "Port Bow Auxiliary Solar Array"
- icon_state = "panelsA"
-
-/area/solar/aux/starboard
- name = "Starboard Bow Auxiliary Solar Array"
- icon_state = "panelsA"
-
-/area/solar/starboard
- name = "Starboard Solar Array"
- icon_state = "panelsS"
-
-/area/solar/starboard/aft
- name = "Starboard Quarter Solar Array"
- icon_state = "panelsAS"
-
-/area/solar/starboard/fore
- name = "Starboard Bow Solar Array"
- icon_state = "panelsFS"
-
-/area/solar/port
- name = "Port Solar Array"
- icon_state = "panelsP"
-
-/area/solar/port/aft
- name = "Port Quarter Solar Array"
- icon_state = "panelsAP"
-
-/area/solar/port/fore
- name = "Port Bow Solar Array"
- icon_state = "panelsFP"
-
-/area/solar/aisat
- name = "AI Satellite Solars"
- icon_state = "yellow"
-
-
-//Solar Maint
-
-/area/maintenance/solars
- name = "Solar Maintenance"
- icon_state = "yellow"
-
-/area/maintenance/solars/port
- name = "Port Solar Maintenance"
- icon_state = "SolarcontrolP"
-
-/area/maintenance/solars/port/aft
- name = "Port Quarter Solar Maintenance"
- icon_state = "SolarcontrolAP"
-
-/area/maintenance/solars/port/fore
- name = "Port Bow Solar Maintenance"
- icon_state = "SolarcontrolFP"
-
-/area/maintenance/solars/starboard
- name = "Starboard Solar Maintenance"
- icon_state = "SolarcontrolS"
-
-/area/maintenance/solars/starboard/aft
- name = "Starboard Quarter Solar Maintenance"
- icon_state = "SolarcontrolAS"
-
-/area/maintenance/solars/starboard/fore
- name = "Starboard Bow Solar Maintenance"
- icon_state = "SolarcontrolFS"
-
-//Teleporter
-
-/area/teleporter
- name = "Teleporter Room"
- icon_state = "teleporter"
- ambientsounds = ENGINEERING
-
-/area/gateway
- name = "Gateway"
- icon_state = "gateway"
- ambientsounds = ENGINEERING
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-//MedBay
-
-/area/medical
- name = "Medical"
- icon_state = "medbay3"
- ambientsounds = MEDICAL
- lighting_colour_tube = "#e7f8ff"
- lighting_colour_bulb = "#d5f2ff"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/medical/abandoned
- name = "Abandoned Medbay"
- icon_state = "medbay3"
- ambientsounds = list('sound/ambience/signal.ogg')
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/medical/medbay/central
- name = "Medbay Central"
- icon_state = "medbay"
-
-/area/medical/medbay/lobby
- name = "Medbay Lobby"
- icon_state = "medbay"
-
- //Medbay is a large area, these additional areas help level out APC load.
-
-/area/medical/medbay/zone2
- name = "Medbay"
- icon_state = "medbay2"
-
-/area/medical/medbay/aft
- name = "Medbay Aft"
- icon_state = "medbay3"
-
-/area/medical/storage
- name = "Medbay Storage"
- icon_state = "medbay2"
-
-/area/medical/paramedic
- name = "Paramedic Dispatch"
- icon_state = "medbay2"
-
-/area/medical/office
- name = "Medical Office"
- icon_state = "medoffice"
-
-/area/medical/surgery/room_c
- name = "Surgery C"
- icon_state = "surgery"
-
-/area/medical/surgery/room_d
- name = "Surgery D"
- icon_state = "surgery"
-
-/area/medical/break_room
- name = "Medical Break Room"
- icon_state = "medbay2"
-
-/area/medical/coldroom
- name = "Medical Cold Room"
- icon_state = "kitchen_cold"
-
-/area/medical/patients_rooms
- name = "Patients' Rooms"
- icon_state = "patients"
- sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
-
-/area/medical/patients_rooms/room_a
- name = "Patient Room A"
- icon_state = "patients"
-
-/area/medical/patients_rooms/room_b
- name = "Patient Room B"
- icon_state = "patients"
-
-/area/medical/virology
- name = "Virology"
- icon_state = "virology"
- flags_1 = CULT_PERMITTED_1
-
-/area/medical/morgue
- name = "Morgue"
- icon_state = "morgue"
- ambientsounds = SPOOKY
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/medical/chemistry
- name = "Chemistry"
- icon_state = "chem"
-
-/area/medical/pharmacy
- name = "Pharmacy"
- icon_state = "pharmacy"
-
-/area/medical/surgery
- name = "Surgery"
- icon_state = "surgery"
-
-/area/medical/surgery/room_b
- name = "Surgery B"
- icon_state = "surgery"
-
-/area/medical/cryo
- name = "Cryogenics"
- icon_state = "cryo"
-
-/area/medical/exam_room
- name = "Exam Room"
- icon_state = "exam_room"
-
-/area/medical/genetics
- name = "Genetics Lab"
- icon_state = "genetics"
-
-/area/medical/sleeper
- name = "Medbay Treatment Center"
- icon_state = "exam_room"
-
-/area/medical/psychology
- name = "Psychology Office"
- icon_state = "psychology"
- mood_bonus = 3
- mood_message = "
I feel at ease here.\n"
- ambientsounds = list('sound/ambience/aurora_caelus_short.ogg')
-
-//Security
-
-/area/security
- name = "Security"
- icon_state = "security"
- ambientsounds = HIGHSEC
- lighting_colour_tube = "#ffeee2"
- lighting_colour_bulb = "#ffdfca"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/security/main
- name = "Security Office"
- icon_state = "security"
-
-/area/security/brig
- name = "Brig"
- icon_state = "brig"
-
-/area/security/brig/upper
- name = "Brig Overlook"
-
-/area/security/courtroom
- name = "Courtroom"
- icon_state = "courtroom"
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/security/prison
- name = "Prison Wing"
- icon_state = "sec_prison"
-
-/area/security/prison/toilet //radproof
- name = "Prison Toilet"
- icon_state = "sec_prison_safe"
-
-/area/security/prison/safe //radproof
- name = "Prison Wing Cells"
- icon_state = "sec_prison_safe"
-
-/area/security/prison/upper
- name = "Upper Prison Wing"
- icon_state = "prison_upper"
-
-/area/security/prison/visit
- name = "Prison Visitation Area"
- icon_state = "prison_visit"
-
-/area/security/prison/rec
- name = "Prison Rec Room"
- icon_state = "prison_rec"
-
-/area/security/prison/mess
- name = "Prison Mess Hall"
- icon_state = "prison_mess"
-
-/area/security/prison/work
- name = "Prison Work Room"
- icon_state = "prison_work"
-
-/area/security/prison/shower
- name = "Prison Shower"
- icon_state = "prison_shower"
-
-/area/security/prison/workout
- name = "Prison Gym"
- icon_state = "prison_workout"
-
-/area/security/prison/garden
- name = "Prison Garden"
- icon_state = "prison_garden"
-
-/area/security/processing
- name = "Labor Shuttle Dock"
- icon_state = "sec_prison"
-
-/area/security/processing/cremation
- name = "Security Crematorium"
- icon_state = "sec_prison"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/security/warden
- name = "Brig Control"
- icon_state = "Warden"
- sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
-
-/area/security/detectives_office
- name = "Detective's Office"
- icon_state = "detective"
- ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg')
-
-/area/security/detectives_office/private_investigators_office
- name = "Private Investigator's Office"
- icon_state = "detective"
- sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
-
-/area/security/range
- name = "Firing Range"
- icon_state = "firingrange"
-
-/area/security/execution
- icon_state = "execution_room"
-
-/area/security/execution/transfer
- name = "Transfer Centre"
-
-/area/security/execution/education
- name = "Prisoner Education Chamber"
-
-/area/security/nuke_storage
- name = "Vault"
- icon_state = "nuke_storage"
-
-/area/ai_monitored/nuke_storage
- name = "Vault"
- icon_state = "nuke_storage"
-
-/area/security/checkpoint
- name = "Security Checkpoint"
- icon_state = "checkpoint1"
-
-/area/security/checkpoint/auxiliary
- icon_state = "checkpoint_aux"
-
-/area/security/checkpoint/escape
- icon_state = "checkpoint_esc"
-
-/area/security/checkpoint/supply
- name = "Security Post - Cargo Bay"
- icon_state = "checkpoint_supp"
-
-/area/security/checkpoint/engineering
- name = "Security Post - Engineering"
- icon_state = "checkpoint_engi"
-
-/area/security/checkpoint/medical
- name = "Security Post - Medbay"
- icon_state = "checkpoint_med"
-
-/area/security/checkpoint/science
- name = "Security Post - Science"
- icon_state = "checkpoint_sci"
-
-/area/security/checkpoint/science/research
- name = "Security Post - Research Division"
- icon_state = "checkpoint_res"
-
-/area/security/checkpoint/customs
- name = "Customs"
- icon_state = "customs_point"
-
-/area/security/checkpoint/customs/auxiliary
- icon_state = "customs_point_aux"
-
-
-//Service
-
-/area/quartermaster
- name = "Quartermasters"
- icon_state = "quart"
- lighting_colour_tube = "#ffe3cc"
- lighting_colour_bulb = "#ffdbb8"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/quartermaster/sorting
- name = "Delivery Office"
- icon_state = "cargo_delivery"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/quartermaster/warehouse
- name = "Warehouse"
- icon_state = "cargo_warehouse"
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/quartermaster/warehouse/upper
- name = "Upper Warehouse"
-
-/area/quartermaster/office
- name = "Cargo Office"
- icon_state = "quartoffice"
-
-/area/quartermaster/storage
- name = "Cargo Bay"
- icon_state = "cargo_bay"
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/quartermaster/qm
- name = "Quartermaster's Office"
- icon_state = "quart"
-
-/area/quartermaster/qm/perch
- name = "Quartermaster's Perch"
- icon_state = "quartperch"
-
-/area/quartermaster/miningdock
- name = "Mining Dock"
- icon_state = "mining"
-
-/area/quartermaster/miningoffice
- name = "Mining Office"
- icon_state = "mining"
-
-/area/janitor
- name = "Custodial Closet"
- icon_state = "janitor"
- flags_1 = CULT_PERMITTED_1
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/hydroponics
- name = "Hydroponics"
- icon_state = "hydro"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/hydroponics/upper
- name = "Upper Hydroponics"
- icon_state = "hydro"
-
-/area/hydroponics/garden
- name = "Garden"
- icon_state = "garden"
-
-/area/hydroponics/garden/abandoned
- name = "Abandoned Garden"
- icon_state = "abandoned_garden"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/hydroponics/garden/monastery
- name = "Monastery Garden"
- icon_state = "hydro"
-
-
-//Science
-
-/area/science
- name = "Science Division"
- icon_state = "toxlab"
- lighting_colour_tube = "#f0fbff"
- lighting_colour_bulb = "#e4f7ff"
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/science/lab
- name = "Research and Development"
- icon_state = "toxlab"
-
-/area/science/xenobiology
- name = "Xenobiology Lab"
- icon_state = "toxlab"
-
-/area/science/storage
- name = "Toxins Storage"
- icon_state = "toxstorage"
-
-/area/science/test_area
- name = "Toxins Test Area"
- icon_state = "toxtest"
- area_flags = BLOBS_ALLOWED | UNIQUE_AREA
-
-/area/science/mixing
- name = "Toxins Mixing Lab"
- icon_state = "toxmix"
-
-/area/science/mixing/chamber
- name = "Toxins Mixing Chamber"
- icon_state = "toxmix"
- area_flags = BLOBS_ALLOWED | UNIQUE_AREA
-
-/area/science/misc_lab
- name = "Testing Lab"
- icon_state = "toxmisc"
-
-/area/science/misc_lab/range
- name = "Research Testing Range"
- icon_state = "toxmisc"
-
-/area/science/server
- name = "Research Division Server Room"
- icon_state = "server"
-
-/area/science/explab
- name = "Experimentation Lab"
- icon_state = "toxmisc"
-
-/area/science/robotics
- name = "Robotics"
- icon_state = "medresearch"
-
-/area/science/robotics/mechbay
- name = "Mech Bay"
- icon_state = "mechbay"
-
-/area/science/robotics/lab
- name = "Robotics Lab"
- icon_state = "ass_line"
-
-/area/science/research
- name = "Research Division"
- icon_state = "medresearch"
-
-/area/science/research/abandoned
- name = "Abandoned Research Lab"
- icon_state = "medresearch"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/science/nanite
- name = "Nanite Lab"
- icon_state = "toxmisc"
-
-//Storage
-/area/storage
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/storage/tools
- name = "Auxiliary Tool Storage"
- icon_state = "storage"
-
-/area/storage/primary
- name = "Primary Tool Storage"
- icon_state = "primarystorage"
-
-/area/storage/art
- name = "Art Supply Storage"
- icon_state = "storage"
-
-/area/storage/tcom
- name = "Telecomms Storage"
- icon_state = "green"
- area_flags = BLOBS_ALLOWED | UNIQUE_AREA
-
-/area/storage/eva
- name = "EVA Storage"
- icon_state = "eva"
-
-/area/storage/emergency/starboard
- name = "Starboard Emergency Storage"
- icon_state = "emergencystorage"
-
-/area/storage/emergency/port
- name = "Port Emergency Storage"
- icon_state = "emergencystorage"
-
-/area/storage/tech
- name = "Technical Storage"
- icon_state = "auxstorage"
-
-//Construction
-
-/area/construction
- name = "Construction Area"
- icon_state = "yellow"
- ambientsounds = ENGINEERING
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/construction/mining/aux_base
- name = "Auxiliary Base Construction"
- icon_state = "aux_base_construction"
- sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
-
-/area/construction/storage_wing
- name = "Storage Wing"
- icon_state = "storage_wing"
-
-// Vacant Rooms
-/area/vacant_room
- name = "Vacant Room"
- icon_state = "vacant_room"
- ambientsounds = MAINTENANCE
-
-/area/vacant_room/office
- name = "Vacant Office"
- icon_state = "vacant_office"
-
-/area/vacant_room/commissary
- name = "Vacant Commissary"
- icon_state = "vacant_commissary"
-
-//AI
-
-/area/ai_monitored
- sound_environment = SOUND_AREA_STANDARD_STATION
-
-/area/ai_monitored/security/armory
- name = "Armory"
- icon_state = "armory"
- ambientsounds = HIGHSEC
-
-/area/ai_monitored/security/armory/upper
- name = "Upper Armory"
-
-/area/ai_monitored/storage/eva
- name = "EVA Storage"
- icon_state = "eva"
- ambientsounds = HIGHSEC
-
-/area/ai_monitored/storage/eva/upper
- name = "Upper EVA Storage"
-
-/area/ai_monitored/storage/satellite
- name = "AI Satellite Maint"
- icon_state = "storage"
- ambientsounds = HIGHSEC
-
- //Turret_protected
-
-/area/ai_monitored/turret_protected
- ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg')
-
-/area/ai_monitored/turret_protected/ai_upload
- name = "AI Upload Chamber"
- icon_state = "ai_upload"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/ai_monitored/turret_protected/ai_upload_foyer
- name = "AI Upload Access"
- icon_state = "ai_foyer"
- sound_environment = SOUND_AREA_SMALL_ENCLOSED
-
-/area/ai_monitored/turret_protected/ai
- name = "AI Chamber"
- icon_state = "ai_chamber"
-
-/area/ai_monitored/turret_protected/aisat
- name = "AI Satellite"
- icon_state = "ai"
- sound_environment = SOUND_ENVIRONMENT_ROOM
-
-/area/ai_monitored/turret_protected/aisat/atmos
- name = "AI Satellite Atmos"
- icon_state = "ai"
-
-/area/ai_monitored/turret_protected/aisat/foyer
- name = "AI Satellite Foyer"
- icon_state = "ai"
-
-/area/ai_monitored/turret_protected/aisat/service
- name = "AI Satellite Service"
- icon_state = "ai"
-
-/area/ai_monitored/turret_protected/aisat/hallway
- name = "AI Satellite Hallway"
- icon_state = "ai"
-
-/area/aisat
- name = "AI Satellite Exterior"
- icon_state = "yellow"
-
-/area/ai_monitored/turret_protected/aisat_interior
- name = "AI Satellite Antechamber"
- icon_state = "ai"
- sound_environment = SOUND_AREA_LARGE_ENCLOSED
-
-/area/ai_monitored/turret_protected/AIsatextAS
- name = "AI Sat Ext"
- icon_state = "storage"
-
-/area/ai_monitored/turret_protected/AIsatextAP
- name = "AI Sat Ext"
- icon_state = "storage"
-
-
-// Telecommunications Satellite
-
-/area/tcommsat
- ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg', 'sound/ambience/ambitech.ogg',\
- 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg')
-
-/area/tcommsat/computer
- name = "Telecomms Control Room"
- icon_state = "tcomsatcomp"
- sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR
-
-/area/tcommsat/server
- name = "Telecomms Server Room"
- icon_state = "tcomsatcham"
-
-/area/tcommsat/server/upper
- name = "Upper Telecomms Server Room"
-
-//External Hull Access
-/area/maintenance/external
- name = "External Hull Access"
- icon_state = "amaint"
-
-/area/maintenance/external/aft
- name = "Aft External Hull Access"
-
-/area/maintenance/external/port
- name = "Port External Hull Access"
-
-/area/maintenance/external/port/bow
- name = "Port Bow External Hull Access"
-
-Shiptest End */
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 9c0ecb225c41..384c130f515c 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -69,9 +69,6 @@
///Boolean to limit the areas (subtypes included) that atoms in this area can smooth with. Used for shuttles.
var/area_limited_icon_smoothing = FALSE
- ///WS Addition - Color on minimaps, if it's null (which is default) it makes one at random.
- var/minimap_color
-
var/list/power_usage
var/lighting_colour_tube = "#FFF6ED"
@@ -113,7 +110,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/proc/process_teleport_locs()
for(var/V in GLOB.sortedAreas)
var/area/AR = V
- if(istype(AR, /area/shuttle) || AR.area_flags & NOTELEPORT)
+ if(AR.area_flags & NOTELEPORT)
continue
if(GLOB.teleportlocs[AR.name])
continue
@@ -131,14 +128,6 @@ GLOBAL_LIST_EMPTY(teleportlocs)
* Adds the item to the GLOB.areas_by_type list based on area type
*/
/area/New()
- if(!minimap_color) // goes in New() because otherwise it doesn't fucking work
- // generate one using the icon_state
- if(icon_state && icon_state != "unknown")
- var/icon/I = new(icon, icon_state, dir)
- I.Scale(1,1)
- minimap_color = I.GetPixel(1,1)
- else // no icon state? use random.
- minimap_color = rgb(rand(50,70),rand(50,70),rand(50,70))
// This interacts with the map loader, so it needs to be set immediately
// rather than waiting for atoms to initialize.
if (area_flags & UNIQUE_AREA)
diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm
index 53ccc590c72a..5f0db1fc93bc 100644
--- a/code/game/area/areas/away_content.dm
+++ b/code/game/area/areas/away_content.dm
@@ -1,33 +1,5 @@
-/*
-Unused icons for new areas are "awaycontent1" ~ "awaycontent30"
-*/
-
-
-// Away Missions
-/area/awaymission
- name = "Strange Location"
- icon_state = "away"
- has_gravity = STANDARD_GRAVITY
- ambientsounds = AWAY_MISSION
- sound_environment = SOUND_ENVIRONMENT_ROOM
-
-/area/awaymission/beach
- name = "Beach"
- icon_state = "away"
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
- 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/errorroom
+/area/errorroom
name = "Super Secret Room"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
has_gravity = STANDARD_GRAVITY
-/area/awaymission/vr
- name = "Virtual Reality"
- icon_state = "awaycontent1"
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
- var/pacifist = TRUE // if when you enter this zone, you become a pacifist or not
- var/death = FALSE // if when you enter this zone, you die
diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm
index 8e614c8a0e79..ec2c6b438f0c 100644
--- a/code/game/area/areas/ruins/icemoon.dm
+++ b/code/game/area/areas/ruins/icemoon.dm
@@ -24,3 +24,25 @@
/area/ruin/unpowered/crashed_holemaker
name = "NTSV Holemaker II" // In honor of the kugelblitz shenanigan of all time
icon_state = "green"
+
+// Ice Lodge
+
+/area/ruin/powered/icemoon/lodge/mainhall
+ name = "Main Hall"
+ icon_state = "bridge_hallway"
+
+/area/ruin/powered/icemoon/lodge/cellar
+ name = "Cellar"
+ icon_state = "yellow"
+
+/area/ruin/powered/icemoon/lodge/montagne_office
+ name = "Montagne's Office"
+ icon_state = "bridge"
+
+/area/ruin/powered/icemoon/lodge/residential
+ name = "Residential Quarters"
+ icon_state = "crew_quarters"
+
+/area/ruin/powered/icemoon/lodge/gear_room
+ name = "Gear Room"
+ icon_state = "security"
diff --git a/code/game/area/areas/ruins/rockplanet.dm b/code/game/area/areas/ruins/rockplanet.dm
index 1b9f89a46ff8..e1116172d850 100644
--- a/code/game/area/areas/ruins/rockplanet.dm
+++ b/code/game/area/areas/ruins/rockplanet.dm
@@ -58,3 +58,42 @@
/area/ruin/rockplanet/distillery/office
name = "Office"
icon_state = "vacant_office"
+
+//N+S Mining Base
+
+/area/ruin/rockplanet/mining_base
+ name = "Mining Base"
+
+/area/ruin/rockplanet/mining_base/canteen
+ name = "Canteen Dome"
+ icon_state = "bar"
+
+/area/ruin/rockplanet/mining_base/office
+ name = "Coordinator's Office"
+ icon_state = "shuttle"
+
+/area/ruin/rockplanet/mining_base/crew
+ name = "Barracks Dome"
+ icon_state = "crew_quarters"
+
+/area/ruin/rockplanet/mining_base/med
+ name = "Medical Dome"
+ icon_state = "blue"
+
+/area/ruin/rockplanet/mining_base/engineering
+ name = "Engineering Complex"
+ icon_state = "engine"
+
+/area/ruin/rockplanet/mining_base/refinery
+ name = "Refinery Complex"
+ icon_state = "storage"
+
+/area/ruin/rockplanet/mining_base/armory
+ name = "Armory Dome"
+ icon_state = "armory"
+
+/area/ruin/rockplanet/mining_base/rig_one
+ name = "Mining Platform #1"
+
+/area/ruin/rockplanet/mining_base/rig_two
+ name = "Mining Platform #2"
diff --git a/code/game/area/areas/ruins/sandplanet.dm b/code/game/area/areas/ruins/sandplanet.dm
index e3a93b58e065..3dd26e967875 100644
--- a/code/game/area/areas/ruins/sandplanet.dm
+++ b/code/game/area/areas/ruins/sandplanet.dm
@@ -2,10 +2,12 @@
//whitesands surface camp saloon
+//saloon ruin
/area/ruin/whitesands/saloon
name = "Hermit Saloon"
icon_state = "green"
+//the pubby slop crash
/area/ruin/whitesands/pubbycrash
name = "Pubby-Class Wreckage"
icon_state = "bluenew"
@@ -17,3 +19,35 @@
/area/ruin/whitesands/pubbycrash/split
name = "Pubby-Class Chunk"
icon_state = "red"
+
+//e-11 manufactory
+/area/ruin/whitesands/e11manufactory
+ name = "Eoehoma Firearms Assembly Line"
+ icon_state = "mining_production"
+
+/area/ruin/whitesands/e11manufactory/warehouse
+ name = "Eoehoma Firearms Warehouse"
+ icon_state = "storage"
+
+/area/ruin/whitesands/e11manufactory/mats
+ name = "Eoehoma Firearms Material Storage"
+ icon_state = "auxstorage"
+
+/area/ruin/whitesands/e11manufactory/security
+ name = "Eoehoma Firearms Security Office"
+ icon_state = "security"
+
+/area/ruin/whitesands/e11manufactory/barracks
+ name = "Eoehoma Firearms Worker Barracks"
+ icon_state = "crew_quarters"
+
+/area/ruin/whitesands/e11manufactory/office
+ name = "Eoehoma Firearms Management Offices"
+ icon_state = "quartoffice"
+
+//cave base
+/area/ruin/whitesands/cave_base
+ name = "Abandoned Facility"
+ icon_state = "bluenew"
+
+/area/ruin/whitesands/cave_base/engi
diff --git a/code/game/area/areas/ruins/wasteplanet.dm b/code/game/area/areas/ruins/wasteplanet.dm
index 5f069d3e055b..6744e36f20c7 100644
--- a/code/game/area/areas/ruins/wasteplanet.dm
+++ b/code/game/area/areas/ruins/wasteplanet.dm
@@ -44,6 +44,20 @@
name = "Abandoned Waste Containment Vault"
icon_state = "disposal"
+//Wasteplanet_Tradepost
+
+/area/ruin/wasteplanet/tradepost/barracks
+ name = "Abandoned Barracks"
+ icon_state = "red"
+
+/area/ruin/wasteplanet/tradepost/center
+ name = "Abandoned Dome"
+ icon_state = "bridge"
+
+/area/ruin/wasteplanet/tradepost/warehouse
+ name = "Abandoned Warehouse"
+ icon_state = "dk_yellow"
+
//Abandonded shipbreaking yard
/area/ruin/wasteplanet/wasteplanet_shipbreaking
diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm
deleted file mode 100644
index 625129ae236f..000000000000
--- a/code/game/area/areas/shuttles.dm
+++ /dev/null
@@ -1,185 +0,0 @@
-
-//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that.
-//Multi area shuttles are a thing now, use subtypes! ~ninjanomnom
-
-/area/shuttle
- name = "Shuttle"
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_FORCED
- has_gravity = STANDARD_GRAVITY
- always_unpowered = FALSE
- // Loading the same shuttle map at a different time will produce distinct area instances.
- area_flags = NONE
- icon_state = "shuttle"
- flags_1 = CAN_BE_DIRTY_1
- lighting_colour_tube = "#fff0dd"
- lighting_colour_bulb = "#ffe1c1"
- area_limited_icon_smoothing = TRUE
- sound_environment = SOUND_ENVIRONMENT_ROOM
- //The mobile port attached to this area
- var/obj/docking_port/mobile/mobile_port
-
-
-/area/shuttle/Destroy()
- mobile_port = null
- . = ..()
-
-/area/shuttle/PlaceOnTopReact(turf/T, list/new_baseturfs, turf/fake_turf_type, flags)
- . = ..()
- if(length(new_baseturfs) > 1 || fake_turf_type)
- return // More complicated larger changes indicate this isn't a player
- if(ispath(new_baseturfs[1], /turf/open/floor/plating) && !(/turf/baseturf_skipover/shuttle in new_baseturfs))
- new_baseturfs.Insert(1, /turf/baseturf_skipover/shuttle)
-
-/area/shuttle/proc/link_to_shuttle(obj/docking_port/mobile/M)
- mobile_port = M
-
-////////////////////////////Multi-area shuttles////////////////////////////
-
-////////////////////////////Syndicate infiltrator////////////////////////////
-
-/area/shuttle/syndicate
- name = "Syndicate Infiltrator"
- ambientsounds = HIGHSEC
-
-/area/shuttle/syndicate/bridge
- name = "Syndicate Infiltrator Control"
-
-/area/shuttle/syndicate/medical
- name = "Syndicate Infiltrator Medbay"
-
-/area/shuttle/syndicate/armory
- name = "Syndicate Infiltrator Armory"
-
-/area/shuttle/syndicate/eva
- name = "Syndicate Infiltrator EVA"
-
-/area/shuttle/syndicate/hallway
-
-/area/shuttle/syndicate/airlock
- name = "Syndicate Infiltrator Airlock"
-
-////////////////////////////Pirate Shuttle////////////////////////////
-
-/area/shuttle/pirate
- name = "Pirate Shuttle"
- requires_power = TRUE
-
-////////////////////////////Bounty Hunter Shuttles////////////////////////////
-
-/area/shuttle/hunter
- name = "Hunter Shuttle"
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
-
-////////////////////////////White Ship////////////////////////////
-
-/area/shuttle/abandoned
- name = "Abandoned Ship"
- requires_power = TRUE
-
-/area/shuttle/abandoned/bridge
- name = "Abandoned Ship Bridge"
-
-/area/shuttle/abandoned/engine
- name = "Abandoned Ship Engine"
-
-/area/shuttle/abandoned/bar
- name = "Abandoned Ship Bar"
-
-/area/shuttle/abandoned/crew
- name = "Abandoned Ship Crew Quarters"
-
-/area/shuttle/abandoned/cargo
- name = "Abandoned Ship Cargo Bay"
-
-/area/shuttle/abandoned/medbay
- name = "Abandoned Ship Medbay"
-
-/area/shuttle/abandoned/pod
- name = "Abandoned Ship Pod"
-
-/area/shuttle/abandoned/atmospherics
- name = "Abandoned Ship atmospherics"//WS station edit
-
-/area/shuttle/abandoned/coridor
- name = "Abandoned Ship coridor"//WS station edit
-////////////////////////////Single-area shuttles////////////////////////////
-
-/area/shuttle/transit
- name = "Hyperspace"
- desc = "Weeeeee"
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
-
-/area/shuttle/custom
- name = "Custom player shuttle"
- flags_1 = CAN_BE_DIRTY_1
-
-/area/shuttle/custom/powered
- name = "Custom Powered player shuttle"
- requires_power = FALSE
-
-/area/shuttle/arrival
- name = "Arrival Shuttle"
- area_flags = UNIQUE_AREA// SSjob refers to this area for latejoiners
-
-/area/shuttle/pod_1
- name = "Escape Pod One"
-
-/area/shuttle/pod_2
- name = "Escape Pod Two"
-
-/area/shuttle/pod_3
- name = "Escape Pod Three"
-
-/area/shuttle/pod_4
- name = "Escape Pod Four"
-
-/area/shuttle/mining
- name = "Mining Shuttle"
-
-/area/shuttle/mining/large
- name = "Mining Shuttle"
- requires_power = TRUE
-
-/area/shuttle/labor
- name = "Labor Camp Shuttle"
-
-/area/shuttle/supply
- name = "Supply Shuttle"
- area_flags = NOTELEPORT
-
-/area/shuttle/escape
- name = "Emergency Shuttle"
- flags_1 = CAN_BE_DIRTY_1
-
-/area/shuttle/escape/backup
- name = "Backup Emergency Shuttle"
-
-/area/shuttle/escape/luxury
- name = "Luxurious Emergency Shuttle"
- area_flags = NOTELEPORT
-
-/area/shuttle/escape/arena
- name = "The Arena"
- area_flags = NOTELEPORT
-
-/area/shuttle/escape/meteor
- name = "\proper a meteor with engines strapped to it"
-
-/area/shuttle/transport
- name = "Transport Shuttle"
-
-/area/shuttle/sbc_starfury
- name = "SBC Starfury"
-
-/area/shuttle/sbc_fighter1
- name = "SBC Fighter 1"
-
-/area/shuttle/sbc_fighter2
- name = "SBC Fighter 2"
-
-/area/shuttle/sbc_corvette
- name = "SBC corvette"
-
-/area/shuttle/syndicate_scout
- name = "Syndicate Scout"
diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm
index 54d74fc9538a..e0b6d27df4ce 100644
--- a/code/game/area/ship_areas.dm
+++ b/code/game/area/ship_areas.dm
@@ -46,6 +46,20 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Test Room"
icon_state = "storage"
+/area/hyperspace
+ icon_state = "space"
+ requires_power = TRUE
+ always_unpowered = TRUE
+ dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
+ power_light = FALSE
+ power_equip = FALSE
+ power_environ = FALSE
+ area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED
+ outdoors = TRUE
+ ambientsounds = SPACE
+ flags_1 = CAN_BE_DIRTY_1
+ sound_environment = SOUND_AREA_SPACE
+
//EXTRA
/area/asteroid
@@ -149,6 +163,21 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/ship/crew/crewfive
name = "Crew Quarters 5"
+/area/ship/crew/specialized
+ name = "???"
+
+/area/ship/crew/specialized/medical
+ name = "Medical Specialist's Quarters"
+
+/area/ship/crew/specialized/security
+ name = "Security Specialist's Quarters"
+
+/area/ship/crew/specialized/engineering
+ name = "Engineering Specialist's Quarters"
+
+/area/ship/crew/specialized/cargo
+ name = "Cargo Specialist's Quarters"
+
/area/ship/crew/cryo
name = "Cryopod Room"
icon_state = "cryo"
@@ -292,6 +321,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "ai_chamber"
ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg')
+/area/ship/science/workshop
+ name = "Workshop"
+ icon_state = "workshop"
+
/// Engineering ///
/area/ship/engineering
name = "Engineering"
@@ -324,6 +357,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
lighting_colour_tube = "#e2feff"
lighting_colour_bulb = "#d5fcff"
+/area/ship/engineering/communications/room
+ name = "Communications Room"
+
/area/ship/engineering/engine
name = "Engine Room"
icon_state = "engine_sm"
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index a140ec099085..6f1a0069e5c9 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -353,66 +353,6 @@
return TRUE
return !density
-/**
- * Is this atom currently located on centcom
- *
- * Specifically, is it on the z level and within the centcom areas
- *
- * You can also be in a shuttleshuttle during endgame transit
- *
- * Used in gamemode to identify mobs who have escaped and for some other areas of the code
- * who don't want atoms where they shouldn't be
- */
-/atom/proc/onCentCom()
- var/turf/T = get_turf(src)
- if(!T)
- return FALSE
-
- if(is_reserved_level(T))
- for(var/A in SSshuttle.mobile)
- var/obj/docking_port/mobile/M = A
- if(M.launch_status == ENDGAME_TRANSIT)
- for(var/place in M.shuttle_areas)
- var/area/shuttle/shuttle_area = place
- if(T in shuttle_area)
- return TRUE
-
- if(!is_centcom_level(T))//if not, don't bother
- return FALSE
-
- //Check for centcom itself
- if(istype(T.loc, /area/centcom))
- return TRUE
-
- //Check for centcom shuttles
- for(var/A in SSshuttle.mobile)
- var/obj/docking_port/mobile/M = A
- if(M.launch_status == ENDGAME_LAUNCHED)
- for(var/place in M.shuttle_areas)
- var/area/shuttle/shuttle_area = place
- if(T in shuttle_area)
- return TRUE
-
-/**
- * Is the atom in any of the centcom syndicate areas
- *
- * Either in the syndie base on centcom, or any of their shuttles
- *
- * Also used in gamemode code for win conditions
- */
-/atom/proc/onSyndieBase()
- var/turf/T = get_turf(src)
- if(!T)
- return FALSE
-
- if(!is_centcom_level(T))//if not, don't bother
- return FALSE
-
- if(istype(T.loc, /area/shuttle/syndicate) || istype(T.loc, /area/syndicate_mothership))
- return TRUE
-
- return FALSE
-
/**
* Is the atom in an away mission
*
@@ -1127,6 +1067,7 @@
VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EXPLOSION, "Explosion")
VV_DROPDOWN_OPTION(VV_HK_RADIATE, "Radiate")
VV_DROPDOWN_OPTION(VV_HK_EDIT_FILTERS, "Edit Filters")
+ VV_DROPDOWN_OPTION(VV_HK_SELL, "Export Item")
/atom/vv_do_topic(list/href_list)
. = ..()
@@ -1198,6 +1139,9 @@
var/client/C = usr.client
C?.open_filter_editor(src)
+ if(href_list[VV_HK_SELL] && check_rights(R_ADMIN|R_DEBUG) && check_rights(R_VAREDIT))
+ export_item_and_contents(src, allowed_categories = ALL, apply_elastic = FALSE)
+
/atom/vv_get_header()
. = ..()
var/refid = REF(src)
@@ -1376,9 +1320,6 @@
/atom/proc/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
return
-/atom/proc/disconnect_from_shuttle(obj/docking_port/mobile/port)
- return
-
/// Generic logging helper
/atom/proc/log_message(message, message_type, color=null, log_globally=TRUE)
if(!log_globally)
@@ -1659,10 +1600,9 @@
* Produces a signal [COMSIG_PARENT_EXAMINE_MORE]
*/
/atom/proc/examine_more(mob/user)
+ SHOULD_CALL_PARENT(TRUE)
. = list()
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE_MORE, user, .)
- if(!LAZYLEN(.)) // lol ..length
- return list("
You examine [src] closer, but find nothing of interest...")
///Passes Stat Browser Panel clicks to the game and calls client click on an atom
/atom/Topic(href, list/href_list)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 79326ab9e2ad..5f2d5b0fb64d 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -540,7 +540,7 @@
var/previous_virtual_z = OldLoc?.virtual_z() || 0
var/current_virtual_z = virtual_z()
- if(current_virtual_z && current_virtual_z != previous_virtual_z)
+ if(current_virtual_z != previous_virtual_z)
on_virtual_z_change(current_virtual_z, previous_virtual_z)
SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED, OldLoc, Dir, Forced, old_locs)
@@ -580,9 +580,14 @@
return CanPass(AM, get_dir(src, AM))
///default byond proc that is deprecated for us in lieu of signals. do not call
-/atom/movable/Crossed(atom/movable/crossed_atom, oldloc)
- SHOULD_NOT_OVERRIDE(TRUE)
- CRASH("atom/movable/Crossed() was called!")
+// [CELADON-EDIT] - CELADON_EMOTES
+// /atom/movable/Crossed(atom/movable/crossed_atom, oldloc)
+// SHOULD_NOT_OVERRIDE(TRUE)
+// CRASH("atom/movable/Crossed() was called!") // CELADON-EDIT - ORIGINAL
+/atom/movable/Crossed(atom/movable/AM, oldloc)
+ SEND_SIGNAL(src, COMSIG_MOVABLE_CROSSED, AM)
+ SEND_SIGNAL(AM, COMSIG_CROSSED_MOVABLE, src)
+// [/CELADON-EDIT]
/**
* `Uncross()` is a default BYOND proc that is called when something is *going*
@@ -1221,7 +1226,7 @@
//Returns an atom's power cell, if it has one. Overload for individual items.
/atom/movable/proc/get_cell()
- return
+ return null
/atom/movable/proc/can_be_pulled(user, grab_state, force)
if(src == user || !isturf(loc))
diff --git a/code/game/communications.dm b/code/game/communications.dm
index 94afdbf364f5..e3b1acc230d2 100644
--- a/code/game/communications.dm
+++ b/code/game/communications.dm
@@ -92,36 +92,30 @@ GLOBAL_LIST_EMPTY(all_radios)
GLOBAL_LIST_INIT(radiochannels, list(
RADIO_CHANNEL_COMMON = FREQ_COMMON,
- RADIO_CHANNEL_COMMAND = FREQ_COMMAND,
+ RADIO_CHANNEL_EMERGENCY = FREQ_EMERGENCY,
RADIO_CHANNEL_CENTCOM = FREQ_CENTCOM,
- RADIO_CHANNEL_SOLGOV = FREQ_SOLGOV, //WS Edit - SolGov Rep
- RADIO_CHANNEL_WIDEBAND = FREQ_WIDEBAND, //WS Edit - Overmap
+ RADIO_CHANNEL_SOLGOV = FREQ_SOLGOV,
+ RADIO_CHANNEL_WIDEBAND = FREQ_WIDEBAND,
RADIO_CHANNEL_SYNDICATE = FREQ_SYNDICATE,
RADIO_CHANNEL_NANOTRASEN = FREQ_NANOTRASEN,
RADIO_CHANNEL_MINUTEMEN = FREQ_MINUTEMEN,
RADIO_CHANNEL_PGF = FREQ_PGF,
RADIO_CHANNEL_INTEQ = FREQ_INTEQ,
RADIO_CHANNEL_PIRATE = FREQ_PIRATE,
- RADIO_CHANNEL_AI_PRIVATE = FREQ_AI_PRIVATE,
- RADIO_CHANNEL_CTF_RED = FREQ_CTF_RED,
- RADIO_CHANNEL_CTF_BLUE = FREQ_CTF_BLUE
))
GLOBAL_LIST_INIT(reverseradiochannels, list(
"[FREQ_COMMON]" = RADIO_CHANNEL_COMMON,
- "[FREQ_COMMAND]" = RADIO_CHANNEL_COMMAND,
+ "[FREQ_EMERGENCY]" = RADIO_CHANNEL_EMERGENCY,
"[FREQ_CENTCOM]" = RADIO_CHANNEL_CENTCOM,
- "[FREQ_SOLGOV]" = RADIO_CHANNEL_SOLGOV, //WS Edit - SolGov Rep
- "[FREQ_WIDEBAND]" = RADIO_CHANNEL_WIDEBAND, //WS Edit - SolGov Rep
+ "[FREQ_SOLGOV]" = RADIO_CHANNEL_SOLGOV,
+ "[FREQ_WIDEBAND]" = RADIO_CHANNEL_WIDEBAND,
"[FREQ_SYNDICATE]" = RADIO_CHANNEL_SYNDICATE,
"[FREQ_NANOTRASEN]" = RADIO_CHANNEL_NANOTRASEN,
"[FREQ_MINUTEMEN]" = RADIO_CHANNEL_MINUTEMEN,
"[FREQ_PGF]" = RADIO_CHANNEL_PGF,
"[FREQ_INTEQ]" = RADIO_CHANNEL_INTEQ,
"[FREQ_PIRATE]" = RADIO_CHANNEL_PIRATE,
- "[FREQ_AI_PRIVATE]" = RADIO_CHANNEL_AI_PRIVATE,
- "[FREQ_CTF_RED]" = RADIO_CHANNEL_CTF_RED,
- "[FREQ_CTF_BLUE]" = RADIO_CHANNEL_CTF_BLUE
))
/datum/radio_frequency
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index a3226e864aa7..1721c1242e55 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -12,60 +12,59 @@
//BANANIUM SWORD
-/obj/item/melee/transforming/energy/sword/bananium
+/obj/item/melee/energy/sword/bananium
name = "bananium sword"
desc = "An elegant weapon, for a more civilized age."
force = 0
throwforce = 0
- force_on = 0
- throwforce_on = 0
+ active_force = 0
+ active_throwforce = 0
hitsound = null
attack_verb_on = list("slipped")
- clumsy_check = FALSE
sharpness = IS_BLUNT
sword_color = "yellow"
heat = 0
light_color = COLOR_YELLOW
var/next_trombone_allowed = 0
-/obj/item/melee/transforming/energy/sword/bananium/Initialize()
+/obj/item/melee/energy/sword/bananium/Initialize()
. = ..()
adjust_slipperiness()
/* Adds or removes a slippery component, depending on whether the sword
* is active or not.
*/
-/obj/item/melee/transforming/energy/sword/proc/adjust_slipperiness()
- if(active)
+/obj/item/melee/energy/sword/proc/adjust_slipperiness()
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
AddComponent(/datum/component/slippery, 60, GALOSHES_DONT_HELP)
else
qdel(GetComponent(/datum/component/slippery))
-/obj/item/melee/transforming/energy/sword/bananium/attack(mob/living/M, mob/living/user)
+/obj/item/melee/energy/sword/bananium/attack(mob/living/M, mob/living/user)
..()
- if(active)
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
slipper.Slip(src, M)
-/obj/item/melee/transforming/energy/sword/bananium/throw_impact(atom/hit_atom, throwingdatum)
+/obj/item/melee/energy/sword/bananium/throw_impact(atom/hit_atom, throwingdatum)
. = ..()
- if(active)
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
slipper.Slip(src, hit_atom)
-/obj/item/melee/transforming/energy/sword/bananium/attackby(obj/item/I, mob/living/user, params)
- if((world.time > next_trombone_allowed) && istype(I, /obj/item/melee/transforming/energy/sword/bananium))
+/obj/item/melee/energy/sword/bananium/attackby(obj/item/I, mob/living/user, params)
+ if((world.time > next_trombone_allowed) && istype(I, /obj/item/melee/energy/sword/bananium))
next_trombone_allowed = world.time + 50
to_chat(user, "
You slap the two swords together. Sadly, they do not seem to fit!")
playsound(src, 'sound/misc/sadtrombone.ogg', 50)
return TRUE
return ..()
-/obj/item/melee/transforming/energy/sword/bananium/transform_weapon(mob/living/user, supress_message_text)
+/obj/item/melee/energy/sword/bananium/on_transform(obj/item/source, mob/user, active)
. = ..()
adjust_slipperiness()
-/obj/item/melee/transforming/energy/sword/bananium/ignition_effect(atom/A, mob/user)
+/obj/item/melee/energy/sword/bananium/ignition_effect(atom/A, mob/user)
return ""
//BANANIUM SHIELD
@@ -179,72 +178,3 @@
/obj/item/clothing/mask/fakemoustache/sticky/proc/unstick()
REMOVE_TRAIT(src, TRAIT_NODROP, STICKY_MOUSTACHE_TRAIT)
-
-//DARK H.O.N.K. AND CLOWN MECH WEAPONS
-
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombanana
- name = "bombanana mortar"
- desc = "Equipment for clown exosuits. Launches exploding banana peels."
- icon_state = "mecha_bananamrtr"
- projectile = /obj/item/grown/bananapeel/bombanana
- projectiles = 8
- projectile_energy_cost = 1000
-
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombanana/can_attach(obj/mecha/combat/honker/M)
- if(..())
- if(istype(M))
- return TRUE
- return FALSE
-
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/tearstache
- name = "\improper HONKeR-6 grenade launcher"
- desc = "A weapon for combat exosuits. Launches primed tear-stache grenades."
- icon_state = "mecha_grenadelnchr"
- projectile = /obj/item/grenade/chem_grenade/teargas/moustache
- fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg'
- projectiles = 6
- missile_speed = 1.5
- projectile_energy_cost = 800
- equip_cooldown = 60
- det_time = 20
-
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/tearstache/can_attach(obj/mecha/combat/honker/M)
- if(..())
- if(istype(M))
- return TRUE
- return FALSE
-
-/obj/mecha/combat/honker/dark
- desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. This one has been painted black for maximum fun. HONK!"
- name = "\improper Dark H.O.N.K"
- icon_state = "darkhonker"
- max_integrity = 300
- deflect_chance = 15
- armor = list("melee" = 40, "bullet" = 40, "laser" = 50, "energy" = 35, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- max_temperature = 35000
- operation_req_access = list(ACCESS_SYNDICATE)
- internals_req_access = list(ACCESS_SYNDICATE)
- wreckage = /obj/structure/mecha_wreckage/honker/dark
- max_equip = 4
-
-/obj/mecha/combat/honker/dark/add_cell(obj/item/stock_parts/cell/C)
- if(C)
- C.forceMove(src)
- cell = C
- return
- cell = new /obj/item/stock_parts/cell/hyper(src)
-
-/obj/mecha/combat/honker/dark/loaded/Initialize()
- . = ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/thrusters/ion(src)
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/honker()
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombanana()//Needed more offensive weapons.
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/tearstache()//The mousetrap mortar was not up-to-snuff.
- ME.attach(src)
-
-/obj/structure/mecha_wreckage/honker/dark
- name = "\improper Dark H.O.N.K wreckage"
- icon_state = "darkhonker-broken"
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
deleted file mode 100644
index f7ce7b036eb5..000000000000
--- a/code/game/gamemodes/cult/cult.dm
+++ /dev/null
@@ -1,182 +0,0 @@
-#define CULT_SCALING_COEFFICIENT 9.3 //Roughly one new cultist at roundstart per this many players
-
-/datum/game_mode
- var/list/datum/mind/cult = list()
-
-/proc/iscultist(mob/living/M)
- return M.mind?.has_antag_datum(/datum/antagonist/cult)
-
-/datum/team/cult/proc/is_sacrifice_target(datum/mind/mind)
- for(var/datum/objective/sacrifice/sac_objective in objectives)
- if(mind == sac_objective.target)
- return TRUE
- return FALSE
-
-/proc/is_convertable_to_cult(mob/living/M,datum/team/cult/specific_cult)
- if(!istype(M))
- return FALSE
- if(M.mind)
- if(specific_cult && specific_cult.is_sacrifice_target(M.mind))
- return FALSE
- if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to))
- return FALSE
- if(M.mind.unconvertable)
- return FALSE
- else
- return FALSE
- if(HAS_TRAIT(M, TRAIT_MINDSHIELD) || issilicon(M) || isbot(M) || isdrone(M) || !M.client)
- return FALSE //can't convert machines, shielded, or braindead
- return TRUE
-
-/datum/game_mode/cult
- name = "cult"
- config_tag = "cult"
- report_type = "cult"
- antag_flag = ROLE_CULTIST
- false_report_weight = 10
- restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Brig Physician", "SolGov Representative", "Prisoner") //WS edit - Brig Physicians, SolGov Rep
- protected_jobs = list()
- required_players = 29
- required_enemies = 4
- recommended_enemies = 4
- enemy_minimum_age = 14
-
- announce_span = "cult"
- announce_text = "Some crew members are trying to start a cult to Nar'Sie!\n\
-
Cultists: Carry out Nar'Sie's will.\n\
-
Crew: Prevent the cult from expanding and drive it out."
-
- title_icon = "cult"
-
- var/finished = 0
-
- var/acolytes_needed = 10 //for the survive objective
- var/acolytes_survived = 0
-
- var/list/cultists_to_cult = list() //the cultists we'll convert
-
- var/datum/team/cult/main_cult
-
-
-/datum/game_mode/cult/pre_setup()
- if(CONFIG_GET(flag/protect_roles_from_antagonist))
- restricted_jobs += protected_jobs
-
- if(CONFIG_GET(flag/protect_assistant_from_antagonist))
- restricted_jobs += "Assistant"
-
- //cult scaling goes here
- recommended_enemies = 1 + round(num_players()/CULT_SCALING_COEFFICIENT)
- var/remaining = (num_players() % CULT_SCALING_COEFFICIENT) * 10 //Basically the % of how close the population is toward adding another cultis
- if(prob(remaining))
- recommended_enemies++
-
-
- for(var/cultists_number = 1 to recommended_enemies)
- if(!antag_candidates.len)
- break
- var/datum/mind/cultist = antag_pick(antag_candidates)
- antag_candidates -= cultist
- cultists_to_cult += cultist
- cultist.special_role = ROLE_CULTIST
- cultist.restricted_roles = restricted_jobs
- log_game("[key_name(cultist)] has been selected as a cultist")
-
- if(cultists_to_cult.len>=required_enemies)
- for(var/antag in cultists_to_cult)
- GLOB.pre_setup_antags += antag
- return TRUE
- else
- setup_error = "Not enough cultist candidates"
- return FALSE
-
-
-/datum/game_mode/cult/post_setup()
- main_cult = new
-
- for(var/datum/mind/cult_mind in cultists_to_cult)
- add_cultist(cult_mind, 0, equip=TRUE, cult_team = main_cult)
- GLOB.pre_setup_antags -= cult_mind
-
- main_cult.setup_objectives() //Wait until all cultists are assigned to make sure none will be chosen as sacrifice.
-
- . = ..()
-
-/datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun , equip = FALSE, datum/team/cult/cult_team = null)
- if (!istype(cult_mind))
- return FALSE
-
- var/datum/antagonist/cult/new_cultist = new()
- new_cultist.give_equipment = equip
-
- if(cult_mind.add_antag_datum(new_cultist,cult_team))
- if(stun)
- cult_mind.current.Unconscious(100)
- return TRUE
-
-/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun)
- if(cult_mind.current)
- var/datum/antagonist/cult/cult_datum = cult_mind.has_antag_datum(/datum/antagonist/cult)
- if(!cult_datum)
- return FALSE
- cult_datum.silent = silent
- cult_mind.remove_antag_datum(cult_datum)
- if(stun)
- cult_mind.current.Unconscious(100)
- return TRUE
-
-/datum/game_mode/cult/proc/check_cult_victory()
- return main_cult.check_cult_victory()
-
-
-/datum/game_mode/cult/set_round_result()
- ..()
- if(check_cult_victory())
- SSticker.mode_result = "win - cult win"
- SSticker.news_report = CULT_SUMMON
- else
- SSticker.mode_result = "loss - staff stopped the cult"
- SSticker.news_report = CULT_FAILURE
-
-/datum/game_mode/cult/proc/check_survive()
- var/acolytes_survived = 0
- for(var/datum/mind/cult_mind in cult)
- if (cult_mind.current && cult_mind.current.stat != DEAD)
- if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase())
- acolytes_survived++
- if(acolytes_survived>=acolytes_needed)
- return 0
- else
- return 1
-
-
-/datum/game_mode/cult/generate_report()
- return "Some stations in your sector have reported evidence of blood sacrifice and strange magic. Ties to the Wizards' Federation have been proven not to exist, and many employees \
- have disappeared; even Central Command employees light-years away have felt strange presences and at times hysterical compulsions. Interrogations point towards this being the work of \
- the cult of Nar'Sie. If evidence of this cult is discovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and all resources should be \
- devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will prevent conversion \
- altogether."
-
-
-
-/datum/game_mode/cult/generate_credit_text()
- var/list/round_credits = list()
- var/len_before_addition
-
- round_credits += "
The Cult of Nar'Sie:
"
- len_before_addition = round_credits.len
- for(var/datum/mind/cultist in cult)
- round_credits += "[cultist.name] as a cult fanatic
"
-
- var/datum/objective/eldergod/summon_objective = locate() in main_cult.objectives
- if(summon_objective && summon_objective.summoned)
- round_credits += "Nar'Sie as the eldritch abomination
"
-
- if(len_before_addition == round_credits.len)
- round_credits += list("The cultists have learned the danger of eldritch magic!
", "They all disappeared!
")
- round_credits += "
"
-
- round_credits += ..()
- return round_credits
-
-#undef CULT_SCALING_COEFFICIENT
diff --git a/code/game/gamemodes/devil/devil_agent/devil_agent.dm b/code/game/gamemodes/devil/devil_agent/devil_agent.dm
deleted file mode 100644
index c8fb62faba09..000000000000
--- a/code/game/gamemodes/devil/devil_agent/devil_agent.dm
+++ /dev/null
@@ -1,44 +0,0 @@
-/datum/game_mode/devil/devil_agents
- name = "Devil Agents"
- config_tag = "devil_agents"
- required_players = 25
- required_enemies = 3
- recommended_enemies = 8
- reroll_friendly = 0
-
- traitors_possible = 10 //hard limit on traitors if scaling is turned off
- num_modifier = 4
- objective_count = 2
-
- var/list/devil_target_list = list() //will update to be a child of internal affairs when bothered
- var/list/devil_late_joining_list = list()
- minimum_devils = 3
-
- announce_text = "There are devil agents onboard the station, trying to outbid each other!\n\
- + Devils: Purchase souls and interfere with your rivals!\n\
- + Crew: Resist the lure of sin and remain pure!"
-
-/datum/game_mode/devil/devil_agents/post_setup()
- var/i = 0
- for(var/datum/mind/devil in devils)
- i++
- if(i + 1 > devils.len)
- i = 0
- devil_target_list[devil] = devils[i + 1]
- ..()
-
-/datum/game_mode/devil/devil_agents/add_devil_objectives(datum/mind/devil_mind, quantity)
- ..(devil_mind, quantity - give_outsell_objective(devil_mind))
-
-/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil)
- //If you override this method, have it return the number of objectives added.
- if(devil_target_list.len && devil_target_list[devil]) // Is a double agent
- var/datum/mind/target_mind = devil_target_list[devil]
- var/datum/antagonist/devil/D = target_mind.has_antag_datum(/datum/antagonist/devil)
- var/datum/objective/devil/outsell/outsellobjective = new
- outsellobjective.owner = devil
- outsellobjective.target = target_mind
- outsellobjective.update_explanation_text()
- D.objectives += outsellobjective
- return 1
- return 0
diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm
deleted file mode 100644
index 9d002f4a029d..000000000000
--- a/code/game/gamemodes/devil/devil_game_mode.dm
+++ /dev/null
@@ -1,106 +0,0 @@
-/datum/game_mode/devil
- name = "devil"
- config_tag = "devil"
- report_type = "devil"
- antag_flag = ROLE_DEVIL
- false_report_weight = 1
- protected_jobs = list("Prisoner", "Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI")
- required_players = 0
- required_enemies = 1
- recommended_enemies = 4
- reroll_friendly = 1
- enemy_minimum_age = 0
- title_icon = "devil"
-
- var/traitors_possible = 4 //hard limit on devils if scaling is turned off
- var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual.
- var/objective_count = 2
- var/minimum_devils = 1
-
- announce_text = "There are devils onboard the station!\n\
- + Devils: Purchase souls and tempt the crew to sin!\n\
- + Crew: Resist the lure of sin and remain pure!"
-
-/datum/game_mode/devil/pre_setup()
- if(CONFIG_GET(flag/protect_roles_from_antagonist))
- restricted_jobs += protected_jobs
- if(CONFIG_GET(flag/protect_assistant_from_antagonist))
- restricted_jobs += "Assistant"
-
- var/num_devils = 1
-
- var/tsc = CONFIG_GET(number/traitor_scaling_coeff)
- if(tsc)
- num_devils = max(minimum_devils, min(round(num_players() / (tsc * 3))+ 2 + num_modifier, round(num_players() / (tsc * 1.5)) + num_modifier))
- else
- num_devils = max(minimum_devils, min(num_players(), traitors_possible))
-
- for(var/j = 0, j < num_devils, j++)
- if (!antag_candidates.len)
- break
- var/datum/mind/devil = antag_pick(antag_candidates)
- devils += devil
- devil.special_role = traitor_name
- devil.restricted_roles = restricted_jobs
-
- log_game("[key_name(devil)] has been selected as a [traitor_name]")
- antag_candidates.Remove(devil)
-
- if(devils.len < required_enemies)
- setup_error = "Not enough devil candidates"
- return FALSE
- for(var/antag in devils)
- GLOB.pre_setup_antags += antag
- return TRUE
-
-
-/datum/game_mode/devil/post_setup()
- for(var/datum/mind/devil in devils)
- post_setup_finalize(devil)
- ..()
- return TRUE
-
-/datum/game_mode/devil/generate_report()
- return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against Nanotrasen, as all employment contracts contain a lien on the \
- employee's soul. If anyone sells their soul in error, contact an attorney to overrule the sale. Be warned that if the devil purchases enough souls, a gateway to hell may open."
-
-/datum/game_mode/devil/proc/post_setup_finalize(datum/mind/devil)
- add_devil(devil.current, ascendable = TRUE) //Devil gamemode devils are ascendable.
- GLOB.pre_setup_antags -= devil
- add_devil_objectives(devil,2)
-
-/proc/is_devil(mob/living/M)
- return M.mind?.has_antag_datum(/datum/antagonist/devil)
-
-/proc/add_devil(mob/living/L, ascendable = FALSE)
- if(!L || !L.mind)
- return FALSE
- var/datum/antagonist/devil/devil_datum = L.mind.add_antag_datum(/datum/antagonist/devil)
- devil_datum.ascendable = ascendable
- return devil_datum
-
-/proc/remove_devil(mob/living/L)
- if(!L || !L.mind)
- return FALSE
- var/datum/antagonist/devil_datum = L.mind.has_antag_datum(/datum/antagonist/devil)
- devil_datum.on_removal()
- return TRUE
-
-/datum/game_mode/devil/generate_credit_text()
- var/list/round_credits = list()
- var/len_before_addition
-
- round_credits += "The Tempting Devils:
"
- len_before_addition = round_credits.len
- var/datum/antagonist/devil/devil_info
- for(var/datum/mind/devil in devils)
- devil_info = devil.has_antag_datum(/datum/antagonist/devil)
- if(devil_info) // This should never fail, but better to be sure
- round_credits += "[devil_info.truename] in the form of [devil.name]
"
- devil_info = null
- if(len_before_addition == round_credits.len)
- round_credits += list("The devils were all utterly destroyed!
", "The love of Space Jesus shines through!
")
- round_credits += "
"
-
- round_credits += ..()
- return round_credits
diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm
deleted file mode 100644
index f91b863483c5..000000000000
--- a/code/game/gamemodes/devil/game_mode.dm
+++ /dev/null
@@ -1,26 +0,0 @@
-/datum/game_mode
- var/list/datum/mind/devils = list()
- var/devil_ascended = 0 // Number of arch devils on station
-
-/datum/game_mode/proc/add_devil_objectives(datum/mind/devil_mind, quantity)
- var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target)
- var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil)
- for(var/i = 1 to quantity)
- var/type = pick(validtypes)
- var/datum/objective/devil/objective = new type(null)
- objective.owner = devil_mind
- D.objectives += objective
- if(!istype(objective, /datum/objective/devil/buy_target))
- validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target.
- else
- objective.find_target()
-
-/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind)
- var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
- hud.join_hud(soulless_mind.current)
- set_antag_hud(soulless_mind.current, "soulless")
-
-/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind)
- var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS]
- hud.leave_hud(soulless_mind.current)
- set_antag_hud(soulless_mind.current, null)
diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm
deleted file mode 100644
index f3d5ce575f85..000000000000
--- a/code/game/gamemodes/devil/objectives.dm
+++ /dev/null
@@ -1,113 +0,0 @@
-/datum/objective/devil
-
-/datum/objective/devil/soulquantity
- explanation_text = "You shouldn't see this text. Error:DEVIL1"
- target_amount = 4
-
-/datum/objective/devil/soulquantity/New()
- target_amount = pick(6,7,8)
- update_explanation_text()
-
-/datum/objective/devil/soulquantity/update_explanation_text()
- explanation_text = "Purchase, and retain control over at least [target_amount] souls."
-
-/datum/objective/devil/soulquantity/check_completion()
- var/count = 0
- var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil)
- var/list/souls = devilDatum.soulsOwned
- for(var/S in souls) //Just a sanity check.
- var/datum/mind/L = S
- if(L.soulOwner == owner)
- count++
- return count >= target_amount
-
-
-
-/datum/objective/devil/soulquality
- explanation_text = "You shouldn't see this text. Error:DEVIL2"
- var/contractType
- var/contractName
-
-/datum/objective/devil/soulquality/New()
- contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE/*, CONTRACT_UNWILLING*/)
- target_amount = pick(1,2)
- switch(contractType)
- if(CONTRACT_POWER)
- contractName = "for power"
- if(CONTRACT_WEALTH)
- contractName = "for wealth"
- if(CONTRACT_PRESTIGE)
- contractName = "for prestige"
- if(CONTRACT_MAGIC)
- contractName = "for magic"
- if(CONTRACT_REVIVE)
- contractName = "of revival"
- if(CONTRACT_KNOWLEDGE)
- contractName = "for knowledge"
- update_explanation_text()
-
-/datum/objective/devil/soulquality/update_explanation_text()
- explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]"
-
-/datum/objective/devil/soulquality/check_completion()
- var/count = 0
- var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil)
- var/list/souls = devilDatum.soulsOwned
- for(var/S in souls)
- var/datum/mind/L = S
- if(!L.owns_soul() && L.damnation_type == contractType)
- count++
- return count>=target_amount
-
-
-
-/datum/objective/devil/sintouch
- explanation_text = "You shouldn't see this text. Error:DEVIL3"
-
-/datum/objective/devil/sintouch/New()
- target_amount = pick(4,5)
- explanation_text = "Ensure at least [target_amount] mortals are sintouched."
-
-/datum/objective/devil/sintouch/check_completion()
- var/list/touched = get_antag_minds(/datum/antagonist/sintouched)
- return touched.len >= target_amount
-
-
-/datum/objective/devil/buy_target
- explanation_text = "You shouldn't see this text. Error:DEVIL4"
-
-/datum/objective/devil/buy_target/update_explanation_text()
- if(target)
- explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]."
- else
- explanation_text = "Free objective."
-
-/datum/objective/devil/buy_target/check_completion()
- return target.soulOwner == owner
-
-
-/datum/objective/devil/outsell
- explanation_text = "You shouldn't see this text. Error:DEVIL5"
-
-/datum/objective/devil/outsell/New()
-
-/datum/objective/devil/outsell/update_explanation_text()
- var/datum/antagonist/devil/opponent = target.has_antag_datum(/datum/antagonist/devil)
- explanation_text = "Purchase and retain control over more souls than [opponent.truename], known to mortals as [target.name], the [target.assigned_role]."
-
-/datum/objective/devil/outsell/check_completion()
- var/selfcount = 0
- var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil)
- var/list/souls = devilDatum.soulsOwned
- for(var/S in souls)
- var/datum/mind/L = S
- if(L.soulOwner == owner)
- selfcount++
- var/targetcount = 0
- devilDatum = target.has_antag_datum(/datum/antagonist/devil)
- souls = devilDatum.soulsOwned
- for(var/S in souls)
- var/datum/mind/L = S
- if(L.soulOwner == target)
- targetcount++
- return selfcount > targetcount
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index b8dcd669d385..f8d681199094 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -435,7 +435,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/// Picks a random roundstart rule from the list given as an argument and executes it.
/datum/game_mode/dynamic/proc/picking_roundstart_rule(list/drafted_rules = list(), forced = FALSE)
- var/datum/dynamic_ruleset/roundstart/starting_rule = pickweight(drafted_rules)
+ var/datum/dynamic_ruleset/roundstart/starting_rule = pick_weight(drafted_rules)
if(!starting_rule)
log_game("DYNAMIC: Couldn't pick a starting ruleset. No rulesets available")
return FALSE
@@ -450,7 +450,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed due to blocking_rules and no more rulesets available. Report this.")
return FALSE
- starting_rule = pickweight(drafted_rules)
+ starting_rule = pick_weight(drafted_rules)
// Check if the ruleset is highlander and if a highlander ruleset has been executed
else if(starting_rule.flags & HIGHLANDER_RULESET) // Should already be filtered out, but making sure. Check filtering at end of proc if reported.
if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
@@ -459,14 +459,14 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed due to no highlander stacking and no more rulesets available. Report this.")
return FALSE
- starting_rule = pickweight(drafted_rules)
+ starting_rule = pick_weight(drafted_rules)
// With low pop and high threat there might be rulesets that get executed with no valid candidates.
else if(!starting_rule.ready()) // Should already be filtered out, but making sure. Check filtering at end of proc if reported.
drafted_rules -= starting_rule
if(drafted_rules.len <= 0)
log_game("DYNAMIC: Picking [starting_rule.name] failed because there were not enough candidates and no more rulesets available. Report this.")
return FALSE
- starting_rule = pickweight(drafted_rules)
+ starting_rule = pick_weight(drafted_rules)
log_game("DYNAMIC: Picked a ruleset: [starting_rule.name]")
@@ -512,7 +512,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/// Picks a random midround OR latejoin rule from the list given as an argument and executes it.
/// Also this could be named better.
/datum/game_mode/dynamic/proc/picking_midround_latejoin_rule(list/drafted_rules = list(), forced = FALSE)
- var/datum/dynamic_ruleset/rule = pickweight(drafted_rules)
+ var/datum/dynamic_ruleset/rule = pick_weight(drafted_rules)
if(!rule)
return FALSE
@@ -524,7 +524,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules -= rule
if(drafted_rules.len <= 0)
return FALSE
- rule = pickweight(drafted_rules)
+ rule = pick_weight(drafted_rules)
// Check if the ruleset is highlander and if a highlander ruleset has been executed
else if(rule.flags & HIGHLANDER_RULESET)
if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
@@ -532,7 +532,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules -= rule
if(drafted_rules.len <= 0)
return FALSE
- rule = pickweight(drafted_rules)
+ rule = pick_weight(drafted_rules)
if(!rule.repeatable)
if(rule.ruletype == "Latejoin")
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
index 1e6a2da4d867..7163dd0ca54e 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
@@ -35,7 +35,7 @@
var/list/enemy_roles = list()
/// If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
var/required_enemies = list(1,1,0,0,0,0,0,0,0,0)
- /// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start)
+ /// The rule needs this many candidates (post-trimming) to be executed
var/required_candidates = 0
/// 1 -> 9, probability for this rule to be picked against other rules
var/weight = 5
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
index 8c8fe19d0a97..70d9c8405204 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -191,65 +191,6 @@
M.add_antag_datum(new antag_datum())
return TRUE
-//////////////////////////////////////////////
-// //
-// BLOOD CULT //
-// //
-//////////////////////////////////////////////
-
-/datum/dynamic_ruleset/roundstart/bloodcult
- name = "Blood Cult"
- antag_flag = ROLE_CULTIST
- antag_datum = /datum/antagonist/cult
- minimum_required_age = 14
- restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Research Director", "Chief Medical Officer", "Chief Engineer", "SolGov Representative")
- required_candidates = 2
- weight = 3
- cost = 35
- requirements = list(100,90,80,60,40,30,10,10,10,10)
- high_population_requirement = 10
- flags = HIGHLANDER_RULESET
- antag_cap = list(2,2,2,3,3,4,4,4,4,4)
- var/datum/team/cult/main_cult
-
-/datum/dynamic_ruleset/roundstart/bloodcult/ready(forced = FALSE)
- required_candidates = antag_cap[indice_pop]
- . = ..()
-
-/datum/dynamic_ruleset/roundstart/bloodcult/pre_execute()
- . = ..()
- var/cultists = antag_cap[indice_pop]
- mode.antags_rolled += cultists
- for(var/cultists_number = 1 to cultists)
- if(candidates.len <= 0)
- break
- var/mob/M = pick_n_take(candidates)
- assigned += M.mind
- M.mind.special_role = ROLE_CULTIST
- M.mind.restricted_roles = restricted_roles
- GLOB.pre_setup_antags += M.mind
- return TRUE
-
-/datum/dynamic_ruleset/roundstart/bloodcult/execute()
- main_cult = new
- for(var/datum/mind/M in assigned)
- var/datum/antagonist/cult/new_cultist = new antag_datum()
- new_cultist.cult_team = main_cult
- new_cultist.give_equipment = TRUE
- M.add_antag_datum(new_cultist)
- GLOB.pre_setup_antags -= M
- main_cult.setup_objectives()
- return TRUE
-
-/datum/dynamic_ruleset/roundstart/bloodcult/round_result()
- ..()
- if(main_cult.check_cult_victory())
- SSticker.mode_result = "win - cult win"
- SSticker.news_report = CULT_SUMMON
- else
- SSticker.mode_result = "loss - staff stopped the cult"
- SSticker.news_report = CULT_FAILURE
-
//////////////////////////////////////////////
// //
// NUCLEAR OPERATIVES //
@@ -382,93 +323,3 @@
for(var/datum/mind/V in assigned)
V.assigned_role = "Clown Operative"
V.special_role = "Clown Operative"
-
-//////////////////////////////////////////////
-// //
-// DEVIL //
-// //
-//////////////////////////////////////////////
-
-/datum/dynamic_ruleset/roundstart/devil
- name = "Devil"
- antag_flag = ROLE_DEVIL
- antag_datum = /datum/antagonist/devil
- restricted_roles = list("Lawyer", "Curator", "Chaplain", "Prisoner", "Head of Security", "Captain", "AI")
- required_candidates = 1
- weight = 3
- cost = 0
- requirements = list(101,101,101,101,101,101,101,101,101,101)
- high_population_requirement = 101
- antag_cap = list(1,1,1,2,2,2,3,3,3,4)
-
-/datum/dynamic_ruleset/roundstart/devil/pre_execute()
- . = ..()
- var/num_devils = antag_cap[indice_pop]
- mode.antags_rolled += num_devils
-
- for(var/j = 0, j < num_devils, j++)
- if (!candidates.len)
- break
- var/mob/devil = pick_n_take(candidates)
- assigned += devil.mind
- devil.mind.special_role = ROLE_DEVIL
- devil.mind.restricted_roles = restricted_roles
- GLOB.pre_setup_antags += devil.mind
-
- log_game("[key_name(devil)] has been selected as a devil")
- return TRUE
-
-/datum/dynamic_ruleset/roundstart/devil/execute()
- for(var/datum/mind/devil in assigned)
- add_devil(devil.current, ascendable = TRUE)
- GLOB.pre_setup_antags -= devil
- add_devil_objectives(devil,2)
- return TRUE
-
-/datum/dynamic_ruleset/roundstart/devil/proc/add_devil_objectives(datum/mind/devil_mind, quantity)
- var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target)
- var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil)
- for(var/i = 1 to quantity)
- var/type = pick(validtypes)
- var/datum/objective/devil/objective = new type(null)
- objective.owner = devil_mind
- D.objectives += objective
- if(!istype(objective, /datum/objective/devil/buy_target))
- validtypes -= type
- else
- objective.find_target()
-
-//////////////////////////////////////////////
-// //
-// METEOR //
-// //
-//////////////////////////////////////////////
-
-/datum/dynamic_ruleset/roundstart/meteor
- name = "Meteor"
- persistent = TRUE
- required_candidates = 0
- weight = 3
- cost = 0
- requirements = list(101,101,101,101,101,101,101,101,101,101)
- high_population_requirement = 101
- var/meteordelay = 2000
- var/nometeors = 0
- var/rampupdelta = 5
-
-/datum/dynamic_ruleset/roundstart/meteor/rule_process()
- if(nometeors || meteordelay > world.time - SSticker.round_start_time)
- return
-
- var/list/wavetype = GLOB.meteors_normal
- var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60
-
- if (prob(meteorminutes))
- wavetype = GLOB.meteors_threatening
-
- if (prob(meteorminutes/2))
- wavetype = GLOB.meteors_catastrophic
-
- var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10)
-
- spawn_meteors(ramp_up_final, wavetype)
diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm
index 56f873a50bd1..7db8207c9d71 100644
--- a/code/game/gamemodes/events.dm
+++ b/code/game/gamemodes/events.dm
@@ -47,11 +47,10 @@
for(var/area/A in GLOB.sortedAreas)
if(!A.requires_power || A.always_unpowered)
continue
- if(!istype(A, /area/shuttle))
- A.power_light = TRUE
- A.power_equip = TRUE
- A.power_environ = TRUE
- A.power_change()
+ A.power_light = TRUE
+ A.power_equip = TRUE
+ A.power_environ = TRUE
+ A.power_change()
/proc/power_restore_quick()
priority_announce("All SMESs have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg')
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 391ad852664f..eca77ba4df5a 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -149,7 +149,7 @@
message_admins("Convert_roundtype failed due to no valid modes to convert to. Please report this error to the Coders.")
return null
- replacementmode = pickweight(usable_modes)
+ replacementmode = pick_weight(usable_modes)
var/matc = CONFIG_GET(number/midround_antag_time_check)
if(world.time >= (matc * 600))
@@ -272,7 +272,7 @@
reports += config.mode_reports[report_type]
Count++
for(var/i in Count to rand(3,5)) //Between three and five wrong entries on the list.
- var/false_report_type = pickweightAllowZero(report_weights)
+ var/false_report_type = pick_weight_allow_zero(report_weights)
report_weights[false_report_type] = 0 //Make it so the same false report won't be selected twice
reports += config.mode_reports[false_report_type]
@@ -418,9 +418,6 @@
return max(0, enemy_minimum_age - C.player_age)
-/datum/game_mode/proc/remove_antag_for_borging(datum/mind/newborgie)
- SSticker.mode.remove_cultist(newborgie, 0, 0)
-
/datum/game_mode/proc/generate_station_goals()
var/list/possible = list()
for(var/T in subtypesof(/datum/station_goal))
diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm
deleted file mode 100644
index 9149f5da35f6..000000000000
--- a/code/game/gamemodes/meteor/meteor.dm
+++ /dev/null
@@ -1,61 +0,0 @@
-/datum/game_mode/meteor
- name = "meteor"
- config_tag = "meteor"
- report_type = "meteor"
- false_report_weight = 1
- var/meteordelay = 2000
- var/nometeors = 0
- var/rampupdelta = 5
- required_players = 0
-
- announce_span = "danger"
- announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught."
-
- title_icon = "meteor"
-
-/datum/game_mode/meteor/process()
- if(nometeors || meteordelay > world.time - SSticker.round_start_time)
- return
-
- var/list/wavetype = GLOB.meteors_normal
- var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60
-
-
- if (prob(meteorminutes))
- wavetype = GLOB.meteors_threatening
-
- if (prob(meteorminutes/2))
- wavetype = GLOB.meteors_catastrophic
-
- var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10)
-
- spawn_meteors(ramp_up_final, wavetype)
-
-
-/datum/game_mode/meteor/special_report()
- var/survivors = 0
- var/list/survivor_list = list()
-
- for(var/mob/living/player in GLOB.player_list)
- if(player.stat != DEAD)
- ++survivors
-
- if(player.onCentCom())
- survivor_list += "[player.real_name] escaped to the safety of CentCom."
- else if(player.onSyndieBase())
- survivor_list += "[player.real_name] escaped to the (relative) safety of Syndicate Space."
- else
- survivor_list += "[player.real_name] survived but is stranded without any hope of rescue."
-
- if(survivors)
- return "
[survivor_list.Join("
")]
"
- else
- return "Nobody survived the meteor storm!
"
-
-/datum/game_mode/meteor/set_round_result()
- ..()
- SSticker.mode_result = "end - evacuation"
-
-/datum/game_mode/meteor/generate_report()
- return "[pick("Asteroids have", "Meteors have", "Large rocks have", "Stellar minerals have", "Space hail has", "Debris has")] been detected near your station, and a collision is possible, \
- though unlikely. Be prepared for largescale impacts and destruction. Please note that the debris will prevent the escape shuttle from arriving quickly."
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 743914682348..609ef32492c5 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -65,7 +65,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
max_i--
if(max_i<=0)
return
- var/Me = pickweight(meteortypes)
+ var/Me = pick_weight(meteortypes)
var/obj/effect/meteor/M = new Me(pickedstart, pickedgoal)
M.dest = pickedgoal
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 65e161f2176b..ec74c51acc95 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -58,18 +58,11 @@ GLOBAL_LIST_EMPTY(objectives)
/datum/objective/proc/considered_escaped(datum/mind/M)
if(!considered_alive(M))
return FALSE
- if(considered_exiled(M))
- return FALSE
- if(M.force_escaped)
- return TRUE
- if(SSticker.force_ending || SSticker.mode.station_was_nuked) // Just let them win.
+ if(SSticker.force_ending) // Just let them win.
return TRUE
if(SSshuttle.jump_mode != BS_JUMP_COMPLETED)
return FALSE
- var/turf/location = get_turf(M.current)
- if(!location || istype(location, /turf/open/floor/mineral/plastitanium/red/brig)) // Fails if they are in the shuttle brig
- return FALSE
- return location.onCentCom() || location.onSyndieBase()
+ return TRUE
/datum/objective/proc/check_completion()
return completed
@@ -233,7 +226,7 @@ GLOBAL_LIST_EMPTY(objectives)
..()
/datum/objective/maroon/check_completion()
- return !target || !considered_alive(target) || (!target.current.onCentCom() && !target.current.onSyndieBase())
+ return !target || !considered_alive(target)
/datum/objective/maroon/update_explanation_text()
if(target && target.current)
@@ -334,7 +327,7 @@ GLOBAL_LIST_EMPTY(objectives)
name = "detain"
/datum/objective/jailbreak/detain/check_completion()
- return completed || (!considered_escaped(target) && (considered_alive(target) && target.current.onCentCom()))
+ return completed || (!considered_escaped(target) && (considered_alive(target)))
/datum/objective/jailbreak/detain/update_explanation_text()
..()
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 6a4787607ef2..405ca316b7d5 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -155,17 +155,6 @@
return TRUE
return FALSE
-/datum/objective_item/steal/slime
- name = "an unused sample of slime extract."
- targetitem = /obj/item/slime_extract
- difficulty = 3
- excludefromjob = list("Research Director","Scientist")
-
-/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E)
- if(E.Uses > 0)
- return 1
- return 0
-
/datum/objective_item/steal/blackbox
name = "The Blackbox."
targetitem = /obj/item/blackbox
diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm
index 69679c95079f..9021d6e783d1 100644
--- a/code/game/gamemodes/sandbox/h_sandbox.dm
+++ b/code/game/gamemodes/sandbox/h_sandbox.dm
@@ -38,7 +38,6 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
"Standard Tools",
"Spawn Flashlight" = "hsbspawn&path=[/obj/item/flashlight]",
"Spawn Toolbox" = "hsbspawn&path=[/obj/item/storage/toolbox/mechanical]",
- "Spawn Experimental Welding tool" = "hsbspawn&path=[/obj/item/weldingtool/experimental]",
"Spawn Light Replacer" = "hsbspawn&path=[/obj/item/lightreplacer]",
"Spawn Medical Kit" = "hsbspawn&path=[/obj/item/storage/firstaid/regular]",
"Spawn All-Access ID" = "hsbaaid",
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index e63b3f75fb2b..452cd39b5d58 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -339,14 +339,15 @@
materials.use_materials(materials_used)
if(is_stack)
- var/obj/item/stack/N = new being_built.build_path(A, multiplier, FALSE)
- N.update_appearance()
- N.autolathe_crafted(src)
+ var/obj/item/stack/new_item = new being_built.build_path(A, multiplier, FALSE)
+ new_item.update_appearance()
+ new_item.autolathe_crafted(src)
+ SSblackbox.record_feedback("nested tally", "item_printed", 1, list("[type]", "[new_item.type]"))
else
for(var/i=1, i<=multiplier, i++)
var/obj/item/new_item = new being_built.build_path(A)
new_item.autolathe_crafted(src)
-
+ SSblackbox.record_feedback("nested tally", "item_printed", 1, list("[type]", "[new_item.type]"))
if(length(picked_materials))
new_item.set_custom_materials(picked_materials, 1 / multiplier) //Ensure we get the non multiplied amount
for(var/x in picked_materials)
@@ -446,5 +447,5 @@
//Called when the object is constructed by an autolathe
//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes
-/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A)
+/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/lathe)
return
diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm
index 83f3e366e8a3..cdcccc307a85 100644
--- a/code/game/machinery/bank_machine.dm
+++ b/code/game/machinery/bank_machine.dm
@@ -33,7 +33,7 @@
if(value)
var/datum/bank_account/ship_account = ship_account_ref.resolve()
if(ship_account)
- ship_account.adjust_money(value, "deposit")
+ ship_account.adjust_money(value, CREDIT_LOG_DEPOSIT)
to_chat(user, "You deposit [I]. The [ship_account.account_holder] Budget is now [ship_account.account_balance] cr.")
qdel(I)
return
@@ -53,7 +53,7 @@
playsound(src, 'sound/items/poster_being_created.ogg', 100, TRUE)
syphoning_credits += 200
- ship_account.adjust_money(-200)
+ ship_account.adjust_money(-200, "siphon")
if(next_warning < world.time && prob(15))
var/area/A = get_area(loc)
var/message = "Unauthorized credit withdrawal underway in [initial(A.name)]!!"
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index fda41eab7789..21eb3cc362b7 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -99,6 +99,11 @@
/obj/machinery/camera/proc/create_prox_monitor()
if(!proximity_monitor)
proximity_monitor = new(src, 1)
+ RegisterSignal(proximity_monitor, COMSIG_PARENT_QDELETING, PROC_REF(proximity_deleted))
+
+/obj/machinery/camera/proc/proximity_deleted()
+ SIGNAL_HANDLER
+ proximity_monitor = null
/obj/machinery/camera/proc/set_area_motion(area/A)
area_motion = A
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index ad4cd3834f06..ac34d49b847c 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -39,7 +39,7 @@
var/internal_radio = TRUE
var/obj/item/radio/radio
var/radio_key = /obj/item/encryptionkey/headset_com
- var/radio_channel = RADIO_CHANNEL_COMMAND
+ var/radio_channel = RADIO_CHANNEL_EMERGENCY
var/obj/effect/countdown/clonepod/countdown
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index 3a36603c5070..3def408de874 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -123,3 +123,7 @@
. = ..()
if(!user.canUseTopic(src, !issilicon(user)) || !is_operational)
return
+
+/obj/machinery/computer/examine_more(mob/user)
+ ui_interact(user)
+ return ..()
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 4d9d5078b622..2ff035e42d0d 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -1,7 +1,6 @@
GLOBAL_LIST_INIT(arcade_prize_pool, list(
/obj/item/storage/box/snappops = 2,
/obj/item/toy/talking/AI = 2,
- /obj/item/toy/talking/codex_gigas = 2,
/obj/item/clothing/under/syndicate/tacticool = 2,
/obj/item/toy/sword = 2,
/obj/item/toy/gun = 2,
@@ -76,7 +75,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
var/list/gameodds = list(/obj/item/circuitboard/computer/arcade/battle = 49,
/obj/item/circuitboard/computer/arcade/orion_trail = 49,
/obj/item/circuitboard/computer/arcade/amputation = 2)
- var/thegame = pickweight(gameodds)
+ var/thegame = pick_weight(gameodds)
var/obj/item/circuitboard/CB = new thegame()
new CB.build_path(loc, CB)
return INITIALIZE_HINT_QDEL
@@ -97,9 +96,9 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
return
var/prizeselect
if(prize_override)
- prizeselect = pickweight(prize_override)
+ prizeselect = pick_weight(prize_override)
else
- prizeselect = pickweight(GLOB.arcade_prize_pool)
+ prizeselect = pick_weight(GLOB.arcade_prize_pool)
var/atom/movable/the_prize = new prizeselect(get_turf(src))
playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
visible_message("[src] dispenses [the_prize]!", "You hear a chime and a clunk.")
@@ -122,9 +121,9 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
num_of_prizes = rand(0,2)
for(var/i = num_of_prizes; i > 0; i--)
if(override)
- empprize = pickweight(prize_override)
+ empprize = pick_weight(prize_override)
else
- empprize = pickweight(GLOB.arcade_prize_pool)
+ empprize = pick_weight(GLOB.arcade_prize_pool)
new empprize(loc)
explosion(loc, -1, 0, 1+num_of_prizes, flame_range = 1+num_of_prizes)
@@ -364,13 +363,13 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
return
/obj/machinery/computer/arcade/battle/examine_more(mob/user)
- var/list/msg = list("You notice some writing scribbled on the side of [src]...")
- msg += "\tsmart -> defend, defend, light attack"
- msg += "\tshotgun -> defend, defend, power attack"
- msg += "\tshort temper -> counter, counter, counter"
- msg += "\tpoisonous -> light attack, light attack, light attack"
- msg += "\tchonker -> power attack, power attack, power attack"
- return msg
+ . = ..()
+ . += "You notice some writing scribbled on the side of [src]..."
+ . += "\tsmart -> defend, defend, light attack"
+ . += "\tshotgun -> defend, defend, power attack"
+ . += "\tshort temper -> counter, counter, counter"
+ . += "\tpoisonous -> light attack, light attack, light attack"
+ . += "\tchonker -> power attack, power attack, power attack"
/obj/machinery/computer/arcade/battle/emag_act(mob/user)
if(obj_flags & EMAGGED)
@@ -532,11 +531,11 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
if(gamers[gamer] > 2 && prob(20 * gamers[gamer]))
- Radio.set_frequency(FREQ_COMMAND)
- Radio.talk_into(src, "SECURITY ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please watch for violent behavior.", FREQ_COMMAND)
+ Radio.set_frequency(FREQ_EMERGENCY)
+ Radio.talk_into(src, "SECURITY ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please watch for violent behavior.", FREQ_EMERGENCY)
- Radio.set_frequency(FREQ_COMMAND)
- Radio.talk_into(src, "PSYCH ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please schedule psych evaluation.", FREQ_COMMAND)
+ Radio.set_frequency(FREQ_EMERGENCY)
+ Radio.talk_into(src, "PSYCH ALERT: Crewmember [gamer] recorded displaying antisocial tendencies in [get_area(src)]. Please schedule psych evaluation.", FREQ_EMERGENCY)
gamers[gamer] = -1
@@ -639,7 +638,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
event = ORION_TRAIL_COLLISION
event()
else if(prob(75-gamerSkill))
- event = pickweight(events)
+ event = pick_weight(events)
if(lings_aboard)
if(event == ORION_TRAIL_LING || prob(55-gamerSkill))
event = ORION_TRAIL_LING_ATTACK
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index c1a1171e57cc..d8c3f460911b 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -44,6 +44,10 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
ui = new(user, src, "CrewConsole")
ui.open()
+/obj/machinery/computer/crew/examine_more(mob/user)
+ interact(user) //crew monitors use the interact method instead of ui_interact, for some reason. Not very consistent.
+ return ..()
+
/datum/crewmonitor/ui_close(mob/user)
ui_sources -= user
return ..()
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 17c5dc2ef39c..9bd38b62c9fa 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -168,7 +168,6 @@
else
dat += "
[bdat]"
- else
else
dat += "{Log In}"
var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400)
@@ -375,7 +374,6 @@
if(istype(active1.fields["photo_side"], /obj/item/photo))
var/obj/item/photo/P = active1.fields["photo_side"]
P.show(usr)
- else
else if(href_list["p_stat"])
if(active1)
@@ -488,16 +486,12 @@
for(var/datum/data/record/R in GLOB.data_core.medical)
if((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"])))
active2 = R
- else
- //Foreach continue //goto(3229)
if(!(active2))
temp = text("Could not locate record [].", sanitize(t1))
else
for(var/datum/data/record/E in GLOB.data_core.general)
if((E.fields["name"] == active2.fields["name"] || E.fields["id"] == active2.fields["id"]))
active1 = E
- else
- //Foreach continue //goto(3334)
screen = 4
else if(href_list["print_p"])
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 37759d04b13e..cdfad1556187 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -228,7 +228,6 @@
dat += "New Security Record
"
dat += "Delete Record (ALL)
Print Record
Print Wanted Poster
Print Missing Persons Poster
Back
"
dat += "{Log Out}"
- else
else
dat += "{Log In}"
var/datum/browser/popup = new(user, "secure_rec", "Security Records Console", 600, 400)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 3412321b380b..594aeedbe43d 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -167,16 +167,7 @@
if(abandoned)
var/outcome = rand(1,100)
switch(outcome)
- if(1 to 9)
- var/turf/here = get_turf(src)
- for(var/turf/closed/T in range(2, src))
- here.PlaceOnTop(T.type)
- qdel(src)
- return
- here.PlaceOnTop(/turf/closed/wall)
- qdel(src)
- return
- if(9 to 11)
+ if(1 to 11)
lights = FALSE
locked = TRUE
if(12 to 15)
@@ -185,6 +176,19 @@
welded = TRUE
if(24 to 30)
panel_open = TRUE
+ if(31 to 40)
+ panel_open = TRUE
+ set_electrified(MACHINE_ELECTRIFIED_PERMANENT)
+ if(41 to 50)
+ seal = new /obj/item/door_seal(src)
+ modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER)
+ if(51 to 60)
+ new previous_airlock(loc)
+ qdel(src)
+ if(69)
+ new /obj/effect/decal/cleanable/oil/slippery(loc)
+
+
update_appearance()
/obj/machinery/door/airlock/ComponentInitialize()
@@ -370,26 +374,6 @@
audible_message("You hear a click from the bottom of the door.", null, 1)
update_appearance()
-/obj/machinery/door/airlock/narsie_act()
- var/turf/T = get_turf(src)
- var/obj/machinery/door/airlock/cult/A
- if(GLOB.cult_narsie)
- var/runed = prob(20)
- if(glass)
- if(runed)
- A = new/obj/machinery/door/airlock/cult/glass(T)
- else
- A = new/obj/machinery/door/airlock/cult/unruned/glass(T)
- else
- if(runed)
- A = new/obj/machinery/door/airlock/cult(T)
- else
- A = new/obj/machinery/door/airlock/cult/unruned(T)
- A.name = name
- else
- A = new /obj/machinery/door/airlock/cult/weak(T)
- qdel(src)
-
/obj/machinery/door/airlock/Destroy()
QDEL_NULL(wires)
QDEL_NULL(electronics)
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index 492ce30f6ac4..f6e6840f552b 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -461,115 +461,6 @@
security_level = 1
has_hatch = FALSE
-//////////////////////////////////
-/*
- Cult Airlocks
-*/
-
-/obj/machinery/door/airlock/cult
- name = "cult airlock"
- icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi'
- overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi'
- assemblytype = /obj/structure/door_assembly/door_assembly_cult
- hackProof = TRUE
- aiControlDisabled = AI_WIRE_DISABLED
- req_access = list(ACCESS_BLOODCULT)
- damage_deflection = 10
- has_hatch = FALSE
- var/openingoverlaytype = /obj/effect/temp_visual/cult/door
- var/friendly = FALSE
- var/stealthy = FALSE
-
-/obj/machinery/door/airlock/cult/Initialize()
- . = ..()
- new openingoverlaytype(loc)
-
-/obj/machinery/door/airlock/cult/canAIControl(mob/user)
- return (iscultist(user) && !isAllPowerCut())
-
-/obj/machinery/door/airlock/cult/on_break()
- if(!panel_open)
- panel_open = TRUE
-
-/obj/machinery/door/airlock/cult/isElectrified()
- return FALSE
-
-/obj/machinery/door/airlock/cult/hasPower()
- return TRUE
-
-/obj/machinery/door/airlock/cult/allowed(mob/living/L)
- if(!density)
- return 1
- if(friendly || iscultist(L) || istype(L, /mob/living/simple_animal/shade) || isconstruct(L))
- if(!stealthy)
- new openingoverlaytype(loc)
- return 1
- else
- if(!stealthy)
- new /obj/effect/temp_visual/cult/sac(loc)
- var/atom/throwtarget
- throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src)))
- SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50))
- flash_color(L, flash_color="#960000", flash_time=20)
- L.Paralyze(40)
- L.throw_at(throwtarget, 5, 1)
- return 0
-
-/obj/machinery/door/airlock/cult/proc/conceal()
- icon = 'icons/obj/doors/airlocks/station/maintenance.dmi'
- overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi'
- name = "airlock"
- desc = "It opens and closes."
- stealthy = TRUE
- update_appearance()
-
-/obj/machinery/door/airlock/cult/proc/reveal()
- icon = initial(icon)
- overlays_file = initial(overlays_file)
- name = initial(name)
- desc = initial(desc)
- stealthy = initial(stealthy)
- update_appearance()
-
-/obj/machinery/door/airlock/cult/narsie_act()
- return
-
-/obj/machinery/door/airlock/cult/emp_act(severity)
- return
-
-/obj/machinery/door/airlock/cult/friendly
- friendly = TRUE
-
-/obj/machinery/door/airlock/cult/glass
- glass = TRUE
- opacity = FALSE
-
-/obj/machinery/door/airlock/cult/glass/friendly
- friendly = TRUE
-
-/obj/machinery/door/airlock/cult/unruned
- icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi'
- overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi'
- assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned
- openingoverlaytype = /obj/effect/temp_visual/cult/door/unruned
-
-/obj/machinery/door/airlock/cult/unruned/friendly
- friendly = TRUE
-
-/obj/machinery/door/airlock/cult/unruned/glass
- glass = TRUE
- opacity = FALSE
-
-/obj/machinery/door/airlock/cult/unruned/glass/friendly
- friendly = TRUE
-
-/obj/machinery/door/airlock/cult/weak
- name = "brittle cult airlock"
- desc = "An airlock hastily corrupted by blood magic, it is unusually brittle in this state."
- normal_integrity = 150
- damage_deflection = 5
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
-
//////////////////////////////////
/*
Misc Airlocks
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 213b15c00ced..3a71835c172b 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -115,8 +115,8 @@
return 0
if(!forced)
- Radio.set_frequency(FREQ_COMMAND)
- Radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_COMMAND)
+ Radio.set_frequency(FREQ_EMERGENCY)
+ Radio.talk_into(src, "Timer has expired. Releasing prisoner.", FREQ_EMERGENCY)
timing = FALSE
activation_time = null
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 737bacbb650f..7c8371809e81 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -395,7 +395,7 @@
L.manual_emote("roar")
else if(ishuman(L)) //For humans
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
- L.manual_emote("scream")
+ L.force_manual_scream()
L.Paralyze(100)
else if(ismonkey(L)) //For monkeys
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index 7e3febcc482c..2b63f574e820 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -22,6 +22,8 @@
/obj/machinery/door/poddoor/attackby(obj/item/W, mob/user, params)
. = ..()
+ if(resistance_flags & INDESTRUCTIBLE)
+ return FALSE
if((resistance_flags & INDESTRUCTIBLE) && W.tool_behaviour == TOOL_SCREWDRIVER) // This makes it so ERT members cannot cheese by opening their blast doors.
to_chat(user, span_warning("You can't find the panel!"))
return
@@ -56,6 +58,15 @@
else if(W.use_tool(src, user, 10 SECONDS, volume=50))
deconstruct(TRUE)
+ if(W.tool_behaviour == TOOL_DECONSTRUCT)
+ if(!(machine_stat & NOPOWER))
+ do_sparks(5, TRUE, src)
+ electrocute_mob(user, get_area(src), src, 1, TRUE) //zorp
+ close()
+ to_chat(user, span_notice("You start to cut [src] apart"))
+ if (W.use_tool(src, user, 10 SECONDS, volume = 75))
+ deconstruct(TRUE)
+
/obj/machinery/door/poddoor/examine(mob/user)
. = ..()
. += span_notice("The maintenance panel is [panel_open ? "opened" : "closed"].")
diff --git a/code/game/machinery/drone_dispenser.dm b/code/game/machinery/drone_dispenser.dm
index 4603044ab285..bb79d5f7e46e 100644
--- a/code/game/machinery/drone_dispenser.dm
+++ b/code/game/machinery/drone_dispenser.dm
@@ -108,28 +108,6 @@
recharge_sound = null
recharge_message = null
-/obj/machinery/droneDispenser/swarmer
- name = "swarmer fabricator"
- desc = "An alien machine of unknown origin. It whirs and hums with green-blue light, the air above it shimmering."
- icon = 'icons/obj/objects.dmi'
- icon_state = "hivebot_fab"
- icon_off = "hivebot_fab"
- icon_on = "hivebot_fab"
- icon_recharging = "hivebot_fab"
- icon_creating = "hivebot_fab_on"
- metal_cost = 0
- glass_cost = 0
- cooldownTime = 300 //30 seconds
- maximum_idle = 0 // Swarmers have no restraint
- dispense_type = /obj/effect/mob_spawn/swarmer
- begin_create_message = "hums softly as an interface appears above it, scrolling by at unreadable speed."
- end_create_message = "materializes a strange shell, which drops to the ground."
- recharging_text = "Its lights are slowly increasing in brightness."
- work_sound = 'sound/effects/empulse.ogg'
- create_sound = 'sound/effects/phasein.ogg'
- break_sound = 'sound/effects/empulse.ogg'
- break_message = "slowly falls dark, lights stuttering."
-
/obj/machinery/droneDispenser/examine(mob/user)
. = ..()
if((mode == DRONE_RECHARGING) && !machine_stat && recharging_text)
diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm
index 1b0093458e49..22ff32ac3655 100644
--- a/code/game/machinery/harvester.dm
+++ b/code/game/machinery/harvester.dm
@@ -121,7 +121,7 @@
target = get_turf(src)
for(var/obj/item/bodypart/BP in operation_order) //first we do non-essential limbs
BP.drop_limb()
- C.emote("scream")
+ C.force_scream()
if(BP.body_zone != "chest")
BP.forceMove(target) //Move the limbs right next to it, except chest, that's a weird one
BP.drop_organs()
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 0e6bc6ed6a6d..f5d4959083dc 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -237,7 +237,7 @@ Possible to do for anyone motivated enough:
for(var/I in holo_calls)
var/datum/holocall/HC = I
var/list/call_data = list(
- caller = HC.user,
+ caller = HC.caller_location,
connected = HC.connected_holopad == src ? TRUE : FALSE,
ref = REF(HC)
)
@@ -378,7 +378,7 @@ Possible to do for anyone motivated enough:
for(var/I in holo_calls)
var/datum/holocall/HC = I
if(HC.connected_holopad != src)
- caller_history = get_area_name(HC.calling_holopad)
+ caller_history = HC.caller_location
if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2)))
HC.Answer(src)
break
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index b54c192f4407..abee7fe954f7 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -46,11 +46,15 @@
return ..()
/obj/machinery/navbeacon/on_virtual_z_change(new_virtual_z, previous_virtual_z)
+ ..()
+ if(!codes)
+ return
+ if(!codes["patrol"])
+ return
if(previous_virtual_z)
LAZYREMOVEASSOC(GLOB.navbeacons, "[previous_virtual_z]", src)
if(new_virtual_z)
LAZYADDASSOCLIST(GLOB.navbeacons, "[new_virtual_z]", src)
- ..()
// set the transponder codes assoc list from codes_txt
/obj/machinery/navbeacon/proc/set_codes()
@@ -71,7 +75,10 @@
codes[e] = "1"
/obj/machinery/navbeacon/proc/glob_lists_deregister()
- LAZYREMOVE(GLOB.navbeacons["[virtual_z()]"], src)
+ if(!codes)
+ return
+ if(codes["patrol"])
+ LAZYREMOVE(GLOB.navbeacons["[virtual_z()]"], src)
GLOB.deliverybeacons -= src
GLOB.deliverybeacontags -= location
GLOB.wayfindingbeacons -= src
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index ef1f083dc79c..be4494ce26fb 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -815,12 +815,17 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster/security_unit, 30)
if(istype(human_user.wear_id, /obj/item/pda))
var/obj/item/pda/P = human_user.wear_id
if(P.id)
- scanned_user = "[P.id.registered_name] ([P.id.assignment])"
+ scanned_user = "[P.id.registered_name])"
else
scanned_user = "Unknown"
else if(istype(human_user.wear_id, /obj/item/card/id))
var/obj/item/card/id/ID = human_user.wear_id
- scanned_user ="[ID.registered_name] ([ID.assignment])"
+ scanned_user ="[ID.registered_name])"
+ else if(istype(human_user.wear_id, /obj/item/storage/wallet))
+ var/obj/item/storage/wallet/our_wallet = human_user.wear_id
+ if(our_wallet.front_id)
+ var/obj/item/card/id/ID = our_wallet.GetID()
+ scanned_user = "[ID.registered_name]"
else
scanned_user ="Unknown"
else
diff --git a/code/game/machinery/outpost_electrolyzer.dm b/code/game/machinery/outpost_electrolyzer.dm
index b91160c7e1c8..78711accb242 100644
--- a/code/game/machinery/outpost_electrolyzer.dm
+++ b/code/game/machinery/outpost_electrolyzer.dm
@@ -136,7 +136,7 @@
playsound(src, 'sound/effects/splat.ogg', 50, TRUE)
if(iscarbon(L) && L.stat == CONSCIOUS)
- L.emote("scream")
+ L.force_scream()
// Instantly lie down, also go unconscious from the pain, before you die.
L.Unconscious(100)
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 5c592c7409dd..dc0c2d47f963 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -1,187 +1,138 @@
-#define TURRET_STUN 0
-#define TURRET_LETHAL 1
-
-#define POPUP_ANIM_TIME 5
-#define POPDOWN_ANIM_TIME 5 //Be sure to change the icon animation at the same time or it'll look bad
-
-#define TURRET_FLAG_SHOOT_ALL_REACT (1<<0) // The turret gets pissed off and shoots at people nearby (unless they have sec access!)
-#define TURRET_FLAG_AUTH_WEAPONS (1<<1) // Checks if it can shoot people that have a weapon they aren't authorized to have
-#define TURRET_FLAG_SHOOT_CRIMINALS (1<<2) // Checks if it can shoot people that are wanted
-#define TURRET_FLAG_SHOOT_ALL (1<<3) // The turret gets pissed off and shoots at people nearby (unless they have sec access!)
-#define TURRET_FLAG_SHOOT_ANOMALOUS (1<<4) // Checks if it can shoot at unidentified lifeforms (ie xenos)
-#define TURRET_FLAG_SHOOT_UNSHIELDED (1<<5) // Checks if it can shoot people that aren't mindshielded and who arent heads
-#define TURRET_FLAG_SHOOT_BORGS (1<<6) // checks if it can shoot cyborgs
-#define TURRET_FLAG_SHOOT_HEADS (1<<7) // checks if it can shoot at heads of staff
-
-DEFINE_BITFIELD(turret_flags, list(
- "TURRET_FLAG_SHOOT_ALL_REACT" = TURRET_FLAG_SHOOT_ALL_REACT,
- "TURRET_FLAG_AUTH_WEAPONS" = TURRET_FLAG_AUTH_WEAPONS,
- "TURRET_FLAG_SHOOT_CRIMINALS" = TURRET_FLAG_SHOOT_CRIMINALS,
- "TURRET_FLAG_SHOOT_ALL" = TURRET_FLAG_SHOOT_ALL,
- "TURRET_FLAG_SHOOT_ANOMALOUS" = TURRET_FLAG_SHOOT_ANOMALOUS,
- "TURRET_FLAG_SHOOT_UNSHIELDED" = TURRET_FLAG_SHOOT_UNSHIELDED,
- "TURRET_FLAG_SHOOT_BORGS" = TURRET_FLAG_SHOOT_BORGS,
- "TURRET_FLAG_SHOOT_HEADS" = TURRET_FLAG_SHOOT_HEADS,
-))
-
/obj/machinery/porta_turret
name = "turret"
icon = 'icons/obj/turrets.dmi'
- icon_state = "turretCover"
- layer = OBJ_LAYER
- invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover
+ icon_state = "standard_stun"
density = TRUE
- desc = "A covered turret that shoots at its enemies."
- use_power = IDLE_POWER_USE //this turret uses and requires power
- idle_power_usage = IDLE_DRAW_MINIMAL //when inactive, this turret takes up constant 50 Equipment power
- active_power_usage = ACTIVE_DRAW_LOW //when active, this turret takes up constant 300 Equipment power
- req_access = list(ACCESS_SECURITY) /// Only people with Security access
- power_channel = AREA_USAGE_EQUIP //drains power from the EQUIPMENT channel
- max_integrity = 160 //the turret's health
+ desc = "A turret that shoots at its enemies."
+ use_power = IDLE_POWER_USE
+ idle_power_usage = IDLE_DRAW_LOW
+ active_power_usage = ACTIVE_DRAW_HIGH
+ req_access = list(ACCESS_SECURITY)
+ power_channel = AREA_USAGE_EQUIP
+ max_integrity = 200
integrity_failure = 0.5
armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
base_icon_state = "standard"
+ subsystem_type = /datum/controller/subsystem/processing/turrets
+ circuit = /obj/item/circuitboard/machine/turret
+
/// Scan range of the turret for locating targets
var/scan_range = 7
- /// For turrets inside other objects
- var/atom/base = null
- /// If the turret cover is "open" and the turret is raised
- var/raised = FALSE
- /// If the turret is currently opening or closing its cover
- var/raising = FALSE
+ /// List of ALL targets in range, even if they are not visible
+ var/list/mob/living/targets = list()
+ /// The current target of the turret, if any
+ var/mob/living/current_target
+
+ /// The beam showing which target we're acquiring
+ var/datum/simple_beam/target_beam
+
/// If the turret's behaviour control access is locked
var/locked = TRUE
- /// If the turret responds to control panels
- var/controllock = FALSE
- /// The type of weapon installed by default
- var/installation = /obj/item/gun/energy/e_gun/turret
- /// What stored gun is in the turret
- var/obj/item/gun/stored_gun = null
- /// The charge of the gun when retrieved from wreckage
- var/gun_charge = 0
+
/// In which mode is turret in, stun or lethal
- var/mode = TURRET_STUN
+ var/lethal = FALSE
+
/// Stun mode projectile type
- var/stun_projectile = null
+ var/stun_projectile = /obj/projectile/beam/disabler
/// Sound of stun projectile
- var/stun_projectile_sound
+ var/stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
/// Lethal mode projectile type
- var/lethal_projectile = null
+ var/lethal_projectile = /obj/projectile/beam/laser
/// Sound of lethal projectile
- var/lethal_projectile_sound
+ var/lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
+
/// Power needed per shot
var/reqpower = 500
- /// Will stay active
- var/always_up = FALSE
- /// Hides the cover
- var/has_cover = TRUE
- /// The cover that is covering this turret
- var/obj/machinery/porta_turret_cover/cover = null
- /// Ticks until next shot (1.5 ?)
- var/shot_delay = 15
- /// Turret flags about who is turret allowed to shoot
- var/turret_flags = TURRET_FLAG_SHOOT_CRIMINALS | TURRET_FLAG_SHOOT_ANOMALOUS
+
+ /// If the turret is currently manually controlled
+ var/manual_control = FALSE
+
+ /// Ticks until next shot If this needs to go below 5, use SSFastProcess
+ var/shot_delay = 1.5 SECONDS
+ /// Cooldown until we can shoot again
+ COOLDOWN_DECLARE(fire_cooldown)
+
+ /// Reaction time of the turret, how long it takes after acquiring a target to begin firing
+ var/reaction_time
+ /// Cooldown until we can start firing
+ COOLDOWN_DECLARE(reaction_cooldown)
+
/// Determines if the turret is on
var/on = TRUE
+ /// Turret flags about who is turret allowed to shoot
+ var/turret_flags = TURRET_FLAG_DEFAULT
+
+ /// If the turret is currently retaliating. Turrets will ignore all other settings to shoot at the attacker until they're dead or out of range
+ var/retaliating = FALSE
+
/// Same faction mobs will never be shot at, no matter the other settings
- var/list/faction = list("turret")
+ var/list/faction = list("neutral", "turret")
+
+ var/list/target_faction = list("hostile")
+
/// The spark system, used for generating... sparks?
var/datum/effect_system/spark_spread/spark_system
- /// Linked turret control panel of the turret
- var/obj/machinery/turretid/cp = null
+
/// The turret will try to shoot from a turf in that direction when in a wall
var/wall_turret_direction
- /// If the turret is manually controlled
- var/manual_control = FALSE
- /// Action button holder for quitting manual control
- var/datum/action/turret_quit/quit_action
- /// Action button holder for switching between turret modes when manually controlling
- var/datum/action/turret_toggle/toggle_action
- /// Mob that is remotely controlling the turret
- var/mob/remote_controller
- //our cooldowns
- COOLDOWN_DECLARE(fire_cooldown)
+
/// For connecting to additional turrets
var/id = ""
+ var/static/list/loc_connections = list(
+ COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
+ COMSIG_ATOM_EXITED = PROC_REF(on_uncrossed),
+ )
/obj/machinery/porta_turret/Initialize()
. = ..()
- if(!base)
- base = src
+ if(!reaction_time)
+ reaction_time = shot_delay
+
+ target_beam = new(src, null, 'icons/effects/beam.dmi', "1-full", COLOR_RED, 127)
update_appearance()
//Sets up a spark system
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
- setup()
- if(has_cover)
- cover = new /obj/machinery/porta_turret_cover(loc)
- cover.parent_turret = src
- var/mutable_appearance/base = mutable_appearance('icons/obj/turrets.dmi', "basedark")
- base.layer = NOT_HIGH_OBJ_LAYER
- underlays += base
- if(!has_cover)
- INVOKE_ASYNC(src, PROC_REF(popUp))
+/obj/machinery/porta_turret/Destroy()
+ targets.Cut()
+ targets = null
-/obj/machinery/porta_turret/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
- id = "[REF(port)][id]"
- port.turret_list |= WEAKREF(src)
+ set_target(null)
-/obj/machinery/porta_turret/disconnect_from_shuttle(obj/docking_port/mobile/port)
- port.turret_list -= WEAKREF(src)
+ QDEL_NULL(spark_system)
+ QDEL_NULL(target_beam)
+ remove_control()
+ return ..()
-/obj/machinery/porta_turret/proc/toggle_on(set_to)
- var/current = on
- if (!isnull(set_to))
- on = set_to
- else
- on = !on
- if (current != on)
- check_should_process()
- if (!on)
- popDown()
+/obj/machinery/porta_turret/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/connect_range, src, loc_connections, scan_range, TRUE)
-/obj/machinery/porta_turret/proc/check_should_process()
- if (datum_flags & DF_ISPROCESSING)
- if (!on || !anchored || (machine_stat & BROKEN) || !powered())
- end_processing()
- else
- if (on && anchored && !(machine_stat & BROKEN) && powered())
- begin_processing()
+/obj/machinery/porta_turret/proc/on_entered(atom/old_loc, atom/movable/new_target)
+ var/static/list/typecache_of_targets = typecacheof(list(
+ /mob/living/carbon,
+ /mob/living/silicon,
+ /mob/living/simple_animal,
+ /obj/mecha,
+ ))
-/obj/machinery/porta_turret/update_icon_state()
- if(!anchored)
- icon_state = "turretCover"
- return ..()
- if(machine_stat & BROKEN)
- icon_state = "[base_icon_state]_broken"
- return ..()
- if(!powered())
- icon_state = "[base_icon_state]_unpowered"
- return ..()
- if(!on || !raised)
- icon_state = "[base_icon_state]_off"
- return ..()
- switch(mode)
- if(TURRET_STUN)
- icon_state = "[base_icon_state]_stun"
- if(TURRET_LETHAL)
- icon_state = "[base_icon_state]_lethal"
- return ..()
+ if(is_type_in_typecache(new_target, typecache_of_targets))
+ targets |= new_target
-/obj/machinery/porta_turret/proc/setup(obj/item/gun/turret_gun)
- if(stored_gun)
- qdel(stored_gun)
- stored_gun = null
+/obj/machinery/porta_turret/proc/on_uncrossed(atom/old_loc, atom/movable/target)
+ //Should also get any deleted targets, since they're moved to nullspace
+ targets -= target
- if(installation && !turret_gun)
- stored_gun = new installation(src)
- else if (turret_gun)
- stored_gun = turret_gun
+/obj/machinery/porta_turret/RefreshParts()
+ var/obj/item/gun/turret_gun = locate() in component_parts
+
+ if(!turret_gun)
+ return
- var/list/gun_properties = stored_gun.get_turret_properties()
+ var/list/gun_properties = turret_gun.get_turret_properties()
//required properties
stun_projectile = gun_properties["stun_projectile"]
@@ -196,191 +147,249 @@ DEFINE_BITFIELD(turret_flags, list(
if(gun_properties["reqpower"])
reqpower = gun_properties["reqpower"]
- update_appearance()
+ update_appearance(UPDATE_ICON_STATE)
return gun_properties
-/obj/machinery/porta_turret/Destroy()
- //deletes its own cover with it
- QDEL_NULL(cover)
- base = null
- if(cp)
- cp.turrets -= src
- cp = null
- QDEL_NULL(stored_gun)
- QDEL_NULL(spark_system)
- remove_control()
+/obj/machinery/porta_turret/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
+ id = "[text_ref(port)][initial(id)]"
+ port.turret_list |= WEAKREF(src)
+
+/obj/machinery/porta_turret/proc/toggle_on(set_to)
+ var/current = on
+ if (!isnull(set_to))
+ on = set_to
+ else
+ on = !on
+ if (current != on)
+ check_should_process()
+
+/obj/machinery/porta_turret/proc/check_should_process()
+ var/functional = (on && anchored && !(machine_stat & BROKEN) && powered())
+ var/processing = (datum_flags & DF_ISPROCESSING)
+
+ if(processing && !functional)
+ end_processing()
+
+ var/datum/component/connect_range/prox = GetComponent(/datum/component/connect_range)
+ prox?.set_tracked(null)
+ set_target(null)
+
+ else if(!processing && functional)
+ begin_processing()
+
+ var/datum/component/connect_range/prox = GetComponent(/datum/component/connect_range)
+ prox?.set_tracked(src)
+
+/obj/machinery/porta_turret/update_icon_state()
+ if(machine_stat & BROKEN)
+ icon_state = "[base_icon_state]_broken"
+ return ..()
+ if(!powered())
+ icon_state = "[base_icon_state]_unpowered"
+ return ..()
+ if(!on)
+ icon_state = "[base_icon_state]_off"
+ return ..()
+ if(lethal)
+ icon_state = "[base_icon_state]_lethal"
+ else
+ icon_state = "[base_icon_state]_stun"
return ..()
/obj/machinery/porta_turret/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
- ui = new(user, src, "PortableTurret", name)
+ ui = new(user, src, "TurretControl", name)
ui.open()
/obj/machinery/porta_turret/ui_data(mob/user)
- var/list/data = list(
+ var/allow_manual_control = FALSE
+ if(issilicon(user))
+ var/mob/living/silicon/silicon_user = user
+ allow_manual_control = silicon_user.hack_software
+
+ return list(
"locked" = locked,
- "on" = on,
- "check_weapons" = turret_flags & TURRET_FLAG_AUTH_WEAPONS,
- "neutralize_criminals" = turret_flags & TURRET_FLAG_SHOOT_CRIMINALS,
- "neutralize_all" = turret_flags & TURRET_FLAG_SHOOT_ALL,
- "neutralize_unidentified" = turret_flags & TURRET_FLAG_SHOOT_ANOMALOUS,
- "neutralize_nonmindshielded" = turret_flags & TURRET_FLAG_SHOOT_UNSHIELDED,
- "neutralize_cyborgs" = turret_flags & TURRET_FLAG_SHOOT_BORGS,
- "ignore_heads" = turret_flags & TURRET_FLAG_SHOOT_HEADS,
+ "enabled" = on,
+ "lethal" = lethal,
+ "siliconUser" = user.has_unlimited_silicon_privilege && check_ship_ai_access(user),
"manual_control" = manual_control,
- "silicon_user" = FALSE,
- "allow_manual_control" = FALSE,
+ "dangerous_only" = turret_flags & TURRET_FLAG_SHOOT_DANGEROUS_ONLY,
+ "retaliate" = turret_flags & TURRET_FLAG_SHOOT_RETALIATE,
+ "shoot_fauna" = turret_flags & TURRET_FLAG_SHOOT_FAUNA,
+ "shoot_humans" = turret_flags & TURRET_FLAG_SHOOT_HUMANS,
+ "shoot_silicons" = turret_flags & TURRET_FLAG_SHOOT_SILICONS,
+ "only_nonfaction" = turret_flags & TURRET_FLAG_SHOOT_NONFACTION,
+ "only_specificfaction" = turret_flags & TURRET_FLAG_SHOOT_SPECIFIC_FACTION,
+ "allow_manual_control" = allow_manual_control,
)
- if(issilicon(user))
- data["silicon_user"] = TRUE
- if(!manual_control)
- var/mob/living/silicon/S = user
- if(S.hack_software)
- data["allow_manual_control"] = TRUE
- return data
/obj/machinery/porta_turret/ui_act(action, list/params)
. = ..()
if(.)
return
+ if(locked)
+ to_chat(usr, span_warning("[src]'s controls are locked."))
+ return
+
switch(action)
+ if("lock")
+ if(!usr.has_unlimited_silicon_privilege)
+ return
+ toggle_lock(usr)
+ return TRUE
if("power")
if(anchored)
toggle_on()
return TRUE
else
to_chat(usr, "It has to be secured first!")
- if("authweapon")
- turret_flags ^= TURRET_FLAG_AUTH_WEAPONS
- return TRUE
- if("shootcriminals")
- turret_flags ^= TURRET_FLAG_SHOOT_CRIMINALS
+ if("manual")
+ if(!issilicon(usr))
+ return
+ var/mob/living/silicon/user = usr
+ if(!user.hack_software)
+ return
+ give_control(usr)
return TRUE
- if("shootall")
- turret_flags ^= TURRET_FLAG_SHOOT_ALL
+ if("mode")
+ lethal = !lethal
return TRUE
- if("checkxenos")
- turret_flags ^= TURRET_FLAG_SHOOT_ANOMALOUS
+
+ if("toggle_dangerous")
+ turret_flags ^= TURRET_FLAG_SHOOT_DANGEROUS_ONLY
return TRUE
- if("checkloyal")
- turret_flags ^= TURRET_FLAG_SHOOT_UNSHIELDED
+ if("toggle_retaliate")
+ turret_flags ^= TURRET_FLAG_SHOOT_RETALIATE
return TRUE
- if("shootborgs")
- turret_flags ^= TURRET_FLAG_SHOOT_BORGS
+
+ if("toggle_fauna")
+ turret_flags ^= TURRET_FLAG_SHOOT_FAUNA
return TRUE
- if("shootheads")
- turret_flags ^= TURRET_FLAG_SHOOT_HEADS
+ if("toggle_humans")
+ turret_flags ^= TURRET_FLAG_SHOOT_HUMANS
return TRUE
- if("manual")
- if(!issilicon(usr))
- return
- give_control(usr)
+ if("toggle_silicons")
+ turret_flags ^= TURRET_FLAG_SHOOT_SILICONS
return TRUE
-/obj/machinery/porta_turret/ui_host(mob/user)
- if(has_cover && cover)
- return cover
- if(base)
- return base
- return src
+ if("toggle_nonfaction")
+ turret_flags ^= TURRET_FLAG_SHOOT_NONFACTION
+ return TRUE
+ if("toggle_specificfaction")
+ turret_flags ^= TURRET_FLAG_SHOOT_SPECIFIC_FACTION
+ return TRUE
/obj/machinery/porta_turret/power_change()
. = ..()
+ if(!(flags_1 & INITIALIZED_1))
+ return
if(!anchored || (machine_stat & BROKEN) || !powered())
- update_appearance()
+ update_appearance(UPDATE_ICON_STATE)
remove_control()
+ set_target(null)
check_should_process()
/obj/machinery/porta_turret/attackby(obj/item/I, mob/user, params)
- if(machine_stat & BROKEN)
- if(I.tool_behaviour == TOOL_CROWBAR)
- //If the turret is destroyed, you can remove it with a crowbar to
- //try and salvage its components
- to_chat(user, "You begin prying the metal coverings off...")
- if(I.use_tool(src, user, 20))
- if(prob(70))
- if(stored_gun)
- stored_gun.forceMove(loc)
- stored_gun = null
- to_chat(user, "You remove the turret and salvage some components.")
- if(prob(50))
- new /obj/item/stack/sheet/metal(loc, rand(1,4))
- if(prob(50))
- new /obj/item/assembly/prox_sensor(loc)
- else
- to_chat(user, "You remove the turret but did not manage to salvage anything.")
- qdel(src)
- if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP)
- if(obj_integrity < max_integrity)
- if(!I.tool_start_check(user, amount=0))
- return
+ if(machine_stat & BROKEN && I.tool_behaviour == TOOL_CROWBAR)
+ //If the turret is destroyed, you can remove it with a crowbar to
+ //try and salvage its components
+ to_chat(user, "You begin prying the metal coverings off...")
+ if(I.use_tool(src, user, 20))
+ if(prob(70))
+ var/obj/item/gun/stored_gun = locate() in component_parts
+ if(stored_gun)
+ stored_gun.forceMove(loc)
+ to_chat(user, "You remove the turret and salvage some components.")
+ if(prob(50))
+ new /obj/item/stack/sheet/metal(loc, rand(1,4))
+ if(prob(50))
+ new /obj/item/assembly/prox_sensor(loc)
+ else
+ to_chat(user, "You remove the turret but did not manage to salvage anything.")
+ qdel(src)
+ return
- to_chat(user, "You begin repairing [src]...")
- if(I.use_tool(src, user, 40, volume=50))
- obj_integrity = obj_integrity + 20
- to_chat(user, "You repair [src].")
- if(obj_integrity > (max_integrity * integrity_failure) && BROKEN)
- obj_integrity = max_integrity
- set_machine_stat(machine_stat & ~BROKEN)
- update_appearance()
- check_should_process()
- else
+ if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP)
+ if(obj_integrity >= max_integrity)
to_chat(user, "[src] is already in good condition!")
- return
+ return
+ to_chat(user, "You begin repairing [src]...")
+ while(obj_integrity < max_integrity)
+ if(!I.use_tool(src, user, 4 SECONDS, 2, 50))
+ break
+ obj_integrity = max(obj_integrity + 20, max_integrity)
+ to_chat(user, "You repair [src].")
- else if((I.tool_behaviour == TOOL_WRENCH) && (!on))
- if(raised)
- return
+ if(obj_integrity > (max_integrity * integrity_failure) && (machine_stat & BROKEN))
+ obj_integrity = max_integrity
+ set_machine_stat(machine_stat & ~BROKEN)
+ update_appearance(UPDATE_ICON_STATE)
+ check_should_process()
+ return
+
+
+ if((I.tool_behaviour == TOOL_WRENCH) && !on)
//This code handles moving the turret around. After all, it's a portable turret!
if(!anchored && !isinspace())
set_anchored(TRUE)
- invisibility = INVISIBILITY_MAXIMUM
- update_appearance()
+ update_appearance(UPDATE_ICON_STATE)
to_chat(user, "You secure the exterior bolts on the turret.")
- if(has_cover)
- cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
- cover.parent_turret = src //make the cover's parent src
else if(anchored)
set_anchored(FALSE)
to_chat(user, "You unsecure the exterior bolts on the turret.")
power_change()
- invisibility = 0
- qdel(cover) //deletes the cover, and the turret instance itself becomes its own cover.
-
- if(I.GetID())
- //Behavior lock/unlock mangement
- if(allowed(user))
- locked = !locked
- to_chat(user, "Controls are now [locked ? "locked" : "unlocked"].")
- else
- to_chat(user, "Access denied.")
return
- if(I.tool_behaviour == TOOL_MULTITOOL && !locked)
+ if(I.tool_behaviour == TOOL_MULTITOOL)
+ if(locked)
+ to_chat(user, span_warning("The controls are locked."))
+ return
if(!multitool_check_buffer(user, I))
return
var/obj/item/multitool/M = I
M.buffer = src
to_chat(user, "You add [src] to multitool buffer.")
return
+
+ if(istype(I, /obj/item/card/id))
+ toggle_lock(user)
+ return
+
return ..()
+/obj/machinery/porta_turret/AltClick(mob/user)
+ . = ..()
+ toggle_lock(user)
+
+/obj/machinery/porta_turret/proc/toggle_lock(mob/user)
+ if(!user.canUseTopic(src, !issilicon(user)))
+ return
+ if(!allowed(user))
+ to_chat(user, span_alert("Access denied."))
+ return
+ if(obj_flags & EMAGGED || (machine_stat & (BROKEN|MAINT)))
+ to_chat(user, span_warning("The turret is unresponsive!"))
+ return
+
+ to_chat(user, span_notice("You [locked ? "unlock" : "lock"] [src]."))
+ locked = !locked
+ update_appearance()
+
/obj/machinery/porta_turret/emag_act(mob/user)
if(obj_flags & EMAGGED)
return
to_chat(user, "You short out [src]'s threat assessment circuits.")
audible_message("[src] hums oddly...")
obj_flags |= EMAGGED
- controllock = TRUE
+ locked = TRUE
toggle_on(FALSE) //turns off the turret temporarily
- update_appearance()
+ update_appearance(UPDATE_ICON_STATE)
//6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit
addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), 6 SECONDS)
- //turns it back on. The cover popUp() popDown() are automatically called in process(), no need to define it here
/obj/machinery/porta_turret/emp_act(severity)
. = ..()
@@ -389,786 +398,231 @@ DEFINE_BITFIELD(turret_flags, list(
if(on)
//if the turret is on, the EMP no matter how severe disables the turret for a while
//and scrambles its settings, with a slight chance of having an emag effect
- if(prob(50))
- turret_flags |= TURRET_FLAG_SHOOT_CRIMINALS
- if(prob(50))
- turret_flags |= TURRET_FLAG_AUTH_WEAPONS
- if(prob(20))
- turret_flags |= TURRET_FLAG_SHOOT_ALL // Shooting everyone is a pretty big deal, so it's least likely to get turned on
+ if(prob(5))
+ turret_flags ^= TURRET_FLAG_SHOOT_HUMANS
+ if(prob(5))
+ turret_flags ^= TURRET_FLAG_SHOOT_FAUNA
+ if(prob(1))
+ turret_flags ^= TURRET_FLAG_SHOOT_NONFACTION
+ if(prob(1))
+ turret_flags ^= TURRET_FLAG_SHOOT_SPECIFIC_FACTION
toggle_on(FALSE)
remove_control()
- addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), rand(60,600))
+ addtimer(CALLBACK(src, PROC_REF(toggle_on), TRUE), rand(6 SECONDS, 60 SECONDS))
/obj/machinery/porta_turret/take_damage(damage, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
. = ..()
- if(. && obj_integrity > 0) //damage received
- if(prob(30))
- spark_system.start()
- if(on && !(turret_flags & TURRET_FLAG_SHOOT_ALL_REACT) && !(obj_flags & EMAGGED))
- turret_flags |= TURRET_FLAG_SHOOT_ALL_REACT
- addtimer(CALLBACK(src, PROC_REF(reset_attacked)), 60)
+ if(!. || obj_integrity <= 0)
+ return
+ //damage received
+ if(prob(30))
+ spark_system.start()
-/obj/machinery/porta_turret/proc/reset_attacked()
- turret_flags &= ~TURRET_FLAG_SHOOT_ALL_REACT
+/obj/machinery/porta_turret/proc/retaliate(mob/living/target)
+ if(!(turret_flags & TURRET_FLAG_SHOOT_RETALIATE) || current_target || !on || (req_ship_access && allowed(target)) || (machine_stat & BROKEN|NOPOWER|MAINT))
+ return
+
+ set_target(target)
+ target(target)
+ retaliating = TRUE
+
+/obj/machinery/porta_turret/bullet_act(obj/projectile/hitting_projectile)
+ . = ..()
+ if(ismob(hitting_projectile.firer))
+ retaliate(hitting_projectile.firer)
-/obj/machinery/porta_turret/deconstruct(disassembled = TRUE)
- qdel(src)
+/obj/machinery/porta_turret/attacked_by(obj/item/I, mob/living/user)
+ . = ..()
+ if(!I.force || I.damtype == STAMINA)
+ return
+ retaliate(user)
/obj/machinery/porta_turret/obj_break(damage_flag)
. = ..()
if(.)
power_change()
- invisibility = 0
spark_system.start() //creates some sparks because they look cool
- qdel(cover) //deletes the cover - no need on keeping it there!
/obj/machinery/porta_turret/process()
- //the main machinery process
- if(cover == null && anchored) //if it has no cover and is anchored
- if(machine_stat & BROKEN) //if the turret is borked
- qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug
- else
- if(has_cover)
- cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover
- cover.parent_turret = src //assign the cover its parent_turret, which would be this (src)
-
if(!on || (machine_stat & (NOPOWER|BROKEN)) || manual_control)
return PROCESS_KILL
- var/list/targets = list()
- for(var/mob/A in view(scan_range, base))
- if(A.invisibility > SEE_INVISIBLE_LIVING)
- continue
-
- if(turret_flags & TURRET_FLAG_SHOOT_ANOMALOUS)//if it's set to check for simple animals
- if(isanimal(A))
- var/mob/living/simple_animal/SA = A
- if(SA.stat || in_faction(SA)) //don't target if dead or in faction
- continue
- targets += SA
- continue
-
- if(issilicon(A))
- var/mob/living/silicon/sillycone = A
-
- if(ispAI(A))
- continue
-
- if((turret_flags & TURRET_FLAG_SHOOT_BORGS) && sillycone.stat != DEAD && iscyborg(sillycone))
- targets += sillycone
- continue
-
- if(sillycone.stat || in_faction(sillycone))
- continue
-
- if(iscyborg(sillycone))
- var/mob/living/silicon/robot/sillyconerobot = A
- if(LAZYLEN(faction) && (ROLE_SYNDICATE in faction) && sillyconerobot.emagged == TRUE)
- continue
-
- else if(iscarbon(A))
- var/mob/living/carbon/C = A
- //If not emagged, only target carbons that can use items
- if(mode != TURRET_LETHAL && (C.stat || C.handcuffed || !(C.mobility_flags & MOBILITY_USE)))
- continue
-
- //If emagged, target all but dead carbons
- if(mode == TURRET_LETHAL && C.stat == DEAD)
- continue
-
- //if the target is a human and not in our faction, analyze threat level
- if(ishuman(C) && !in_faction(C))
-
- if(assess_perp(C) >= 4)
- targets += C
- else if(turret_flags & TURRET_FLAG_SHOOT_ANOMALOUS) //non humans who are not simple animals (xenos etc)
- if(!in_faction(C))
- targets += C
-
- for(var/A in GLOB.mechas_list)
- if((get_dist(A, base) < scan_range) && can_see(base, A, scan_range))
- var/obj/mecha/Mech = A
- if(Mech.occupant && !in_faction(Mech.occupant)) //If there is a user and they're not in our faction
- if(assess_perp(Mech.occupant) >= 4)
- targets += Mech
-
- if(targets.len)
- tryToShootAt(targets)
- else if(!always_up)
- popDown() // no valid targets, close the cover
-
-/obj/machinery/porta_turret/proc/tryToShootAt(list/atom/movable/targets)
- while(targets.len > 0)
- var/atom/movable/M = pick(targets)
- targets -= M
- if(target(M))
- return 1
-
-/obj/machinery/porta_turret/proc/popUp() //pops the turret up
- if(!anchored)
- return
- if(raising || raised)
- return
- if(machine_stat & BROKEN)
- return
- invisibility = 0
- raising = 1
- if(cover)
- flick("popup", cover)
- sleep(POPUP_ANIM_TIME)
- raising = 0
- if(cover)
- cover.icon_state = "openTurretCover"
- raised = 1
- layer = MOB_LAYER
-
-/obj/machinery/porta_turret/proc/popDown() //pops the turret down
- if(raising || !raised)
+ if(!COOLDOWN_FINISHED(src, fire_cooldown))
return
- if(machine_stat & BROKEN)
- return
- layer = OBJ_LAYER
- raising = 1
- if(cover)
- flick("popdown", cover)
- sleep(POPDOWN_ANIM_TIME)
- raising = 0
- if(cover)
- cover.icon_state = "turretCover"
- raised = 0
- invisibility = 2
- update_appearance()
-
-/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp)
- var/threatcount = 0 //the integer returned
-
- if(obj_flags & EMAGGED)
- return 10 //if emagged, always return 10.
-
- if((turret_flags & (TURRET_FLAG_SHOOT_ALL | TURRET_FLAG_SHOOT_ALL_REACT)) && !allowed(perp))
- //if the turret has been attacked or is angry, target all non-sec people
- if(!allowed(perp))
- return 10
-
- if(turret_flags & TURRET_FLAG_AUTH_WEAPONS) //check for weapon authorization
- if(isnull(perp.wear_id) || istype(perp.wear_id.GetID(), /obj/item/card/id/syndicate))
-
- if(allowed(perp)) //if the perp has security access, return 0
- return 0
- if(perp.is_holding_item_of_type(/obj/item/gun) || perp.is_holding_item_of_type(/obj/item/melee/baton))
- threatcount += 4
- if(istype(perp.belt, /obj/item/gun) || istype(perp.belt, /obj/item/melee/baton))
- threatcount += 2
-
- if(turret_flags & TURRET_FLAG_SHOOT_CRIMINALS) //if the turret can check the records, check if they are set to *Arrest* on records
- var/perpname = perp.get_face_name(perp.get_id_name())
- var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security)
- if(!R || (R.fields["criminal"] == "*Arrest*"))
- threatcount += 4
-
- if((turret_flags & TURRET_FLAG_SHOOT_UNSHIELDED) && (!HAS_TRAIT(perp, TRAIT_MINDSHIELD)))
- threatcount += 4
-
- // If we aren't shooting heads then return a threatcount of 0
- if (!(turret_flags & TURRET_FLAG_SHOOT_HEADS) && (perp.get_assignment() in GLOB.command_positions))
- return 0
-
- return threatcount
-
-/obj/machinery/porta_turret/proc/in_faction(mob/target)
- for(var/faction1 in faction)
- if(faction1 in target.faction)
- return TRUE
- if(ismouse(target))
- return TRUE
- return FALSE
-
-/obj/machinery/porta_turret/proc/target(atom/movable/target)
- if(target)
- popUp() //pop the turret up if it's not already up.
- setDir(get_dir(base, target))//even if you can't shoot, follow the target
- shootAt(target)
- return 1
- return
-
-/obj/machinery/porta_turret/proc/shootAt(atom/movable/target)
- if(!raised) //the turret has to be raised in order to fire - makes sense, right?
- return
-
- if(!(obj_flags & EMAGGED)) //if it hasn't been emagged, cooldown before shooting again
- if(!COOLDOWN_FINISHED(src, fire_cooldown))
+ if(current_target)
+ //Try to fire at the current target first
+ if(check_target(current_target) && target(current_target))
return
- COOLDOWN_START(src, fire_cooldown, shot_delay)
-
- var/turf/T = get_turf(src)
- var/turf/U = get_turf(target)
- if(!istype(T) || !istype(U))
- return
-
- //Wall turrets will try to find adjacent empty turf to shoot from to cover full arc
- if(T.density)
- if(wall_turret_direction)
- var/turf/closer = get_step(T,wall_turret_direction)
- if(istype(closer) && !closer.is_blocked_turf() && T.Adjacent(closer))
- T = closer
- else
- var/target_dir = get_dir(T,target)
- for(var/d in list(0,-45,45))
- var/turf/closer = get_step(T,turn(target_dir,d))
- if(istype(closer) && !closer.is_blocked_turf() && T.Adjacent(closer))
- T = closer
- break
-
- update_appearance()
- var/obj/projectile/A
- //any emagged turrets drains 2x power and uses a different projectile?
- if(mode == TURRET_STUN)
- use_power(reqpower)
- A = new stun_projectile(T)
- playsound(loc, stun_projectile_sound, 75, TRUE)
- else
- use_power(reqpower * 2)
- A = new lethal_projectile(T)
- playsound(loc, lethal_projectile_sound, 75, TRUE)
+ //Current target is invalid, so we need to find a new one
+ set_target(null)
- //Shooting Code:
- A.preparePixelProjectile(target, T)
- A.firer = src
- A.fired_from = src
- A.fire()
- return A
-
-/obj/machinery/porta_turret/proc/setState(on, mode, shoot_cyborgs)
- if(controllock)
- return
-
- shoot_cyborgs ? (turret_flags |= TURRET_FLAG_SHOOT_BORGS) : (turret_flags &= ~TURRET_FLAG_SHOOT_BORGS)
- toggle_on(on)
- src.mode = mode
- power_change()
+ for(var/atom/movable/target as anything in targets)
+ //TODO: Remove this if it never happens, because it shouldn't
+ if(QDELETED(target))
+ targets -= target
+ stack_trace("Qdeleted target in turret list")
+ return FALSE
-/datum/action/turret_toggle
- name = "Toggle Mode"
- icon_icon = 'icons/mob/actions/actions_mecha.dmi'
- button_icon_state = "mech_cycle_equip_off"
+ if(isnull(target))
+ targets -= target
+ stack_trace("Null target in turret list")
+ continue
-/datum/action/turret_toggle/Trigger()
- var/obj/machinery/porta_turret/P = target
- if(!istype(P))
- return
- P.setState(P.on,!P.mode)
+ if(check_target(target))
+ break
-/datum/action/turret_quit
- name = "Release Control"
- icon_icon = 'icons/mob/actions/actions_mecha.dmi'
- button_icon_state = "mech_eject"
+/obj/machinery/porta_turret/proc/check_target(atom/movable/target, check_flags = turret_flags)
+ // mecha|carbon|silicon|simple_animal
+ if(ismecha(target))
+ var/obj/mecha/mech = target
+ if(!mech.occupant)
+ targets -= target
+ return FALSE
+ target = mech.occupant
-/datum/action/turret_quit/Trigger()
- var/obj/machinery/porta_turret/P = target
- if(!istype(P))
- return
- P.remove_control(FALSE)
+ // We know the target must be a mob now
+ var/mob/target_mob = target
-/obj/machinery/porta_turret/proc/give_control(mob/A)
- if(manual_control || !can_interact(A))
+ if(target_mob.stat == DEAD)
+ //They probably won't need to be re-checked
+ targets -= target
return FALSE
- remote_controller = A
- if(!quit_action)
- quit_action = new(src)
- quit_action.Grant(remote_controller)
- if(!toggle_action)
- toggle_action = new(src)
- toggle_action.Grant(remote_controller)
- remote_controller.reset_perspective(src)
- remote_controller.click_intercept = src
- manual_control = TRUE
- always_up = TRUE
- popUp()
- return TRUE
-/obj/machinery/porta_turret/proc/remove_control(warning_message = TRUE)
- if(!manual_control)
+ if((check_flags & TURRET_FLAG_SHOOT_NONFACTION) && faction_check(src.faction, target_mob.faction))
return FALSE
- if(remote_controller)
- if(warning_message)
- to_chat(remote_controller, "Your uplink to [src] has been severed!")
- quit_action.Remove(remote_controller)
- toggle_action.Remove(remote_controller)
- remote_controller.click_intercept = null
- remote_controller.reset_perspective()
- always_up = initial(always_up)
- manual_control = FALSE
- remote_controller = null
- return TRUE
-/obj/machinery/porta_turret/proc/InterceptClickOn(mob/living/caller, params, atom/A)
- if(!manual_control)
- return FALSE
- if(!can_interact(caller))
- remove_control()
+ if((check_flags & TURRET_FLAG_SHOOT_SPECIFIC_FACTION) && !faction_check(src.faction, target_mob.faction))
return FALSE
- log_combat(caller,A,"fired with manual turret control at")
- target(A)
- return TRUE
-
-/obj/machinery/porta_turret/syndicate
- installation = null
- always_up = 1
- use_power = NO_POWER_USE
- has_cover = 0
- scan_range = 9
- req_access = list(ACCESS_SYNDICATE)
- mode = TURRET_LETHAL
- stun_projectile = /obj/projectile/bullet
- lethal_projectile = /obj/projectile/bullet
- lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg'
- stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg'
- icon_state = "syndie_off"
- base_icon_state = "syndie"
- faction = list(ROLE_SYNDICATE)
- desc = "A ballistic machine gun auto-turret."
-
-/obj/machinery/porta_turret/syndicate/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
-
-/obj/machinery/porta_turret/syndicate/setup()
- return
-
-/obj/machinery/porta_turret/syndicate/assess_perp(mob/living/carbon/human/perp)
- return 10 //Syndicate turrets shoot everything not in their faction
-
-/obj/machinery/porta_turret/syndicate/energy
- icon_state = "standard_lethal"
- base_icon_state = "standard"
- stun_projectile = /obj/projectile/energy/electrode
- stun_projectile_sound = 'sound/weapons/taser.ogg'
- lethal_projectile = /obj/projectile/beam/laser
- lethal_projectile_sound = 'sound/weapons/laser.ogg'
- desc = "An energy blaster auto-turret."
-
-/obj/machinery/porta_turret/syndicate/energy/heavy
- icon_state = "standard_lethal"
- base_icon_state = "standard"
- stun_projectile = /obj/projectile/energy/electrode
- stun_projectile_sound = 'sound/weapons/taser.ogg'
- lethal_projectile = /obj/projectile/beam/laser/heavylaser
- lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
- desc = "An energy blaster auto-turret."
-
-/obj/machinery/porta_turret/syndicate/energy/raven
- stun_projectile = /obj/projectile/beam/laser
- stun_projectile_sound = 'sound/weapons/laser.ogg'
- faction = list("neutral","silicon","turret")
-
-/obj/machinery/porta_turret/syndicate/pod
- integrity_failure = 0.5
- max_integrity = 40
- stun_projectile = /obj/projectile/bullet/syndicate_turret
- lethal_projectile = /obj/projectile/bullet/syndicate_turret
-
-/obj/machinery/porta_turret/syndicate/shuttle
- scan_range = 9
- shot_delay = 3
- stun_projectile = /obj/projectile/bullet/p50/penetrator/shuttle
- lethal_projectile = /obj/projectile/bullet/p50/penetrator/shuttle
- lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
- stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
- armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 80, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
-
-/obj/machinery/porta_turret/syndicate/shuttle/target(atom/movable/target)
- if(target)
- setDir(get_dir(base, target))//even if you can't shoot, follow the target
- shootAt(target)
- addtimer(CALLBACK(src, PROC_REF(shootAt), target), 5)
- addtimer(CALLBACK(src, PROC_REF(shootAt), target), 10)
- addtimer(CALLBACK(src, PROC_REF(shootAt), target), 15)
- return TRUE
-
-/obj/machinery/porta_turret/ai
- faction = list("silicon")
- turret_flags = TURRET_FLAG_SHOOT_CRIMINALS | TURRET_FLAG_SHOOT_ANOMALOUS | TURRET_FLAG_SHOOT_HEADS
-
-/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp)
- return 10 //AI turrets shoot at everything not in their faction
-
-/obj/machinery/porta_turret/ship
- installation = null
- max_integrity = 300
- always_up = 1
- use_power = ACTIVE_POWER_USE
- active_power_usage = ACTIVE_DRAW_MINIMAL
- has_cover = 0
- scan_range = 9
- stun_projectile = /obj/projectile/beam/disabler
- lethal_projectile = /obj/projectile/beam/laser
- lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
- stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
- icon_state = "syndie_off"
- base_icon_state = "syndie"
- faction = list("neutral", "turret")
- mode = TURRET_STUN
-
-/obj/machinery/porta_turret/ship/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
-
-/obj/machinery/porta_turret/ship/setup()
- return
-
-/obj/machinery/porta_turret/ship/examine(mob/user)
- . = ..()
- if(in_range(user, src) || isobserver(user))
- if(!(machine_stat & BROKEN))
- . += "Its reports that it's integrity is currently [(obj_integrity / max_integrity) * 100] percent."
-
-/obj/machinery/porta_turret/ship/weak
- max_integrity = 120
- integrity_failure = 0.5
- name = "Old Laser Turret"
- desc = "A turret built with substandard parts and run down further with age. Still capable of delivering lethal lasers to the odd space carp, but not much else."
- stun_projectile = /obj/projectile/beam/disabler/weak
- lethal_projectile = /obj/projectile/beam/weak/penetrator
- faction = list("neutral", "turret")
-
-/obj/machinery/porta_turret/ship/ballistic
- stun_projectile = /obj/projectile/bullet/turret/rubber
- lethal_projectile = /obj/projectile/bullet/turret
- lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
- stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
- desc = "A ballistic machine gun auto-turret."
-
-//high rof, range, faster projectile speed
-/* 'Nanotrasen' turrets */
-
-/obj/machinery/porta_turret/ship/nt
- name = "Sharplite Defense Turret"
- desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels."
- faction = list(FACTION_PLAYER_NANOTRASEN, "turret")
- icon_state = "standard_lethal"
- base_icon_state = "standard"
- stun_projectile = /obj/projectile/beam/disabler/sharplite
- lethal_projectile = /obj/projectile/beam/laser/sharplite
- lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg'
- stun_projectile_sound = 'sound/weapons/taser2.ogg'
- shot_delay = 10
- scan_range = 10
-/obj/machinery/porta_turret/ship/nt/light
- name = "Sharplite LDS"
- desc = "A cheap and effective 'defensive system' designed by Sharplite for installation on Nanotrasen vessels."
- stun_projectile = /obj/projectile/beam/disabler/weak/sharplite
- lethal_projectile = /obj/projectile/beam/laser/light/sharplite
- lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg'
- stun_projectile_sound = 'sound/weapons/taser2.ogg'
+ if(iscyborg(target_mob))
+ return (check_flags & TURRET_FLAG_SHOOT_SILICONS) && target(target_mob)
+ if(!ishuman(target_mob))
+ if(!(check_flags & TURRET_FLAG_SHOOT_FAUNA))
+ return FALSE
-/obj/machinery/porta_turret/ship/nt/heavy
- name = "Sharplite Defense Cannon"
- desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels."
- lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite
- lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ if(!(check_flags & TURRET_FLAG_SHOOT_DANGEROUS_ONLY))
+ return target(target_mob)
-/obj/machinery/porta_turret/ship/nt/pulse
- name = "Sharplite Pulse Cannon"
- desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels."
- lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret
- lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg'
+ //this is gross
+ var/static/list/dangerous_fauna = typecacheof(list(/mob/living/simple_animal/hostile, /mob/living/carbon/alien, /mob/living/carbon/monkey))
+ if(!is_type_in_typecache(target_mob, dangerous_fauna))
+ return FALSE
+ if(ismonkey(target_mob))
+ var/mob/living/carbon/monkey/monke = target_mob
+ return monke.mode == MONKEY_HUNT && target(target_mob)
+ if(istype(target_mob, /mob/living/simple_animal/hostile/retaliate))
+ var/mob/living/simple_animal/hostile/retaliate/target_animal = target_mob
+ return length(target_animal.enemies) && target(target_mob)
+ return target(target_mob)
-/* Syndicate Turrets */
+ //We know the target must be a human now
+ var/mob/living/carbon/human/target_carbon = target_mob
-/obj/machinery/porta_turret/ship/syndicate
- faction = list(FACTION_PLAYER_SYNDICATE, "turret")
- icon_state = "standard_lethal"
- base_icon_state = "standard"
-
-/obj/machinery/porta_turret/ship/syndicate/weak
- name = "Light Laser Turret"
- desc = "A low powered turret designed by the Gorlex Maurauders during the ICW. Effectively weaponizes mining equipment."
- stun_projectile = /obj/projectile/beam/disabler/weak
- lethal_projectile = /obj/projectile/beam/weak/penetrator
- icon_state = "syndie_off"
- base_icon_state = "syndie"
-
-/obj/machinery/porta_turret/ship/syndicate/heavy
- name = "Heavy Laser Turret"
- desc = "Produced by Cybersun, this turret is a duel mount of a propietary heavy laser, and crowd control taser system."
- stun_projectile = /obj/projectile/energy/electrode
- stun_projectile_sound = 'sound/weapons/taser.ogg'
- lethal_projectile = /obj/projectile/beam/laser/heavylaser
- lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
-
-/* Inteq Turrets */
-
-/obj/machinery/porta_turret/ship/inteq
- name = "Vanguard Turret"
- desc = "A turret designed by IRMG engineers for defending ships from hostile flora, fauna, and people (and Elzousa, which count as flora and people)."
- stun_projectile = /obj/projectile/bullet/a762_40/rubber
- stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
- lethal_projectile = /obj/projectile/bullet/a762_40
- lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
- scan_range = 8
- shot_delay = 20
- faction = list(FACTION_PLAYER_INTEQ, "turret")
-
-/obj/machinery/porta_turret/ship/inteq/light
- name = "Close-In Vanguard Turret"
- desc = "A light turret designed by IRMG engineers for the the task of defending from close-in encounters. Low power, high speed."
- stun_projectile = /obj/projectile/bullet/c10mm/rubber
- stun_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
- lethal_projectile = /obj/projectile/bullet/c10mm
- lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
- subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem
- scan_range = 4
- shot_delay = 5
-
-/obj/machinery/porta_turret/ship/inteq/heavy
- name = "Vanguard Overwatch Turret"
- desc = "A turret designed by IRMG engineers to provide long range defensive fire on their installations. Has a habit of leaving big holes."
- stun_projectile = /obj/projectile/bullet/a308/rubber
- stun_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg'
- lethal_projectile = /obj/projectile/bullet/a308
- lethal_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg'
- scan_range = 12
- shot_delay = 20
-
-/* Solcon Turrets */
-
-/obj/machinery/porta_turret/ship/solgov
- faction = list(FACTION_PLAYER_SOLCON, "turret")
-
-/* Pan Gezena Federation Turrets */
-
-/obj/machinery/porta_turret/ship/pgf
- name = "Etherbor Defensive Mount"
- desc = "A less portable Etherbor offering, the EDM is a self-directed linkage of energy weapons, designed to keep intruders away from Gezenan vessels."
- faction = list(FACTION_PLAYER_GEZENA, "Turret")
- stun_projectile = /obj/projectile/beam/hitscan/disabler
- stun_projectile_sound = 'sound/weapons/gun/energy/kalixpistol.ogg'
- lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf/assault
- lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg'
- icon_state = "standard_lethal"
- base_icon_state = "standard"
-
-/obj/machinery/porta_turret/ship/pgf/light
- name = "Etherbor Deterrent System"
- desc = "A light turret manufactured by Etherbor. It offers a lightweight assembly of energy weapons to accost nearby foes."
- lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf
- lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg'
-
-/obj/machinery/porta_turret/ship/pgf/heavy
- name = "Etherbor Point-Defense System"
- desc = "A high-powered defensive turret manufactured by Etherbor. The EPDS contains heavy energy weapons linked in tandem."
- scan_range = 10
- stun_projectile = /obj/projectile/beam/hitscan/disabler/heavy
- stun_projectile_sound = 'sound/weapons/gun/energy/kalixpistol.ogg'
- lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf/sniper //fwoom
- lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg'
-
-////////////////////////
-//Turret Control Panel//
-////////////////////////
-
-/obj/machinery/turretid
- name = "turret control panel"
- desc = "Used to control a room's automated defenses."
- icon = 'icons/obj/machines/turret_control.dmi'
- icon_state = "control_standby"
- base_icon_state = "control"
- density = FALSE
- req_access = list(ACCESS_AI_UPLOAD)
- resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
- /// Variable dictating if linked turrets are active and will shoot targets
- var/enabled = TRUE
- /// Variable dictating if linked turrets will shoot lethal projectiles
- var/lethal = FALSE
- /// Variable dictating if the panel is locked, preventing changes to turret settings
- var/locked = TRUE
- /// An area in which linked turrets are located, it can be an area name, path or nothing
- var/control_area = null
- /// AI is unable to use this machine if set to TRUE
- var/ailock = FALSE
- /// Variable dictating if linked turrets will shoot cyborgs
- var/shoot_cyborgs = FALSE
- /// List of all linked turrets
- var/list/turrets = list()
- ///id for connecting to additional turrets
- var/id = ""
-
-/obj/machinery/turretid/Initialize(mapload, ndir = 0, built = 0)
- . = ..()
- if(built)
- setDir(ndir)
- locked = FALSE
- pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
- pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
- power_change() //Checks power and initial settings
-
-/obj/machinery/turretid/Destroy()
- turrets.Cut()
- return ..()
+ if(req_ship_access && (check_access(target_carbon.get_active_held_item()) || check_access(target_carbon.wear_id)))
+ return FALSE
-/obj/machinery/turretid/Initialize(mapload) //map-placed turrets autolink turrets
- . = ..()
- if(!mapload)
- return
+ if(!(check_flags & TURRET_FLAG_SHOOT_DANGEROUS_ONLY))
+ return target(target_carbon)
-/obj/machinery/turretid/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
- id = "[REF(port)][id]"
- RegisterSignal(port, COMSIG_SHIP_DONE_CONNECTING, PROC_REF(late_connect_to_shuttle))
+ //Not dangerous if you can't hold anything
+ if(target_carbon.handcuffed || !(target_carbon.mobility_flags & MOBILITY_USE))
+ return FALSE
-/obj/machinery/turretid/disconnect_from_shuttle(obj/docking_port/mobile/port)
- UnregisterSignal(port, COMSIG_SHIP_DONE_CONNECTING)
+ if(target_carbon.is_holding_item_of_type(/obj/item/gun) || target_carbon.is_holding_item_of_type(/obj/item/melee))
+ return target(target_carbon)
-/obj/machinery/turretid/proc/late_connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
- SIGNAL_HANDLER
+//Returns whether or not we should stop searching for targets
+/obj/machinery/porta_turret/proc/target(mob/living/target)
+ if(!COOLDOWN_FINISHED(src, fire_cooldown))
+ return TRUE
- for(var/datum/weakref/ship_guns in port.turret_list)
- var/obj/machinery/porta_turret/turret_gun = ship_guns.resolve()
- if(turret_gun.id == id)
- turrets |= turret_gun
- turret_gun.cp = src
+ var/turf/our_turf = get_turf(src)
+ if(!istype(our_turf))
+ return TRUE
-/obj/machinery/turretid/examine(mob/user)
- . += ..()
- if(issilicon(user) && !(machine_stat & BROKEN))
- . += {"Ctrl-click [src] to [ enabled ? "disable" : "enable"] turrets.
- Alt-click [src] to set turrets to [ lethal ? "stun" : "kill"]."}
+ //Wall turrets will try to find adjacent empty turf to shoot from to cover full arc
+ if(our_turf.density)
+ if(wall_turret_direction)
+ var/turf/closer = get_step(our_turf, wall_turret_direction)
+ if(istype(closer) && !closer.is_blocked_turf() && our_turf.Adjacent(closer))
+ our_turf = closer
+ else
+ var/target_dir = get_dir(our_turf, target)
+ for(var/d in list(0, -45, 45))
+ var/turf/closer = get_step(our_turf, turn(target_dir, d))
+ if(istype(closer) && !closer.is_blocked_turf() && our_turf.Adjacent(closer))
+ our_turf = closer
+ break
+ if(!can_see(our_turf, target, scan_range))
+ return FALSE
-/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
- if(machine_stat & BROKEN)
- return
+ setDir(get_dir(our_turf, target))
- if(I.tool_behaviour == TOOL_MULTITOOL)
- if(!multitool_check_buffer(user, I))
- return
- var/obj/item/multitool/M = I
- if(M.buffer && istype(M.buffer, /obj/machinery/porta_turret))
- turrets |= M.buffer
- to_chat(user, "You link \the [M.buffer] with \the [src].")
- return
+ if(!manual_control)
+ if(current_target != target)
+ set_target(target)
+ COOLDOWN_START(src, reaction_cooldown, reaction_time)
- if (issilicon(user))
- return attack_hand(user)
+ if(ishuman(target) || target.client)
+ target.do_alert_animation(target)
- // trying to unlock the interface
- if (in_range(src, user))
- if (allowed(usr))
- if(obj_flags & EMAGGED)
- to_chat(user, "The turret control is unresponsive!")
- return
+ return TRUE
- locked = !locked
- to_chat(user, "You [ locked ? "lock" : "unlock"] the panel.")
- else
- to_chat(user, "Access denied.")
+ if(!COOLDOWN_FINISHED(src, reaction_cooldown))
+ return TRUE
-/obj/machinery/turretid/emag_act(mob/user)
- if(obj_flags & EMAGGED)
- return
- to_chat(user, "You short out the turret controls' access analysis module.")
- obj_flags |= EMAGGED
- locked = FALSE
+ target_beam.set_target(null)
+ COOLDOWN_START(src, fire_cooldown, shot_delay)
-/obj/machinery/turretid/attack_ai(mob/user)
- if(!ailock || isAdminGhostAI(user))
- return attack_hand(user)
+ update_appearance(UPDATE_ICON_STATE)
+ var/obj/projectile/shot
+ //any lethaling turrets drain 2x the power and use a different projectile
+ if(lethal)
+ use_power(reqpower * 2)
+ shot = new lethal_projectile(our_turf)
+ playsound(loc, lethal_projectile_sound, 75, TRUE)
else
- to_chat(user, "There seems to be a firewall preventing you from accessing this device!")
-
-/obj/machinery/turretid/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "TurretControl", name)
- ui.open()
-
-/obj/machinery/turretid/ui_data(mob/user)
- var/list/data = list()
- data["locked"] = locked
- data["siliconUser"] = user.has_unlimited_silicon_privilege && check_ship_ai_access(user)
- data["enabled"] = enabled
- data["lethal"] = lethal
- data["shootCyborgs"] = shoot_cyborgs
- return data
+ use_power(reqpower)
+ shot = new stun_projectile(our_turf)
+ playsound(loc, stun_projectile_sound, 75, TRUE)
-/obj/machinery/turretid/ui_act(action, list/params)
- . = ..()
- if(.)
- return
- switch(action)
- if("lock")
- if(!usr.has_unlimited_silicon_privilege)
- return
- if((obj_flags & EMAGGED) || (machine_stat & BROKEN))
- to_chat(usr, "The turret control is unresponsive!")
- return
- locked = !locked
- return TRUE
- if("power")
- toggle_on(usr)
- return TRUE
- if("mode")
- toggle_lethal(usr)
- return TRUE
- if("shoot_silicons")
- shoot_silicons(usr)
- return TRUE
+ //Shooting Code:
+ shot.preparePixelProjectile(target, our_turf)
+ shot.firer = src
+ shot.fired_from = src
+ shot.fire()
+ return TRUE
-/obj/machinery/turretid/proc/toggle_lethal(mob/user)
- lethal = !lethal
- add_hiddenprint(user)
- log_combat(user, src, "[lethal ? "enabled" : "disabled"] lethals on")
- updateTurrets()
-
-/obj/machinery/turretid/proc/toggle_on(mob/user)
- enabled = !enabled
- add_hiddenprint(user)
- log_combat(user, src, "[enabled ? "enabled" : "disabled"]")
- updateTurrets()
-
-/obj/machinery/turretid/proc/shoot_silicons(mob/user)
- shoot_cyborgs = !shoot_cyborgs
- add_hiddenprint(user)
- log_combat(user, src, "[shoot_cyborgs ? "Shooting Borgs" : "Not Shooting Borgs"]")
- updateTurrets()
-
-/obj/machinery/turretid/proc/updateTurrets()
- for (var/obj/machinery/porta_turret/aTurret in turrets)
- aTurret.setState(enabled, lethal, shoot_cyborgs)
- update_appearance()
+/obj/machinery/porta_turret/proc/set_target(atom/movable/target = null)
+ if(current_target)
+ UnregisterSignal(current_target, COMSIG_PARENT_QDELETING)
-/obj/machinery/turretid/update_icon_state()
- if(machine_stat & NOPOWER)
- icon_state = "[base_icon_state]_off"
- return ..()
- if (enabled)
- icon_state = "[base_icon_state]_[lethal ? "kill" : "stun"]"
- return ..()
- icon_state = "[base_icon_state]_standby"
- return ..()
+ retaliating = FALSE
+ current_target = target
+ target_beam.set_target(target)
-/obj/machinery/turretid/lethal
- lethal = TRUE
+ if(current_target)
+ RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(set_target))
-/obj/machinery/turretid/ship
- req_ship_access = TRUE
+/obj/machinery/porta_turret/proc/set_state(on, new_mode, new_flags)
+ if(locked)
+ return
+ if(!isnull(new_flags))
+ turret_flags = new_flags
-/obj/item/wallframe/turret_control
- name = "turret control frame"
- desc = "Used for building turret control panels."
- icon_state = "apc"
- result_path = /obj/machinery/turretid
- custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
- inverse_pixel_shift = TRUE
+ lethal = new_mode
+ toggle_on(on)
+ power_change()
/obj/item/gun/proc/get_turret_properties()
. = list()
@@ -1196,7 +650,7 @@ DEFINE_BITFIELD(turret_flags, list(
/obj/item/gun/ballistic/get_turret_properties()
. = ..()
- var/obj/item/ammo_box/mag = mag_type
+ var/obj/item/ammo_box/mag = default_ammo_type
var/obj/item/ammo_casing/primary_ammo = initial(mag.ammo_type)
.["base_icon_state"] = "syndie"
@@ -1204,7 +658,3 @@ DEFINE_BITFIELD(turret_flags, list(
.["stun_projectile_sound"] = initial(primary_ammo.fire_sound)
.["lethal_projectile"] = .["stun_projectile"]
.["lethal_projectile_sound"] = .["stun_projectile_sound"]
-
-/obj/item/gun/energy/e_gun/turret/get_turret_properties()
- . = ..()
-
diff --git a/code/game/machinery/porta_turret/portable_turret_construct.dm b/code/game/machinery/porta_turret/portable_turret_construct.dm
deleted file mode 100644
index ad2f82eace29..000000000000
--- a/code/game/machinery/porta_turret/portable_turret_construct.dm
+++ /dev/null
@@ -1,192 +0,0 @@
-#define PTURRET_UNSECURED 0
-#define PTURRET_BOLTED 1
-#define PTURRET_START_INTERNAL_ARMOUR 2
-#define PTURRET_INTERNAL_ARMOUR_ON 3
-#define PTURRET_GUN_EQUIPPED 4
-#define PTURRET_SENSORS_ON 5
-#define PTURRET_CLOSED 6
-#define PTURRET_START_EXTERNAL_ARMOUR 7
-#define PTURRET_EXTERNAL_ARMOUR_ON 8
-
-/obj/machinery/porta_turret_construct
- name = "turret frame"
- icon = 'icons/obj/turrets.dmi'
- icon_state = "turret_frame"
- desc = "An unfinished covered turret frame."
- anchored = FALSE
- density = TRUE
- var/build_step = PTURRET_UNSECURED //the current step in the building process
- var/finish_name = "turret" //the name applied to the product turret
- var/obj/item/gun/installed_gun = null
-
-/obj/machinery/porta_turret_construct/attackby(obj/item/I, mob/user, params)
- //this is a bit unwieldy but self-explanatory
- switch(build_step)
- if(PTURRET_UNSECURED) //first step
- if(I.tool_behaviour == TOOL_WRENCH && !anchored)
- I.play_tool_sound(src, 100)
- to_chat(user, "You secure the external bolts.")
- set_anchored(TRUE)
- build_step = PTURRET_BOLTED
- return
-
- else if(I.tool_behaviour == TOOL_CROWBAR && !anchored)
- I.play_tool_sound(src, 75)
- to_chat(user, "You dismantle the turret construction.")
- new /obj/item/stack/sheet/metal(loc, 5)
- qdel(src)
- return
-
- if(PTURRET_BOLTED)
- if(istype(I, /obj/item/stack/sheet/metal))
- var/obj/item/stack/sheet/metal/M = I
- if(M.use(2))
- to_chat(user, "You add some metal armor to the interior frame.")
- build_step = PTURRET_START_INTERNAL_ARMOUR
- icon_state = "turret_frame2"
- else
- to_chat(user, "You need two sheets of metal to continue construction!")
- return
-
- else if(I.tool_behaviour == TOOL_WRENCH)
- I.play_tool_sound(src, 75)
- to_chat(user, "You unfasten the external bolts.")
- set_anchored(FALSE)
- build_step = PTURRET_UNSECURED
- return
-
-
- if(PTURRET_START_INTERNAL_ARMOUR)
- if(I.tool_behaviour == TOOL_WRENCH)
- I.play_tool_sound(src, 100)
- to_chat(user, "You bolt the metal armor into place.")
- build_step = PTURRET_INTERNAL_ARMOUR_ON
- return
-
- else if(I.tool_behaviour == TOOL_WELDER)
- if(!I.tool_start_check(user, amount=5)) //uses up 5 fuel
- return
-
- to_chat(user, "You start to remove the turret's interior metal armor...")
-
- if(I.use_tool(src, user, 20, volume=50, amount=5)) //uses up 5 fuel
- build_step = PTURRET_BOLTED
- to_chat(user, "You remove the turret's interior metal armor.")
- new /obj/item/stack/sheet/metal(drop_location(), 2)
- return
-
-
- if(PTURRET_INTERNAL_ARMOUR_ON)
- if(istype(I, /obj/item/gun/energy)) //the gun installation part
- var/obj/item/gun/energy/E = I
- if(!user.transferItemToLoc(E, src))
- return
- installed_gun = E
- to_chat(user, "You add [I] to the turret.")
- build_step = PTURRET_GUN_EQUIPPED
- return
-
- else if(I.tool_behaviour == TOOL_WRENCH)
- I.play_tool_sound(src, 100)
- to_chat(user, "You remove the turret's metal armor bolts.")
- build_step = PTURRET_START_INTERNAL_ARMOUR
- return
-
- if(PTURRET_GUN_EQUIPPED)
- if(isprox(I))
- build_step = PTURRET_SENSORS_ON
- if(!user.temporarilyRemoveItemFromInventory(I))
- return
- to_chat(user, "You add the proximity sensor to the turret.")
- qdel(I)
- return
-
-
- if(PTURRET_SENSORS_ON)
- if(I.tool_behaviour == TOOL_SCREWDRIVER)
- I.play_tool_sound(src, 100)
- build_step = PTURRET_CLOSED
- to_chat(user, "You close the internal access hatch.")
- return
-
-
- if(PTURRET_CLOSED)
- if(istype(I, /obj/item/stack/sheet/metal))
- var/obj/item/stack/sheet/metal/M = I
- if(M.use(2))
- to_chat(user, "You add some metal armor to the exterior frame.")
- build_step = PTURRET_START_EXTERNAL_ARMOUR
- else
- to_chat(user, "You need two sheets of metal to continue construction!")
- return
-
- else if(I.tool_behaviour == TOOL_SCREWDRIVER)
- I.play_tool_sound(src, 100)
- build_step = PTURRET_SENSORS_ON
- to_chat(user, "You open the internal access hatch.")
- return
-
- if(PTURRET_START_EXTERNAL_ARMOUR)
- if(I.tool_behaviour == TOOL_WELDER)
- if(!I.tool_start_check(user, amount=5))
- return
-
- to_chat(user, "You begin to weld the turret's armor down...")
- if(I.use_tool(src, user, 30, volume=50, amount=5))
- build_step = PTURRET_EXTERNAL_ARMOUR_ON
- to_chat(user, "You weld the turret's armor down.")
-
- //The final step: create a full turret
-
- var/obj/machinery/porta_turret/turret
- turret = new/obj/machinery/porta_turret(loc)
- turret.name = finish_name
- turret.installation = installed_gun.type
- turret.setup(installed_gun)
- qdel(src)
- return
-
- else if(I.tool_behaviour == TOOL_CROWBAR)
- I.play_tool_sound(src, 75)
- to_chat(user, "You pry off the turret's exterior armor.")
- new /obj/item/stack/sheet/metal(loc, 2)
- build_step = PTURRET_CLOSED
- return
-
- if(istype(I, /obj/item/pen)) //you can rename turrets like bots!
- var/t = stripped_input(user, "Enter new turret name", name, finish_name)
- if(!t)
- return
- if(!Adjacent(user))
- return
-
- finish_name = t
- return
- return ..()
-
-
-/obj/machinery/porta_turret_construct/attack_hand(mob/user)
- . = ..()
- if(.)
- return
- switch(build_step)
- if(PTURRET_GUN_EQUIPPED)
- build_step = PTURRET_INTERNAL_ARMOUR_ON
-
- installed_gun.forceMove(loc)
- to_chat(user, "You remove [installed_gun] from the turret frame.")
- installed_gun = null
-
- if(PTURRET_SENSORS_ON)
- to_chat(user, "You remove the prox sensor from the turret frame.")
- new /obj/item/assembly/prox_sensor(loc)
- build_step = PTURRET_GUN_EQUIPPED
-
-/obj/machinery/porta_turret_construct/attack_ai()
- return
-
-/obj/machinery/porta_turret_construct/Destroy()
- if(installed_gun)
- qdel(installed_gun)
- installed_gun = null
- . = ..()
diff --git a/code/game/machinery/porta_turret/portable_turret_control.dm b/code/game/machinery/porta_turret/portable_turret_control.dm
new file mode 100644
index 000000000000..ba70fe3a44b1
--- /dev/null
+++ b/code/game/machinery/porta_turret/portable_turret_control.dm
@@ -0,0 +1,241 @@
+
+////////////////////////
+//Turret Control Panel//
+////////////////////////
+
+/obj/machinery/turretid
+ name = "turret control panel"
+ desc = "Used to control a room's automated defenses."
+ icon = 'icons/obj/machines/turret_control.dmi'
+ icon_state = "control_standby"
+ base_icon_state = "control"
+ density = FALSE
+ req_access = list(ACCESS_AI_UPLOAD)
+ resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+ /// Variable dictating if linked turrets are active and will shoot targets
+ var/enabled = TRUE
+ /// Variable dictating if linked turrets will shoot lethal projectiles
+ var/lethal = FALSE
+ /// Variable dictating if the panel is locked, preventing changes to turret settings
+ var/locked = TRUE
+ /// AI is unable to use this machine if set to TRUE
+ var/ailock = FALSE
+ /// Flags to apply to all linked turrets
+ var/turret_flags = TURRET_FLAG_DEFAULT
+ /// List of all linked turrets
+ var/list/datum/weakref/turret_refs = list()
+ ///id for connecting to additional turrets
+ var/id = ""
+
+/obj/machinery/turretid/Initialize(mapload, ndir = 0, built = 0)
+ . = ..()
+ if(built)
+ setDir(ndir)
+ locked = FALSE
+ pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
+ pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
+ power_change()
+
+/obj/machinery/turretid/Destroy()
+ turret_refs.Cut()
+ return ..()
+
+/obj/machinery/turretid/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
+ id = "[text_ref(port)][id]"
+ RegisterSignal(port, COMSIG_SHIP_DONE_CONNECTING, PROC_REF(late_connect_to_shuttle))
+
+/obj/machinery/turretid/proc/late_connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
+ SIGNAL_HANDLER
+
+ for(var/datum/weakref/ship_gun in port.turret_list)
+ var/obj/machinery/porta_turret/turret_gun = ship_gun.resolve()
+ //skip if it doesn't exist or if the id doesn't match
+ if(turret_gun?.id != id)
+ continue
+
+ turret_refs |= ship_gun
+
+ update_turrets()
+ UnregisterSignal(port, COMSIG_SHIP_DONE_CONNECTING)
+
+/obj/machinery/turretid/examine(mob/user)
+ . += ..()
+ if((machine_stat & (BROKEN|MAINT)))
+ return
+
+ . += span_notice("Alt-click [src] to [locked ? "unlock" : "lock"] it.")
+ . += span_notice("Ctrl-click [src] to [enabled ? "disable" : "enable"] turrets.")
+ . += span_notice("Ctrl-shift-click [src] to set turrets to [lethal ? "stun" : "kill"] mode.")
+
+/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
+ if(machine_stat & BROKEN)
+ return
+
+ if(I.tool_behaviour == TOOL_MULTITOOL)
+ if(!multitool_check_buffer(user, I))
+ return
+ var/obj/item/multitool/M = I
+ if(M.buffer && istype(M.buffer, /obj/machinery/porta_turret))
+ turret_refs |= WEAKREF(M.buffer)
+ to_chat(user, "You link \the [M.buffer] with \the [src].")
+ return
+
+ if(issilicon(user))
+ return attack_hand(user)
+
+ if(istype(I, /obj/item/card/id))
+ toggle_lock(user)
+
+/obj/machinery/turretid/AltClick(mob/user)
+ . = ..()
+ toggle_lock(user)
+
+/obj/machinery/turretid/CtrlClick(mob/user)
+ . = ..()
+ toggle_on(user)
+
+/obj/machinery/turretid/CtrlShiftClick(mob/user)
+ . = ..()
+ toggle_lethal(user)
+
+/obj/machinery/turretid/emag_act(mob/user)
+ if(obj_flags & EMAGGED)
+ return
+ to_chat(user, span_notice("You short out the turret controls' access analysis module."))
+ obj_flags |= EMAGGED
+ locked = FALSE
+
+/obj/machinery/turretid/attack_ai(mob/user)
+ if(!ailock || isAdminGhostAI(user))
+ return attack_hand(user)
+ else
+ to_chat(user, span_warning("There seems to be a firewall preventing you from accessing this device!"))
+
+/obj/machinery/turretid/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ ui = new(user, src, "TurretControl", name)
+ ui.open()
+
+/obj/machinery/turretid/ui_data(mob/user)
+ return list(
+ "locked" = locked,
+ "enabled" = enabled,
+ "lethal" = lethal,
+ "siliconUser" = user.has_unlimited_silicon_privilege && check_ship_ai_access(user),
+ "dangerous_only" = turret_flags & TURRET_FLAG_SHOOT_DANGEROUS_ONLY,
+ "retaliate" = turret_flags & TURRET_FLAG_SHOOT_RETALIATE,
+ "shoot_fauna" = turret_flags & TURRET_FLAG_SHOOT_FAUNA,
+ "shoot_humans" = turret_flags & TURRET_FLAG_SHOOT_HUMANS,
+ "shoot_silicons" = turret_flags & TURRET_FLAG_SHOOT_SILICONS,
+ "only_nonfaction" = turret_flags & TURRET_FLAG_SHOOT_NONFACTION,
+ "only_specificfaction" = turret_flags & TURRET_FLAG_SHOOT_SPECIFIC_FACTION,
+ )
+
+/obj/machinery/turretid/ui_act(action, list/params)
+ . = ..()
+ if(.)
+ return
+
+ switch(action)
+ if("lock")
+ if(!usr.has_unlimited_silicon_privilege)
+ return
+ toggle_lock(usr)
+ return TRUE
+ if("power")
+ toggle_on(usr)
+ if("mode")
+ toggle_lethal(usr)
+ if("toggle_dangerous")
+ turret_flags ^= TURRET_FLAG_SHOOT_DANGEROUS_ONLY
+ if("toggle_retaliate")
+ turret_flags ^= TURRET_FLAG_SHOOT_RETALIATE
+
+
+ if("toggle_fauna")
+ turret_flags ^= TURRET_FLAG_SHOOT_FAUNA
+ if("toggle_humans")
+ turret_flags ^= TURRET_FLAG_SHOOT_HUMANS
+ if("toggle_silicons")
+ turret_flags ^= TURRET_FLAG_SHOOT_SILICONS
+ if("toggle_nonfaction")
+ turret_flags ^= TURRET_FLAG_SHOOT_NONFACTION
+ if("toggle_specificfaction")
+ turret_flags ^= TURRET_FLAG_SHOOT_SPECIFIC_FACTION
+
+ else
+ return
+
+ update_turrets()
+
+/obj/machinery/turretid/proc/toggle_lock(mob/user)
+ if(!user.canUseTopic(src, !issilicon(user)))
+ return
+ if(!allowed(user))
+ to_chat(user, span_alert("Access denied."))
+ return
+ if(obj_flags & EMAGGED || (machine_stat & (BROKEN|MAINT)))
+ to_chat(user, span_warning("The turret control is unresponsive!"))
+ return
+
+ to_chat(user, span_notice("You [locked ? "unlock" : "lock"] the turret control."))
+ locked = !locked
+ update_appearance()
+
+/obj/machinery/turretid/proc/toggle_lethal(mob/user)
+ if(!user.canUseTopic(src, !issilicon(user)))
+ return
+ if(obj_flags & EMAGGED || (machine_stat & (BROKEN|MAINT)))
+ to_chat(user, span_warning("The turret control is unresponsive!"))
+ return
+
+ lethal = !lethal
+ add_hiddenprint(user)
+ log_combat(user, src, "[lethal ? "enabled" : "disabled"] lethals on")
+
+/obj/machinery/turretid/proc/toggle_on(mob/user)
+ if(!user.canUseTopic(src, !issilicon(user)))
+ return
+ if(obj_flags & EMAGGED || (machine_stat & (BROKEN|MAINT)))
+ to_chat(user, span_warning("The turret control is unresponsive!"))
+ return
+
+ enabled = !enabled
+ add_hiddenprint(user)
+ log_combat(user, src, "[enabled ? "enabled" : "disabled"]")
+
+/obj/machinery/turretid/proc/update_turrets()
+ for(var/datum/weakref/turret_ref in turret_refs)
+ var/obj/machinery/porta_turret/turret = turret_ref.resolve()
+ if(!turret)
+ turret_refs -= turret_ref
+ continue
+ turret.set_state(enabled, lethal, turret_flags)
+ update_appearance()
+
+/obj/machinery/turretid/update_icon_state()
+ if(machine_stat & NOPOWER)
+ icon_state = "[base_icon_state]_off"
+ return ..()
+ if (enabled)
+ icon_state = "[base_icon_state]_[lethal ? "kill" : "stun"]"
+ return ..()
+ icon_state = "[base_icon_state]_standby"
+ return ..()
+
+/obj/machinery/turretid/lethal
+ lethal = TRUE
+ turret_flags = TURRET_FLAG_HOSTILE
+
+/obj/machinery/turretid/ship
+ req_ship_access = TRUE
+
+/obj/item/wallframe/turret_control
+ name = "turret control frame"
+ desc = "Used for building turret control panels."
+ icon = 'icons/obj/machines/turret_control.dmi'
+ icon_state = "control_off"
+ result_path = /obj/machinery/turretid
+ custom_materials = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT)
+ inverse_pixel_shift = TRUE
diff --git a/code/game/machinery/porta_turret/portable_turret_cover.dm b/code/game/machinery/porta_turret/portable_turret_cover.dm
deleted file mode 100644
index a1da4cbf6463..000000000000
--- a/code/game/machinery/porta_turret/portable_turret_cover.dm
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/************************
-* PORTABLE TURRET COVER *
-************************/
-
-/obj/machinery/porta_turret_cover
- name = "turret"
- icon = 'icons/obj/turrets.dmi'
- icon_state = "turretCover"
- layer = HIGH_OBJ_LAYER
- density = FALSE
- max_integrity = 80
- var/obj/machinery/porta_turret/parent_turret = null
-
-/obj/machinery/porta_turret_cover/Destroy()
- if(parent_turret)
- parent_turret.cover = null
- parent_turret.invisibility = 0
- parent_turret = null
- return ..()
-
-//The below code is pretty much just recoded from the initial turret object. It's necessary but uncommented because it's exactly the same!
-//>necessary
-//I'm not fixing it because i'm fucking bored of this code already, but someone should just reroute these to the parent turret's procs.
-
-/obj/machinery/porta_turret_cover/attack_ai(mob/user)
- return ..() || parent_turret.attack_ai(user)
-
-/obj/machinery/porta_turret_cover/attack_robot(mob/user)
- return ..() || parent_turret.attack_robot(user)
-
-/obj/machinery/porta_turret_cover/attack_hand(mob/user)
- return ..() || parent_turret.attack_hand(user)
-
-/obj/machinery/porta_turret_cover/attack_ghost(mob/user)
- return ..() || parent_turret.attack_ghost(user)
-
-/obj/machinery/porta_turret_cover/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_WRENCH && !parent_turret.on)
- if(parent_turret.raised)
- return
-
- if(!parent_turret.anchored)
- parent_turret.set_anchored(TRUE)
- to_chat(user, "You secure the exterior bolts on the turret.")
- parent_turret.invisibility = 0
- parent_turret.update_appearance()
- else
- parent_turret.set_anchored(FALSE)
- to_chat(user, "You unsecure the exterior bolts on the turret.")
- parent_turret.invisibility = INVISIBILITY_MAXIMUM
- parent_turret.update_appearance()
- qdel(src)
- return
- if(I.GetID())
- if(parent_turret.allowed(user))
- parent_turret.locked = !parent_turret.locked
- to_chat(user, "Controls are now [parent_turret.locked ? "locked" : "unlocked"].")
- else
- to_chat(user, "Access denied.")
- return
-
- if(I.tool_behaviour == TOOL_MULTITOOL && !parent_turret.locked)
- if(!multitool_check_buffer(user, I))
- return
- var/obj/item/multitool/M = I
- M.buffer = parent_turret
- to_chat(user, "You add [parent_turret] to multitool buffer.")
- return
- return ..()
-
-/obj/machinery/porta_turret_cover/attacked_by(obj/item/I, mob/user)
- parent_turret.attacked_by(I, user)
-
-/obj/machinery/porta_turret_cover/attack_alien(mob/living/carbon/alien/humanoid/user)
- parent_turret.attack_alien(user)
-
-/obj/machinery/porta_turret_cover/attack_animal(mob/living/simple_animal/user)
- parent_turret.attack_animal(user)
-
-/obj/machinery/porta_turret_cover/attack_hulk(mob/living/carbon/human/user)
- return parent_turret.attack_hulk(user)
-
-/obj/machinery/porta_turret_cover/can_be_overridden()
- . = 0
-
-/obj/machinery/porta_turret_cover/emag_act(mob/user)
- if(!(parent_turret.obj_flags & EMAGGED))
- to_chat(user, "You short out [parent_turret]'s threat assessment circuits.")
- visible_message("[parent_turret] hums oddly...")
- parent_turret.obj_flags |= EMAGGED
- parent_turret.on = FALSE
- addtimer(VARSET_CALLBACK(parent_turret, on, TRUE), 4 SECONDS)
diff --git a/code/game/machinery/porta_turret/portable_turret_manual_control.dm b/code/game/machinery/porta_turret/portable_turret_manual_control.dm
new file mode 100644
index 000000000000..7fac7309bfed
--- /dev/null
+++ b/code/game/machinery/porta_turret/portable_turret_manual_control.dm
@@ -0,0 +1,68 @@
+/obj/machinery/porta_turret
+ /// Action button holder for quitting manual control
+ var/datum/action/turret_quit/quit_action
+ /// Action button holder for switching between turret modes when manually controlling
+ var/datum/action/turret_toggle/toggle_action
+ /// Mob that is remotely controlling the turret
+ var/mob/remote_controller
+
+/datum/action/turret_toggle
+ name = "Toggle Mode"
+ icon_icon = 'icons/mob/actions/actions_mecha.dmi'
+ button_icon_state = "mech_cycle_equip_off"
+
+/datum/action/turret_toggle/Trigger()
+ var/obj/machinery/porta_turret/P = target
+ if(!istype(P))
+ return
+ P.set_state(P.on, !P.lethal)
+
+/datum/action/turret_quit
+ name = "Release Control"
+ icon_icon = 'icons/mob/actions/actions_mecha.dmi'
+ button_icon_state = "mech_eject"
+
+/datum/action/turret_quit/Trigger()
+ var/obj/machinery/porta_turret/P = target
+ if(!istype(P))
+ return
+ P.remove_control(FALSE)
+
+/obj/machinery/porta_turret/proc/give_control(mob/A)
+ if(manual_control || !can_interact(A))
+ return FALSE
+ remote_controller = A
+ if(!quit_action)
+ quit_action = new(src)
+ quit_action.Grant(remote_controller)
+ if(!toggle_action)
+ toggle_action = new(src)
+ toggle_action.Grant(remote_controller)
+ remote_controller.reset_perspective(src)
+ remote_controller.click_intercept = src
+ manual_control = TRUE
+ return TRUE
+
+/obj/machinery/porta_turret/proc/remove_control(warning_message = TRUE)
+ if(!manual_control)
+ return FALSE
+ if(remote_controller)
+ if(warning_message)
+ to_chat(remote_controller, "Your uplink to [src] has been severed!")
+ quit_action.Remove(remote_controller)
+ toggle_action.Remove(remote_controller)
+ remote_controller.click_intercept = null
+ remote_controller.reset_perspective()
+ manual_control = FALSE
+ remote_controller = null
+ return TRUE
+
+/obj/machinery/porta_turret/proc/InterceptClickOn(mob/living/caller, params, atom/A)
+ if(!manual_control)
+ return FALSE
+ if(!can_interact(caller))
+ remove_control()
+ return FALSE
+ log_combat(caller,A,"fired with manual turret control at")
+ target(A)
+ return TRUE
diff --git a/code/game/machinery/porta_turret/portable_turret_types.dm b/code/game/machinery/porta_turret/portable_turret_types.dm
new file mode 100644
index 000000000000..53a3fbd3fa12
--- /dev/null
+++ b/code/game/machinery/porta_turret/portable_turret_types.dm
@@ -0,0 +1,340 @@
+
+/obj/machinery/porta_turret/syndicate
+ circuit = /obj/item/circuitboard/machine/turret/ship
+ use_power = NO_POWER_USE
+ scan_range = 9
+ req_access = list(ACCESS_SYNDICATE)
+ lethal = TRUE
+ stun_projectile = /obj/projectile/bullet
+ lethal_projectile = /obj/projectile/bullet
+ lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg'
+ stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg'
+ icon_state = "syndie_off"
+ base_icon_state = "syndie"
+ faction = list(ROLE_SYNDICATE)
+ turret_flags = TURRET_FLAG_HOSTILE
+ desc = "A ballistic machine gun auto-turret."
+
+/obj/machinery/porta_turret/syndicate/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
+
+/obj/machinery/porta_turret/syndicate/energy
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+ stun_projectile = /obj/projectile/energy/electrode
+ stun_projectile_sound = 'sound/weapons/taser.ogg'
+ lethal_projectile = /obj/projectile/beam/laser
+ lethal_projectile_sound = 'sound/weapons/laser.ogg'
+ desc = "An energy blaster auto-turret."
+
+/obj/machinery/porta_turret/syndicate/energy/heavy
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+ stun_projectile = /obj/projectile/energy/electrode
+ stun_projectile_sound = 'sound/weapons/taser.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/heavylaser
+ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ desc = "An energy blaster auto-turret."
+
+/obj/machinery/porta_turret/syndicate/energy/raven
+ stun_projectile = /obj/projectile/beam/laser
+ stun_projectile_sound = 'sound/weapons/laser.ogg'
+ faction = list("neutral","silicon","turret")
+
+/obj/machinery/porta_turret/syndicate/pod
+ integrity_failure = 0.5
+ max_integrity = 40
+ stun_projectile = /obj/projectile/bullet/syndicate_turret
+ lethal_projectile = /obj/projectile/bullet/syndicate_turret
+
+/obj/machinery/porta_turret/ship
+ circuit = /obj/item/circuitboard/machine/turret/ship
+ scan_range = 9
+ req_ship_access = TRUE
+ icon_state = "syndie_off"
+ base_icon_state = "syndie"
+
+/obj/machinery/porta_turret/ship/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
+
+/obj/machinery/porta_turret/ship/examine(mob/user)
+ . = ..()
+ if(in_range(user, src) || isobserver(user))
+ if(!(machine_stat & BROKEN))
+ . += "[src] reports its integrity is currently [round((obj_integrity / max_integrity) * 100)] percent."
+
+/obj/machinery/porta_turret/ship/weak
+ max_integrity = 120
+ integrity_failure = 0.5
+ name = "Old Laser Turret"
+ desc = "A turret built with substandard parts and run down further with age. Still capable of delivering lethal lasers to the odd space carp, but not much else."
+ stun_projectile = /obj/projectile/beam/disabler/weak
+ lethal_projectile = /obj/projectile/beam/weak/penetrator
+ faction = list("neutral", "turret")
+
+/obj/machinery/porta_turret/ship/ballistic
+ stun_projectile = /obj/projectile/bullet/turret/rubber
+ lethal_projectile = /obj/projectile/bullet/turret
+ lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
+ stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg'
+ desc = "A ballistic machine gun auto-turret."
+
+//high rof, range, faster projectile speed
+/* 'Nanotrasen' turrets */
+
+/obj/machinery/porta_turret/ship/nt
+ name = "Sharplite Defense Turret"
+ desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels."
+ faction = list(FACTION_PLAYER_NANOTRASEN, "turret")
+ max_integrity = 160
+ integrity_failure = 0.6
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+ stun_projectile = /obj/projectile/beam/disabler/sharplite
+ lethal_projectile = /obj/projectile/beam/laser/sharplite
+ lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg'
+ stun_projectile_sound = 'sound/weapons/taser2.ogg'
+ shot_delay = 10
+ scan_range = 10
+
+/obj/machinery/porta_turret/ship/nt/light
+ name = "Sharplite LDS"
+ desc = "A cheap and effective 'defensive system' designed by Sharplite for installation on Nanotrasen vessels."
+ stun_projectile = /obj/projectile/beam/disabler/weak/sharplite
+ lethal_projectile = /obj/projectile/beam/laser/light/sharplite
+ lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg'
+ stun_projectile_sound = 'sound/weapons/taser2.ogg'
+
+/obj/machinery/porta_turret/ship/nt/heavy
+ name = "Sharplite Defense Cannon"
+ desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels."
+ lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite
+ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ max_integrity = 250
+
+/obj/machinery/porta_turret/ship/nt/pulse
+ name = "Sharplite Pulse Cannon"
+ desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels."
+ lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret
+ lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg'
+ max_integrity = 250
+
+/* Syndicate Turrets */
+
+/obj/machinery/porta_turret/ship/syndicate
+ faction = list(FACTION_PLAYER_SYNDICATE, "turret")
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+
+/obj/machinery/porta_turret/ship/syndicate/weak
+ name = "Light Laser Turret"
+ desc = "A low powered turret designed by the Gorlex Maurauders during the ICW. Effectively weaponizes mining equipment."
+ stun_projectile = /obj/projectile/beam/disabler/weak
+ lethal_projectile = /obj/projectile/beam/weak/penetrator
+ icon_state = "syndie_off"
+ base_icon_state = "syndie"
+
+/obj/machinery/porta_turret/ship/syndicate/heavy
+ name = "Heavy Laser Turret"
+ desc = "Produced by Cybersun, this turret is a duel mount of a propietary heavy laser, and crowd control taser system."
+ stun_projectile = /obj/projectile/energy/electrode
+ stun_projectile_sound = 'sound/weapons/taser.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/heavylaser
+ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ max_integrity = 300
+
+/* New Gorlex Republic Turrets */
+// Midline ballistic turrets
+
+/obj/machinery/porta_turret/ship/ngr
+ name = "Oasis Turret"
+ desc = "A turret manufactured by the New Gorlex Republic for its ships and installations. Proudly manufactured within the nation!"
+ stun_projectile = /obj/projectile/bullet/c57x39mm/rubber
+ stun_projectile_sound = 'sound/weapons/gun/smg/sidewinder.ogg'
+ lethal_projectile = /obj/projectile/bullet/c57x39mm
+ lethal_projectile_sound = 'sound/weapons/gun/smg/sidewinder.ogg'
+ faction = list(FACTION_NGR, FACTION_PLAYER_SYNDICATE, "turret") //player_syndicate is just to be safe
+
+/obj/machinery/porta_turret/ship/ngr/light
+ name = "Sonoran Turret"
+ desc = "A light turret manufactured by the New Gorlex Republic for its ships and installations. Proudly manufactured within the Nation, using locally produced munitions!"
+ stun_projectile = /obj/projectile/bullet/c45/rubber
+ stun_projectile_sound = 'sound/weapons/gun/smg/cobra.ogg'
+ lethal_projectile = /obj/projectile/bullet/c45
+ lethal_projectile_sound = 'sound/weapons/gun/smg/cobra.ogg'
+ scan_range = 7
+ shot_delay = 10
+
+/obj/machinery/porta_turret/ship/ngr/heavy
+ name = "Cliff Turret"
+ desc = "A heavy turret manufactured by the New Gorlex Republic for its ships and installations. Has a reputation of being extremely dangerous."
+ stun_projectile = /obj/projectile/bullet/a65clip/rubber
+ stun_projectile_sound = 'sound/weapons/gun/sniper/cmf90.ogg'
+ lethal_projectile = /obj/projectile/bullet/a65clip
+ lethal_projectile_sound = 'sound/weapons/gun/sniper/cmf90.ogg'
+ scan_range = 14
+ shot_delay = 30
+
+
+/* Inteq Turrets */
+//slower rof, higher damage + range
+
+/obj/machinery/porta_turret/ship/inteq
+ name = "Vanguard Turret"
+ desc = "A turret designed by IRMG engineers for defending ships from hostile flora, fauna, and people (and Elzousa, which count as flora and people)."
+ stun_projectile = /obj/projectile/bullet/a762_40/rubber
+ stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
+ lethal_projectile = /obj/projectile/bullet/a762_40
+ lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg'
+ scan_range = 9
+ shot_delay = 20
+ integrity_failure = 0.4
+ faction = list(FACTION_PLAYER_INTEQ, "turret")
+
+/obj/machinery/porta_turret/ship/inteq/light
+ name = "Close-In Vanguard Turret"
+ desc = "A light turret designed by IRMG engineers for the the task of defending from close-in encounters. Low power, high speed."
+ stun_projectile = /obj/projectile/bullet/c10mm/rubber
+ stun_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
+ lethal_projectile = /obj/projectile/bullet/c10mm
+ lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
+ scan_range = 5
+ shot_delay = 5
+
+/obj/machinery/porta_turret/ship/inteq/heavy
+ name = "Vanguard Overwatch Turret"
+ desc = "A turret designed by IRMG engineers to provide long range defensive fire on their installations. Has a habit of leaving big holes."
+ stun_projectile = /obj/projectile/bullet/a308/rubber
+ stun_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg'
+ lethal_projectile = /obj/projectile/bullet/a308
+ lethal_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg'
+ scan_range = 12
+ shot_delay = 20
+
+/* Solcon Turrets */
+
+/obj/machinery/porta_turret/ship/solgov
+ faction = list(FACTION_PLAYER_SOLCON, "turret")
+
+/* Pan Gezena Federation Turrets */
+//midline but hitscan
+
+/obj/machinery/porta_turret/ship/pgf
+ name = "Etherbor Defensive Mount"
+ desc = "A less portable Etherbor offering, the EDM is a self-directed linkage of energy weapons, designed to keep intruders away from Gezenan vessels."
+ faction = list(FACTION_PLAYER_GEZENA, "Turret")
+ stun_projectile = /obj/projectile/beam/hitscan/disabler
+ stun_projectile_sound = 'sound/weapons/gun/energy/kalixpistol.ogg'
+ lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf/assault
+ lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg'
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+ max_integrity = 250
+ integrity_failure = 0.4
+
+/obj/machinery/porta_turret/ship/pgf/light
+ name = "Etherbor Deterrent System"
+ desc = "A light turret manufactured by Etherbor. It offers a lightweight assembly of energy weapons to accost nearby foes."
+ lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf
+ lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg'
+
+/obj/machinery/porta_turret/ship/pgf/heavy
+ name = "Etherbor Point-Defense System"
+ desc = "A high-powered defensive turret manufactured by Etherbor. The EPDS contains heavy energy weapons linked in tandem."
+ scan_range = 12
+ stun_projectile = /obj/projectile/beam/hitscan/disabler/heavy
+ stun_projectile_sound = 'sound/weapons/gun/energy/kalixpistol.ogg'
+ lethal_projectile = /obj/projectile/beam/hitscan/kalix/pgf/sniper //fwoom
+ lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg'
+
+///CLIP Turrets
+
+//high damage low range
+
+/obj/machinery/porta_turret/ship/clip
+ name = "Clover Mintaka"
+ desc = "Clover Photonic's offering for the Confederated League's 476FS \"Defense System\" competition, the Mintaka (and its sister systems, the Alnitak and Ori) handily beat out the Lunatex \"Vigil\" line during the final round of testing, and earned a prestigous contract."
+ faction = list(FACTION_PLAYER_MINUTEMAN, "Turret")
+ stun_projectile = /obj/projectile/beam/disabler
+ stun_projectile_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/assault
+ lethal_projectile_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+
+ scan_range = 8
+ shot_delay = 10
+ max_integrity = 200
+ integrity_failure = 0.3
+
+/obj/machinery/porta_turret/ship/clip/light
+ name = "Clover Alnitak"
+ desc = "Clover Photonic's light turret system, unveiled as part of Clover's defense line-up in the early 470s. While lacking the punch of its sister systems, it still presents a hassle to circumvent."
+ stun_projectile = /obj/projectile/beam/disabler
+ stun_projectile_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/light
+ lethal_projectile_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+
+ scan_range = 6
+ shot_delay = 10
+ max_integrity = 200
+ integrity_failure = 0.4
+
+/obj/machinery/porta_turret/ship/clip/heavy
+ name = "Clover Ori"
+ desc = "Clover Photonic's heaviest entry in the Confederated League's 476FS \"Defense System\" competition, the Ori's results demolished the handily beat out the Lunatex \"Vigil Sword\" during testing, earning better marks on durability, effectiveness, and reaction rate."
+ stun_projectile = /obj/projectile/beam/disabler
+ stun_projectile_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/heavylaser/assault
+ lethal_projectile_sound = 'sound/weapons/gun/laser/e40_las.ogg'
+
+ scan_range = 10
+ shot_delay = 20
+ max_integrity = 300
+ integrity_failure = 0.3
+
+
+/// Frontiersmen Turrets
+
+// fast and spitty
+
+/obj/machinery/porta_turret/ship/frontiersmen
+ name = "Spitter Turret"
+ desc = "A juryrigged mishmash of a 9mm SMG and targetting system. Stand clear!"
+ faction = list(FACTION_FRONTIER, "Turret")
+ subsystem_type = /datum/controller/subsystem/processing/fastprocess
+ integrity_failure = 0.6
+ max_integrity = 180
+
+ icon_state = "standard_lethal"
+ base_icon_state = "standard"
+
+ stun_projectile = /obj/projectile/bullet/c9mm
+ stun_projectile_sound = 'sound/weapons/gun/smg/spitter.ogg'
+ lethal_projectile = /obj/projectile/bullet/c9mm
+ lethal_projectile_sound = 'sound/weapons/gun/smg/spitter.ogg'
+ shot_delay = 2
+ scan_range = 6
+
+ turret_flags = TURRET_FLAG_HOSTILE
+
+/obj/machinery/porta_turret/ship/frontiersmen/light
+ name = "Pounder Turret"
+ desc = "A low caliber SMG with an atrociously high cycle rate, frankensteined together with a targetting assembly."
+ stun_projectile = /obj/projectile/bullet/c22lr
+ stun_projectile_sound = 'sound/weapons/gun/smg/pounder.ogg'
+ lethal_projectile = /obj/projectile/bullet/c22lr
+ lethal_projectile_sound = 'sound/weapons/gun/smg/pounder.ogg'
+ shot_delay = 1
+
+/obj/machinery/porta_turret/ship/frontiersmen/heavy
+ name = "Mulcher Turret"
+ desc = "An abombination made out of the components of a Shredder and an automatic targetting system. Careful now."
+ stun_projectile = /obj/projectile/bullet/slug/beanbag
+ stun_projectile_sound = 'sound/weapons/gun/hmg/shredder.ogg'
+ lethal_projectile = /obj/projectile/bullet/slug
+ lethal_projectile_sound = 'sound/weapons/gun/hmg/shredder.ogg'
+ shot_delay = 3
+ scan_range = 8
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 1e1718623816..a008822e8f08 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -3,7 +3,7 @@
icon = 'icons/obj/stationobjs.dmi'
icon_state = "recharger"
base_icon_state = "recharger"
- desc = "A charging dock for energy based weaponry."
+ desc = "A charging dock for energy based weaponry. However someones modified it to work with most things with cells."
use_power = IDLE_POWER_USE
idle_power_usage = IDLE_DRAW_MINIMAL
active_power_usage = ACTIVE_DRAW_LOW
@@ -74,7 +74,7 @@
G.play_tool_sound(src)
return
- var/allowed = is_type_in_typecache(G, allowed_devices)
+ var/allowed = G.get_cell()
if(allowed)
if(anchored)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index ed3a35c1e228..c33b3ea8bdcc 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -302,7 +302,7 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
if(href_list["send"] && message && to_department && priority)
- var/radio_freq = FREQ_COMMAND
+ var/radio_freq = FREQ_EMERGENCY
var/datum/signal/subspace/messaging/rc/signal = new(src, list(
"sender" = department,
diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm
index a36bf79a41b3..098cd5ea3868 100644
--- a/code/game/machinery/roulette_machine.dm
+++ b/code/game/machinery/roulette_machine.dm
@@ -235,7 +235,7 @@
var/remaining_payout = payout
- my_card.registered_account.adjust_money(-payout)
+ my_card.registered_account.adjust_money(-payout, CREDIT_LOG_WITHDRAW)
for(var/cash_type in cash_values) //Loop through all bundles from most valuable to least valuable. Try to give as much of that bundle as possible until you can't anymore, then move to the next.
var/value = cash_values[cash_type] //Change this to use initial value once we change to the right bundle
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 47db5ce6d0ef..5dc0117b634c 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -43,27 +43,6 @@
if(.) //damage was dealt
new /obj/effect/temp_visual/impact_effect/ion(loc)
-/obj/structure/emergency_shield/sanguine
- name = "sanguine barrier"
- desc = "A potent shield summoned by cultists to defend their rites."
- icon_state = "shield-red"
- max_integrity = 60
-
-/obj/structure/emergency_shield/sanguine/emp_act(severity)
- return
-
-/obj/structure/emergency_shield/invoker
- name = "Invoker's Shield"
- desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals."
- color = "#FF0000"
- max_integrity = 20
- mouse_opacity = MOUSE_OPACITY_TRANSPARENT
- layer = ABOVE_MOB_LAYER
-
-/obj/structure/emergency_shield/invoker/emp_act(severity)
- return
-
-
/obj/machinery/shieldgen
name = "anti-breach shielding projector"
desc = "Used to seal minor hull breaches."
@@ -226,6 +205,7 @@
var/locked = TRUE
var/shield_range = 8
var/shocked = FALSE
+ var/crashing = FALSE
var/obj/structure/cable/attached // the attached cable
/obj/machinery/power/shieldwallgen/xenobiologyaccess //use in xenobiology containment
@@ -273,16 +253,25 @@
if(!active_power_usage || surplus() >= active_power_usage)
add_load(active_power_usage)
else
- visible_message(span_danger("The [src.name] shuts down due to lack of power!"), "If this message is ever seen, something is wrong.",span_hear("You hear heavy droning fade out."))
- active = FALSE
- log_game("[src] deactivated due to lack of power at [AREACOORD(src)]")
- for(var/direction in GLOB.cardinals)
- cleanup_field(direction)
+ if(!crashing)
+ balloon_alert_to_viewers("[src] blares an alarm!")
+ playsound(src, 'sound/machines/cryo_warning.ogg', 100)
+ crashing = TRUE
+ addtimer(CALLBACK(src, PROC_REF(kill_shield)), 6 SECONDS)
+
else
for(var/direction in GLOB.cardinals)
cleanup_field(direction)
update_appearance()
+/obj/machinery/power/shieldwallgen/proc/kill_shield()
+ visible_message(span_danger("The [src.name] shuts down due to lack of power!"), "If this message is ever seen, something is wrong.",span_hear("You hear heavy droning fade out."))
+ log_game("[src] deactivated due to lack of power at [AREACOORD(src)]")
+ active = FALSE
+ crashing = FALSE
+ for(var/direction in GLOB.cardinals)
+ cleanup_field(direction)
+
/obj/machinery/power/shieldwallgen/update_icon_state()
if(active)
icon_state = initial(icon_state) + "_on"
diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm
index 61755aa8be54..7ef4f432db79 100644
--- a/code/game/machinery/shuttle/shuttle_heater.dm
+++ b/code/game/machinery/shuttle/shuttle_heater.dm
@@ -363,8 +363,6 @@
// adds each oxidizer's power to the total oxidation max
if(GAS_O2)
oxidation_power += O2_OXIDATION_VALUE * gas_amount
- if(GAS_NITRYL)
- oxidation_power += NITRYL_OXIDATION_VALUE * gas_amount
if(GAS_NITROUS) //burning nitrous cools down the heater's main tank, just like it cools the intake on real cars.
oxidation_power += NITROUS_OXIDATION_VALUE * gas_amount
var/heat_capacity = gas_amount * NITROUS_COOLING_MULTIPIER
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index f6be0b0a036e..abba1da51704 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -99,11 +99,11 @@
/obj/machinery/suit_storage_unit/security
suit_type = /obj/item/clothing/suit/space/hardsuit/security
- mask_type = /obj/item/clothing/mask/gas/sechailer
+ mask_type = /obj/item/clothing/mask/gas/vigilitas
/obj/machinery/suit_storage_unit/hos
suit_type = /obj/item/clothing/suit/space/hardsuit/security/hos
- mask_type = /obj/item/clothing/mask/gas/sechailer
+ mask_type = /obj/item/clothing/mask/gas/vigilitas
storage_type = /obj/item/tank/internals/oxygen
/obj/machinery/suit_storage_unit/mining
@@ -165,7 +165,7 @@
/obj/machinery/suit_storage_unit/independent/security
suit_type = /obj/item/clothing/suit/space/hardsuit/security/independent
- mask_type = /obj/item/clothing/mask/gas/sechailer
+ mask_type = /obj/item/clothing/mask/gas
/obj/machinery/suit_storage_unit/independent/engineering
suit_type = /obj/item/clothing/suit/space/engineer
@@ -182,6 +182,13 @@
helmet_type = /obj/item/clothing/head/helmet/space/pilot/random
mask_type = /obj/item/clothing/mask/breath
+/obj/machinery/suit_storage_unit/minutemen
+ suit_type = /obj/item/clothing/suit/space/hardsuit/clip_patroller
+ mask_type = /obj/item/clothing/mask/breath
+
+/obj/machinery/suit_storage_unit/minutemen/spotter
+ suit_type = /obj/item/clothing/suit/space/hardsuit/clip_spotter
+
//End shiptest suits
/obj/machinery/suit_storage_unit/open
@@ -450,7 +457,7 @@
mob_occupant.adjustFireLoss(rand(20, 36))
else
mob_occupant.adjustFireLoss(rand(10, 16))
- mob_occupant.emote("scream")
+ mob_occupant.force_scream()
addtimer(CALLBACK(src, PROC_REF(cook)), 50)
else
uv_cycles = (BASE_UV_CYCLES - lasers_bonus)
@@ -659,7 +666,7 @@
else if(istype(AM, /obj/item/mod/control) && !storage)
AM.forceMove(src)
mod = AM
- else if(istype(AM, /obj/item) && !storage)
+ else if(istype(AM, /obj/item) && !AM.anchored && !storage)
AM.forceMove(src)
storage = AM
update_appearance()
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 12085b7d62d4..4d37127659cd 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -144,11 +144,3 @@
/obj/item/sbeacondrop/heavylaserturret
desc = "A label on it reads: Warning: Activating this device will send a heavy laser turret to your location."
droptype = /obj/machinery/porta_turret/syndicate/energy/heavy
-
-/obj/item/sbeacondrop/penetratorturret
- desc = "A label on it reads: Warning: Activating this device will send a penetrator turret to your location."
- droptype = /obj/machinery/porta_turret/syndicate/shuttle
-
-/obj/item/sbeacondrop/constructshell
- desc = "A label on it reads: Warning: Activating this device will send a Nar'sian construct shell to your location."
- droptype = /obj/structure/constructshell
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index b3bd14af5a07..7df56b390f1b 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -410,14 +410,6 @@
for(var/obj/item/reagent_containers/glass/G in beakers)
reactants += G.reagents
- for(var/obj/item/slime_extract/S in beakers)
- if(S.Uses)
- for(var/obj/item/reagent_containers/glass/G in beakers)
- G.reagents.trans_to(S, G.reagents.total_volume)
-
- if(S && S.reagents && S.reagents.total_volume)
- reactants += S.reagents
-
if(!chem_splash(get_turf(src), spread_range, reactants, temp_boost))
playsound(loc, 'sound/items/screwdriver2.ogg', 50, TRUE)
return // The Explosion didn't do anything. No need to log, or disappear.
@@ -460,16 +452,9 @@
for(var/obj/item/grenade/chem_grenade/G in src)
if(istype(G, /obj/item/grenade/chem_grenade/large))
- var/obj/item/grenade/chem_grenade/large/LG = G
max_beakers += 1 // Adding two large grenades only allows for a maximum of 7 beakers.
spread_range += 2 // Extra range, reduced density.
temp_boost += 50 // maximum of +150K blast using only large beakers. Not enough to self ignite.
- for(var/obj/item/slime_extract/S in LG.beakers) // And slime cores.
- if(beakers.len < max_beakers)
- beakers += S
- S.forceMove(src)
- else
- S.forceMove(drop_location())
if(istype(G, /obj/item/grenade/chem_grenade/cryo))
spread_range -= 1 // Reduced range, but increased density.
diff --git a/code/game/machinery/teambuilder.dm b/code/game/machinery/teambuilder.dm
index 153035a39374..4c30bbdc3a4a 100644
--- a/code/game/machinery/teambuilder.dm
+++ b/code/game/machinery/teambuilder.dm
@@ -23,7 +23,7 @@
/obj/machinery/teambuilder/examine_more(mob/user)
. = ..()
- . += "You see a hastily written note on the side, it says '1215-1217, PICK A SIDE'."
+ . += span_notice("You see a hastily written note on the side, it says '1215-1217, PICK A SIDE'.")
/obj/machinery/teambuilder/proc/on_entered(datum/source, atom/movable/AM, oldloc)
SIGNAL_HANDLER
@@ -43,11 +43,9 @@
desc = "A machine that, when passed, colors you based on the color of your team. Go red team!"
color = "#ff0000"
team_color = "#ff0000"
- team_radio = FREQ_CTF_RED
/obj/machinery/teambuilder/blue
name = "Teambuilding Machine (Blue)"
desc = "A machine that, when passed, colors you based on the color of your team. Go blue team!"
color = "#0000ff"
team_color = "#0000ff"
- team_radio = FREQ_CTF_BLUE
diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm
index ceee4d189a2d..74e7ab67c72a 100644
--- a/code/game/machinery/telecomms/broadcasting.dm
+++ b/code/game/machinery/telecomms/broadcasting.dm
@@ -155,14 +155,6 @@
if(R.can_receive(frequency, map_zones))
radios += R
- // [CELADON-REMOVE] - CELADON_RADIO_SYNDICATE - Чтобы не слышали всех
- // Syndicate radios can hear all well-known radio channels
- // if (num2text(frequency) in GLOB.reverseradiochannels)
- // for(var/obj/item/radio/R in GLOB.all_radios["[FREQ_SYNDICATE]"])
- // if(R.can_receive(FREQ_SYNDICATE, map_zones))
- // radios |= R
- // [/CELADON-REMOVE]
-
if (TRANSMISSION_RADIO)
// Only radios not currently in subspace mode
for(var/obj/item/radio/R in GLOB.all_radios["[frequency]"])
diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm
index 13cefd7c9e77..d79858c16bfc 100644
--- a/code/game/machinery/telecomms/computers/logbrowser.dm
+++ b/code/game/machinery/telecomms/computers/logbrowser.dm
@@ -169,7 +169,7 @@
temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -"
else
- for(var/obj/machinery/telecomms/server/T in urange(25, src))
+ for(var/obj/machinery/telecomms/server/T in urange(40, src))
if(T.network == network)
servers.Add(T)
diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm
index 202a9c8a620d..47bbb494fb80 100644
--- a/code/game/machinery/telecomms/machine_interactions.dm
+++ b/code/game/machinery/telecomms/machine_interactions.dm
@@ -124,14 +124,10 @@
tempfreq = sanitize_frequency(text2num(params["value"]) * 10, TRUE) //WS Edit - add frequency filter fix
if("freq")
var/newfreq = tempfreq //WS Edit - add frequency filter fix
- if(newfreq == FREQ_SYNDICATE)
- to_chat(operator, "Error: Interference preventing filtering frequency: \"[newfreq / 10] GHz\"")
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, TRUE)
- else
- if(!(newfreq in freq_listening) && newfreq < 10000)
- freq_listening.Add(newfreq)
- log_game("[key_name(operator)] added frequency [newfreq] for [src] at [AREACOORD(src)].")
- . = TRUE
+ if(!(newfreq in freq_listening) && newfreq < 10000)
+ freq_listening.Add(newfreq)
+ log_game("[key_name(operator)] added frequency [newfreq] for [src] at [AREACOORD(src)].")
+ . = TRUE
if("delete")
freq_listening.Remove(params["value"])
log_game("[key_name(operator)] added removed frequency [params["value"]] for [src] at [AREACOORD(src)].")
diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm
index 6428456d1614..a4d19e61ac47 100644
--- a/code/game/machinery/telecomms/machines/bus.dm
+++ b/code/game/machinery/telecomms/machines/bus.dm
@@ -23,7 +23,7 @@
if(!istype(signal) || !is_freq_listening(signal))
return
- if(change_frequency && signal.frequency != FREQ_SYNDICATE)
+ if(change_frequency)
signal.frequency = change_frequency
if(!istype(machine_from, /obj/machinery/telecomms/processor) && machine_from != src) // Signal must be ready (stupid assuming machine), let's send it
@@ -50,7 +50,7 @@
/obj/machinery/telecomms/bus/preset_one
id = "General Communications Bus"
network = "tcommsat"
- freq_listening = list(FREQ_COMMAND, FREQ_COMMON)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_COMMON)
autolinkers = list("processor1", "command", "common", "messaging", "receiverA")
/obj/machinery/telecomms/bus/preset_two
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index d9f927a7c355..b1a588f9c6fb 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -16,10 +16,13 @@
active_power_usage = ACTIVE_DRAW_MINIMAL
armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
var/obj/item/stored
+ var/empty = FALSE
/obj/machinery/blackbox_recorder/Initialize()
. = ..()
- stored = new /obj/item/blackbox(src)
+ if(!empty)
+ stored = new /obj/item/blackbox(src)
+ update_appearance()
/obj/machinery/blackbox_recorder/attack_hand(mob/living/user)
. = ..()
diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm
index 33b0bc7028ec..7e68e535c93e 100644
--- a/code/game/machinery/telecomms/machines/receiver.dm
+++ b/code/game/machinery/telecomms/machines/receiver.dm
@@ -48,7 +48,7 @@
id = "Receiver A"
network = "tcommsat"
autolinkers = list("receiverA") // link to relay
- freq_listening = list(FREQ_SOLGOV, FREQ_NANOTRASEN, FREQ_MINUTEMEN, FREQ_COMMAND, FREQ_COMMON)
+ freq_listening = list(FREQ_SOLGOV, FREQ_NANOTRASEN, FREQ_MINUTEMEN, FREQ_EMERGENCY, FREQ_COMMON)
//--PRESET RIGHT--//
diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm
index 763c42dbbf9c..9e40b5a7351f 100644
--- a/code/game/machinery/telecomms/machines/relay.dm
+++ b/code/game/machinery/telecomms/machines/relay.dm
@@ -74,37 +74,37 @@
autolinkers = list("r_relay")
/obj/machinery/telecomms/relay/preset/nanotrasen
- freq_listening = list(FREQ_COMMAND, FREQ_NANOTRASEN)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_NANOTRASEN)
id = "Nanotrasen Relay"
network = "nt_commnet"
/obj/machinery/telecomms/relay/preset/inteq
- freq_listening = list(FREQ_COMMAND, FREQ_INTEQ)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_INTEQ)
id = "IRMG Relay"
network = "irmg_commnet"
/obj/machinery/telecomms/relay/preset/minutemen
- freq_listening = list(FREQ_COMMAND, FREQ_MINUTEMEN)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_MINUTEMEN)
id = "CLIP Relay"
network = "clip_commnet"
/obj/machinery/telecomms/relay/preset/solgov
- freq_listening = list(FREQ_COMMAND, FREQ_SOLGOV)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_SOLGOV)
id = "SolGov Relay"
network = "solgov_commnet"
/obj/machinery/telecomms/relay/preset/syndicate
- freq_listening = list(FREQ_COMMAND, FREQ_SYNDICATE)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_SYNDICATE)
id = "Syndicate Relay"
network = "synd_commnet"
/obj/machinery/telecomms/relay/preset/frontiersmen
- freq_listening = list(FREQ_COMMAND, FREQ_PIRATE)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_PIRATE)
id = "Frontiersmen Relay"
network = "frontier_commnet"
/obj/machinery/telecomms/relay/preset/pgf
- freq_listening = list(FREQ_COMMAND, FREQ_PGF)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_PGF)
id = "PGF Relay"
network = "pgf_commnet"
diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm
index 5607b6bbec8c..e2cb7addcd8d 100644
--- a/code/game/machinery/telecomms/machines/server.dm
+++ b/code/game/machinery/telecomms/machines/server.dm
@@ -116,7 +116,7 @@
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
- freq_listening = list(FREQ_COMMAND, FREQ_COMMON)
+ freq_listening = list(FREQ_EMERGENCY, FREQ_COMMON)
autolinkers = list("command")
/obj/machinery/telecomms/server/presets/common/birdstation/Initialize()
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index da5a006de0b5..b75f97102904 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -85,7 +85,7 @@
update_appearance()
playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE)
- H.emote("scream") // It is painful
+ H.force_scream() // It is painful
H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though.
// Sleep for a couple of ticks to allow the human to see the pain
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index 4f32fe1d2d3d..6fe9ec2a653f 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -9,7 +9,6 @@ GLOBAL_LIST_INIT(dye_registry, list(
DYE_PURPLE = /obj/item/clothing/under/color/lightpurple,
DYE_BLACK = /obj/item/clothing/under/color/black,
DYE_WHITE = /obj/item/clothing/under/color/white,
- DYE_RAINBOW = /obj/item/clothing/under/color/rainbow,
DYE_MIME = /obj/item/clothing/under/rank/civilian/mime,
DYE_CLOWN = /obj/item/clothing/under/rank/civilian/clown,
DYE_CHAP = /obj/item/clothing/under/rank/civilian/chaplain,
@@ -33,7 +32,6 @@ GLOBAL_LIST_INIT(dye_registry, list(
DYE_PURPLE = /obj/item/clothing/under/color/jumpskirt/lightpurple,
DYE_BLACK = /obj/item/clothing/under/color/jumpskirt/black,
DYE_WHITE = /obj/item/clothing/under/color/jumpskirt/white,
- DYE_RAINBOW = /obj/item/clothing/under/color/jumpskirt/rainbow,
DYE_MIME = /obj/item/clothing/under/rank/civilian/mime/skirt,
DYE_CHAP = /obj/item/clothing/under/rank/civilian/chaplain/skirt,
DYE_QM = /obj/item/clothing/under/rank/cargo/qm/skirt,
diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm
index 0ebc11b39558..04f3272cce1b 100644
--- a/code/game/mecha/combat/combat.dm
+++ b/code/game/mecha/combat/combat.dm
@@ -2,10 +2,11 @@
force = 30
internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_MECH_SECURITY)
internal_damage_threshold = 50
- armor = list("melee" = 30, "bullet" = 30, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
+ armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 20, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi'
destruction_sleep_duration = 40
exit_delay = 40
+ repair_multiplier = 0.75
/obj/mecha/combat/restore_equipment()
mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi'
diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm
index a42e1e29f7ee..3e47ebe80e7c 100644
--- a/code/game/mecha/combat/durand.dm
+++ b/code/game/mecha/combat/durand.dm
@@ -1,12 +1,13 @@
/obj/mecha/combat/durand
- desc = "An aging combat exosuit utilized by the Nanotrasen corporation. Originally developed to combat hostile alien lifeforms."
+ desc = "An aging and extremely well-armored combat exosuit utilized by the Nanotrasen corporation. Originally developed to combat hostile alien lifeforms."
name = "\improper Durand"
icon_state = "durand"
step_in = 4
dir_in = 1 //Facing North.
- max_integrity = 400
- deflect_chance = 20
- armor = list("melee" = 40, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100)
+ max_integrity = 300
+ deflect_chance = 15
+ repair_multiplier = 0.5
+ armor = list("melee" = 50, "bullet" = 75, "laser" = 50, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100)
max_temperature = 30000
infra_luminosity = 8
force = 40
@@ -18,11 +19,12 @@
/obj/mecha/combat/durand/clip
- desc = "An aging combat exosuit appropriated from abandoned Nanotrasen facilities, now supplied to the CMM-BARD anti-xenofauna division. The defence grid has been modified to disperse controlled electric shocks on contact, at the cost of its ability to block ranged projectiles."
+ desc = "An aging combat exosuit specially modified for the CMM-BARD anti-xenofauna division. Features improved close-combat armor and a modified defence grid able to electrocute melee attackers, at the cost of its ability to block projectiles."
name = "\improper Paladin"
icon_state = "clipdurand"
+ armor = list("melee" = 75, "bullet" = 50, "laser" = 50, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100)
+ deflect_chance = 20
wreckage = /obj/structure/mecha_wreckage/durand/clip
- armor = list("melee" = 40, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100)
shield_passive_drain = 0
shield_type = /obj/durand_shield/clip
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index 02f66b54236a..a22a8dd4706d 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -4,9 +4,9 @@
icon_state = "gygax"
step_in = 3
dir_in = 1 //Facing North.
- max_integrity = 250
+ max_integrity = 300
deflect_chance = 5
- armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
+ armor = list("melee" = 40, "bullet" = 60, "laser" = 40, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
max_temperature = 25000
leg_overload_coeff = 80
infra_luminosity = 6
@@ -22,20 +22,10 @@
mechstep(direction) //agile mechs get to move and turn in the same step
/obj/mecha/combat/gygax/dark
- desc = "A lightweight exosuit, painted in a dark scheme. This model appears to have some modifications."
+ desc = "A lightweight exosuit, painted in a dark scheme."
name = "\improper Dark Gygax"
icon_state = "darkgygax"
- max_integrity = 300
- deflect_chance = 20
- armor = list("melee" = 40, "bullet" = 40, "laser" = 50, "energy" = 35, "bomb" = 20, "bio" = 0, "rad" =20, "fire" = 100, "acid" = 100)
- max_temperature = 35000
- leg_overload_coeff = 70
- force = 30
- operation_req_access = list(ACCESS_SYNDICATE)
- internals_req_access = list(ACCESS_SYNDICATE)
wreckage = /obj/structure/mecha_wreckage/gygax/dark
- max_equip = 5
- destruction_sleep_duration = 20
/obj/mecha/combat/gygax/dark/loaded/Initialize()
. = ..()
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index 825d5e24a1b8..b35cc1e370ff 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -1,11 +1,11 @@
/obj/mecha/combat/marauder
- desc = "Heavy-duty, combat exosuit, developed after the Durand model. Rarely found among civilian populations."
+ desc = "A heavy-duty combat exosuit that improves on the Durand model in nearly every way. Rarely found among civilian populations."
name = "\improper Marauder"
icon_state = "marauder"
step_in = 5
- max_integrity = 500
- deflect_chance = 25
- armor = list("melee" = 50, "bullet" = 55, "laser" = 40, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 60, "fire" = 100, "acid" = 100)
+ max_integrity = 400
+ deflect_chance = 20
+ armor = list("melee" = 50, "bullet" = 75, "laser" = 50, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 60, "fire" = 100, "acid" = 100)
max_temperature = 60000
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
infra_luminosity = 3
@@ -43,7 +43,7 @@
max_ammo()
/obj/mecha/combat/marauder/seraph
- desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
+ desc = "A heavy-duty command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
name = "\improper Seraph"
icon_state = "seraph"
operation_req_access = list(ACCESS_CENT_SPECOPS)
diff --git a/code/game/mecha/combat/reticence.dm b/code/game/mecha/combat/reticence.dm
deleted file mode 100644
index b63487ca17a5..000000000000
--- a/code/game/mecha/combat/reticence.dm
+++ /dev/null
@@ -1,28 +0,0 @@
-/obj/mecha/combat/reticence
- desc = "A silent, fast, and nigh-invisible miming exosuit. Popular among mimes and mime assassins."
- name = "\improper reticence"
- icon_state = "reticence"
- step_in = 2
- dir_in = 1 //Facing North.
- max_integrity = 100
- deflect_chance = 3
- armor = list("melee" = 25, "bullet" = 20, "laser" = 30, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
- max_temperature = 15000
- wreckage = /obj/structure/mecha_wreckage/reticence
- operation_req_access = list(ACCESS_THEATRE)
- internals_req_access = list(ACCESS_MECH_SCIENCE, ACCESS_THEATRE)
- add_req_access = 0
- internal_damage_threshold = 25
- max_equip = 2
- base_step_energy_drain = 8
- color = "#87878715"
- stepsound = null
- turnsound = null
-
-
-/obj/mecha/combat/reticence/loaded/Initialize()
- . = ..()
- var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
- ME.attach(src)
- ME = new /obj/item/mecha_parts/mecha_equipment/rcd //HAHA IT MAKES WALLS GET IT
- ME.attach(src)
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index b7f225306b01..7ee6b2a2d2df 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -97,28 +97,29 @@
return 0
/obj/item/mecha_parts/mecha_equipment/proc/start_cooldown()
- set_ready_state(0)
+ set_ready_state(FALSE)
chassis.use_power(energy_drain)
- addtimer(CALLBACK(src, PROC_REF(set_ready_state), 1), equip_cooldown)
+ addtimer(CALLBACK(src, PROC_REF(set_ready_state), TRUE), equip_cooldown)
/obj/item/mecha_parts/mecha_equipment/proc/do_after_cooldown(atom/target)
if(!chassis)
return
var/C = chassis.loc
- set_ready_state(0)
+ set_ready_state(FALSE)
chassis.use_power(energy_drain)
- . = do_after(chassis.occupant, equip_cooldown, target=target)
- set_ready_state(1)
- if(!chassis || chassis.loc != C || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir))
- return 0
+ . = do_after(chassis.occupant, equip_cooldown, target=target, extra_checks = CALLBACK(src, PROC_REF(check_do_after), target, C))
+ set_ready_state(TRUE)
/obj/item/mecha_parts/mecha_equipment/proc/do_after_mecha(atom/target, delay)
if(!chassis)
return
var/C = chassis.loc
- . = do_after(chassis.occupant, delay, target=target)
- if(!chassis || chassis.loc != C || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir))
- return 0
+ . = do_after(chassis.occupant, delay, target=target, extra_checks = CALLBACK(src, PROC_REF(check_do_after), target, C))
+
+/obj/item/mecha_parts/mecha_equipment/proc/check_do_after(atom/target, turf/chassis_turf)
+ . = TRUE
+ if(!chassis || chassis.loc != chassis_turf || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir))
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/proc/can_attach(obj/mecha/M)
if(M.equipment.lenHONK")
- for(var/mob/living/carbon/M in ohearers(6, chassis))
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(istype(H.ears, /obj/item/clothing/ears/earmuffs))
- continue
- var/turf/turf_check = get_turf(M)
- if(isspaceturf(turf_check) && !turf_check.Adjacent(src)) //in space nobody can hear you honk.
- continue
- to_chat(M, "HONK")
- M.SetSleeping(0)
- M.stuttering += 20
- M.adjustEarDamage(0, 30)
- M.Paralyze(60)
- if(prob(30))
- M.Stun(200)
- M.Unconscious(80)
- else
- M.Jitter(500)
-
- log_message("Honked from [src.name]. HONK!", LOG_MECHA)
- var/turf/T = get_turf(src)
- message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] used a Mecha Honker in [ADMIN_VERBOSEJMP(T)]")
- log_game("[key_name(chassis.occupant)] used a Mecha Honker in [AREACOORD(T)]")
- return 1
-
-
//Base ballistic weapon type
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic
name = "general ballistic weapon"
@@ -311,17 +264,6 @@
harmful = TRUE
ammo_type = "incendiary"
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
- name = "\improper S.H.H. \"Quietus\" Carbine"
- desc = "A weapon for combat exosuits. A mime invention, field tests have shown that targets cannot even scream before going down."
- fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg'
- icon_state = "mecha_mime"
- equip_cooldown = 30
- projectile = /obj/projectile/bullet/mime
- projectiles = 6
- projectile_energy_cost = 50
- harmful = TRUE
-
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
name = "\improper LBX-10 \"Scattershot\" Heavy Shotgun"
desc = "A weapon for combat exosuits. Shoots a spread of pellets."
@@ -439,7 +381,7 @@
var/turf/T = get_turf(src)
message_admins("[ADMIN_LOOKUPFLW(chassis.occupant)] fired a [src] in [ADMIN_VERBOSEJMP(T)]")
log_game("[key_name(chassis.occupant)] fired a [src] in [AREACOORD(T)]")
- addtimer(CALLBACK(F, TYPE_PROC_REF(/obj/item/grenade/flashbang, prime)), det_time)
+ F.preprime(delayoverride = det_time)
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/flashbang/clusterbang //Because I am a heartless bastard -Sieve //Heartless? for making the poor man's honkblast? - Kaze
name = "\improper SOB-3 grenade launcher"
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index eba4801ba56d..11c8003de4ae 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -13,6 +13,7 @@
light_power = 0.8
light_range = 6
light_on = FALSE
+ var/repair_multiplier = 1 //multiply incoming repairs by this value. used to make some mechs less efficient and slower to repair.
var/ruin_mecha = FALSE //if the mecha starts on a ruin, don't automatically give it a tracking beacon to prevent metagaming.
var/can_move = 0 //time of next allowed movement
var/stopped = FALSE
diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm
index b6c72134456d..3b4b81e86cc2 100644
--- a/code/game/mecha/mecha_defense.dm
+++ b/code/game/mecha/mecha_defense.dm
@@ -298,17 +298,19 @@
if(!W.use_tool(src, user, 0, volume=50, amount=1))
return
clearInternalDamage(MECHA_INT_TANK_BREACH)
- to_chat(user, "You repair the damaged gas tank.")
+ to_chat(user, span_notice("You repair the damaged gas tank."))
return
- if(obj_integrity < max_integrity)
+ while(obj_integrity < max_integrity)
+ if(!do_after(user, 20, target= src))
+ return
if(!W.use_tool(src, user, 0, volume=50, amount=1))
return
- user.visible_message("[user] repairs some damage to [name].", "You repair some damage to [src].")
- obj_integrity += min(10, max_integrity-obj_integrity)
+ user.visible_message(span_notice("[user] repairs some damage to [name]."), span_notice("You repair some damage to [src]."))
+ obj_integrity += min(10 * repair_multiplier, max_integrity-obj_integrity)
if(obj_integrity == max_integrity)
- to_chat(user, "It looks to be fully repaired now.")
+ to_chat(user, span_notice("It looks to be fully repaired now."))
return
- to_chat(user, "The [name] is at full integrity!")
+ to_chat(user, span_warning("The [name] is at full integrity!"))
/obj/mecha/proc/mech_toxin_damage(mob/living/target)
playsound(src, 'sound/effects/spray2.ogg', 50, TRUE)
diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm
index 4a85f9321154..39d21639a116 100644
--- a/code/game/objects/effects/anomalies/_anomalies.dm
+++ b/code/game/objects/effects/anomalies/_anomalies.dm
@@ -8,9 +8,7 @@
anchored = TRUE
light_range = 3
- //aSignal drops as the core, bSignal allows people to signal to detonate
- var/obj/item/assembly/signaler/anomaly/aSignal = /obj/item/assembly/signaler/anomaly
- var/obj/item/assembly/signaler/anomaly/bSignal = /obj/item/assembly/signaler/anomaly/det_signal
+ var/obj/item/assembly/signaler/anomaly/core = /obj/item/assembly/signaler/anomaly
var/area/impact_area
var/lifespan = 990
@@ -46,27 +44,17 @@
pulse_delay = rand(pulse_delay*0.5, pulse_delay*1.5)
src.drops_core = drops_core
- if(aSignal)
- aSignal = new aSignal(src)
- aSignal.code = rand(1,100)
- aSignal.anomaly_type = type
- aSignal.research = research_value
+ if(core)
+ core = new core(src)
+ core.code = rand(1,100)
+ core.code_b = rand(1,100)
+ core.anomaly_type = type
+ core.research = research_value
var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven!
frequency++
- aSignal.set_frequency(frequency)
-
- if(bSignal)
- bSignal = new bSignal(src)
- bSignal.code = rand(1,100)
- bSignal.anomaly_type = type
- var/frequency = rand(MIN_FREE_FREQ, MAX_FREE_FREQ)
- if(ISMULTIPLE(frequency, 2))//signaller frequencies are always uneven!
- frequency++
- bSignal.set_frequency(frequency)
-
-
+ core.set_frequency(frequency)
if(lifespan)
if(new_lifespan)
@@ -96,8 +84,9 @@
/obj/effect/anomaly/Destroy()
STOP_PROCESSING(SSobj, src)
- QDEL_NULL(countdown)
- QDEL_NULL(aSignal)
+ if(countdown)
+ QDEL_NULL(countdown)
+ QDEL_NULL(core)
return ..()
/obj/effect/anomaly/proc/anomalyEffect(seconds_per_tick)
@@ -118,30 +107,26 @@
/obj/effect/anomaly/proc/anomalyNeutralize()
new /obj/effect/particle_effect/smoke/bad(loc)
-
if(drops_core)
- if(isnull(aSignal))
+ if(isnull(core))
stack_trace("An anomaly ([src]) exists that drops a core, yet has no core!")
else
- aSignal.forceMove(drop_location())
- aSignal = null
+ core.forceMove(drop_location())
+ core = null
// else, anomaly core gets deleted by qdel(src).
qdel(src)
/obj/effect/anomaly/attackby(obj/item/weapon, mob/user, params)
- if(weapon.tool_behaviour == TOOL_ANALYZER && aSignal)
+ if(weapon.tool_behaviour == TOOL_ANALYZER && core)
to_chat(user, span_notice("You start analyzing [src]."))
if(do_after(user, 20, src, hidden = TRUE))
- to_chat(user, span_notice("[src]'s primary field is fluctuating along frequency [format_frequency(aSignal.frequency)], code [aSignal.code]."))
- if(bSignal)
- to_chat(user, span_notice("A second field is fluctuating along [format_frequency(bSignal.frequency)], code [bSignal.code]. It is highly unstable." ))
- return TRUE
+ to_chat(user, span_notice("[src]'s primary field is fluctuating along frequency [format_frequency(core.frequency)], code [core.code]."))
+ return TRUE
return ..()
-
/obj/effect/anomaly/examine(mob/user)
. = ..()
if(user.research_scanner == TRUE)
diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
index f7012e532944..19d163f131ee 100644
--- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm
+++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
@@ -2,9 +2,9 @@
/obj/effect/anomaly/bluespace
name = "jumper"
icon_state = "bluespace"
- desc = "A mysterious anomaly that causes teleportation around it."
+ desc = "A hole in the fabric of bluespace, perforating reality around it."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/bluespace
+ core = /obj/item/assembly/signaler/anomaly/bluespace
///range from which we can teleport someone
effectrange = 3
var/reagent_amount = 3
@@ -63,7 +63,7 @@
if(istype(A, /obj/item/beacon))
continue // don't teleport beacons because that's just insanely stupid
if(iscameramob(A))
- continue // Don't mess with AI eye, xenobio or advanced cameras
+ continue // Don't mess with AI eye, or advanced cameras
if(A.anchored)
continue
diff --git a/code/game/objects/effects/anomalies/anomalies_flux.dm b/code/game/objects/effects/anomalies/anomalies_flux.dm
index b1318953f4a6..4eaddefdcae0 100644
--- a/code/game/objects/effects/anomalies/anomalies_flux.dm
+++ b/code/game/objects/effects/anomalies/anomalies_flux.dm
@@ -1,9 +1,10 @@
/obj/effect/anomaly/flux
name = "tesla"
- icon_state = "flux"
- desc = "A mysterious anomaly that sends out a near constant stream of electrical arcs."
+ icon_state = "tesla"
+ //double-check that these only happen in atmosphere now
+ desc = "A break in the atmosphere, small yet potent lightning arcs flashing off it."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/flux
+ core = /obj/item/assembly/signaler/anomaly/flux
pulse_delay = 2 SECONDS
effectrange = 0
var/canshock = FALSE
@@ -99,3 +100,7 @@
/obj/effect/anomaly/flux/big/planetary
immortal = TRUE
immobile = TRUE
+
+/obj/effect/anomaly/flux/storm
+ drops_core = FALSE
+ explosive = FLUX_LOW_EXPLOSIVE
diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm
index 1dea7049fc97..20cc30dcc74d 100644
--- a/code/game/objects/effects/anomalies/anomalies_gravity.dm
+++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm
@@ -9,10 +9,9 @@
/obj/effect/anomaly/grav
name = "throngler"
icon_state = "gravity"
- desc = "A mysterious anomaly that sucks things towards it with a gravitational field, ending in what has been termed a 'throngling'."
+ desc = "A miniature gravity well, constantly pulling the world around it into a 'throngling'."
density = FALSE
- aSignal = /obj/item/assembly/signaler/anomaly/grav
- bSignal = null
+ core = /obj/item/assembly/signaler/anomaly/grav
effectrange = 4
var/boing = 0
///Warp effect holder for displacement filter to "pulse" the anomaly
diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
index ab859a3b3215..8a0a469ba52b 100644
--- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm
+++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm
@@ -2,7 +2,8 @@
/obj/effect/anomaly/hallucination
name = "hallucination anomaly"
icon_state = "hallucination"
- aSignal = /obj/item/assembly/signaler/anomaly/hallucination
+ desc = "A shimmering mirage suspended above the ground, never in the same place as it was a second ago."
+ core = /obj/item/assembly/signaler/anomaly/hallucination
/// Time passed since the last effect, increased by delta_time of the SSobj
var/ticks = 0
/// How many seconds between each small hallucination pulses
@@ -18,6 +19,8 @@
var/turf/open/our_turf = get_turf(src)
if(istype(our_turf))
hallucination_pulse(our_turf, 5)
+ pixel_x = clamp(pixel_x + rand(-5, 5), -16, 16)
+ pixel_y = clamp(pixel_y + rand(-5, 5), -16, 16)
/obj/effect/anomaly/hallucination/detonate()
var/turf/open/our_turf = get_turf(src)
@@ -42,7 +45,7 @@
var/list/messages = list(
"You feel your conscious mind fall apart!",
"Reality warps around you!",
- "Something's wispering around you!",
+ "Something whispers around you!",
"You are going insane!",
)
to_chat(user, span_warning(pick(messages)))
diff --git a/code/game/objects/effects/anomalies/anomalies_heartbeat.dm b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
index 1b691d898436..ff111fe4882c 100644
--- a/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
+++ b/code/game/objects/effects/anomalies/anomalies_heartbeat.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/heartbeat
name = "heartbeat"
icon_state = "heartbeat"
- desc = "A mysterious anomaly, it ionizes the world around it."
+ desc = "A throbbing vertex, spreading a cancer to the world around itself."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/heartbeat
+ core = /obj/item/assembly/signaler/anomaly/heartbeat
effectrange = 3
pulse_delay = 6 SECONDS
var/reagent_amount = 5
diff --git a/code/game/objects/effects/anomalies/anomalies_melter.dm b/code/game/objects/effects/anomalies/anomalies_melter.dm
index d906d4f4bad2..3c99fd7eab5a 100644
--- a/code/game/objects/effects/anomalies/anomalies_melter.dm
+++ b/code/game/objects/effects/anomalies/anomalies_melter.dm
@@ -1,10 +1,10 @@
/obj/effect/anomaly/melter
name = "melter"
icon_state = "melter"
- desc = "A mysterious anomaly. Everburning green flames with a horrid sizzle, melting what's near"
+ desc = "Everburning green flames, eager to lash out at anything that intrudes near."
effectrange = 2
pulse_delay = 10 SECONDS
- aSignal = /obj/item/assembly/signaler/anomaly/melter
+ core = /obj/item/assembly/signaler/anomaly/melter
/obj/effect/anomaly/melter/anomalyEffect(seconds_per_tick)
..()
@@ -20,7 +20,7 @@
I.acid_act(20, 20)
I.update_appearance()
for (var/obj/item/melt in range(effectrange, src))
-
+ //don't melt yourself
if(istype(melt, /obj/item/assembly/signaler/anomaly))
return
else
diff --git a/code/game/objects/effects/anomalies/anomalies_phantom.dm b/code/game/objects/effects/anomalies/anomalies_phantom.dm
index 9407bbcbf920..e2225c4c843e 100644
--- a/code/game/objects/effects/anomalies/anomalies_phantom.dm
+++ b/code/game/objects/effects/anomalies/anomalies_phantom.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/phantom
name = "phantom"
icon_state = "phantom"
- desc = "A mysterious anomaly, the outline of a humanoid, endlessly screaming in agony."
+ desc = "A familiar outline, it calls out for companionship. It screams for you."
density = FALSE
- aSignal = /obj/item/assembly/signaler/anomaly/phantom
+ core = /obj/item/assembly/signaler/anomaly/phantom
effectrange = 3
pulse_delay = 2 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
index 006d42ac28d3..04157af5ff27 100644
--- a/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
+++ b/code/game/objects/effects/anomalies/anomalies_plasmasoul.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/plasmasoul
name = "plasma soul"
icon_state = "plasmasoul"
- desc = "A mysterious anomaly, it slowly leaks plasma into the world around it."
+ desc = "A plasmatic pool, small crystals growing around it, spreading into the ground."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/plasmasoul
+ core = /obj/item/assembly/signaler/anomaly/plasmasoul
effectrange = 3
pulse_delay = 6 SECONDS
var/reagent_amount = 5
@@ -18,6 +18,10 @@
harm_surrounding_mobs()
/obj/effect/anomaly/plasmasoul/Bumped(atom/movable/AM)
+ if(!COOLDOWN_FINISHED(src, pulse_cooldown))
+ return
+
+ COOLDOWN_START(src, pulse_cooldown, pulse_delay)
var/turf/open/spot = locate(rand(src.x-effectrange, src.x+effectrange), rand(src.y-effectrange, src.y+effectrange), src.z)
harm_surrounding_mobs()
if(istype(spot))
diff --git a/code/game/objects/effects/anomalies/anomalies_pulsar.dm b/code/game/objects/effects/anomalies/anomalies_pulsar.dm
index 1f75acee56b8..360e004b2adf 100644
--- a/code/game/objects/effects/anomalies/anomalies_pulsar.dm
+++ b/code/game/objects/effects/anomalies/anomalies_pulsar.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/pulsar
name = "pulsar"
icon_state = "pulsar"
- desc = "A mysterious anomaly, endless electromagnetic disturbances roll out from it"
+ desc = "A near transparent shell hovering, containing a near constant electromagnetic turmoil."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/pulsar
+ core = /obj/item/assembly/signaler/anomaly/pulsar
effectrange = 4
pulse_delay = 15 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
index b4c93868e670..fef1c8b38a0b 100644
--- a/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
+++ b/code/game/objects/effects/anomalies/anomalies_pyroclastic.dm
@@ -2,17 +2,16 @@
/obj/effect/anomaly/pyro
name = "plasmaball"
icon_state = "pyroclastic"
- desc = "A mysterious anomaly, made of an everburning gas. Those who approach it tend to absorb it's heat, or even ignite."
+ desc = "A floating orb of everburning gas, not unlike a sun. It radiates a dangerous amount of heat."
effectrange = 4
pulse_delay = 10 SECONDS
- aSignal = /obj/item/assembly/signaler/anomaly/pyro
+ core = /obj/item/assembly/signaler/anomaly/pyro
/obj/effect/anomaly/pyro/anomalyEffect(seconds_per_tick)
..()
for(var/mob/living/carbon/nearby in range(effectrange, src))
nearby.adjust_bodytemperature(20)
- visible_message("[src] pulses!")
if(!COOLDOWN_FINISHED(src, pulse_cooldown))
return
@@ -21,7 +20,7 @@
for(var/mob/living/carbon/nearby in range(effectrange/2, src))
nearby.fire_stacks += 3
nearby.IgniteMob()
- visible_message("[src] ignites [nearby]!")
+ visible_message("[src] lets out a flare, igniting [nearby]!")
/obj/effect/anomaly/pyro/Bumped(atom/movable/AM)
@@ -84,3 +83,6 @@
/obj/effect/anomaly/pyro/big/planetary
immortal = TRUE
immobile = TRUE
+
+/obj/effect/anomaly/pyro/storm
+ drops_core = FALSE
diff --git a/code/game/objects/effects/anomalies/anomalies_sparkler.dm b/code/game/objects/effects/anomalies/anomalies_sparkler.dm
index 0b26e6fd6a1c..79dd55cf21a7 100644
--- a/code/game/objects/effects/anomalies/anomalies_sparkler.dm
+++ b/code/game/objects/effects/anomalies/anomalies_sparkler.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/sparkler
name = "sparkler"
icon_state = "sparkler"
- desc = "A mysterious anomaly, constantly throwing sparks into its vicinity."
+ desc = "A series of shimmering sparks flying to and fro. They try to spread, yet fail."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/sparkler
+ core = /obj/item/assembly/signaler/anomaly/sparkler
effectrange = 4
pulse_delay = 1 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_static.dm b/code/game/objects/effects/anomalies/anomalies_static.dm
index ab574ee475dd..5b5bb76badf2 100644
--- a/code/game/objects/effects/anomalies/anomalies_static.dm
+++ b/code/game/objects/effects/anomalies/anomalies_static.dm
@@ -1,9 +1,25 @@
+GLOBAL_LIST_INIT(tvstatic_sayings, list(
+ "... Help me...",
+ "... I need to get out ...",
+ "...No hope....",
+ "...Let me loose...",
+ "...stay with me...",
+ "...Not like this...",
+ "...please don't go...",
+ "...don't forget me...",
+ "...Are you there...?",
+ "...it hurts...",
+ "...the eyes...",
+ "...need to run...",
+ "...is anyone there..."
+))
+
/obj/effect/anomaly/tvstatic
name = "static"
icon_state = "static"
- desc = "A mysterious anomaly. A hole in the world, endless buzzing emitting from it."
+ desc = "A hole in the world emitting an endless buzzing. It hides something precious."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/tvstatic
+ core = /obj/item/assembly/signaler/anomaly/tvstatic
effectrange = 4
pulse_delay = 4 SECONDS
verb_say = "pleads"
@@ -48,7 +64,7 @@
var/mob/living/carbon/victim = looking
var/obj/effect/anomaly/tvstatic/planetary/expansion
expansion = new(get_turf(victim))
- visible_message(span_warning("The static overtakes [victim], [expansion] taking their place!"))
+ visible_message(span_warning("[src] overtakes [victim], [expansion] taking their place!"))
victim.death()
expansion.stored_mob = victim
victim.forceMove(expansion)
@@ -58,44 +74,18 @@
anomalyEffect()
/obj/effect/anomaly/tvstatic/proc/say_fucky_things()
- switch(rand(1, 13))
- if(1)
- say("... Help me...")
- if(2)
- say("... I need to get out ...")
- if(3)
- say("...No hope....")
- if(4)
- say("....Let me loose...")
- if(5)
- say("...stay with me...")
- if(6)
- say("...I hope I live...")
- if(7)
- say("...please don't go...")
- if(8)
- say("...don't forget me...")
- if(9)
- say("...Are you there...?")
- if(10)
- say("...it hurts...")
- if(11)
- say("...the eyes...")
- if(12)
- say("...need to run...")
- if(13)
- say("...don't become like me...")
+ say(pick(GLOB.tvstatic_sayings))
return
/obj/effect/anomaly/tvstatic/detonate()
for(var/mob/living/carbon/human/looking in range(effectrange, src))
- visible_message(span_boldwarning(" The static lashes out, agony filling your mind as its tendrils scrape your thoughts!"))
+ visible_message(span_boldwarning("[src] lashes out, agony filling your mind as its tendrils scrape your thoughts!"))
if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD)
looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100, 200)
playsound(src, 'sound/effects/stall.ogg', 100)
if(stored_mob)
mangle_corpse()
- visible_message(span_warning("The static sputters out [stored_mob], their body coming out in a burst of blood and gore!"))
+ visible_message(span_warning("[src] sputters out [stored_mob], their body coming out in a burst of blood and gore!"))
new /obj/effect/gibspawner/human(loc)
stored_mob.forceMove(get_turf(src))
stored_mob = null
@@ -111,7 +101,7 @@
var/turf/T = get_turf(src)
if(T)
if(stored_mob)
- visible_message(span_warning("The static spits out [stored_mob], their body coming out in a burst!"))
+ visible_message(span_warning("[src] spits out [stored_mob], their body coming out in a burst!"))
stored_mob.forceMove(get_turf(src))
stored_mob = null
. = ..()
diff --git a/code/game/objects/effects/anomalies/anomalies_transfusion.dm b/code/game/objects/effects/anomalies/anomalies_transfusion.dm
new file mode 100644
index 000000000000..f233f9c0a3c4
--- /dev/null
+++ b/code/game/objects/effects/anomalies/anomalies_transfusion.dm
@@ -0,0 +1,69 @@
+/obj/effect/anomaly/transfusion
+ name = "transfusion"
+ icon_state = "transfusion"
+ desc = "A throbbing field floating mid-air, crimson particulate hovering within it."
+ density = TRUE
+ core = /obj/item/assembly/signaler/anomaly/transfusion
+ effectrange = 3
+ pulse_delay = 5 SECONDS
+
+/obj/effect/anomaly/transfusion/anomalyEffect()
+ ..()
+
+ if(!COOLDOWN_FINISHED(src, pulse_cooldown))
+ return
+
+ COOLDOWN_START(src, pulse_cooldown, pulse_delay)
+ blood_music()
+ return
+
+/obj/effect/anomaly/transfusion/proc/blood_music() //by greg bear
+ //this is hacky *because* in an ideal world - it would involve making the core have a reagent container for the blood
+ //however - I am a lazy bitch
+ for(var/mob/living/carbon/victim in range(effectrange, src))
+ //if we're not hungry, we're not hungry.
+ if (core?:get_blood_max() < core?:get_blood_stored())
+ new /obj/effect/temp_visual/dir_setting/bloodsplatter(src.loc, rand(1, 8))
+ visible_message(span_boldwarning("[src] vomits up blood, seemingly satiated!"))
+ core?:set_blood_stored(core?:get_blood_max())
+ return
+ //if there's blood to take, take it
+ if (victim.blood_volume > BLOOD_VOLUME_SAFE)
+ var/bleeder
+ bleeder = rand(10,30)
+ victim.bleed(bleeder)
+ victim.spray_blood(get_dir(victim, src), splatter_strength = 1) //slurp
+ visible_message(span_boldwarning("Ichor flows out of [victim], and into [src]!"))
+ core?:set_blood_stored(bleeder)
+ break
+ //but if there's blood to give, share.
+ if(victim.blood_volume < BLOOD_VOLUME_SAFE && core?:get_blood_stored() > (core?:get_blood_max() / 2))
+ var/present_time
+ present_time = rand((core?:get_blood_stored() / 10), (core?:get_blood_stored() / 2))
+ visible_message(span_boldwarning("Globules of ichor fly away from [src], and into [victim]!"))
+ core?:set_blood_stored(-present_time)
+ victim.blood_volume += present_time
+ break
+ return
+
+/obj/effect/anomaly/transfusion/Bumped(atom/movable/AM)
+ if(!COOLDOWN_FINISHED(src, pulse_secondary_cooldown))
+ return
+ COOLDOWN_START(src, pulse_secondary_cooldown, 10)
+ if(istype(AM, /mob/living/carbon))
+ var/mob/living/carbon/victim = AM
+ visible_message(span_boldwarning("[victim] touches [src], and as they pull away their blood flows away from them!"))
+ var/amount = rand(50, 200)
+ victim.bleed(amount)
+ core?:set_blood_stored(amount)
+
+/obj/effect/anomaly/transfusion/detonate()
+ for(var/mob/living/carbon/victim in range(effectrange, src))
+ victim.bleed(rand(100, 250))
+ victim.spray_blood(get_dir(src, victim), splatter_strength = 3) //slurp
+ visible_message(span_boldwarning("[src] screams as it tries to pull all the blood around into itself!"))
+ . = ..()
+
+/obj/effect/anomaly/transfusion/planetary
+ immortal = TRUE
+ immobile = TRUE
diff --git a/code/game/objects/effects/anomalies/anomalies_veins.dm b/code/game/objects/effects/anomalies/anomalies_veins.dm
index 416e325ccdbd..e23728356b8d 100644
--- a/code/game/objects/effects/anomalies/anomalies_veins.dm
+++ b/code/game/objects/effects/anomalies/anomalies_veins.dm
@@ -1,9 +1,9 @@
/obj/effect/anomaly/veins
- name = "veins"
+ name = "fountain"
icon_state = "veins"
- desc = "A mysterious anomaly, throbbing purple veins, suspended midair."
+ desc = "Throbbing purple veins, an exposed artery of the world. It leaks into the world beyond it."
density = TRUE
- aSignal = /obj/item/assembly/signaler/anomaly/veins
+ core = /obj/item/assembly/signaler/anomaly/veins
effectrange = 3
pulse_delay = 4 SECONDS
diff --git a/code/game/objects/effects/anomalies/anomalies_vortex.dm b/code/game/objects/effects/anomalies/anomalies_vortex.dm
index 16a30cbaa9c6..5e5875077660 100644
--- a/code/game/objects/effects/anomalies/anomalies_vortex.dm
+++ b/code/game/objects/effects/anomalies/anomalies_vortex.dm
@@ -2,9 +2,8 @@
/obj/effect/anomaly/vortex
name = "vortex"
icon_state = "vortex"
- desc = "A mysterious anomaly, this one destroys everything around it."
- aSignal = /obj/item/assembly/signaler/anomaly/vortex
- bSignal = null
+ desc = "An incredibly compact black orb, its hunger unquenchable."
+ core = /obj/item/assembly/signaler/anomaly/vortex
/obj/effect/anomaly/vortex/anomalyEffect()
..()
diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm
index be2d89707882..66b027f2e516 100644
--- a/code/game/objects/effects/blessing.dm
+++ b/code/game/objects/effects/blessing.dm
@@ -16,14 +16,7 @@
I.alpha = 64
I.appearance_flags = RESET_ALPHA
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I)
- RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, PROC_REF(block_cult_teleport))
/obj/effect/blessing/Destroy()
UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT)
return ..()
-
-/obj/effect/blessing/proc/block_cult_teleport(datum/source, channel, turf/origin, turf/destination)
- SIGNAL_HANDLER
-
- if(channel == TELEPORT_CHANNEL_CULT)
- return COMPONENT_BLOCK_TELEPORT
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 3ec6f58aa7b1..0be76dd1fac6 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -32,11 +32,8 @@
AddElement(/datum/element/connect_loc, loc_connections)
AddElement(/datum/element/beauty, beauty)
- SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
-
-/obj/effect/decal/cleanable/Destroy()
- SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name)
- return ..()
+ if(!mapload)
+ SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal
if(mergeable_decal)
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index 5de5510bec7b..8f49c0d667cc 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -178,6 +178,16 @@
var/drips = 1
dryname = "drips of blood"
drydesc = "It's red."
+ var/move_on_init = TRUE
+
+/obj/effect/decal/cleanable/blood/drip/Initialize(mapload, list/datum/disease/diseases)
+ . = ..()
+ dry()
+ add_blood_DNA(list("Non-human DNA" = random_blood_type()))
+ if(move_on_init)
+ pixel_x = rand(-16,16)
+ pixel_y = rand(-16, 16)
+
/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in()
return TRUE
diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index 5610e6a19efa..b04e83d6f5f6 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -49,6 +49,9 @@
/obj/effect/decal/cleanable/glass/plasma
icon_state = "plasmatiny"
+/obj/effect/decal/cleanable/glass/plastitanium
+ icon_state = "plastitaniumtiny"
+
/obj/effect/decal/cleanable/glass/strange
icon_state = "strangetiny"
diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
index a2ec15e5022f..1309d8f8fc7d 100644
--- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
+++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
@@ -126,6 +126,7 @@ TURF_DECAL_COLOR_HELPER(opaque/green, COLOR_GREEN_GRAY, 255)
TURF_DECAL_COLOR_HELPER(opaque/lime, COLOR_PALE_GREEN_GRAY, 255)
TURF_DECAL_COLOR_HELPER(opaque/yellow, COLOR_BROWN, 255)
TURF_DECAL_COLOR_HELPER(opaque/beige, COLOR_BEIGE, 255)
+TURF_DECAL_COLOR_HELPER(opaque/tan, "#c59973", 255)
TURF_DECAL_COLOR_HELPER(opaque/red, COLOR_RED_GRAY, 255)
TURF_DECAL_COLOR_HELPER(opaque/bar, "#791500", 255)
TURF_DECAL_COLOR_HELPER(opaque/pink, COLOR_PALE_RED_GRAY, 255)
@@ -144,6 +145,7 @@ TURF_DECAL_COLOR_HELPER(opaque/solgovblue, "#2d2a4e", 255)
TURF_DECAL_COLOR_HELPER(opaque/solgovgold, "#eeac2e", 255)
TURF_DECAL_COLOR_HELPER(opaque/syndiered, "#730622", 255)
TURF_DECAL_COLOR_HELPER(opaque/inteqbrown, "#4b2a18", 255)
+TURF_DECAL_COLOR_HELPER(opaque/cybersunteal, "#4C9C9C", 255)
//transparent
TURF_DECAL_COLOR_HELPER(transparent/neutral, null, 75)
@@ -153,6 +155,7 @@ TURF_DECAL_COLOR_HELPER(transparent/green, COLOR_GREEN_GRAY, 140)
TURF_DECAL_COLOR_HELPER(transparent/lime, COLOR_PALE_GREEN_GRAY, 140)
TURF_DECAL_COLOR_HELPER(transparent/yellow, COLOR_BROWN, 140)
TURF_DECAL_COLOR_HELPER(transparent/beige, COLOR_BEIGE, 140)
+TURF_DECAL_COLOR_HELPER(transparent/tan, "#c59973", 140)
TURF_DECAL_COLOR_HELPER(transparent/red, COLOR_RED_GRAY, 140)
TURF_DECAL_COLOR_HELPER(transparent/bar, "#791500", 130)
TURF_DECAL_COLOR_HELPER(transparent/pink, COLOR_PALE_RED_GRAY, 140)
@@ -171,6 +174,7 @@ TURF_DECAL_COLOR_HELPER(transparent/solgovblue, "#2d2a4e", 140)
TURF_DECAL_COLOR_HELPER(transparent/solgovgold, "#eeac2e", 140)
TURF_DECAL_COLOR_HELPER(transparent/syndiered, "#730622", 140)
TURF_DECAL_COLOR_HELPER(transparent/inteqbrown, "#4b2a18", 140)
+TURF_DECAL_COLOR_HELPER(transparent/cybersunteal, "#4C9C9C", 140)
/obj/effect/turf_decal/spline/plain
icon_state = "spline_plain"
diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm
index e46d8d92e82a..d4278d775888 100644
--- a/code/game/objects/effects/forcefields.dm
+++ b/code/game/objects/effects/forcefields.dm
@@ -19,14 +19,6 @@
/obj/effect/forcefield/singularity_pull()
return
-/obj/effect/forcefield/cult
- desc = "An unholy shield that blocks all attacks."
- name = "glowing wall"
- icon = 'icons/effects/cult_effects.dmi'
- icon_state = "cultshield"
- CanAtmosPass = ATMOS_PASS_NO
- timeleft = 200
-
///////////Mimewalls///////////
/obj/effect/forcefield/mime
diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index f880b95497c4..dc9c7bcd6855 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -16,8 +16,8 @@
var/spreadIntoAdjacentChance = 60
var/obj/item/seeds/myseed = /obj/item/seeds/glowshroom
var/static/list/blacklisted_glowshroom_turfs = typecacheof(list(
- /turf/open/lava,
- /turf/open/floor/plating/beach/water))
+ /turf/open/lava
+ ))
/obj/structure/glowshroom/glowcap
name = "glowcap"
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index ccc3e4f0286a..495b4c9ab666 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -1,6 +1,6 @@
/obj/effect/landmark
name = "landmark"
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "x2"
anchored = TRUE
layer = MID_LANDMARK_LAYER
@@ -210,7 +210,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
return ..()
/obj/effect/landmark/start/ai/secondary
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "ai_spawn"
primary_ai = FALSE
latejoin_active = FALSE
@@ -249,7 +249,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/wizard
name = "wizard"
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "wiznerd_spawn"
/obj/effect/landmark/start/wizard/Initialize()
@@ -259,7 +259,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/nukeop
name = "nukeop"
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "snukeop_spawn"
/obj/effect/landmark/start/nukeop/Initialize()
@@ -269,7 +269,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/nukeop_leader
name = "nukeop leader"
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "snukeop_leader_spawn"
/obj/effect/landmark/start/nukeop_leader/Initialize()
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index 73b96c29768c..986ad10eb187 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -9,26 +9,6 @@
/obj/effect/beam/singularity_pull()
return
-/obj/effect/spawner
- name = "object spawner"
-
-// Brief explanation:
-// Rather then setting up and then deleting spawners, we block all atomlike setup
-// and do the absolute bare minimum
-// This is with the intent of optimizing mapload
-/obj/effect/spawner/Initialize(mapload)
- SHOULD_CALL_PARENT(FALSE)
- if(flags_1 & INITIALIZED_1)
- stack_trace("Warning: [src]([type]) initialized multiple times!")
- flags_1 |= INITIALIZED_1
-
- return INITIALIZE_HINT_QDEL
-
-/obj/effect/spawner/Destroy(force)
- SHOULD_CALL_PARENT(FALSE)
- moveToNullspace()
- return QDEL_HINT_QUEUE
-
/obj/effect/list_container
name = "list container"
diff --git a/code/game/objects/effects/particles/smoke.dm b/code/game/objects/effects/particles/smoke.dm
index 72807e778f56..3326bbe2caa3 100644
--- a/code/game/objects/effects/particles/smoke.dm
+++ b/code/game/objects/effects/particles/smoke.dm
@@ -64,3 +64,7 @@
fadein = 0.7 SECONDS
position = generator(GEN_VECTOR, list(-3, 5, 0), list(3, 6.5, 0), NORMAL_RAND)
velocity = generator(GEN_VECTOR, list(-0.1, 0.4, 0), list(0.1, 0.5, 0), NORMAL_RAND)
+
+/particles/fog
+ icon = 'icons/effects/particles/smoke.dmi'
+ icon_state = list("chill_1" = 2, "chill_2" = 2, "chill_3" = 1)
diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm
index e4f36e8b827d..8ccaf334feae 100644
--- a/code/game/objects/effects/spawners/bundle.dm
+++ b/code/game/objects/effects/spawners/bundle.dm
@@ -1,134 +1,150 @@
-/obj/effect/spawner/bundle
- name = "bundle spawner"
+/obj/effect/spawner/costume
+ name = "costume spawner"
icon = 'icons/hud/screen_gen.dmi'
icon_state = "x2"
- color = "#00FF00"
+ color = COLOR_VIBRANT_LIME
var/list/items
-/obj/effect/spawner/bundle/Initialize(mapload)
+/obj/effect/spawner/costume/Initialize(mapload)
. = ..()
- if(items && items.len)
+ if(items?.len)
for(var/path in items)
new path(loc)
-/obj/effect/spawner/bundle/costume/gladiator
+/obj/effect/spawner/costume/gladiator
name = "gladiator costume spawner"
items = list(
/obj/item/clothing/under/costume/gladiator,
- /obj/item/clothing/head/helmet/gladiator)
+ /obj/item/clothing/head/helmet/gladiator
+ )
-/obj/effect/spawner/bundle/costume/madscientist
+/obj/effect/spawner/costume/madscientist
name = "mad scientist costume spawner"
items = list(
/obj/item/clothing/under/rank/command/captain/suit,
/obj/item/clothing/head/flatcap,
- /obj/item/clothing/suit/toggle/labcoat/mad)
+ /obj/item/clothing/suit/toggle/labcoat/mad
+ )
-/obj/effect/spawner/bundle/costume/elpresidente
+/obj/effect/spawner/costume/elpresidente
name = "el presidente costume spawner"
items = list(
/obj/item/clothing/under/rank/command/captain/suit,
/obj/item/clothing/head/flatcap,
/obj/item/clothing/mask/cigarette/cigar/havana,
- /obj/item/clothing/shoes/jackboots)
+ /obj/item/clothing/shoes/jackboots
+ )
-/obj/effect/spawner/bundle/costume/nyangirl
+/obj/effect/spawner/costume/nyangirl
name = "nyangirl costume spawner"
items = list(
/obj/item/clothing/under/costume/schoolgirl,
/obj/item/clothing/head/kitty,
- /obj/item/clothing/glasses/blindfold)
+ /obj/item/clothing/glasses/blindfold
+ )
-/obj/effect/spawner/bundle/costume/maid
+/obj/effect/spawner/costume/maid
name = "maid costume spawner"
items = list(
- /obj/item/clothing/under/dress/skirt,
- /obj/effect/spawner/lootdrop/minor/beret_or_rabbitears,
- /obj/item/clothing/glasses/blindfold)
+ /obj/item/clothing/under/dress/skirt/color,
+ /obj/effect/spawner/random/clothing/beret_or_rabbitears,
+ /obj/item/clothing/glasses/blindfold
+ )
-
-/obj/effect/spawner/bundle/costume/butler
+/obj/effect/spawner/costume/butler
name = "butler costume spawner"
items = list(
/obj/item/clothing/accessory/waistcoat,
/obj/item/clothing/under/suit/black,
- /obj/item/clothing/head/that)
+ /obj/item/clothing/head/that
+ )
-/obj/effect/spawner/bundle/costume/highlander
+/obj/effect/spawner/costume/highlander
name = "highlander costume spawner"
items = list(
/obj/item/clothing/under/costume/kilt,
- /obj/item/clothing/head/beret)
+ /obj/item/clothing/head/beret
+ )
-/obj/effect/spawner/bundle/costume/prig
+/obj/effect/spawner/costume/prig
name = "prig costume spawner"
items = list(
/obj/item/clothing/accessory/waistcoat,
- /obj/effect/spawner/lootdrop/minor/bowler_or_that,
+ /obj/effect/spawner/random/clothing/bowler_or_that,
/obj/item/clothing/shoes/sneakers/black,
/obj/item/cane,
/obj/item/clothing/under/suit/sl,
- /obj/item/clothing/mask/fakemoustache)
+ /obj/item/clothing/mask/fakemoustache
+ )
-/obj/effect/spawner/bundle/costume/plaguedoctor
+/obj/effect/spawner/costume/plaguedoctor
name = "plague doctor costume spawner"
items = list(
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit,
- /obj/item/clothing/mask/gas/plaguedoctor)
+ /obj/item/clothing/mask/gas/plaguedoctor
+ )
-/obj/effect/spawner/bundle/costume/nightowl
+/obj/effect/spawner/costume/nightowl
name = "night owl costume spawner"
items = list(
/obj/item/clothing/suit/toggle/owlwings,
/obj/item/clothing/under/costume/owl,
- /obj/item/clothing/mask/gas/owl_mask)
+ /obj/item/clothing/mask/gas/owl_mask
+ )
-/obj/effect/spawner/bundle/costume/waiter
+/obj/effect/spawner/costume/waiter
name = "waiter costume spawner"
items = list(
/obj/item/clothing/under/suit/waiter,
- /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears,
- /obj/item/clothing/suit/apron)
+ /obj/effect/spawner/random/clothing/kittyears_or_rabbitears,
+ /obj/item/clothing/suit/apron
+ )
-/obj/effect/spawner/bundle/costume/pirate
+/obj/effect/spawner/costume/pirate
name = "pirate costume spawner"
items = list(
/obj/item/clothing/under/costume/pirate,
/obj/item/clothing/suit/pirate,
- /obj/effect/spawner/lootdrop/minor/pirate_or_bandana,
- /obj/item/clothing/glasses/eyepatch)
+ /obj/effect/spawner/random/clothing/pirate_or_bandana,
+ /obj/item/clothing/glasses/eyepatch
+ )
-/obj/effect/spawner/bundle/costume/cutewitch
+/obj/effect/spawner/costume/cutewitch
name = "cute witch costume spawner"
items = list(
/obj/item/clothing/under/dress/sundress,
- /obj/item/staff/broom)
+ /obj/item/staff/broom
+ )
-/obj/effect/spawner/bundle/costume/mafia
+/obj/effect/spawner/costume/mafia
name = "black mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora,
/obj/item/clothing/under/suit/blacktwopiece,
- /obj/item/clothing/shoes/laceup)
+ /obj/item/clothing/shoes/laceup
+ )
-/obj/effect/spawner/bundle/costume/mafia/white
+/obj/effect/spawner/costume/mafia/white
name = "white mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora/white,
/obj/item/clothing/under/suit/white,
- /obj/item/clothing/shoes/laceup)
+ /obj/item/clothing/shoes/laceup
+ )
-/obj/effect/spawner/bundle/costume/mafia/checkered
+/obj/effect/spawner/costume/mafia/checkered
name = "checkered mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora,
/obj/item/clothing/under/suit/checkered,
- /obj/item/clothing/shoes/laceup)
+ /obj/item/clothing/shoes/laceup
+ )
-/obj/effect/spawner/bundle/costume/mafia/beige
+/obj/effect/spawner/costume/mafia/beige
name = "beige mafia outfit spawner"
items = list(
/obj/item/clothing/head/fedora/beige,
/obj/item/clothing/under/suit/beige,
- /obj/item/clothing/shoes/laceup)
+ /obj/item/clothing/shoes/laceup
+ )
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
deleted file mode 100644
index 364ddeb72298..000000000000
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ /dev/null
@@ -1,1294 +0,0 @@
-/obj/effect/spawner/lootdrop
- icon = 'icons/effects/landmarks_static.dmi'
- icon_state = "random_loot"
- layer = OBJ_LAYER
- var/lootcount = 1 //how many items will be spawned
- var/lootdoubles = TRUE //if the same item can be spawned twice
- var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
- var/fan_out_items = FALSE //Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
-
-/obj/effect/spawner/lootdrop/Initialize(mapload)
- . = ..()
- if(loot && loot.len)
- var/loot_spawned = 0
- while((lootcount-loot_spawned) && loot.len)
- var/lootspawn = pickweight_float(loot) // WS edit - Fix various startup runtimes
- while(islist(lootspawn))
- lootspawn = pickweight_float(lootspawn) // WS edit - Fix various startup runtimes
- if(!lootdoubles)
- loot.Remove(lootspawn)
-
- if(lootspawn)
- var/atom/movable/spawned_loot = new lootspawn(loc)
- if (!fan_out_items)
- if (pixel_x != 0)
- spawned_loot.pixel_x = pixel_x
- if (pixel_y != 0)
- spawned_loot.pixel_y = pixel_y
- else
- if (loot_spawned)
- spawned_loot.pixel_x = spawned_loot.pixel_y = ((!(loot_spawned%2)*loot_spawned/2)*-1)+((loot_spawned%2)*(loot_spawned+1)/2*1)
- else
- break // WS edit - Support spawn weights of 0 in loot tables and ruins
- loot_spawned++
-
-/obj/effect/spawner/lootdrop/donkpockets
- name = "donk pocket box spawner"
- lootdoubles = FALSE
-
- loot = list(
- /obj/item/storage/box/donkpockets/donkpocketspicy = 1,
- /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1,
- /obj/item/storage/box/donkpockets/donkpocketpizza = 1,
- /obj/item/storage/box/donkpockets/donkpocketberry = 1,
- /obj/item/storage/box/donkpockets/donkpockethonk = 1,
- )
-
-
-/obj/effect/spawner/lootdrop/armory_contraband
- name = "armory contraband gun spawner"
- lootdoubles = FALSE
-
- loot = list(
- /obj/item/gun/ballistic/automatic/pistol/ringneck = 8,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/gun/ballistic/revolver/mateba
- )
-
-/obj/effect/spawner/lootdrop/armory_contraband/metastation
- loot = list(/obj/item/gun/ballistic/automatic/pistol/ringneck = 5,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/gun/ballistic/automatic/pistol/deagle,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/gun/ballistic/revolver/mateba)
-
-/obj/effect/spawner/lootdrop/armory_contraband/donutstation
- loot = list(/obj/item/grenade/clusterbuster/teargas = 5,
- /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
- /obj/item/bikehorn/golden,
- /obj/item/grenade/clusterbuster,
- /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
- /obj/item/gun/ballistic/revolver/mateba)
-
-/obj/effect/spawner/lootdrop/prison_contraband
- name = "prison contraband loot spawner"
- loot = list(/obj/item/clothing/mask/cigarette/space_cigarette = 4,
- /obj/item/clothing/mask/cigarette/robust = 2,
- /obj/item/clothing/mask/cigarette/carp = 3,
- /obj/item/clothing/mask/cigarette/uplift = 2,
- /obj/item/clothing/mask/cigarette/dromedary = 3,
- /obj/item/clothing/mask/cigarette/robustgold = 1,
- /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
- /obj/item/storage/fancy/cigarettes = 3,
- /obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
- /obj/item/toy/crayon/spraycan = 2,
- /obj/item/crowbar = 1,
- /obj/item/assembly/flash/handheld = 1,
- /obj/item/restraints/handcuffs/cable/zipties = 1,
- /obj/item/restraints/handcuffs = 1,
- /obj/item/radio = 1,
- /obj/item/lighter = 3,
- /obj/item/storage/box/matches = 3,
- /obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
- /obj/item/reagent_containers/syringe/contraband/krokodil = 1,
- /obj/item/reagent_containers/syringe/contraband/crank = 1,
- /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
- /obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
- /obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
- /obj/item/reagent_containers/syringe/contraband/morphine = 1,
- /obj/item/storage/pill_bottle/happy = 1,
- /obj/item/storage/pill_bottle/lsd = 1,
- /obj/item/storage/pill_bottle/psicodine = 1,
- /obj/item/reagent_containers/food/drinks/beer = 4,
- /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
- /obj/item/paper/fluff/jobs/prisoner/letter = 1,
- /obj/item/grenade/smokebomb = 1,
- /obj/item/flashlight/seclite = 1,
- /obj/item/melee/knife/shiv = 4,
- /obj/item/melee/knife/shiv/carrot = 1,
- /obj/item/melee/knife/kitchen = 1,
- /obj/item/storage/wallet/random = 1,
- /obj/item/pda = 1
- )
-
-/obj/effect/spawner/lootdrop/gambling
- name = "gambling valuables spawner"
- loot = list(
- /obj/item/clothing/head/trapper = 3,
- /obj/item/storage/box/syndie_kit/throwing_weapons,
- /obj/item/coin/gold,
- /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
- )
-
-/obj/effect/spawner/lootdrop/grille_or_trash
- name = "maint grille or trash spawner"
- loot = list(/obj/structure/grille = 5,
- /obj/item/cigbutt = 1,
- /obj/item/trash/cheesie = 1,
- /obj/item/trash/candy = 1,
- /obj/item/trash/chips = 1,
- /obj/item/reagent_containers/food/snacks/deadmouse = 1,
- /obj/item/trash/pistachios = 1,
- /obj/item/trash/plate = 1,
- /obj/item/trash/popcorn = 1,
- /obj/item/trash/raisins = 1,
- /obj/item/trash/sosjerky = 1,
- /obj/item/trash/syndi_cakes = 1)
-
-/obj/effect/spawner/lootdrop/three_course_meal
- name = "three course meal spawner"
- lootcount = 3
- lootdoubles = FALSE
- var/soups = list(
- /obj/item/reagent_containers/food/snacks/soup/beet,
- /obj/item/reagent_containers/food/snacks/soup/sweetpotato,
- /obj/item/reagent_containers/food/snacks/soup/stew,
- /obj/item/reagent_containers/food/snacks/soup/hotchili,
- /obj/item/reagent_containers/food/snacks/soup/nettle,
- /obj/item/reagent_containers/food/snacks/soup/meatball)
- var/salads = list(
- /obj/item/reagent_containers/food/snacks/salad/herbsalad,
- /obj/item/reagent_containers/food/snacks/salad/validsalad,
- /obj/item/reagent_containers/food/snacks/salad/fruit,
- /obj/item/reagent_containers/food/snacks/salad/jungle,
- /obj/item/reagent_containers/food/snacks/salad/aesirsalad)
- var/mains = list(
- /obj/item/reagent_containers/food/snacks/bearsteak,
- /obj/item/reagent_containers/food/snacks/enchiladas,
- /obj/item/reagent_containers/food/snacks/stewedsoymeat,
- /obj/item/reagent_containers/food/snacks/burger/bigbite,
- /obj/item/reagent_containers/food/snacks/burger/superbite,
- /obj/item/reagent_containers/food/snacks/burger/fivealarm)
-
-/obj/effect/spawner/lootdrop/three_course_meal/Initialize(mapload)
- loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
- . = ..()
-
-/obj/effect/spawner/lootdrop/maintenance
- name = "maintenance loot spawner"
- // see code/_globalvars/lists/maintenance_loot.dm for loot table
-
-/obj/effect/spawner/lootdrop/maintenance/Initialize(mapload)
- loot = GLOB.maintenance_loot
- . = ..()
-
-/obj/effect/spawner/lootdrop/maintenance/two
- name = "2 x maintenance loot spawner"
- lootcount = 2
-
-/obj/effect/spawner/lootdrop/maintenance/three
- name = "3 x maintenance loot spawner"
- lootcount = 3
-
-/obj/effect/spawner/lootdrop/maintenance/four
- name = "4 x maintenance loot spawner"
- lootcount = 4
-
-/obj/effect/spawner/lootdrop/maintenance/five
- name = "5 x maintenance loot spawner"
- lootcount = 5
-
-/obj/effect/spawner/lootdrop/maintenance/six
- name = "6 x maintenance loot spawner"
- lootcount = 6
-
-/obj/effect/spawner/lootdrop/maintenance/seven
- name = "7 x maintenance loot spawner"
- lootcount = 7
-
-/obj/effect/spawner/lootdrop/maintenance/eight
- name = "8 x maintenance loot spawner"
- lootcount = 8
-
-/obj/effect/spawner/lootdrop/crate_spawner
- name = "lootcrate spawner" //USE PROMO CODE "SELLOUT" FOR 20% OFF!
- lootdoubles = FALSE
-
- loot = list(
- /obj/structure/closet/crate/secure/loot = 20,
- "" = 80
- )
-
-/obj/effect/spawner/lootdrop/organ_spawner
- name = "ayylien organ spawner"
- loot = list(
- /obj/item/organ/heart/gland/electric = 3,
- /obj/item/organ/heart/gland/trauma = 4,
- /obj/item/organ/heart/gland/egg = 7,
- /obj/item/organ/heart/gland/chem = 5,
- /obj/item/organ/heart/gland/mindshock = 5,
- /obj/item/organ/heart/gland/plasma = 7,
- /obj/item/organ/heart/gland/transform = 5,
- /obj/item/organ/heart/gland/slime = 4,
- /obj/item/organ/heart/gland/spiderman = 5,
- /obj/item/organ/heart/gland/ventcrawling = 1,
- /obj/item/organ/body_egg/alien_embryo = 1,
- /obj/item/organ/regenerative_core = 2)
- lootcount = 3
-
-/obj/effect/spawner/lootdrop/memeorgans
- name = "meme organ spawner"
- loot = list(
- /obj/item/organ/ears/penguin,
- /obj/item/organ/ears/cat,
- /obj/item/organ/eyes/compound,
- /obj/item/organ/eyes/snail,
- /obj/item/organ/tongue/bone,
- /obj/item/organ/tongue/fly,
- /obj/item/organ/tongue/snail,
- /obj/item/organ/tongue/lizard,
- /obj/item/organ/tongue/alien,
- /obj/item/organ/tongue/ethereal,
- /obj/item/organ/tongue/robot,
- /obj/item/organ/tongue/zombie,
- /obj/item/organ/appendix,
- /obj/item/organ/liver/fly,
- /obj/item/organ/lungs/plasmaman,
- /obj/item/organ/tail/cat,
- /obj/item/organ/tail/lizard)
- lootcount = 5
-
-/obj/effect/spawner/lootdrop/rnd
- name = "random RND spawner"
- loot = list(
- /obj/item/storage/box/rndmining,
- /obj/item/storage/box/rndengi,
- /obj/item/storage/box/rndsec,
- /obj/item/storage/box/rndciv,
- /obj/item/storage/box/rndmed)
- lootcount = 1
-
-/obj/effect/spawner/lootdrop/two_percent_xeno_egg_spawner
- name = "2% chance xeno egg spawner"
- loot = list(
- /obj/effect/decal/remains/xeno = 49,
- /obj/effect/spawner/xeno_egg_delivery = 1)
-
-/obj/effect/spawner/lootdrop/costume
- name = "random costume spawner"
-
-/obj/effect/spawner/lootdrop/costume/Initialize()
- loot = list()
- for(var/path in subtypesof(/obj/effect/spawner/bundle/costume))
- loot[path] = TRUE
- . = ..()
-
-// Minor lootdrops follow
-
-/obj/effect/spawner/lootdrop/minor/beret_or_rabbitears
- name = "beret or rabbit ears spawner"
- loot = list(
- /obj/item/clothing/head/beret = 1)
-
-/obj/effect/spawner/lootdrop/minor/bowler_or_that
- name = "bowler or top hat spawner"
- loot = list(
- /obj/item/clothing/head/that = 1)
-
-/obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears
- name = "kitty ears or rabbit ears spawner"
- loot = list(
- /obj/item/clothing/head/kitty = 1)
-
-/obj/effect/spawner/lootdrop/minor/pirate_or_bandana
- name = "pirate hat or bandana spawner"
- loot = list(
- /obj/item/clothing/head/pirate = 1,
- /obj/item/clothing/head/bandana = 1)
-
-/obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask
- name = "25% cyborg mask spawner"
- loot = list(
- /obj/item/clothing/mask/gas/cyborg = 25,
- "" = 75)
-
-/obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people
- name = "harmless AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/asimov,
- /obj/item/aiModule/core/full/asimovpp,
- /obj/item/aiModule/core/full/hippocratic,
- /obj/item/aiModule/core/full/paladin_devotion,
- /obj/item/aiModule/core/full/paladin
- )
-
-/obj/effect/spawner/lootdrop/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
- name = "neutral AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/corp,
- /obj/item/aiModule/core/full/maintain,
- /obj/item/aiModule/core/full/drone,
- /obj/item/aiModule/core/full/peacekeeper,
- /obj/item/aiModule/core/full/reporter,
- /obj/item/aiModule/core/full/robocop,
- /obj/item/aiModule/core/full/liveandletlive,
- /obj/item/aiModule/core/full/hulkamania
- )
-
-/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called
- name = "harmful AI module spawner"
- loot = list(
- /obj/item/aiModule/core/full/antimov,
- /obj/item/aiModule/core/full/balance,
- /obj/item/aiModule/core/full/tyrant,
- /obj/item/aiModule/core/full/thermurderdynamic,
- /obj/item/aiModule/core/full/damaged,
- /obj/item/aiModule/reset/purge
- )
-
-// Tech storage circuit board spawners
-
-/obj/effect/spawner/lootdrop/techstorage
- name = "generic circuit board spawner"
- lootdoubles = FALSE
- fan_out_items = TRUE
- lootcount = INFINITY
-
-/obj/effect/spawner/lootdrop/techstorage/service
- name = "service circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/arcade/battle,
- /obj/item/circuitboard/computer/arcade/orion_trail,
- /obj/item/circuitboard/machine/autolathe,
- /obj/item/circuitboard/computer/mining,
- /obj/item/circuitboard/machine/ore_redemption,
- /obj/item/circuitboard/machine/vending/mining_equipment,
- /obj/item/circuitboard/machine/microwave,
- /obj/item/circuitboard/machine/chem_dispenser/drinks,
- /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
- /obj/item/circuitboard/computer/slot_machine
- )
-
-/obj/effect/spawner/lootdrop/techstorage/rnd
- name = "RnD circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/aifixer,
- /obj/item/circuitboard/machine/rdserver,
- /obj/item/circuitboard/machine/mechfab,
- /obj/item/circuitboard/machine/circuit_imprinter/department,
- /obj/item/circuitboard/computer/teleporter,
- /obj/item/circuitboard/machine/destructive_analyzer,
- /obj/item/circuitboard/computer/rdconsole,
- /obj/item/circuitboard/computer/nanite_chamber_control,
- /obj/item/circuitboard/computer/nanite_cloud_controller,
- /obj/item/circuitboard/machine/nanite_chamber,
- /obj/item/circuitboard/machine/nanite_programmer,
- /obj/item/circuitboard/machine/nanite_program_hub
- )
-
-/obj/effect/spawner/lootdrop/techstorage/security
- name = "security circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/secure_data,
- /obj/item/circuitboard/computer/security,
- /obj/item/circuitboard/computer/prisoner
- )
-
-/obj/effect/spawner/lootdrop/techstorage/engineering
- name = "engineering circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/atmos_alert,
- /obj/item/circuitboard/computer/stationalert,
- /obj/item/circuitboard/computer/powermonitor
- )
-
-/obj/effect/spawner/lootdrop/techstorage/tcomms
- name = "tcomms circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/message_monitor,
- /obj/item/circuitboard/machine/telecomms/broadcaster,
- /obj/item/circuitboard/machine/telecomms/bus,
- /obj/item/circuitboard/machine/telecomms/server,
- /obj/item/circuitboard/machine/telecomms/receiver,
- /obj/item/circuitboard/machine/telecomms/processor,
- /obj/item/circuitboard/machine/announcement_system,
- /obj/item/circuitboard/computer/comm_server,
- /obj/item/circuitboard/computer/comm_monitor
- )
-
-/obj/effect/spawner/lootdrop/techstorage/medical
- name = "medical circuit board spawner"
- loot = list(
- /obj/item/circuitboard/machine/chem_dispenser,
- /obj/item/circuitboard/computer/scan_consolenew,
- /obj/item/circuitboard/computer/med_data,
- /obj/item/circuitboard/machine/smoke_machine,
- /obj/item/circuitboard/machine/chem_master,
- /obj/item/circuitboard/machine/dnascanner,
- /obj/item/circuitboard/computer/pandemic
- )
-
-/obj/effect/spawner/lootdrop/techstorage/AI
- name = "secure AI circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/aiupload,
- /obj/item/circuitboard/computer/borgupload,
- /obj/item/circuitboard/aicore
- )
-
-/obj/effect/spawner/lootdrop/techstorage/command
- name = "secure command circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/crew,
- /obj/item/circuitboard/computer/communications,
- /obj/item/circuitboard/computer/card
- )
-
-/obj/effect/spawner/lootdrop/techstorage/RnD_secure
- name = "secure RnD circuit board spawner"
- loot = list(
- /obj/item/circuitboard/computer/mecha_control,
- /obj/item/circuitboard/computer/apc_control,
- /obj/item/circuitboard/computer/robotics
- )
-
-/obj/effect/spawner/lootdrop/mafia_outfit
- name = "mafia outfit spawner"
- loot = list(
- /obj/effect/spawner/bundle/costume/mafia = 20,
- /obj/effect/spawner/bundle/costume/mafia/white = 5,
- /obj/effect/spawner/bundle/costume/mafia/checkered = 2,
- /obj/effect/spawner/bundle/costume/mafia/beige = 5
- )
-
-/obj/effect/spawner/lootdrop/salvage_machine
- name = "salvageable machine spawner"
- loot = list(
- /obj/structure/salvageable/protolathe,
- /obj/structure/salvageable/circuit_imprinter,
- /obj/structure/salvageable/server,
- /obj/structure/salvageable/machine,
- /obj/structure/salvageable/autolathe,
- /obj/structure/salvageable/computer,
- /obj/structure/salvageable/destructive_analyzer
- )
-
-/obj/effect/spawner/lootdrop/ripley
- name = "25% exosuit 75% wreckage ripley spawner"
- loot = list(/obj/mecha/working/ripley/mining = 1,
- /obj/structure/mecha_wreckage/ripley = 5)
- lootdoubles = FALSE
-
-/obj/effect/spawner/lootdrop/salvage_50
- name = "50% salvage spawner"
- loot = list(
- /obj/effect/spawner/lootdrop/maintenance = 13,
- /obj/effect/spawner/lootdrop/salvage_machine = 12,
- /obj/effect/spawner/lootdrop/ripley = 12,
- /obj/structure/closet/crate/secure/loot = 13,
- "" = 50
- )
-
-//finds the probabilities of items spawning from a loot spawner's loot pool
-/obj/item/loot_table_maker
- icon = 'icons/effects/landmarks_static.dmi'
- icon_state = "random_loot"
- var/spawner_to_test = /obj/effect/spawner/lootdrop/maintenance //what lootdrop spawner to use the loot pool of
- var/loot_count = 180 //180 is about how much maint loot spawns per map as of 11/14/2019
- //result outputs
- var/list/spawned_table //list of all items "spawned" and how many
- var/list/stat_table //list of all items "spawned" and their occurrance probability
-
-/obj/item/loot_table_maker/Initialize()
- . = ..()
- make_table()
-
-/obj/item/loot_table_maker/attack_self(mob/user)
- to_chat(user, "Loot pool re-rolled.")
- make_table()
-
-/obj/item/loot_table_maker/proc/make_table()
- spawned_table = list()
- stat_table = list()
- var/obj/effect/spawner/lootdrop/spawner_to_table = new spawner_to_test
- var/lootpool = spawner_to_table.loot
- qdel(spawner_to_table)
- for(var/i in 1 to loot_count)
- var/loot_spawn = pick_loot(lootpool)
- if(!loot_spawn) // WS edit - Support spawn weights of 0 in loot tables and ruins
- continue
- if(!(loot_spawn in spawned_table))
- spawned_table[loot_spawn] = 1
- else
- spawned_table[loot_spawn] += 1
- stat_table += spawned_table
- for(var/item in stat_table)
- stat_table[item] /= loot_count
-
-/obj/item/loot_table_maker/proc/pick_loot(lootpool) //selects path from loot table and returns it
- var/lootspawn = pickweight_float(lootpool) // WS edit - Fix various startup runtimes
- while(islist(lootspawn))
- lootspawn = pickweight_float(lootspawn) // WS edit - Fix various startup runtimes
- return lootspawn
-
-/obj/effect/spawner/lootdrop/stockparts
- name = "random good stock parts"
- lootcount = 6
- loot = list(
- /obj/item/stock_parts/capacitor/adv,
- /obj/item/stock_parts/capacitor/quadratic,
- /obj/item/stock_parts/capacitor/super,
- /obj/item/stock_parts/cell/hyper,
- /obj/item/stock_parts/cell/super,
- /obj/item/stock_parts/cell/bluespace,
- /obj/item/stock_parts/matter_bin/bluespace,
- /obj/item/stock_parts/matter_bin/super,
- /obj/item/stock_parts/matter_bin/adv,
- /obj/item/stock_parts/micro_laser/ultra,
- /obj/item/stock_parts/micro_laser/quadultra,
- /obj/item/stock_parts/micro_laser/high,
- /obj/item/stock_parts/scanning_module/triphasic,
- /obj/item/stock_parts/scanning_module/phasic,
- /obj/item/stock_parts/scanning_module/adv,
- /obj/item/reagent_containers/glass/beaker/bluespace,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/stock_parts/manipulator/nano,
- /obj/item/stock_parts/manipulator/pico,
- /obj/item/stock_parts/manipulator/femto
- )
-
-/obj/effect/spawner/lootdrop/materials
- name = "random bulk materials"
- lootcount = 2
- loot = list(
- /obj/item/stack/sheet/plastic/fifty,
- /obj/item/stack/sheet/bluespace_crystal/twenty,
- /obj/item/stack/sheet/cardboard/fifty,
- /obj/item/stack/sheet/glass/fifty,
- /obj/item/stack/sheet/metal/fifty,
- /obj/item/stack/sheet/plasteel/twenty,
- /obj/item/stack/sheet/mineral/plasma/fifty,
- /obj/item/stack/sheet/mineral/silver/fifty,
- /obj/item/stack/sheet/mineral/titanium/fifty,
- /obj/item/stack/sheet/mineral/uranium/fifty,
- /obj/item/stack/sheet/mineral/wood/fifty,
- /obj/item/stack/sheet/mineral/diamond/twenty,
- /obj/item/stack/sheet/mineral/gold/fifty,
-
- /obj/item/stack/cable_coil/red,
- /obj/item/stack/rods/fifty
- )
-
-/obj/effect/spawner/lootdrop/singularitygen
- name = "Tesla or Singulo spawner"
- lootdoubles = FALSE
-
- loot = list(
- /obj/machinery/the_singularitygen/tesla = 1,
- /obj/machinery/the_singularitygen = 1,
- )
-
-/obj/effect/spawner/lootdrop/stockparts
- name = "random good stock parts"
- lootcount = 5
- loot = list(
- /obj/item/stock_parts/capacitor/adv,
- /obj/item/stock_parts/capacitor/quadratic,
- /obj/item/stock_parts/capacitor/super,
- /obj/item/stock_parts/cell/hyper,
- /obj/item/stock_parts/cell/super,
- /obj/item/stock_parts/cell/bluespace,
- /obj/item/stock_parts/matter_bin/bluespace,
- /obj/item/stock_parts/matter_bin/super,
- /obj/item/stock_parts/matter_bin/adv,
- /obj/item/stock_parts/micro_laser/ultra,
- /obj/item/stock_parts/micro_laser/quadultra,
- /obj/item/stock_parts/micro_laser/high,
- /obj/item/stock_parts/scanning_module/triphasic,
- /obj/item/stock_parts/scanning_module/phasic,
- /obj/item/stock_parts/scanning_module/adv,
- /obj/item/reagent_containers/glass/beaker/bluespace,
- /obj/item/reagent_containers/glass/beaker/plastic,
- /obj/item/reagent_containers/glass/beaker/large,
- /obj/item/stock_parts/manipulator/nano,
- /obj/item/stock_parts/manipulator/pico,
- /obj/item/stock_parts/manipulator/femto
- )
-
-/obj/effect/spawner/lootdrop/materials
- name = "random materials"
- lootcount = 3
- loot = list(
- /obj/item/stack/sheet/plastic/fifty,
- /obj/item/stack/sheet/plastic/five,
- /obj/item/stack/sheet/bluespace_crystal/twenty,
- /obj/item/stack/sheet/bluespace_crystal/five,
- /obj/item/stack/sheet/cardboard/fifty,
- /obj/item/stack/sheet/glass/fifty,
- /obj/item/stack/sheet/metal/fifty,
- /obj/item/stack/sheet/metal/twenty,
- /obj/item/stack/sheet/plasteel/twenty,
- /obj/item/stack/sheet/mineral/plasma/fifty,
- /obj/item/stack/sheet/mineral/plasma/twenty,
- /obj/item/stack/sheet/mineral/silver/fifty,
- /obj/item/stack/sheet/mineral/titanium/twenty,
- /obj/item/stack/sheet/mineral/uranium/twenty,
- /obj/item/stack/sheet/mineral/wood/fifty,
- /obj/item/stack/sheet/mineral/diamond/twenty,
- /obj/item/stack/sheet/mineral/gold/fifty,
- /obj/item/stack/cable_coil/red,
- /obj/item/stack/rods/fifty
- )
-
-/obj/effect/spawner/lootdrop/donut
- name = "random donut" //donut :)
- lootcount = 1
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/meat = 1,
- /obj/item/reagent_containers/food/snacks/donut/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/trumpet = 1,
- /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/chaos = 1,
- )
-
-/obj/effect/spawner/lootdrop/donut/jelly
- name = "random jelly donut"
- lootcount = 1
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1,
- )
-
-/obj/effect/spawner/lootdrop/donut/slimejelly
- name = "random slimejelly donut"
- lootcount = 1
- loot = list(
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1,
- /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1,
- )
-
-/obj/effect/spawner/lootdrop/seeded
- name = "GO FORTH AND CULTIVATE"
- icon = 'icons/obj/hydroponics/seeds.dmi'
- icon_state = "seed"//sneed
- loot = list(
- /obj/item/seeds/aloe,
- /obj/item/seeds/ambrosia,
- /obj/item/seeds/apple,
- /obj/item/seeds/cotton,
- /obj/item/seeds/banana,
- /obj/item/seeds/berry,
- /obj/item/seeds/cabbage,
- /obj/item/seeds/carrot,
- /obj/item/seeds/cherry,
- /obj/item/seeds/chanter,
- /obj/item/seeds/chili,
- /obj/item/seeds/cocoapod,
- /obj/item/seeds/coffee,
- /obj/item/seeds/corn,
- /obj/item/seeds/eggplant,
- /obj/item/seeds/garlic,
- /obj/item/seeds/grape,
- /obj/item/seeds/grass,
- /obj/item/seeds/lemon,
- /obj/item/seeds/lime,
- /obj/item/seeds/onion,
- /obj/item/seeds/orange,
- /obj/item/seeds/peas,
- /obj/item/seeds/pineapple,
- /obj/item/seeds/potato,
- /obj/item/seeds/poppy,
- /obj/item/seeds/pumpkin,
- /obj/item/seeds/wheat/rice,
- /obj/item/seeds/soya,
- /obj/item/seeds/sugarcane,
- /obj/item/seeds/sunflower,
- /obj/item/seeds/tea,
- /obj/item/seeds/tobacco,
- /obj/item/seeds/tomato,
- /obj/item/seeds/tower,
- /obj/item/seeds/watermelon,
- /obj/item/seeds/wheat,
- /obj/item/seeds/whitebeet,
- /obj/item/seeds/amanita,
- /obj/item/seeds/glowshroom,
- /obj/item/seeds/liberty,
- /obj/item/seeds/nettle,
- /obj/item/seeds/plump,
- /obj/item/seeds/reishi,
- /obj/item/seeds/cannabis,
- /obj/item/seeds/starthistle,
- /obj/item/seeds/cherry/bomb,
- /obj/item/seeds/berry/glow,
- /obj/item/seeds/sunflower/moonflower
- )
-
-/obj/effect/spawner/lootdrop/flora
- name = "random flora spawner"
- loot = list(
- /obj/structure/flora/tree/chapel,
- /obj/structure/flora/tree/pine,
- /obj/structure/flora/tree/jungle/small,
- /obj/structure/flora/tree/jungle,
- /obj/structure/flora/ash/puce,
- /obj/structure/flora/ash/fireblossom,
- /obj/structure/flora/ash/fern,
- /obj/structure/flora/ash/tall_shroom,
- /obj/structure/flora/ash/stem_shroom,
- /obj/structure/flora/ash/space/voidmelon,
- /obj/structure/flora/ash/leaf_shroom,
- /obj/structure/flora/junglebush/large,
- /obj/structure/flora/junglebush/b,
- /obj/structure/flora/junglebush/c,
- /obj/structure/flora/ausbushes/fernybush,
- /obj/structure/flora/ausbushes/genericbush,
- /obj/structure/flora/ausbushes/grassybush,
- /obj/structure/flora/ausbushes/leafybush,
- /obj/structure/flora/ausbushes/palebush,
- /obj/structure/flora/ausbushes/pointybush,
- /obj/structure/flora/ausbushes/reedbush,
- /obj/structure/flora/ausbushes/stalkybush,
- /obj/structure/flora/ausbushes/sunnybush,
- /obj/structure/flora/bush,
- /obj/structure/flora/grass/jungle,
- /obj/structure/flora/junglebush,
- /obj/structure/flora/junglebush/b,
- /obj/structure/flora/junglebush/c,
- /obj/structure/flora/ash,
- /obj/structure/flora/ash/cacti,
- /obj/structure/flora/ash/cap_shroom,
- /obj/structure/flora/ash/chilly,
- /obj/structure/flora/tree/palm
- )
- lootcount = 1
-
-/obj/effect/spawner/lootdrop/flower
- name = "random flower spawner"
- loot = list(
- /obj/structure/flora/ausbushes/brflowers,
- /obj/structure/flora/ausbushes/ywflowers,
- /obj/structure/flora/ausbushes/ppflowers,
- /obj/structure/flora/ausbushes/fullgrass,
- /obj/structure/flora/ausbushes/sparsegrass
- )
- lootcount = 1
-
-/obj/effect/spawner/lootdrop/anomaly
- name = "random anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/safe
- name = "relatively safe anomaly spawner"
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/dangerous
- name = "relatively dangerous anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/big
- name = "random big anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/big/planetary,
- /obj/effect/anomaly/flux/big/planetary,
- /obj/effect/anomaly/grav/high/big/planetary,
- /obj/effect/anomaly/pyro/big/planetary
-
- )
-
-//handpicked lists relevant to the planets they're on
-// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though
-
-/obj/effect/spawner/lootdrop/anomaly/jungle
- name = "Jungle Anomaly Spawner"
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/jungle/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some*
-
-/obj/effect/spawner/lootdrop/anomaly/beach
- name = "Beach anomaly spawner"
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/beach/cave
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/sand
- name = "Sand anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/sand/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/rock
- name = "Rock anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/tvstatic/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/rock/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/sparkler/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/lava
- name = "Lava anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/lava/cave
- loot = list(
- /obj/effect/anomaly/flux/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/pyro/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/ice
- name = "Ice anomaly spawner"
- loot = list(
- /obj/effect/anomaly/bluespace/planetary,
- /obj/effect/anomaly/grav/planetary,
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/ice/cave
- loot = list(
- /obj/effect/anomaly/hallucination/planetary,
- /obj/effect/anomaly/grav/high/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/phantom/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/waste
- name = "Waste anomaly spawner"
- loot = list(
- /obj/effect/anomaly/vortex/planetary,
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/waste/cave
- loot = list(
- /obj/effect/anomaly/heartbeat/planetary,
- /obj/effect/anomaly/veins/planetary,
- /obj/effect/anomaly/plasmasoul/planetary,
- /obj/effect/anomaly/melter/planetary,
- )
-
-/obj/effect/spawner/lootdrop/anomaly/storm
- loot = list(
- /obj/effect/anomaly/flux,
- /obj/effect/anomaly/pyro,
- /obj/effect/anomaly/sparkler,
- /obj/effect/anomaly/veins,
- /obj/effect/anomaly/phantom,
- /obj/effect/anomaly/melter,
- )
-
-//wasteplanet things
-
-/obj/effect/spawner/lootdrop/waste/grille_or_trash
- name = "wasteplanet loot spawner"
- loot = list(
- /obj/structure/grille/broken = 5,
- /obj/structure/grille = 5,
- /obj/item/cigbutt = 1,
- /obj/item/trash/cheesie = 1,
- /obj/item/trash/candy = 1,
- /obj/item/trash/chips = 1,
- /obj/item/reagent_containers/food/snacks/deadmouse = 1,
- /obj/item/trash/pistachios = 1,
- /obj/item/trash/plate = 1,
- /obj/item/trash/popcorn = 1,
- /obj/item/trash/raisins = 1,
- /obj/item/trash/sosjerky = 1,
- /obj/item/trash/syndi_cakes = 1
- )
-
-/obj/effect/spawner/lootdrop/waste/mechwreck
- name = "wasteplanet exosuit wreckage"
- loot = list(
- /obj/structure/mecha_wreckage/ripley = 15,
- /obj/structure/mecha_wreckage/ripley/firefighter = 9,
- /obj/structure/mecha_wreckage/ripley/mkii = 9,
- /obj/structure/mecha_wreckage/ripley/clip = 9
- )
-
-/obj/effect/spawner/lootdrop/waste/mechwreck/rare
- loot = list(
- /obj/structure/mecha_wreckage/durand = 12.5,
- /obj/structure/mecha_wreckage/durand/clip = 12.5,
- /obj/structure/mecha_wreckage/odysseus = 25,
- /obj/structure/mecha_wreckage/gygax = 25
- )
-
-/obj/effect/spawner/lootdrop/waste/trash //debatable if this is actually loot
- loot = list(
- /obj/effect/decal/cleanable/greenglow/filled = 30,
- /obj/effect/decal/cleanable/greenglow/ecto = 1,
- /obj/effect/decal/cleanable/glass = 30,
- /obj/effect/decal/cleanable/glass/plasma = 30,
- /obj/effect/decal/cleanable/glass/strange = 30,
- /obj/effect/decal/cleanable/molten_object = 30,
- /obj/effect/decal/cleanable/molten_object/large = 30,
- /obj/effect/decal/cleanable/oil = 30,
- /obj/effect/decal/cleanable/oil/slippery = 1, // :)
- /obj/effect/decal/cleanable/plastic = 30,
- /obj/effect/decal/cleanable/ash = 30,
- /obj/effect/decal/cleanable/ash/large = 30,
- )
-
-/obj/effect/spawner/lootdrop/waste/radiation
- loot = list(
- /obj/structure/radioactive = 6,
- /obj/structure/radioactive/stack = 6,
- /obj/structure/radioactive/waste = 6
- )
-
-/obj/effect/spawner/lootdrop/waste/radiation/more_rads
- loot = list(
- /obj/structure/radioactive = 3,
- /obj/structure/radioactive/stack = 12,
- /obj/structure/radioactive/waste = 12
- )
-
-/obj/effect/spawner/lootdrop/waste/atmos_can
- loot = list(
- /obj/machinery/portable_atmospherics/canister/toxins = 3,
- /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
- /obj/machinery/portable_atmospherics/canister/nitrogen = 3,
- /obj/machinery/portable_atmospherics/canister/oxygen = 3,
- /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1,
- /obj/machinery/portable_atmospherics/canister/water_vapor = 1
- )
-
-/obj/effect/spawner/lootdrop/waste/atmos_can/rare
- loot = list(
- /obj/machinery/portable_atmospherics/canister/tritium = 3,
- /obj/machinery/portable_atmospherics/canister/pluoxium = 3
- )
-
-/obj/effect/spawner/lootdrop/waste/salvageable
- loot = list(
- /obj/structure/salvageable/machine = 20,
- /obj/structure/salvageable/autolathe = 15,
- /obj/structure/salvageable/computer = 10,
- /obj/structure/salvageable/protolathe = 10,
- /obj/structure/salvageable/circuit_imprinter = 8,
- /obj/structure/salvageable/destructive_analyzer = 8,
- /obj/structure/salvageable/server = 8
- )
-
-/obj/effect/spawner/lootdrop/waste/girder
- loot = list(
- /obj/structure/girder,
- /obj/structure/girder/displaced,
- /obj/structure/girder/reinforced
- )
-/obj/effect/spawner/lootdrop/waste/hivebot
- loot = list(
- /obj/effect/spawner/lootdrop/salvage/metal,
- /obj/effect/spawner/lootdrop/salvage/metal,
- /obj/effect/spawner/lootdrop/salvage/metal,
- /obj/effect/spawner/lootdrop/salvage/gold,
- /obj/effect/spawner/lootdrop/salvage/plasma,
- /obj/effect/spawner/lootdrop/salvage/silver,
- /obj/effect/spawner/lootdrop/salvage/titanium,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapuranium
- )
- lootcount = 2
-
-/obj/effect/spawner/lootdrop/waste/hivebot/beacon
- lootcount = 6
-
-/obj/effect/spawner/lootdrop/salvage
- name = "salvage mats spawner"
- loot = list(
- /obj/item/stack/ore/salvage/scrapmetal,
- /obj/item/stack/ore/salvage/scrapgold,
- /obj/item/stack/ore/salvage/scrapplasma,
- /obj/item/stack/ore/salvage/scrapsilver,
- /obj/item/stack/ore/salvage/scraptitanium,
- /obj/item/stack/ore/salvage/scrapbluespace,
- /obj/item/stack/ore/salvage/scrapuranium
- )
-
-/obj/effect/spawner/lootdrop/salvage/metal
- loot = list(
- /obj/item/stack/ore/salvage/scrapmetal
- )
-
-/obj/effect/spawner/lootdrop/salvage/metal/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/lootdrop/salvage/gold
- loot = list(
- /obj/item/stack/ore/salvage/scrapgold
- )
-
-/obj/effect/spawner/lootdrop/salvage/gold/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/lootdrop/salvage/plasma
- loot = list(
- /obj/item/stack/ore/salvage/scrapplasma
- )
-/obj/effect/spawner/lootdrop/salvage/plasma/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-
-/obj/effect/spawner/lootdrop/salvage/silver
- loot = list(
- /obj/item/stack/ore/salvage/scrapsilver
- )
-/obj/effect/spawner/lootdrop/salvage/silver/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-
-/obj/effect/spawner/lootdrop/salvage/titanium
- loot = list(
- /obj/item/stack/ore/salvage/scraptitanium
- )
-/obj/effect/spawner/lootdrop/salvage/titanium/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/lootdrop/salvage/bluespace
- loot = list(
- /obj/item/stack/ore/salvage/scrapbluespace
- )
-/obj/effect/spawner/lootdrop/salvage/bluespace/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-/obj/effect/spawner/lootdrop/salvage/uranium
- loot = list(
- /obj/item/stack/ore/salvage/scrapuranium
- )
-/obj/effect/spawner/lootdrop/salvage/uranium/Initialize()
- lootcount = pick(list(
- 1,
- 2,
- 3,
- 4
- ))
- return ..()
-
-
-//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason
-/obj/effect/spawner/lootdrop/randomprotolathe
- name = "random departmental protolathe"
- loot = list(
- /obj/item/circuitboard/machine/protolathe/department/cargo,
- /obj/item/circuitboard/machine/protolathe/department/engineering,
- /obj/item/circuitboard/machine/protolathe/department/service,
- /obj/item/circuitboard/machine/protolathe/department/medical,
- /obj/item/circuitboard/machine/protolathe/department/science,
- /obj/item/circuitboard/machine/protolathe/department/security
- )
-
-/obj/effect/spawner/lootdrop/randomimprinter
- name = "random departmental circuit imprinter"
- loot = list(
- /obj/item/circuitboard/machine/circuit_imprinter/department/cargo,
- /obj/item/circuitboard/machine/circuit_imprinter/department/engi,
- /obj/item/circuitboard/machine/circuit_imprinter/department/civ,
- /obj/item/circuitboard/machine/circuit_imprinter/department/med,
- /obj/item/circuitboard/machine/circuit_imprinter/department/science,
- /obj/item/circuitboard/machine/circuit_imprinter/department/sec
- )
-
-/obj/effect/spawner/lootdrop/randomtechfab
- name = "random departmental techfab"
- loot = list(
- /obj/item/circuitboard/machine/techfab/department/service,
- /obj/item/circuitboard/machine/techfab/department/cargo,
- /obj/item/circuitboard/machine/techfab/department/engineering,
- /obj/item/circuitboard/machine/techfab/department/service,
- /obj/item/circuitboard/machine/techfab/department/medical,
- /obj/item/circuitboard/machine/techfab/department/science,
- /obj/item/circuitboard/machine/techfab/department/security
- )
-
-/obj/effect/spawner/lootdrop/ration
- loot = list (
- /obj/item/storage/ration/vegan_chili = 5,
- /obj/item/storage/ration/shredded_beef = 5,
- /obj/item/storage/ration/pork_spaghetti = 5,
- /obj/item/storage/ration/fried_fish = 5,
- /obj/item/storage/ration/beef_strips = 5,
- /obj/item/storage/ration/chili_macaroni = 5,
- /obj/item/storage/ration/chicken_wings_hot_sauce = 5,
- /obj/item/storage/ration/fish_stew = 5,
- /obj/item/storage/ration/lemon_pepper_chicken = 5,
- /obj/item/storage/ration/sausage_peppers_onions = 5,
- /obj/item/storage/ration/pork_dumplings_chili_sauce = 5,
- /obj/item/storage/ration/battered_fish_sticks = 5,
- /obj/item/storage/ration/assorted_salted_offal = 5,
- /obj/item/storage/ration/maple_pork_sausage_patty = 5,
- /obj/item/storage/ration/pepper_jack_beef_patty = 5,
- /obj/item/storage/ration/beef_goulash = 5,
- /obj/item/storage/ration/pepperoni_pizza_slice = 5,
- /obj/item/storage/ration/blackened_calamari = 5,
- /obj/item/storage/ration/elbow_macaroni = 5,
- /obj/item/storage/ration/cheese_pizza_slice = 5,
- /obj/item/storage/ration/crayons = 2 // :)
- )
diff --git a/code/game/objects/effects/spawners/mobspawner.dm b/code/game/objects/effects/spawners/mobspawner.dm
index 187b7c155fe0..2161ebd06bb5 100644
--- a/code/game/objects/effects/spawners/mobspawner.dm
+++ b/code/game/objects/effects/spawners/mobspawner.dm
@@ -1,11 +1,11 @@
-/obj/effect/spawner/lootdrop/randomthreat
+/obj/effect/spawner/random/randomthreat
var/static/mob_category = rand(1, 3)
-/obj/effect/spawner/lootdrop/randomthreat/Initialize(mapload)
+/obj/effect/spawner/random/randomthreat/Initialize(mapload)
switch(mob_category)
if(1)
loot = list(
- /obj/effect/spawner/lootdrop/hivebotspawner
+ /obj/effect/spawner/random/hivebotspawner
)
if(2)
loot = list(
@@ -13,28 +13,28 @@
)
if(3)
loot = list(
- /obj/effect/spawner/lootdrop/spiderspawner
+ /obj/effect/spawner/random/spiderspawner
)
return ..()
-/obj/effect/spawner/lootdrop/xenospawner
+/obj/effect/spawner/random/xenospawner
name = "Xenomorph spawner"
loot = list(
/mob/living/simple_animal/hostile/alien = 0.3,
/mob/living/simple_animal/hostile/alien/drone = 0.2,
/mob/living/simple_animal/hostile/alien/sentinel = 0.3,
- /obj/effect/spawner/lootdrop/xenoqueenspawner = 0.1
+ /obj/effect/spawner/random/xenoqueenspawner = 0.1
)
-/obj/effect/spawner/lootdrop/xenoqueenspawner
+/obj/effect/spawner/random/xenoqueenspawner
name = "xenomorph queen spawner"
loot = list(
/mob/living/simple_animal/hostile/alien/queen = 0.2, //regular queen mob isn't actually that strong
/mob/living/simple_animal/hostile/alien/queen/large = 0.8
)
-/obj/effect/spawner/lootdrop/hivebotspawner
+/obj/effect/spawner/random/hivebotspawner
name = "Hivebot spawner"
loot = list(
@@ -42,7 +42,7 @@
/mob/living/simple_animal/hostile/hivebot,
)
-/obj/effect/spawner/lootdrop/spiderspawner
+/obj/effect/spawner/random/spiderspawner
name = "Spider spawner"
loot = list(
@@ -51,29 +51,29 @@
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,
)
-/obj/effect/spawner/lootdrop/thirtyfive_percent_borerspawner
+/obj/effect/spawner/random/thirtyfive_percent_borerspawner
name = "35 percent neutered borer spawner"
loot = list(
/mob/living/simple_animal/borer/sterile = 0.35,
- /obj/effect/spawner/lootdrop/maintenance = 0.65,
+ /obj/effect/spawner/random/maintenance = 0.65,
)
-/obj/effect/spawner/lootdrop/chicken
+/obj/effect/spawner/random/chicken
name = "chicken spawner"
loot = list(
/mob/living/simple_animal/chicken
)
-/obj/effect/spawner/lootdrop/chicken/jungle
+/obj/effect/spawner/random/chicken/jungle
name = "jungle chicken spawner"
loot = list(
/mob/living/simple_animal/hostile/retaliate/chicken
)
-/obj/effect/spawner/lootdrop/chicken/jungle/flock
+/obj/effect/spawner/random/chicken/jungle/flock
loot = list(
/mob/living/simple_animal/hostile/retaliate/chicken
)
- lootcount = 7
- lootdoubles = TRUE
+ spawn_loot_count = 7
+ spawn_loot_double = TRUE
diff --git a/code/game/objects/effects/spawners/random/ai_module.dm b/code/game/objects/effects/spawners/random/ai_module.dm
new file mode 100644
index 000000000000..7f5eed59e4a0
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/ai_module.dm
@@ -0,0 +1,41 @@
+/obj/effect/spawner/random/aimodule
+ name = "AI module spawner"
+ desc = "State laws human."
+ icon_state = "circuit"
+ spawn_loot_double = FALSE
+ spawn_loot_count = 3
+ spawn_loot_split = TRUE
+
+/obj/effect/spawner/random/aimodule_harmless // These shouldn't allow the AI to start butchering people
+ name = "harmless AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/asimov,
+ /obj/item/aiModule/core/full/asimovpp,
+ /obj/item/aiModule/core/full/hippocratic,
+ /obj/item/aiModule/core/full/paladin_devotion,
+ /obj/item/aiModule/core/full/paladin
+ )
+
+/obj/effect/spawner/random/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
+ name = "neutral AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/corp,
+ /obj/item/aiModule/core/full/maintain,
+ /obj/item/aiModule/core/full/drone,
+ /obj/item/aiModule/core/full/peacekeeper,
+ /obj/item/aiModule/core/full/reporter,
+ /obj/item/aiModule/core/full/robocop,
+ /obj/item/aiModule/core/full/liveandletlive,
+ /obj/item/aiModule/core/full/hulkamania
+ )
+
+/obj/effect/spawner/random/aimodule_harmful // These will get the shuttle called
+ name = "harmful AI module spawner"
+ loot = list(
+ /obj/item/aiModule/core/full/antimov,
+ /obj/item/aiModule/core/full/balance,
+ /obj/item/aiModule/core/full/tyrant,
+ /obj/item/aiModule/core/full/thermurderdynamic,
+ /obj/item/aiModule/core/full/damaged,
+ /obj/item/aiModule/reset/purge
+ )
diff --git a/code/game/objects/effects/spawners/random/anomaly.dm b/code/game/objects/effects/spawners/random/anomaly.dm
new file mode 100644
index 000000000000..aa8fa472de2c
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/anomaly.dm
@@ -0,0 +1,222 @@
+/obj/effect/spawner/random/anomaly
+ name = "random anomaly spawner"
+ icon_state = "anomaly"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/safe
+ name = "relatively safe anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/transfusion/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/dangerous
+ name = "relatively dangerous anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/big
+ name = "random big anomaly spawner"
+ icon_state = "big_anomaly"
+ loot = list(
+ /obj/effect/anomaly/bluespace/big/planetary,
+ /obj/effect/anomaly/flux/big/planetary,
+ /obj/effect/anomaly/grav/high/big/planetary,
+ /obj/effect/anomaly/pyro/big/planetary
+
+ )
+
+//handpicked lists relevant to the planets they're on
+// /cave lists are made for spawning in cave biomes. Not every anomaly goes well there. We don't have enough anomalies to really populate them all though
+
+/obj/effect/spawner/random/anomaly/jungle
+ name = "Jungle Anomaly Spawner"
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/jungle/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+//beaches don't currently have anomalies, but I don't see a reason why they couldn't have *some*
+
+/obj/effect/spawner/random/anomaly/beach
+ name = "Beach anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/beach/cave
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/sand
+ name = "Sand anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/sand/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/rock
+ name = "Rock anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/tvstatic/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/rock/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/sparkler/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/lava
+ name = "Lava anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/lava/cave
+ loot = list(
+ /obj/effect/anomaly/flux/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/pyro/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/ice
+ name = "Ice anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/bluespace/planetary,
+ /obj/effect/anomaly/grav/planetary,
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/ice/cave
+ loot = list(
+ /obj/effect/anomaly/hallucination/planetary,
+ /obj/effect/anomaly/grav/high/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/phantom/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/waste
+ name = "Waste anomaly spawner"
+ loot = list(
+ /obj/effect/anomaly/vortex/planetary,
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/waste/cave
+ loot = list(
+ /obj/effect/anomaly/heartbeat/planetary,
+ /obj/effect/anomaly/veins/planetary,
+ /obj/effect/anomaly/plasmasoul/planetary,
+ /obj/effect/anomaly/melter/planetary,
+ )
+
+/obj/effect/spawner/random/anomaly/storm
+ loot = list(
+ /obj/effect/anomaly/flux/storm,
+ /obj/effect/anomaly/pyro/storm,
+ /obj/effect/anomaly/sparkler,
+ /obj/effect/anomaly/veins,
+ /obj/effect/anomaly/phantom,
+ /obj/effect/anomaly/melter,
+ )
diff --git a/code/game/objects/effects/spawners/random/bedsheet.dm b/code/game/objects/effects/spawners/random/bedsheet.dm
new file mode 100644
index 000000000000..f8a53fffd2c9
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/bedsheet.dm
@@ -0,0 +1,33 @@
+/obj/effect/spawner/random/bedsheet
+ name = "random dorm bedsheet"
+ icon_state = "random_bedsheet"
+ loot = list(
+ /obj/item/bedsheet,
+ /obj/item/bedsheet/blue,
+ /obj/item/bedsheet/green,
+ /obj/item/bedsheet/grey,
+ /obj/item/bedsheet/orange,
+ /obj/item/bedsheet/purple,
+ /obj/item/bedsheet/red,
+ /obj/item/bedsheet/yellow,
+ /obj/item/bedsheet/brown,
+ /obj/item/bedsheet/black,
+ /obj/item/bedsheet/rainbow
+ )
+
+/obj/effect/spawner/random/bedsheet/double
+ name = "random dorm double bedsheet"
+ icon_state = "random_doublesheet"
+ loot = list(
+ /obj/item/bedsheet/double,
+ /obj/item/bedsheet/double/blue,
+ /obj/item/bedsheet/double/green,
+ /obj/item/bedsheet/double/grey,
+ /obj/item/bedsheet/double/orange,
+ /obj/item/bedsheet/double/purple,
+ /obj/item/bedsheet/double/red,
+ /obj/item/bedsheet/double/yellow,
+ /obj/item/bedsheet/double/brown,
+ /obj/item/bedsheet/double/black,
+ /obj/item/bedsheet/double/rainbow
+ )
diff --git a/code/game/objects/effects/spawners/random/boards.dm b/code/game/objects/effects/spawners/random/boards.dm
new file mode 100644
index 000000000000..0104d17326d7
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/boards.dm
@@ -0,0 +1,245 @@
+// Tech storage circuit board spawners
+
+/obj/effect/spawner/random/techstorage
+ name = "generic circuit board spawner"
+ icon_state = "circuit"
+ spawn_loot_split = TRUE
+ spawn_all_loot = TRUE
+
+/obj/effect/spawner/random/techstorage/service
+ name = "service circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/arcade/battle,
+ /obj/item/circuitboard/computer/arcade/orion_trail,
+ /obj/item/circuitboard/machine/autolathe,
+ /obj/item/circuitboard/computer/mining,
+ /obj/item/circuitboard/machine/ore_redemption,
+ /obj/item/circuitboard/machine/vending/mining_equipment,
+ /obj/item/circuitboard/machine/microwave,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks,
+ /obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
+ /obj/item/circuitboard/computer/slot_machine
+ )
+
+/obj/effect/spawner/random/techstorage/rnd
+ name = "RnD circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/aifixer,
+ /obj/item/circuitboard/machine/rdserver,
+ /obj/item/circuitboard/machine/mechfab,
+ /obj/item/circuitboard/machine/circuit_imprinter/department,
+ /obj/item/circuitboard/computer/teleporter,
+ /obj/item/circuitboard/machine/destructive_analyzer,
+ /obj/item/circuitboard/computer/rdconsole,
+ /obj/item/circuitboard/computer/nanite_chamber_control,
+ /obj/item/circuitboard/computer/nanite_cloud_controller,
+ /obj/item/circuitboard/machine/nanite_chamber,
+ /obj/item/circuitboard/machine/nanite_programmer,
+ /obj/item/circuitboard/machine/nanite_program_hub
+ )
+
+/obj/effect/spawner/random/techstorage/security
+ name = "security circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/secure_data,
+ /obj/item/circuitboard/computer/security,
+ /obj/item/circuitboard/computer/prisoner
+ )
+
+/obj/effect/spawner/random/techstorage/engineering
+ name = "engineering circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/atmos_alert,
+ /obj/item/circuitboard/computer/stationalert,
+ /obj/item/circuitboard/computer/powermonitor
+ )
+
+/obj/effect/spawner/random/techstorage/tcomms
+ name = "tcomms circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/message_monitor,
+ /obj/item/circuitboard/machine/telecomms/broadcaster,
+ /obj/item/circuitboard/machine/telecomms/bus,
+ /obj/item/circuitboard/machine/telecomms/server,
+ /obj/item/circuitboard/machine/telecomms/receiver,
+ /obj/item/circuitboard/machine/telecomms/processor,
+ /obj/item/circuitboard/machine/announcement_system,
+ /obj/item/circuitboard/computer/comm_server,
+ /obj/item/circuitboard/computer/comm_monitor
+ )
+
+/obj/effect/spawner/random/techstorage/medical
+ name = "medical circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/machine/chem_dispenser,
+ /obj/item/circuitboard/computer/scan_consolenew,
+ /obj/item/circuitboard/computer/med_data,
+ /obj/item/circuitboard/machine/smoke_machine,
+ /obj/item/circuitboard/machine/chem_master,
+ /obj/item/circuitboard/machine/dnascanner,
+ /obj/item/circuitboard/computer/pandemic
+ )
+
+/obj/effect/spawner/random/techstorage/ai_all
+ name = "secure AI circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/aiupload,
+ /obj/item/circuitboard/computer/borgupload,
+ /obj/item/circuitboard/aicore
+ )
+
+/obj/effect/spawner/random/techstorage/command
+ name = "secure command circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/crew,
+ /obj/item/circuitboard/computer/communications,
+ /obj/item/circuitboard/computer/card
+ )
+
+/obj/effect/spawner/random/techstorage/rnd_secure
+ name = "secure RnD circuit board spawner"
+ loot = list(
+ /obj/item/circuitboard/computer/mecha_control,
+ /obj/item/circuitboard/computer/apc_control,
+ /obj/item/circuitboard/computer/robotics
+ )
+
+//random RND imprinter/protolathe board spawners. Do not use on maps without a good reason
+/obj/effect/spawner/random/circuit/protolathe
+ name = "random departmental protolathe"
+ icon_state = "circuit"
+ loot = list(
+ /obj/item/circuitboard/machine/protolathe/department/cargo,
+ /obj/item/circuitboard/machine/protolathe/department/engineering,
+ /obj/item/circuitboard/machine/protolathe/department/service,
+ /obj/item/circuitboard/machine/protolathe/department/medical,
+ /obj/item/circuitboard/machine/protolathe/department/science,
+ /obj/item/circuitboard/machine/protolathe/department/security
+ )
+
+/obj/effect/spawner/random/circuit/imprinter
+ name = "random departmental circuit imprinter"
+ icon_state = "circuit"
+ loot = list(
+ /obj/item/circuitboard/machine/circuit_imprinter/department/cargo,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/engi,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/civ,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/med,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/science,
+ /obj/item/circuitboard/machine/circuit_imprinter/department/sec
+ )
+
+/obj/effect/spawner/random/circuit/techfab
+ name = "random departmental techfab"
+ icon_state = "circuit"
+ loot = list(
+ /obj/item/circuitboard/machine/techfab/department/service,
+ /obj/item/circuitboard/machine/techfab/department/cargo,
+ /obj/item/circuitboard/machine/techfab/department/engineering,
+ /obj/item/circuitboard/machine/techfab/department/service,
+ /obj/item/circuitboard/machine/techfab/department/medical,
+ /obj/item/circuitboard/machine/techfab/department/science,
+ /obj/item/circuitboard/machine/techfab/department/security
+ )
+
+/obj/effect/spawner/random/rnd
+ name = "random RND spawner"
+ icon_state = "circuit"
+ loot = list(
+ /obj/item/storage/box/rndmining,
+ /obj/item/storage/box/rndengi,
+ /obj/item/storage/box/rndsec,
+ /obj/item/storage/box/rndciv,
+ /obj/item/storage/box/rndmed
+ )
+
+/obj/effect/spawner/random/circuit/machine/common
+ loot = list(
+ /obj/item/circuitboard/machine/autolathe = 5,
+ /obj/item/circuitboard/machine/biogenerator = 5,
+ /obj/item/circuitboard/machine/cell_charger = 5,
+ /obj/item/circuitboard/machine/chem_heater = 5,
+ /obj/item/circuitboard/machine/chem_master = 5,
+ /obj/item/circuitboard/machine/clonescanner = 5,
+ /obj/item/circuitboard/machine/cryo_tube = 5,
+ /obj/item/circuitboard/machine/cyborgrecharger = 5,
+ /obj/item/circuitboard/machine/deep_fryer = 5,
+ /obj/item/circuitboard/machine/experimentor = 5,
+ /obj/item/circuitboard/machine/holopad = 5,
+ /obj/item/circuitboard/machine/hydroponics = 5,
+ /obj/item/circuitboard/machine/limbgrower = 5,
+ /obj/item/circuitboard/machine/ltsrbt = 5,
+ /obj/item/circuitboard/machine/mech_recharger = 5,
+ /obj/item/circuitboard/machine/mechfab = 5,
+ /obj/item/circuitboard/machine/medical_kiosk = 5,
+ /obj/item/circuitboard/machine/medipen_refiller = 5,
+ /obj/item/circuitboard/machine/microwave = 5,
+ /obj/item/circuitboard/machine/ore_redemption = 5,
+ /obj/item/circuitboard/machine/ore_silo = 5,
+ /obj/item/circuitboard/machine/reagentgrinder = 5,
+ /obj/item/circuitboard/machine/recharger = 5,
+ /obj/item/circuitboard/machine/seed_extractor = 5,
+ /obj/item/circuitboard/machine/selling_pad = 5,
+ /obj/item/circuitboard/machine/emitter = 5,
+ )
+
+/obj/effect/spawner/random/circuit
+ icon_state = "circuit"
+
+/obj/effect/spawner/random/circuit/machine/rare
+ loot = list(
+ /obj/item/circuitboard/aicore = 5,
+ /obj/item/circuitboard/machine/chem_dispenser = 5,
+ /obj/item/circuitboard/machine/circuit_imprinter = 5,
+ /obj/item/circuitboard/machine/protolathe = 5,
+ /obj/item/circuitboard/machine/clonepod/experimental = 5,
+ /obj/item/circuitboard/machine/rad_collector = 5,
+ /obj/item/circuitboard/machine/launchpad = 5,
+ )
+
+/obj/effect/spawner/random/circuit/machine/mech
+ loot = list(
+ /obj/item/circuitboard/mecha/ripley/main = 100,
+ /obj/item/circuitboard/mecha/ripley/peripherals = 100,
+ /obj/item/circuitboard/mecha/honker/main = 5,
+ /obj/item/circuitboard/mecha/honker/peripherals = 5,
+ /obj/item/circuitboard/mecha/odysseus/main = 5,
+ /obj/item/circuitboard/mecha/odysseus/peripherals = 5,
+ /obj/item/circuitboard/mecha/gygax/main = 1,
+ /obj/item/circuitboard/mecha/gygax/peripherals = 1,
+ /obj/item/circuitboard/mecha/gygax/targeting = 1,
+ /obj/item/circuitboard/mecha/durand/main = 1,
+ /obj/item/circuitboard/mecha/durand/peripherals = 1,
+ /obj/item/circuitboard/mecha/durand/targeting = 1,
+ )
+
+//COMPUTER
+/obj/effect/spawner/random/circuit/computer/common
+ loot = list(
+ /obj/item/circuitboard/computer/aifixer = 5,
+ /obj/item/circuitboard/computer/arcade/amputation = 5,
+ /obj/item/circuitboard/computer/arcade/battle = 5,
+ /obj/item/circuitboard/computer/arcade/orion_trail = 5,
+ /obj/item/circuitboard/computer/atmos_alert = 5,
+ /obj/item/circuitboard/computer/card = 5,
+ /obj/item/circuitboard/computer/cloning = 5,
+ /obj/item/circuitboard/computer/communications = 5,
+ /obj/item/circuitboard/computer/launchpad_console = 5,
+ /obj/item/circuitboard/computer/mech_bay_power_console = 5,
+ /obj/item/circuitboard/computer/pandemic = 5,
+ /obj/item/circuitboard/computer/powermonitor/secret = 5,
+ /obj/item/circuitboard/computer/prototype_cloning = 5,
+ /obj/item/circuitboard/computer/stationalert = 5,
+ /obj/item/circuitboard/computer/teleporter = 5,
+ /obj/item/circuitboard/computer/operating = 5,
+ /obj/item/circuitboard/computer/crew = 5,
+ /obj/item/circuitboard/computer/scan_consolenew = 5,
+ )
+
+/obj/effect/spawner/random/circuit/computer/rare
+ loot = list(
+ /obj/item/circuitboard/computer/cargo = 5,
+ /obj/item/circuitboard/computer/communications = 5,
+ /obj/item/circuitboard/computer/shuttle/helm = 5,
+ /obj/item/circuitboard/computer/med_data = 5,
+ )
diff --git a/code/game/objects/effects/spawners/random/bureaucracy.dm b/code/game/objects/effects/spawners/random/bureaucracy.dm
new file mode 100644
index 000000000000..b55c9dc7b364
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/bureaucracy.dm
@@ -0,0 +1,68 @@
+/obj/effect/spawner/random/bureaucracy
+ name = "bureaucracy loot spawner"
+ desc = "For the exotic art of paper shuffling."
+
+/obj/effect/spawner/random/bureaucracy/pen
+ name = "pen spawner"
+ icon_state = "pen"
+ loot = list(
+ /obj/item/pen = 30,
+ /obj/item/pen/blue = 5,
+ /obj/item/pen/red = 5,
+ /obj/item/flashlight/pen = 5,
+ /obj/item/pen/fourcolor = 2,
+ /obj/item/pen/fountain = 1,
+ )
+
+/obj/effect/spawner/random/bureaucracy/stamp
+ name = "stamp spawner"
+ icon_state = "stamp"
+ loot = list(
+ /obj/item/stamp = 3,
+ /obj/item/stamp/denied = 1,
+ )
+
+/obj/effect/spawner/random/bureaucracy/crayon
+ name = "crayon spawner"
+ icon_state = "crayon"
+ loot = list(
+ /obj/item/toy/crayon/red,
+ /obj/item/toy/crayon/orange,
+ /obj/item/toy/crayon/yellow,
+ /obj/item/toy/crayon/green,
+ /obj/item/toy/crayon/blue,
+ /obj/item/toy/crayon/purple,
+ /obj/item/toy/crayon/black,
+ /obj/item/toy/crayon/white,
+ )
+
+/obj/effect/spawner/random/bureaucracy/paper
+ name = "paper spawner"
+ icon_state = "paper"
+ loot = list(
+ /obj/item/paper = 20,
+ /obj/item/paper/crumpled = 2,
+ /obj/item/paper/crumpled/bloody = 2,
+ /obj/item/paper/crumpled/muddy = 2,
+ /obj/item/paper/construction = 1,
+ /obj/item/paper/carbon = 1,
+ )
+
+/obj/effect/spawner/random/bureaucracy/briefcase
+ name = "briefcase spawner"
+ icon_state = "briefcase"
+ loot = list(
+ /obj/item/storage/briefcase = 3,
+ /obj/item/storage/briefcase/lawyer = 1,
+ )
+
+/obj/effect/spawner/random/bureaucracy/folder
+ name = "folder spawner"
+ icon_state = "folder"
+ loot = list(
+ /obj/item/folder/blue,
+ /obj/item/folder/red,
+ /obj/item/folder/yellow,
+ /obj/item/folder/white,
+ /obj/item/folder,
+ )
diff --git a/code/game/objects/effects/spawners/random/clothing.dm b/code/game/objects/effects/spawners/random/clothing.dm
new file mode 100644
index 000000000000..e5137f9e5078
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/clothing.dm
@@ -0,0 +1,67 @@
+/obj/effect/spawner/random/clothing
+ name = "clothing loot spawner"
+ desc = "Time to look pretty."
+ icon_state = "suit"
+
+/obj/effect/spawner/random/clothing/gloves
+ name = "random gloves"
+ desc = "These gloves are supposed to be a random color..."
+ icon_state = "gloves"
+ loot = list(
+ /obj/item/clothing/gloves/color/orange,
+ /obj/item/clothing/gloves/color/red,
+ /obj/item/clothing/gloves/color/blue,
+ /obj/item/clothing/gloves/color/purple,
+ /obj/item/clothing/gloves/color/green,
+ /obj/item/clothing/gloves/color/grey,
+ /obj/item/clothing/gloves/color/light_brown,
+ /obj/item/clothing/gloves/color/brown,
+ /obj/item/clothing/gloves/color/white,
+ /obj/item/clothing/gloves/color/rainbow
+ )
+
+/obj/effect/spawner/random/clothing/costume
+ name = "random costume spawner"
+ icon_state = "costume"
+ loot_subtype_path = /obj/effect/spawner/costume
+ loot = list()
+
+/obj/effect/spawner/random/clothing/beret_or_rabbitears
+ name = "beret or rabbit ears spawner"
+ loot = list(
+ /obj/item/clothing/head/beret
+ )
+
+/obj/effect/spawner/random/clothing/bowler_or_that
+ name = "bowler or top hat spawner"
+ loot = list(
+ /obj/item/clothing/head/that
+ )
+
+/obj/effect/spawner/random/clothing/kittyears_or_rabbitears
+ name = "kitty ears or rabbit ears spawner"
+ loot = list(
+ /obj/item/clothing/head/kitty
+ )
+
+/obj/effect/spawner/random/clothing/pirate_or_bandana
+ name = "pirate hat or bandana spawner"
+ loot = list(
+ /obj/item/clothing/head/pirate,
+ /obj/item/clothing/head/bandana
+ )
+
+/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask
+ name = "25% cyborg mask spawner"
+ spawn_loot_chance = 25
+ loot = list(/obj/item/clothing/mask/gas/cyborg)
+
+/obj/effect/spawner/random/clothing/mafia_outfit
+ name = "mafia outfit spawner"
+ icon_state = "costume"
+ loot = list(
+ /obj/effect/spawner/costume/mafia = 20,
+ /obj/effect/spawner/costume/mafia/white = 5,
+ /obj/effect/spawner/costume/mafia/checkered = 2,
+ /obj/effect/spawner/costume/mafia/beige = 5
+ )
diff --git a/code/game/objects/effects/spawners/random/decoration.dm b/code/game/objects/effects/spawners/random/decoration.dm
new file mode 100644
index 000000000000..7af7af7fe85b
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/decoration.dm
@@ -0,0 +1,118 @@
+/obj/effect/spawner/random/decoration
+ name = "decoration loot spawner"
+ desc = "Time for some bling bling."
+ icon_state = "lamp"
+
+/obj/effect/spawner/random/decoration/material
+ name = "decoration material spawner"
+ icon_state = "tile"
+ loot = list(
+ /obj/item/stack/sheet/sandblock{amount = 30} = 25,
+ /obj/item/stack/sheet/mineral/wood{amount = 30} = 25,
+ /obj/item/stack/tile/noslip{amount = 20} = 10,
+ /obj/item/stack/sheet/plastic{amount = 30} = 10,
+ /obj/item/stack/tile/pod{amount = 20} = 4,
+ /obj/item/stack/tile/pod/light{amount = 20} = 3,
+ /obj/item/stack/tile/pod/dark{amount = 20} = 3,
+ )
+
+/obj/effect/spawner/random/decoration/carpet
+ name = "carpet spawner"
+ icon_state = "carpet"
+ loot = list(
+ /obj/item/stack/tile/carpet{amount = 30} = 35,
+ /obj/item/stack/tile/carpet/black{amount = 30} = 20,
+ )
+
+/obj/effect/spawner/random/decoration/ornament
+ name = "ornament spawner"
+ icon_state = "lamp"
+ loot = list(
+ /obj/item/flashlight/lamp = 35,
+ /obj/item/flashlight/lamp/green = 35,
+ /obj/item/flashlight/lantern = 10,
+ /obj/item/flashlight/lamp/bananalamp = 5,
+ )
+/obj/effect/spawner/random/decoration/glowstick
+ name = "random colored glowstick"
+ icon_state = "glowstick"
+ loot_type_path = /obj/item/flashlight/glowstick
+ loot = list()
+
+/obj/effect/spawner/random/decoration/glowstick/on
+ name = "random colored glowstick (on)"
+ icon_state = "glowstick"
+
+/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"
+ loot_subtype_path = /obj/item/paint
+ loot = list()
+
+/obj/effect/spawner/random/decoration/flower
+ name = "random grown flower spawner"
+ icon_state = "flower"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/poppy,
+ /obj/item/reagent_containers/food/snacks/grown/harebell,
+ /obj/item/reagent_containers/food/snacks/grown/trumpet,
+ )
+
+/obj/effect/spawner/random/flora
+ name = "random flora spawner"
+ loot = list(
+ /obj/structure/flora/tree/chapel,
+ /obj/structure/flora/tree/pine,
+ /obj/structure/flora/tree/jungle/small,
+ /obj/structure/flora/tree/jungle,
+ /obj/structure/flora/ash/puce,
+ /obj/structure/flora/ash/fireblossom,
+ /obj/structure/flora/ash/fern,
+ /obj/structure/flora/ash/tall_shroom,
+ /obj/structure/flora/ash/stem_shroom,
+ /obj/structure/flora/ash/space/voidmelon,
+ /obj/structure/flora/ash/leaf_shroom,
+ /obj/structure/flora/junglebush/large,
+ /obj/structure/flora/junglebush/b,
+ /obj/structure/flora/junglebush/c,
+ /obj/structure/flora/ausbushes/fernybush,
+ /obj/structure/flora/ausbushes/genericbush,
+ /obj/structure/flora/ausbushes/grassybush,
+ /obj/structure/flora/ausbushes/leafybush,
+ /obj/structure/flora/ausbushes/palebush,
+ /obj/structure/flora/ausbushes/pointybush,
+ /obj/structure/flora/ausbushes/reedbush,
+ /obj/structure/flora/ausbushes/stalkybush,
+ /obj/structure/flora/ausbushes/sunnybush,
+ /obj/structure/flora/bush,
+ /obj/structure/flora/grass/jungle,
+ /obj/structure/flora/junglebush,
+ /obj/structure/flora/junglebush/b,
+ /obj/structure/flora/junglebush/c,
+ /obj/structure/flora/ash,
+ /obj/structure/flora/ash/cacti,
+ /obj/structure/flora/ash/cap_shroom,
+ /obj/structure/flora/ash/chilly,
+ /obj/structure/flora/tree/palm
+ )
+ spawn_loot_count = 1
+
+/obj/effect/spawner/random/flower
+ name = "random flower spawner"
+ icon_state = "flower"
+ loot = list(
+ /obj/structure/flora/ausbushes/brflowers,
+ /obj/structure/flora/ausbushes/ywflowers,
+ /obj/structure/flora/ausbushes/ppflowers,
+ /obj/structure/flora/ausbushes/fullgrass,
+ /obj/structure/flora/ausbushes/sparsegrass
+ )
+ spawn_loot_count = 1
+
diff --git a/code/game/objects/effects/spawners/random/engineering.dm b/code/game/objects/effects/spawners/random/engineering.dm
new file mode 100644
index 000000000000..b5c9636380f6
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/engineering.dm
@@ -0,0 +1,138 @@
+/obj/effect/spawner/random/engineering
+ name = "engineering loot spawner"
+ desc = "All engineering related spawners go here"
+ icon_state = "toolbox"
+
+/obj/effect/spawner/random/engineering/tool
+ loot = list(
+ /obj/effect/spawner/random/engineering/tool/common = 120,
+ /obj/effect/spawner/random/engineering/tool/sydnie = 20,
+ /obj/effect/spawner/random/engineering/tool/adv = 5,
+ )
+
+/obj/effect/spawner/random/engineering/tool/common
+ loot = list(
+ /obj/item/wrench/crescent = 1,
+ /obj/item/screwdriver = 1,
+ /obj/item/weldingtool = 1,
+ /obj/item/crowbar = 1,
+ /obj/item/wirecutters = 1,
+ /obj/item/multitool = 1,
+ )
+
+/obj/effect/spawner/random/engineering/tool/sydnie
+ loot = list(
+ /obj/item/wrench/syndie = 1,
+ /obj/item/screwdriver/nuke = 1,
+ /obj/item/weldingtool/largetank = 1,
+ /obj/item/crowbar/syndie = 1,
+ /obj/item/wirecutters/syndie = 1,
+ /obj/item/multitool/syndie = 1,
+ )
+
+/obj/effect/spawner/random/engineering/tool/adv
+ loot = list(
+ /obj/item/screwdriver/power = 1,
+ /obj/item/weldingtool/electric = 1,
+ /obj/item/crowbar/power = 1,
+ )
+
+/obj/effect/spawner/random/stockparts
+ name = "random good stock parts"
+ spawn_loot_count = 6
+ loot = list(
+ /obj/item/stock_parts/capacitor/adv,
+ /obj/item/stock_parts/capacitor/quadratic,
+ /obj/item/stock_parts/capacitor/super,
+ /obj/item/stock_parts/cell/hyper,
+ /obj/item/stock_parts/cell/super,
+ /obj/item/stock_parts/cell/bluespace,
+ /obj/item/stock_parts/matter_bin/bluespace,
+ /obj/item/stock_parts/matter_bin/super,
+ /obj/item/stock_parts/matter_bin/adv,
+ /obj/item/stock_parts/micro_laser/ultra,
+ /obj/item/stock_parts/micro_laser/quadultra,
+ /obj/item/stock_parts/micro_laser/high,
+ /obj/item/stock_parts/scanning_module/triphasic,
+ /obj/item/stock_parts/scanning_module/phasic,
+ /obj/item/stock_parts/scanning_module/adv,
+ /obj/item/reagent_containers/glass/beaker/bluespace,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/stock_parts/manipulator/nano,
+ /obj/item/stock_parts/manipulator/pico,
+ /obj/item/stock_parts/manipulator/femto
+ )
+
+/obj/effect/spawner/random/materials
+ name = "random bulk materials"
+ spawn_loot_count = 2
+ loot = list(
+ /obj/item/stack/sheet/plastic/fifty,
+ /obj/item/stack/sheet/bluespace_crystal/twenty,
+ /obj/item/stack/sheet/cardboard/fifty,
+ /obj/item/stack/sheet/glass/fifty,
+ /obj/item/stack/sheet/metal/fifty,
+ /obj/item/stack/sheet/plasteel/twenty,
+ /obj/item/stack/sheet/mineral/plasma/fifty,
+ /obj/item/stack/sheet/mineral/silver/fifty,
+ /obj/item/stack/sheet/mineral/titanium/fifty,
+ /obj/item/stack/sheet/mineral/uranium/fifty,
+ /obj/item/stack/sheet/mineral/wood/fifty,
+ /obj/item/stack/sheet/mineral/diamond/twenty,
+ /obj/item/stack/sheet/mineral/gold/fifty,
+ /obj/item/stack/cable_coil/red,
+ /obj/item/stack/rods/fifty
+ )
+
+/obj/effect/spawner/random/stockparts
+ name = "random good stock parts"
+ spawn_loot_count = 5
+ loot = list(
+ /obj/item/stock_parts/capacitor/adv,
+ /obj/item/stock_parts/capacitor/quadratic,
+ /obj/item/stock_parts/capacitor/super,
+ /obj/item/stock_parts/cell/hyper,
+ /obj/item/stock_parts/cell/super,
+ /obj/item/stock_parts/cell/bluespace,
+ /obj/item/stock_parts/matter_bin/bluespace,
+ /obj/item/stock_parts/matter_bin/super,
+ /obj/item/stock_parts/matter_bin/adv,
+ /obj/item/stock_parts/micro_laser/ultra,
+ /obj/item/stock_parts/micro_laser/quadultra,
+ /obj/item/stock_parts/micro_laser/high,
+ /obj/item/stock_parts/scanning_module/triphasic,
+ /obj/item/stock_parts/scanning_module/phasic,
+ /obj/item/stock_parts/scanning_module/adv,
+ /obj/item/reagent_containers/glass/beaker/bluespace,
+ /obj/item/reagent_containers/glass/beaker/plastic,
+ /obj/item/reagent_containers/glass/beaker/large,
+ /obj/item/stock_parts/manipulator/nano,
+ /obj/item/stock_parts/manipulator/pico,
+ /obj/item/stock_parts/manipulator/femto
+ )
+
+/obj/effect/spawner/random/materials
+ name = "random materials"
+ spawn_loot_count = 3
+ loot = list(
+ /obj/item/stack/sheet/plastic/fifty,
+ /obj/item/stack/sheet/plastic/five,
+ /obj/item/stack/sheet/bluespace_crystal/twenty,
+ /obj/item/stack/sheet/bluespace_crystal/five,
+ /obj/item/stack/sheet/cardboard/fifty,
+ /obj/item/stack/sheet/glass/fifty,
+ /obj/item/stack/sheet/metal/fifty,
+ /obj/item/stack/sheet/metal/twenty,
+ /obj/item/stack/sheet/plasteel/twenty,
+ /obj/item/stack/sheet/mineral/plasma/fifty,
+ /obj/item/stack/sheet/mineral/plasma/twenty,
+ /obj/item/stack/sheet/mineral/silver/fifty,
+ /obj/item/stack/sheet/mineral/titanium/twenty,
+ /obj/item/stack/sheet/mineral/uranium/twenty,
+ /obj/item/stack/sheet/mineral/wood/fifty,
+ /obj/item/stack/sheet/mineral/diamond/twenty,
+ /obj/item/stack/sheet/mineral/gold/fifty,
+ /obj/item/stack/cable_coil/red,
+ /obj/item/stack/rods/fifty
+ )
diff --git a/code/game/objects/effects/spawners/random/entertainment.dm b/code/game/objects/effects/spawners/random/entertainment.dm
new file mode 100644
index 000000000000..8e51ddf384c0
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/entertainment.dm
@@ -0,0 +1,282 @@
+/obj/effect/spawner/random/entertainment
+ name = "entertainment loot spawner"
+ desc = "It's time to paaaaaarty!"
+
+/obj/effect/spawner/random/entertainment/arcade
+ name = "spawn random arcade machine"
+ desc = "Automagically transforms into a random arcade machine. If you see this while in a shift, please create a bug report."
+ icon_state = "arcade"
+ loot = list(
+ /obj/machinery/computer/arcade/orion_trail = 49,
+ /obj/machinery/computer/arcade/battle = 49,
+ /obj/machinery/computer/arcade/amputation = 2,
+ )
+
+/obj/effect/spawner/random/entertainment/musical_instrument
+ name = "musical instrument spawner"
+ icon_state = "eguitar"
+ loot = list(
+ /obj/item/instrument/violin = 5,
+ /obj/item/instrument/banjo = 5,
+ /obj/item/instrument/guitar = 5,
+ /obj/item/instrument/eguitar = 5,
+ /obj/item/instrument/glockenspiel = 5,
+ /obj/item/instrument/accordion = 5,
+ /obj/item/instrument/trumpet = 5,
+ /obj/item/instrument/saxophone = 5,
+ /obj/item/instrument/trombone = 5,
+ /obj/item/instrument/recorder = 5,
+ /obj/item/instrument/harmonica = 5,
+ /obj/item/instrument/bikehorn = 2,
+ /obj/item/instrument/violin/golden = 2,
+ )
+
+/obj/effect/spawner/random/entertainment/gambling
+ name = "gambling valuables spawner"
+ icon_state = "dice"
+ loot = list(
+ /obj/item/clothing/head/trapper = 3,
+ /obj/effect/spawner/random/entertainment/coin = 3,
+ /obj/effect/spawner/random/entertainment/money = 3,
+ /obj/item/dice/d6 = 3,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 1,
+ /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+ )
+
+/obj/effect/spawner/random/entertainment/coin
+ name = "coin spawner"
+ icon_state = "coin"
+ loot = list(
+ /obj/item/coin/iron = 5,
+ /obj/item/coin/plastic = 5,
+ /obj/item/coin/silver = 4,
+ /obj/item/coin/plasma = 4,
+ /obj/item/coin/uranium = 3,
+ /obj/item/coin/titanium = 3,
+ /obj/item/coin/diamond = 2,
+ /obj/item/coin/twoheaded = 1,
+ /obj/item/coin/antagtoken = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/money_small
+ name = "small money spawner"
+ icon_state = "cash"
+ spawn_loot_count = 3
+ spawn_loot_split = TRUE
+ loot = list(
+ /obj/item/spacecash/bundle/c1 = 5,
+ /obj/item/spacecash/bundle/c10 = 3,
+ /obj/item/spacecash/bundle/c20 = 2,
+ )
+
+/obj/effect/spawner/random/entertainment/money
+ name = "money spawner"
+ icon_state = "cash"
+ spawn_loot_count = 3
+ spawn_loot_split = TRUE
+ loot = list(
+ /obj/item/spacecash/bundle/c1 = 10,
+ /obj/item/spacecash/bundle/c10 = 5,
+ /obj/item/spacecash/bundle/c20 = 3,
+ /obj/item/spacecash/bundle/c50 = 2,
+ /obj/item/spacecash/bundle/c100 = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/money_medium
+ name = "money spawner"
+ icon_state = "cash"
+ loot = list(
+ /obj/item/spacecash/bundle/c100 = 25,
+ /obj/item/spacecash/bundle/c200 = 15,
+ /obj/item/spacecash/bundle/c50 = 10,
+ /obj/item/spacecash/bundle/c500 = 5,
+ /obj/item/spacecash/bundle/c1000 = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/money_large
+ name = "large money spawner"
+ icon_state = "cash"
+ spawn_loot_count = 5
+ spawn_loot_split = TRUE
+ loot = list(
+ /obj/item/spacecash/bundle/c1 = 100,
+ /obj/item/spacecash/bundle/c10 = 80,
+ /obj/item/spacecash/bundle/c20 = 60,
+ /obj/item/spacecash/bundle/c50 = 40,
+ /obj/item/spacecash/bundle/c100 = 30,
+ /obj/item/spacecash/bundle/c200 = 20,
+ /obj/item/spacecash/bundle/c500 = 10,
+ /obj/item/spacecash/bundle/c1000 = 5,
+ /obj/item/spacecash/bundle/c10000 = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/drugs
+ name = "recreational drugs spawner"
+ icon_state = "pill"
+ loot = list(
+ /obj/item/reagent_containers/food/drinks/bottle/hooch = 50,
+ /obj/item/clothing/mask/cigarette/rollie/cannabis = 15,
+ /obj/item/reagent_containers/syringe = 15,
+ /obj/item/cigbutt/roach = 15,
+ /obj/item/clothing/mask/cigarette/rollie/mindbreaker = 5,
+ )
+
+/obj/effect/spawner/random/entertainment/dice
+ name = "dice spawner"
+ icon_state = "dice_bag"
+ loot = list(
+ /obj/item/dice/d4,
+ /obj/item/dice/d6,
+ /obj/item/dice/d8,
+ /obj/item/dice/d10,
+ /obj/item/dice/d12,
+ /obj/item/dice/d20,
+ )
+
+/obj/effect/spawner/random/entertainment/cigarette_pack
+ name = "cigarette pack spawner"
+ icon_state = "cigarettes"
+ loot = list(
+ /obj/item/storage/fancy/cigarettes = 3,
+ /obj/item/storage/fancy/cigarettes/dromedaryco = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_robust = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_carp = 3,
+ /obj/item/storage/fancy/cigarettes/cigpack_robustgold = 1,
+ /obj/item/storage/fancy/cigarettes/cigpack_midori = 1,
+ /obj/item/storage/fancy/cigarettes/cigpack_candy = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/cigarette
+ name = "cigarette spawner"
+ icon_state = "cigarettes"
+ loot = list(
+ /obj/item/clothing/mask/cigarette/space_cigarette = 3,
+ /obj/item/clothing/mask/cigarette/rollie/cannabis = 3,
+ /obj/item/clothing/mask/cigarette/rollie/nicotine = 3,
+ /obj/item/clothing/mask/cigarette/dromedary = 2,
+ /obj/item/clothing/mask/cigarette/uplift = 2,
+ /obj/item/clothing/mask/cigarette/robust = 2,
+ /obj/item/clothing/mask/cigarette/carp = 1,
+ /obj/item/clothing/mask/cigarette/robustgold = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/cigar
+ name = "cigar spawner"
+ icon_state = "cigarettes"
+ loot = list(
+ /obj/item/clothing/mask/cigarette/cigar = 3,
+ /obj/item/clothing/mask/cigarette/cigar/havana = 2,
+ /obj/item/clothing/mask/cigarette/cigar/cohiba = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/wallet_lighter
+ name = "lighter wallet spawner"
+ icon_state = "lighter"
+ loot = list( // these fit inside a wallet
+ /obj/item/match = 10,
+ /obj/item/lighter/greyscale = 10,
+ /obj/item/lighter = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/lighter
+ name = "lighter spawner"
+ icon_state = "lighter"
+ loot = list(
+ /obj/item/storage/box/matches = 10,
+ /obj/item/lighter/greyscale = 10,
+ /obj/item/lighter = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/wallet_storage
+ name = "wallet contents spawner"
+ icon_state = "wallet"
+ spawn_loot_count = 1
+ loot = list( // random photos would go here. IF I HAD ONE. :'(
+ /obj/item/lipstick/random,
+ /obj/effect/spawner/random/food_or_drink/seed,
+ /obj/effect/spawner/random/medical/minor_healing,
+ /obj/effect/spawner/random/entertainment/coin,
+ /obj/effect/spawner/random/entertainment/dice,
+ /obj/effect/spawner/random/entertainment/cigarette,
+ /obj/effect/spawner/random/entertainment/wallet_lighter,
+ /obj/effect/spawner/random/bureaucracy/paper,
+ /obj/effect/spawner/random/bureaucracy/crayon,
+ /obj/effect/spawner/random/bureaucracy/pen,
+ /obj/effect/spawner/random/bureaucracy/stamp,
+ )
+
+/obj/effect/spawner/random/entertainment/deck
+ name = "deck spawner"
+ icon_state = "deck"
+ loot = list(
+ /obj/item/toy/cards/deck = 5,
+ /obj/item/toy/cards/deck/kotahi = 2,
+ /obj/item/toy/cards/deck/tarot = 1,
+ )
+
+/obj/effect/spawner/random/entertainment/toy_figure
+ name = "toy figure spawner"
+ icon_state = "toy"
+ loot_subtype_path = /obj/item/toy/figure
+ loot = list()
+
+/obj/effect/spawner/random/entertainment/toy
+ name = "toy spawner"
+ icon_state = "toy"
+ loot = list()
+
+/obj/effect/spawner/random/entertainment/toy/Initialize(mapload)
+ loot += GLOB.arcade_prize_pool
+ return ..()
+
+/obj/effect/spawner/random/entertainment/plushie
+ name = "plushie spawner"
+ icon_state = "plushie"
+ loot = list (
+ /obj/item/toy/plush/beeplushie,
+ /obj/item/toy/plush/blahaj,
+ /obj/item/toy/plush/carpplushie,
+ /obj/item/toy/plush/flushed,
+ /obj/item/toy/plush/kari,
+ /obj/item/toy/plush/lizardplushie,
+ /obj/item/toy/plush/mora,
+ /obj/item/toy/plush/realgoat,
+ /obj/item/toy/plush/rilena,
+ /obj/item/toy/plush/sharai,
+ /obj/item/toy/plush/slimeplushie,
+ /obj/item/toy/plush/snakeplushie,
+ /obj/item/toy/plush/spider,
+ /obj/item/toy/plush/tali,
+ /obj/item/toy/plush/xader,
+ /obj/effect/spawner/random/entertainment/plushie/moth // fair chances
+ )
+
+/obj/effect/spawner/random/entertainment/plushie/moth
+ loot = list (
+ /obj/item/toy/plush/moth,
+ /obj/item/toy/plush/moth/monarch,
+ /obj/item/toy/plush/moth/luna,
+ /obj/item/toy/plush/moth/atlas,
+ /obj/item/toy/plush/moth/redish,
+ /obj/item/toy/plush/moth/royal,
+ /obj/item/toy/plush/moth/gothic,
+ /obj/item/toy/plush/moth/lovers,
+ /obj/item/toy/plush/moth/whitefly,
+ /obj/item/toy/plush/moth/punished,
+ /obj/item/toy/plush/moth/firewatch,
+ /obj/item/toy/plush/moth/deadhead,
+ /obj/item/toy/plush/moth/poison,
+ /obj/item/toy/plush/moth/ragged,
+ /obj/item/toy/plush/moth/snow,
+ /obj/item/toy/plush/moth/moonfly
+ )
+
+/obj/effect/spawner/random/entertainment/colorful_grenades
+ name = "colorful/glitter grenades spawner"
+ loot = list(
+ /obj/item/grenade/chem_grenade/glitter/pink,
+ /obj/item/grenade/chem_grenade/glitter/blue,
+ /obj/item/grenade/chem_grenade/glitter/white,
+ /obj/item/grenade/chem_grenade/colorful
+ )
diff --git a/code/game/objects/effects/spawners/random/exotic.dm b/code/game/objects/effects/spawners/random/exotic.dm
new file mode 100644
index 000000000000..84e4a0616c78
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/exotic.dm
@@ -0,0 +1,69 @@
+/obj/effect/spawner/random/exotic
+ name = "exotic spawner"
+ desc = "Super duper rare stuff."
+ icon_state = "showcase"
+
+/obj/effect/spawner/random/exotic/ripley
+ name = "25% exosuit 75% wreckage ripley spawner"
+ icon_state = "ripley"
+ loot = list(
+ /obj/mecha/working/ripley/mining = 1,
+ /obj/structure/mecha_wreckage/ripley = 5
+ )
+
+/obj/effect/spawner/random/exotic/prison_contraband
+ name = "prison contraband loot spawner"
+ icon_state = "prisoner"
+ loot = list(
+ /obj/item/clothing/mask/cigarette/space_cigarette = 4,
+ /obj/item/clothing/mask/cigarette/robust = 2,
+ /obj/item/clothing/mask/cigarette/carp = 3,
+ /obj/item/clothing/mask/cigarette/uplift = 2,
+ /obj/item/clothing/mask/cigarette/dromedary = 3,
+ /obj/item/clothing/mask/cigarette/robustgold = 1,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes = 3,
+ /obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
+ /obj/item/toy/crayon/spraycan = 2,
+ /obj/item/crowbar = 1,
+ /obj/item/assembly/flash/handheld = 1,
+ /obj/item/restraints/handcuffs/cable/zipties = 1,
+ /obj/item/restraints/handcuffs = 1,
+ /obj/item/radio = 1,
+ /obj/item/lighter = 3,
+ /obj/item/storage/box/matches = 3,
+ /obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
+ /obj/item/reagent_containers/syringe/contraband/krokodil = 1,
+ /obj/item/reagent_containers/syringe/contraband/crank = 1,
+ /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
+ /obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
+ /obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
+ /obj/item/reagent_containers/syringe/contraband/morphine = 1,
+ /obj/item/storage/pill_bottle/happy = 1,
+ /obj/item/storage/pill_bottle/lsd = 1,
+ /obj/item/storage/pill_bottle/psicodine = 1,
+ /obj/item/reagent_containers/food/drinks/beer = 4,
+ /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
+ /obj/item/paper/fluff/jobs/prisoner/letter = 1,
+ /obj/item/grenade/smokebomb = 1,
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/melee/knife/shiv = 4,
+ /obj/item/melee/knife/shiv/carrot = 1,
+ /obj/item/melee/knife/kitchen = 1,
+ /obj/item/storage/wallet/random = 1,
+ /obj/item/pda = 1
+ )
+
+/obj/effect/spawner/random/exotic/armory
+ name = "generic armory spawner"
+ spawn_loot_split = TRUE
+ spawn_loot_count = 3
+ spawn_loot_split_pixel_offsets = 4
+
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol/ringneck = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/m11 = 5,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/gun/ballistic/revolver/mateba
+ )
+
diff --git a/code/game/objects/effects/spawners/random/food_or_drink.dm b/code/game/objects/effects/spawners/random/food_or_drink.dm
new file mode 100644
index 000000000000..300f94260ee1
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/food_or_drink.dm
@@ -0,0 +1,284 @@
+/obj/effect/spawner/random/food_or_drink
+ name = "food or drink loot spawner"
+ desc = "Nom nom nom"
+ icon_state = "soup"
+
+/obj/effect/spawner/random/food_or_drink/donkpockets
+ name = "donk pocket box spawner"
+ icon_state = "donkpocket"
+ loot = list(
+ /obj/item/storage/box/donkpockets/donkpocketspicy = 1,
+ /obj/item/storage/box/donkpockets/donkpocketteriyaki = 1,
+ /obj/item/storage/box/donkpockets/donkpocketpizza = 1,
+ /obj/item/storage/box/donkpockets/donkpocketberry = 1,
+ /obj/item/storage/box/donkpockets/donkpockethonk = 1,
+ )
+
+/obj/effect/spawner/random/food_or_drink/ration
+ name = "ration spawner"
+ icon_state = "pizzabox"
+ loot = list (
+ /obj/item/storage/ration/vegan_chili = 5,
+ /obj/item/storage/ration/shredded_beef = 5,
+ /obj/item/storage/ration/pork_spaghetti = 5,
+ /obj/item/storage/ration/fried_fish = 5,
+ /obj/item/storage/ration/beef_strips = 5,
+ /obj/item/storage/ration/chili_macaroni = 5,
+ /obj/item/storage/ration/chicken_wings_hot_sauce = 5,
+ /obj/item/storage/ration/fish_stew = 5,
+ /obj/item/storage/ration/lemon_pepper_chicken = 5,
+ /obj/item/storage/ration/sausage_peppers_onions = 5,
+ /obj/item/storage/ration/pork_dumplings_chili_sauce = 5,
+ /obj/item/storage/ration/battered_fish_sticks = 5,
+ /obj/item/storage/ration/assorted_salted_offal = 5,
+ /obj/item/storage/ration/maple_pork_sausage_patty = 5,
+ /obj/item/storage/ration/pepper_jack_beef_patty = 5,
+ /obj/item/storage/ration/beef_goulash = 5,
+ /obj/item/storage/ration/pepperoni_pizza_slice = 5,
+ /obj/item/storage/ration/blackened_calamari = 5,
+ /obj/item/storage/ration/elbow_macaroni = 5,
+ /obj/item/storage/ration/cheese_pizza_slice = 5,
+ /obj/item/storage/ration/crayons = 2 // :)
+ )
+
+/obj/effect/spawner/random/food_or_drink/donut
+ name = "random donut" //donut :)
+ icon_state = "pizzabox"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/meat = 1,
+ /obj/item/reagent_containers/food/snacks/donut/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/trumpet = 1,
+ /obj/item/reagent_containers/food/snacks/donut/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/chaos = 1,
+ )
+
+/obj/effect/spawner/random/food_or_drink/donut/jelly
+ name = "random jelly donut"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/jelly/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/trumpet = 1,
+ )
+
+/obj/effect/spawner/random/food_or_drink/donut/slimejelly
+ name = "random slimejelly donut"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/apple = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/berry = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/blumpkin = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/bungo = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/caramel = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/choco = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/laugh = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/matcha = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/plain = 1,
+ /obj/item/reagent_containers/food/snacks/donut/jelly/slimejelly/trumpet = 1,
+ )
+
+/obj/effect/spawner/random/food_or_drink/three_course_meal
+ name = "three course meal spawner"
+ spawn_loot_count = 3
+ spawn_loot_double = FALSE
+ var/soups = list(
+ /obj/item/reagent_containers/food/snacks/soup/beet,
+ /obj/item/reagent_containers/food/snacks/soup/sweetpotato,
+ /obj/item/reagent_containers/food/snacks/soup/stew,
+ /obj/item/reagent_containers/food/snacks/soup/hotchili,
+ /obj/item/reagent_containers/food/snacks/soup/nettle,
+ /obj/item/reagent_containers/food/snacks/soup/meatball)
+ var/salads = list(
+ /obj/item/reagent_containers/food/snacks/salad/herbsalad,
+ /obj/item/reagent_containers/food/snacks/salad/validsalad,
+ /obj/item/reagent_containers/food/snacks/salad/fruit,
+ /obj/item/reagent_containers/food/snacks/salad/jungle,
+ /obj/item/reagent_containers/food/snacks/salad/aesirsalad)
+ var/mains = list(
+ /obj/item/reagent_containers/food/snacks/bearsteak,
+ /obj/item/reagent_containers/food/snacks/enchiladas,
+ /obj/item/reagent_containers/food/snacks/stewedsoymeat,
+ /obj/item/reagent_containers/food/snacks/burger/bigbite,
+ /obj/item/reagent_containers/food/snacks/burger/superbite,
+ /obj/item/reagent_containers/food/snacks/burger/fivealarm)
+
+/obj/effect/spawner/random/food_or_drink/three_course_meal/Initialize(mapload)
+ loot = list(pick(soups) = 1,pick(salads) = 1,pick(mains) = 1)
+ . = ..()
+
+/obj/effect/spawner/random/food_or_drink/garden
+ name = "lush garden seeder"
+ spawn_loot_count = 3
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1,
+ /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1,
+ /obj/item/reagent_containers/food/snacks/grown/trumpet = 1,
+ /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/grown/log/bamboo = 2,
+ /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2,
+ /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2,
+ /obj/item/reagent_containers/food/snacks/grown/moonflower = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2,
+ /obj/item/reagent_containers/food/snacks/grown/pineapple = 2,
+ /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2,
+ /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2,
+ /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tea = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tobacco = 2,
+ /obj/item/reagent_containers/food/snacks/grown/watermelon = 4,
+ /obj/item/grown/sunflower = 4,
+ /obj/item/reagent_containers/food/snacks/grown/banana = 4,
+ /obj/item/reagent_containers/food/snacks/grown/apple = 4,
+ /obj/item/reagent_containers/food/snacks/grown/berries = 5,
+ /obj/item/reagent_containers/food/snacks/grown/cherries = 4,
+ /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4,
+ /obj/item/reagent_containers/food/snacks/grown/garlic = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grapes = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grass = 5,
+ /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4,
+ /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4,
+ /obj/item/reagent_containers/food/snacks/grown/wheat = 4,
+ /obj/item/reagent_containers/food/snacks/grown/parsnip = 4,
+ /obj/item/reagent_containers/food/snacks/grown/peas = 4,
+ /obj/item/reagent_containers/food/snacks/grown/rice = 4,
+ /obj/item/reagent_containers/food/snacks/grown/soybeans = 4,
+ /obj/item/reagent_containers/food/snacks/grown/tomato = 4,
+ /obj/item/reagent_containers/food/snacks/grown/cabbage = 4,
+ /obj/item/reagent_containers/food/snacks/grown/onion = 4,
+ /obj/item/reagent_containers/food/snacks/grown/carrot = 4)
+
+/obj/effect/spawner/random/food_or_drink/garden/arid
+ name = "arid garden seeder"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1,
+ /obj/item/reagent_containers/food/snacks/grown/nettle = 1,
+ /obj/item/grown/cotton/durathread = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/reagent_containers/food/snacks/grown/redbeet = 1,
+ /obj/item/reagent_containers/food/snacks/grown/aloe = 2,
+ /obj/item/grown/cotton = 2,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2,
+ /obj/item/reagent_containers/food/snacks/grown/chili = 2,
+ /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5,
+ /obj/item/reagent_containers/food/snacks/grown/potato = 4,
+ /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4,
+ /obj/item/reagent_containers/food/snacks/grown/corn = 4
+ )
+
+/obj/effect/spawner/random/food_or_drink/garden/cold
+ name = "frigid garden seeder"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1,
+ /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1,
+ /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1,
+ /obj/item/seeds/random = 1,
+ /obj/item/reagent_containers/food/snacks/grown/poppy = 2,
+ /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2,
+ /obj/item/reagent_containers/food/snacks/grown/berries = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
+ /obj/item/reagent_containers/food/snacks/grown/oat = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4,
+ /obj/item/reagent_containers/food/snacks/grown/grass = 4,
+ /obj/item/reagent_containers/food/snacks/grown/harebell = 5,
+ /obj/item/seeds/starthistle = 5
+ )
+
+/obj/effect/spawner/random/food_or_drink/garden/sick
+ name = "sickly garden seeder"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1,
+ /obj/item/seeds/replicapod = 1,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
+ /obj/item/seeds/tower/steel = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cannabis = 2,
+ /obj/item/seeds/random = 2,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2,
+ /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4,
+ /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4,
+ /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4
+ )
+
+/obj/effect/spawner/random/food_or_drink/garden/seaweed
+ name = "seaweed patch seeder"
+ loot = list(
+ /obj/item/reagent_containers/food/snacks/grown/seaweed
+ )
+
+/obj/effect/spawner/random/food_or_drink/seed
+ name = "GO FORTH AND CULTIVATE"
+ icon_state = "seed"//sneed
+ loot = list(
+ /obj/item/seeds/aloe,
+ /obj/item/seeds/ambrosia,
+ /obj/item/seeds/apple,
+ /obj/item/seeds/cotton,
+ /obj/item/seeds/banana,
+ /obj/item/seeds/berry,
+ /obj/item/seeds/cabbage,
+ /obj/item/seeds/carrot,
+ /obj/item/seeds/cherry,
+ /obj/item/seeds/chanter,
+ /obj/item/seeds/chili,
+ /obj/item/seeds/cocoapod,
+ /obj/item/seeds/coffee,
+ /obj/item/seeds/corn,
+ /obj/item/seeds/eggplant,
+ /obj/item/seeds/garlic,
+ /obj/item/seeds/grape,
+ /obj/item/seeds/grass,
+ /obj/item/seeds/lemon,
+ /obj/item/seeds/lime,
+ /obj/item/seeds/onion,
+ /obj/item/seeds/orange,
+ /obj/item/seeds/peas,
+ /obj/item/seeds/pineapple,
+ /obj/item/seeds/potato,
+ /obj/item/seeds/poppy,
+ /obj/item/seeds/pumpkin,
+ /obj/item/seeds/wheat/rice,
+ /obj/item/seeds/soya,
+ /obj/item/seeds/sugarcane,
+ /obj/item/seeds/sunflower,
+ /obj/item/seeds/tea,
+ /obj/item/seeds/tobacco,
+ /obj/item/seeds/tomato,
+ /obj/item/seeds/tower,
+ /obj/item/seeds/watermelon,
+ /obj/item/seeds/wheat,
+ /obj/item/seeds/whitebeet,
+ /obj/item/seeds/amanita,
+ /obj/item/seeds/glowshroom,
+ /obj/item/seeds/liberty,
+ /obj/item/seeds/nettle,
+ /obj/item/seeds/plump,
+ /obj/item/seeds/reishi,
+ /obj/item/seeds/cannabis,
+ /obj/item/seeds/starthistle,
+ /obj/item/seeds/cherry/bomb,
+ /obj/item/seeds/berry/glow,
+ /obj/item/seeds/sunflower/moonflower
+ )
diff --git a/code/game/objects/effects/spawners/random/maintenance.dm b/code/game/objects/effects/spawners/random/maintenance.dm
new file mode 100644
index 000000000000..53a61e0f877d
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/maintenance.dm
@@ -0,0 +1,57 @@
+/obj/effect/spawner/random/maintenance
+ name = "maintenance loot spawner"
+ desc = "Come on Lady Luck, spawn me a pair of sunglasses."
+ icon_state = "loot"
+ // see code/_globalvars/lists/maintenance_loot.dm for loot table
+
+/obj/effect/spawner/random/maintenance/Initialize(mapload)
+ loot = GLOB.maintenance_loot
+ . = ..()
+
+/obj/effect/spawner/random/maintenance/skew_loot_weights(list/loot_list, exponent)
+ ///We only need to skew the weights once, since it's a global list used by all maint spawners.
+ var/static/already_done = FALSE
+ if(loot_list == GLOB.maintenance_loot && already_done)
+ return
+ already_done = TRUE
+ return ..()
+
+/obj/effect/spawner/random/maintenance/spawn_loot(lootcount_override)
+ if(isnull(lootcount_override))
+ lootcount_override = spawn_loot_count
+ . = ..()
+
+ /* Fucks everything. Investigate further
+ // In addition, closets that are closed will have the maintenance loot inserted inside.
+ for(var/obj/structure/closet/closet in get_turf(src))
+ if(!closet.opened)
+ closet.take_contents()
+ */
+
+/obj/effect/spawner/random/maintenance/two
+ name = "2 x maintenance loot spawner"
+ spawn_loot_count = 2
+
+/obj/effect/spawner/random/maintenance/three
+ name = "3 x maintenance loot spawner"
+ spawn_loot_count = 3
+
+/obj/effect/spawner/random/maintenance/four
+ name = "4 x maintenance loot spawner"
+ spawn_loot_count = 4
+
+/obj/effect/spawner/random/maintenance/five
+ name = "5 x maintenance loot spawner"
+ spawn_loot_count = 5
+
+/obj/effect/spawner/random/maintenance/six
+ name = "6 x maintenance loot spawner"
+ spawn_loot_count = 6
+
+/obj/effect/spawner/random/maintenance/seven
+ name = "7 x maintenance loot spawner"
+ spawn_loot_count = 7
+
+/obj/effect/spawner/random/maintenance/eight
+ name = "8 x maintenance loot spawner"
+ spawn_loot_count = 8
diff --git a/code/game/objects/effects/spawners/random/medical.dm b/code/game/objects/effects/spawners/random/medical.dm
new file mode 100644
index 000000000000..a0d5a6db53b9
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/medical.dm
@@ -0,0 +1,145 @@
+/obj/effect/spawner/random/medical
+ name = "medical loot spawner"
+ desc = "Doc, gimmie something good."
+
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ icon_state = "gauze"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ )
+
+/obj/effect/spawner/random/medical/organs
+ name = "ayylien organ spawner"
+ loot = list(
+ /obj/item/organ/heart/gland/electric = 3,
+ /obj/item/organ/heart/gland/trauma = 4,
+ /obj/item/organ/heart/gland/egg = 7,
+ /obj/item/organ/heart/gland/chem = 5,
+ /obj/item/organ/heart/gland/mindshock = 5,
+ /obj/item/organ/heart/gland/plasma = 7,
+ /obj/item/organ/heart/gland/transform = 5,
+ /obj/item/organ/heart/gland/slime = 4,
+ /obj/item/organ/heart/gland/spiderman = 5,
+ /obj/item/organ/heart/gland/ventcrawling = 1,
+ /obj/item/organ/body_egg/alien_embryo = 1,
+ /obj/item/organ/regenerative_core = 2)
+ spawn_loot_count = 3
+
+/obj/effect/spawner/random/medical/memeorgans
+ name = "meme organ spawner"
+ loot = list(
+ /obj/item/organ/ears/penguin,
+ /obj/item/organ/ears/cat,
+ /obj/item/organ/eyes/compound,
+ /obj/item/organ/eyes/snail,
+ /obj/item/organ/tongue/bone,
+ /obj/item/organ/tongue/fly,
+ /obj/item/organ/tongue/snail,
+ /obj/item/organ/tongue/lizard,
+ /obj/item/organ/tongue/alien,
+ /obj/item/organ/tongue/ethereal,
+ /obj/item/organ/tongue/robot,
+ /obj/item/organ/tongue/zombie,
+ /obj/item/organ/appendix,
+ /obj/item/organ/liver/fly,
+ /obj/item/organ/lungs/plasmaman,
+ /obj/item/organ/tail/cat,
+ /obj/item/organ/tail/lizard
+ )
+ spawn_loot_count = 5
+
+/obj/effect/spawner/random/medical/surgery_tool/common
+ name = "Surgery tool spawner"
+ icon_state = "scapel"
+ loot = list(
+ /obj/item/scalpel,
+ /obj/item/hemostat,
+ /obj/item/retractor,
+ /obj/item/circular_saw,
+ /obj/item/surgicaldrill,
+ /obj/item/cautery,
+ )
+
+/obj/effect/spawner/random/medical/surgery_tool/adv
+ loot = list(
+ /obj/item/scalpel/advanced,
+ /obj/item/retractor/advanced,
+ /obj/item/surgicaldrill/advanced,
+ )
+
+/obj/effect/spawner/random/medical/surgery_tool
+ loot = list(
+ /obj/effect/spawner/random/medical/surgery_tool/common = 120,
+ /obj/effect/spawner/random/medical/surgery_tool/adv = 10,
+ )
+
+/obj/effect/spawner/random/medical/medkit
+ name = "medkit spawner"
+ icon_state = "medkit"
+ loot = list(
+ /obj/item/storage/firstaid/regular = 10,
+ /obj/item/storage/firstaid/o2 = 10,
+ /obj/item/storage/firstaid/fire = 10,
+ /obj/item/storage/firstaid/brute = 10,
+ /obj/item/storage/firstaid/toxin = 10,
+ /obj/item/storage/firstaid/advanced = 1,
+ )
+
+/obj/effect/spawner/random/medical/patient_stretcher
+ name = "patient stretcher spawner"
+ icon_state = "rollerbed"
+ loot = list(
+ /obj/structure/bed/roller,
+ /obj/vehicle/ridden/wheelchair,
+ )
+
+/obj/effect/spawner/random/medical/supplies
+ name = "medical supplies spawner"
+ icon_state = "box_small"
+ loot = list(
+ /obj/item/storage/box/hug,
+ /obj/item/storage/box/pillbottles,
+ /obj/item/storage/box/bodybags,
+ /obj/item/storage/box/rxglasses,
+ /obj/item/storage/box/beakers,
+ /obj/item/storage/box/gloves,
+ /obj/item/storage/box/masks,
+ /obj/item/storage/box/syringes,
+ )
+
+/obj/effect/spawner/random/medical/beaker
+ loot = list(
+ /obj/item/reagent_containers/glass/beaker = 300,
+ /obj/item/reagent_containers/glass/beaker/large = 200,
+ /obj/item/reagent_containers/glass/beaker/plastic = 50,
+ /obj/item/reagent_containers/glass/beaker/meta = 10,
+ /obj/item/reagent_containers/glass/beaker/noreact = 5,
+ /obj/item/reagent_containers/glass/beaker/bluespace = 1,
+ )
+
+/obj/effect/spawner/random/medical/prosthetic
+ loot = list(
+ /obj/item/bodypart/l_arm/robot/surplus = 1,
+ /obj/item/bodypart/r_arm/robot/surplus = 1,
+ /obj/item/bodypart/leg/left/robot/surplus = 1,
+ /obj/item/bodypart/leg/right/robot/surplus = 1,
+ )
+
+/obj/effect/spawner/random/medical/chem_jug
+ loot = list(
+ /obj/item/reagent_containers/glass/chem_jug/carbon,
+ /obj/item/reagent_containers/glass/chem_jug/oxygen,
+ /obj/item/reagent_containers/glass/chem_jug/nitrogen,
+ /obj/item/reagent_containers/glass/chem_jug/hydrogen,
+ /obj/item/reagent_containers/glass/chem_jug/radium,
+ /obj/item/reagent_containers/glass/chem_jug/aluminium,
+ /obj/item/reagent_containers/glass/chem_jug/chlorine,
+ /obj/item/reagent_containers/glass/chem_jug/copper,
+ /obj/item/reagent_containers/glass/chem_jug/bromine,
+ /obj/item/reagent_containers/glass/chem_jug/iodine,
+ /obj/item/reagent_containers/glass/chem_jug/potassium,
+ /obj/item/reagent_containers/glass/chem_jug/sulfur
+ )
diff --git a/code/game/objects/effects/spawners/random/random.dm b/code/game/objects/effects/spawners/random/random.dm
new file mode 100644
index 000000000000..aeeab4ab5a31
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/random.dm
@@ -0,0 +1,176 @@
+#define RANDOM_LOOT_WEIGHT_MODIFIER 1
+
+/**
+ * Base class for all random spawners.
+ */
+/obj/effect/spawner/random
+ icon = 'icons/effects/mapping/random_spawners.dmi'
+ icon_state = "loot"
+ layer = OBJ_LAYER
+ /// Stops persistent lootdrop spawns from being shoved into lockers
+ anchored = TRUE
+ /// A list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
+ var/list/loot
+ /// The subtypes AND type to combine with the loot list
+ var/loot_type_path
+ /// The subtypes (this excludes the provided path) to combine with the loot list
+ var/loot_subtype_path
+ /// How many items will be spawned
+ var/spawn_loot_count = 1
+ /// If the same item can be spawned twice
+ var/spawn_loot_double = TRUE
+ /// Whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
+ var/spawn_loot_split = FALSE
+ /// The pixel x/y divider offsets for spawn_loot_split (spaced 1 pixel apart by default)
+ var/spawn_loot_split_pixel_offsets = 2
+ /// Whether the spawner should spawn all the loot in the list
+ var/spawn_all_loot = FALSE
+ /// The chance for the spawner to create loot (ignores spawn_loot_count)
+ var/spawn_loot_chance = 100
+ /// Determines how big of a range (in tiles) we should scatter things in.
+ var/spawn_scatter_radius = 0
+ /// Whether the items should have a random pixel_x/y offset (maxium offset distance is ±16 pixels for x/y)
+ var/spawn_random_offset = FALSE
+ /// Whether items that cannot be spawned will be removed from the loot list. Keep it TRUE unless you've a good reason.
+ var/remove_if_cant_spawn = TRUE
+
+/obj/effect/spawner/random/Initialize(mapload)
+ . = ..()
+ spawn_loot()
+
+///If the spawner has any loot defined, randomly picks some and spawns it. Does not cleanup the spawner.
+/obj/effect/spawner/random/proc/spawn_loot(lootcount_override)
+ if(!prob(spawn_loot_chance))
+ return
+
+ var/list/spawn_locations = get_spawn_locations(spawn_scatter_radius)
+ var/spawn_loot_count = isnull(lootcount_override) ? src.spawn_loot_count : lootcount_override
+
+ if(spawn_all_loot)
+ spawn_loot_count = INFINITY
+ spawn_loot_double = FALSE
+
+ if(loot_type_path)
+ loot += typesof(loot_type_path)
+
+ if(loot_subtype_path)
+ loot += subtypesof(loot_subtype_path)
+
+ skew_loot_weights(loot, RANDOM_LOOT_WEIGHT_MODIFIER)
+
+ if(loot?.len)
+ var/loot_spawned = 0
+ var/pixel_divider = FLOOR(16 / spawn_loot_split_pixel_offsets, 1) // 16 pixels offsets is max that should be allowed in any direction
+ while((spawn_loot_count-loot_spawned) && loot.len)
+ var/lootspawn = pick_weight_recursive(loot)
+ if(!can_spawn(lootspawn))
+ if(remove_if_cant_spawn)
+ loot.Remove(lootspawn)
+ continue
+ if(!spawn_loot_double)
+ loot.Remove(lootspawn)
+ if(lootspawn && (spawn_scatter_radius == 0 || spawn_locations.len))
+ var/turf/spawn_loc = loc
+ if(spawn_scatter_radius > 0)
+ spawn_loc = pick_n_take(spawn_locations)
+
+ var/atom/movable/spawned_loot = make_item(spawn_loc, lootspawn)
+ spawned_loot.setDir(dir)
+
+ if (!spawn_loot_split && !spawn_random_offset)
+ if (pixel_x != 0)
+ spawned_loot.pixel_x = pixel_x
+ if (pixel_y != 0)
+ spawned_loot.pixel_y = pixel_y
+ else if (spawn_random_offset)
+ spawned_loot.pixel_x = rand(-16, 16)
+ spawned_loot.pixel_y = rand(-16, 16)
+ else if (spawn_loot_split)
+ if (loot_spawned)
+ var/column = FLOOR(loot_spawned / pixel_divider, 1)
+ spawned_loot.pixel_x = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider) + (column * spawn_loot_split_pixel_offsets)
+ spawned_loot.pixel_y = spawn_loot_split_pixel_offsets * (loot_spawned % pixel_divider)
+ loot_spawned++
+
+///Levels out the weights of loot if lower than 1, or makes rarer spawns even more rare.
+/obj/effect/spawner/random/proc/skew_loot_weights(list/loot_list, exponent)
+ ///This helps keeping the modified weights more or less correct, since pick_weight doesn't appreciate decimals.
+ var/precision = 1
+ if(exponent < 1)
+ precision = round((1 - exponent) * 10) + 1
+ for(var/loot_type in loot_list)
+ if(islist(loot_type))
+ skew_loot_weights(loot_type, exponent)
+ var/loot_weight = loot_list[loot_type]
+ if(loot_weight <= 1)
+ if(exponent < 1)
+ loot_list[loot_type] = precision
+ continue
+ loot_list[loot_type] = round(loot_weight ** exponent * precision, 1)
+
+/**
+ * Makes the actual item related to our spawner.
+ *
+ * spawn_loc - where are we spawning it?
+ * type_path_to_make - what are we spawning?
+ **/
+/obj/effect/spawner/random/proc/make_item(spawn_loc, type_path_to_make)
+ return new type_path_to_make(spawn_loc)
+
+///If the spawner has a spawn_scatter_radius set, this creates a list of nearby turfs available that are in view and have an unblocked line to them.
+/obj/effect/spawner/random/proc/get_spawn_locations(radius)
+ var/list/scatter_locations = list()
+
+ if(!radius)
+ return scatter_locations
+
+ for(var/turf/turf_in_view in view(radius, get_turf(src)))
+ if(isclosedturf(turf_in_view))
+ continue
+ if(!has_unblocked_line(turf_in_view))
+ continue
+
+ scatter_locations += turf_in_view
+
+ return scatter_locations
+
+/obj/effect/spawner/random/proc/has_unblocked_line(destination)
+ for(var/turf/potential_blockage as anything in get_line(get_turf(src), destination))
+ if(!potential_blockage.is_blocked_turf(exclude_mobs = TRUE))
+ continue
+ return FALSE
+ return TRUE
+
+//finds the probabilities of items spawning from a loot spawner's loot pool
+/obj/item/loot_table_maker
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
+ icon_state = "random_loot"
+ var/spawner_to_test = /obj/effect/spawner/random/maintenance //what lootdrop spawner to use the loot pool of
+ var/loot_count = 180 //180 is about how much maint loot spawns per map as of 11/14/2019
+ //result outputs
+ var/list/spawned_table //list of all items "spawned" and how many
+ var/list/stat_table //list of all items "spawned" and their occurrance probability
+
+/obj/item/loot_table_maker/Initialize(mapload)
+ . = ..()
+ make_table()
+
+/obj/item/loot_table_maker/attack_self(mob/user)
+ to_chat(user, "Loot pool re-rolled.")
+ make_table()
+
+/obj/item/loot_table_maker/proc/make_table()
+ spawned_table = list()
+ stat_table = list()
+ var/obj/effect/spawner/random/spawner_to_table = new spawner_to_test
+ var/lootpool = spawner_to_table.loot
+ qdel(spawner_to_table)
+ for(var/i in 1 to loot_count)
+ var/loot_spawn = pick_weight_recursive(lootpool)
+ if(!(loot_spawn in spawned_table))
+ spawned_table[loot_spawn] = 1
+ else
+ spawned_table[loot_spawn] += 1
+ stat_table += spawned_table
+ for(var/item in stat_table)
+ stat_table[item] /= loot_count
diff --git a/code/game/objects/effects/spawners/random/readme.md b/code/game/objects/effects/spawners/random/readme.md
new file mode 100644
index 000000000000..97db867f2de6
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/readme.md
@@ -0,0 +1,425 @@
+# Random Spawners
+
+## About
+
+Random spawners are an organized tool primarily for mapping to enhance replayability. The spawners can create objects, effects, and structures with different tweakable settings to get the desired outcome. You can make a spawner determine direction, rarity, number of items to spawn, pixel spacing between items, and even spread it over a large tile radius. This lets you control the atmosphere of a location. You could for instance spawn different piles of trash in maint or spawn decoration items for a room to give it more randomized flavor. The choice is yours!
+
+*(note the audience of this README is directed towards mappers who lack knowledge of coding)*
+
+## Variables
+
+The following variables are defined in `code/game/objects/effects/spawners/random/random.dm` that control how a spawner works.
+
+- `loot` - a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect)
+- `loot_type_path` - this combines the subtypes AND type list with the loot list
+- `loot_subtype_path` - this combines ONLY the subtypes (excludes the `loot_subtype_path`) with the loot list
+- `spawn_loot_count` - how many items will be spawned
+- `spawn_loot_double` - if the same item can be spawned twice from the loot list
+- `spawn_loot_split` - whether the items should be distributed to offsets 0,1,-1,2,-2,3,-3.. This overrides pixel_x/y on the spawner itself
+- `spawn_all_loot` - whether the spawner should spawn all the loot in the list (ignores `spawn_loot_count`)
+- `spawn_loot_chance` - the chance for the spawner to create loot (ignores `spawn_loot_count`)
+- `spawn_scatter_radius` - determines how big of a range (in tiles) we should scatter things in
+
+These variables are set to the following default values for the base `random.dm` object that all objects inherit from:
+
+```dm
+ /// these three loot values are all empty
+ var/list/loot
+ var/loot_type_path
+ var/loot_subtype_path
+
+ var/spawn_loot_count = 1 // by default one item will be selected from the loot list
+ var/spawn_loot_double = TRUE // by default duplicate items CAN be spawned from the loot list
+ var/spawn_loot_split = FALSE // by default items will NOT spread out on the same tile
+ var/spawn_all_loot = FALSE // by default the spawner will only spawn the number of items set in spawn_loot_count
+ var/spawn_loot_chance = 100 // by default the spawner has a 100% chance to spawn the item(s)
+ var/spawn_scatter_radius = 0 // by default the spawner will spawn the items ONLY on the tile it is on
+```
+
+However there are some categories that overwrite these default values so pay attention to the folder or category you group your spawner in. For instance the `obj/effect/spawner/random/techstorage` category overwrites the `spawn_all_loot` and the `spawn_loot_split` variables.
+
+```dm
+// Tech storage circuit board spawners
+/obj/effect/spawner/random/techstorage
+ name = "generic circuit board spawner"
+ spawn_loot_split = TRUE
+ spawn_all_loot = TRUE
+```
+
+This means any spawner you create under the techstorage will also have those variables set to that by default. This can be overridden quite easily just be resetting the variables back to the normal state like so:
+
+```dm
+/obj/effect/spawner/random/techstorage/data_disk
+ name = "data disk spawner"
+ spawn_all_loot = FALSE // now our loot won't all be spawned
+ loot = list(
+ /obj/item/disk/data = 49,
+ /obj/item/disk/nuclear/fake/obvious = 1,
+ )
+```
+
+## Template
+
+All the random spawners follow the same template format to keep things consistent and unison.
+
+```dm
+/obj/effect/spawner/random/INSERT_SPAWNER_GROUP/INSERT_SPAWNER_NAME
+ name = "INSERT_SPAWNER_NAME spawner"
+ loot = list(
+ /obj/item/PATH/INSERT_OBJ_1,
+ /obj/item/PATH/INSERT_OBJ_2,
+ /obj/item/PATH/INSERT_OBJ_3,
+ )
+```
+
+All the capitalized code is the parts where you are supposed to swap out with your objects like so:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ )
+```
+
+Find the path to different objects and add them to the list but try to be consistent with the types of the object and the spawner. For example a medical spawner shouldn't have a emag in the loot list. (use an antag spawner for that instead!)
+
+## Probability
+
+Be aware that the `loot` list uses a *weighted chance* formula to determine probability. So if there are no numbers set in the `loot` list then each object defaults to 1 and has the same probability to be selected. For our above example for the `minor_healing` spawner each medical item has a 1/3 chance to be spawned. But if we rearranged the values to this:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture = 2,
+ /obj/item/stack/medical/mesh = 1,
+ /obj/item/stack/medical/gauze = 1,
+ )
+```
+
+Then now `suture` has a 50% chance of being spawned (2/4), `mesh` has a 25% chance of being spawned (1/4), and `gauze` also has a 25% chance of being spawned (1/4). If we add another item into the mix then we get the following:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture = 2,
+ /obj/item/stack/medical/mesh = 1,
+ /obj/item/stack/medical/gauze = 1,
+ /obj/item/reagent_containers/syringe = 1,
+ )
+```
+
+Suture is 40% (2/5), Mesh is 20% (1/5), Gauze is 20% (1/5), and Syringe is 20% (1/5). A weighted list has the advantage of not needing to update every item in the list when adding a new item. If the list was based on a straight percent values, then each new item would require to manually go and edit ALL the items in the list. For big lists that would become very tedious. This is why we use weighted lists to determine probability!
+
+## Style
+
+Here are some simple guidelines that you should stick to when making a new spawner:
+
+### If ALL the items have the same chance, we should not set a weighted value to the item
+
+Do not put `/obj/item/ = 1` unless other items have different spawn chances
+
+Good:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture = 2,
+ /obj/item/stack/medical/mesh = 1,
+ /obj/item/stack/medical/gauze = 1,
+ /obj/item/reagent_containers/syringe = 1,
+ )
+```
+
+Also Good:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ /obj/item/reagent_containers/syringe,
+ )
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture = 1,
+ /obj/item/stack/medical/mesh = 1,
+ /obj/item/stack/medical/gauze = 1,
+ /obj/item/reagent_containers/syringe = 1,
+ )
+```
+
+
+### Sort the list from highest probability to lowest
+
+Sort from top to bottom. The rarest items for your spawner should be at the bottom of the list.
+
+Good:
+
+```dm
+/obj/effect/spawner/random/exotic/armory
+ name = "armory loot spawner"
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/grenade/clusterbuster/teargas = 2,
+ /obj/item/grenade/clusterbuster = 2,
+ /obj/item/gun/ballistic/automatic/pistol/deagle = 1,
+ /obj/item/gun/ballistic/revolver/mateba = 1,
+ )
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/exotic/armory
+ name = "armory loot spawner"
+ loot = list(
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/gun/ballistic/automatic/pistol = 8,
+ /obj/item/gun/ballistic/revolver/mateba = 1,
+ /obj/item/grenade/clusterbuster/teargas = 2,
+ /obj/item/gun/ballistic/automatic/pistol/deagle = 1,
+ /obj/item/grenade/clusterbuster = 2,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ )
+```
+
+### Always put the `loot` list at the bottom of your spawner
+
+This is just to keep things organized.
+
+Good:
+
+```dm
+/obj/effect/spawner/random/food_or_drink/donkpockets
+ name = "donk pocket box spawner"
+ spawn_loot_double = FALSE
+ loot = list(
+ /obj/item/storage/box/donkpockets/donkpocketspicy,
+ /obj/item/storage/box/donkpockets/donkpocketteriyaki,
+ /obj/item/storage/box/donkpockets/donkpocketpizza,
+ /obj/item/storage/box/donkpockets/donkpocketberry,
+ /obj/item/storage/box/donkpockets/donkpockethonk,
+ )
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/food_or_drink/donkpockets
+ name = "donk pocket box spawner"
+ loot = list(
+ /obj/item/storage/box/donkpockets/donkpocketspicy,
+ /obj/item/storage/box/donkpockets/donkpocketteriyaki,
+ /obj/item/storage/box/donkpockets/donkpocketpizza,
+ /obj/item/storage/box/donkpockets/donkpocketberry,
+ /obj/item/storage/box/donkpockets/donkpockethonk,
+ )
+ spawn_loot_double = FALSE
+```
+
+### Always put a comma at the last item in the `loot` list
+
+This will make it easier for people to add items to your spawner later without getting frustrating code errors.
+
+Good:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ )
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze // if someone adds an item to the list later it will cause an error
+ )
+```
+
+### Keep the same tab formatting for the `loot` list (unless there is only one item)
+
+Again, this is just good code organization. If there is only one item, then encase that item in `loot = list(item)`
+
+Good:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ )
+```
+
+Also Good:
+
+```dm
+/obj/effect/spawner/random/structure/crate_abandoned
+ icon = 'icons/effects/landmarks_static.dmi'
+ icon_state = "loot_site"
+ spawn_loot_chance = 20
+ loot = list(/obj/structure/closet/crate/secure/loot)
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(
+ /obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,
+ )
+```
+
+Also Bad:
+
+```dm
+/obj/effect/spawner/random/medical/minor_healing
+ name = "minor healing spawner"
+ loot = list(/obj/item/stack/medical/suture,
+ /obj/item/stack/medical/mesh,
+ /obj/item/stack/medical/gauze,)
+```
+
+### Try to keep the total combined weight of your `loot` list to sane values (Aim for 5, 10, 20, 50, or 100)
+
+This makes the math probability easier for people to calculate. (this is recommended, but not always possible)
+
+Good:
+
+```dm
+/obj/effect/spawner/random/trash/cigbutt
+ name = "cigarette butt spawner"
+ loot = list(
+ /obj/item/cigbutt = 65,
+ /obj/item/cigbutt/roach = 20,
+ /obj/item/cigbutt/cigarbutt = 15,
+ )
+```
+
+Also Good:
+
+```dm
+/obj/effect/spawner/random/trash/botanical_waste
+ name = "botanical waste spawner"
+ loot = list(
+ /obj/item/grown/bananapeel = 6,
+ /obj/item/grown/corncob = 3,
+ /obj/item/food/grown/bungopit = 1,
+ )
+```
+
+Bad:
+
+```dm
+/obj/effect/spawner/random/entertainment/money_large
+ name = "large money spawner"
+ loot = list(
+ /obj/item/stack/spacecash/c1 = 521,
+ /obj/item/stack/spacecash/c10 = 378,
+ /obj/item/stack/spacecash/c20 = 212,
+ /obj/item/stack/spacecash/c50 = 205,
+ /obj/item/stack/spacecash/c100 = 71,
+ /obj/item/stack/spacecash/c200 = 60,
+ /obj/item/stack/spacecash/c500 = 57,
+ /obj/item/stack/spacecash/c1000 = 41,
+ /obj/item/stack/spacecash/c10000 = 12,
+ )
+```
+
+### Do not put empty items in the loot list
+
+Instead use the `spawn_loot_chance` var to control the chance for the spawner to spawn nothing.
+
+Good:
+
+```dm
+/obj/effect/spawner/random/structure/crate_abandoned
+ name = "locked crate spawner"
+ spawn_loot_chance = 20
+ loot = list(/obj/structure/closet/crate/secure/loot)
+```
+
+
+Bad:
+
+```dm
+/obj/effect/spawner/lootdrop/crate_spawner
+ name = "lootcrate spawner"
+ loot = list(
+ "" = 80
+ /obj/structure/closet/crate/secure/loot = 20,
+ )
+```
+
+### Avoid making a spawner that is a duplicate
+
+We don't want copy-cat spawners that are almost identical. Instead merge spawners together if possible.
+
+Good:
+
+```dm
+/obj/effect/spawner/random/exotic/armory
+ name = "armory loot spawner"
+ icon_state = "pistol"
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/grenade/clusterbuster/teargas = 2,
+ /obj/item/grenade/clusterbuster = 2,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/gun/ballistic/revolver/mateba,
+ )
+```
+
+
+Bad:
+
+```dm
+/obj/effect/spawner/lootdrop/armory_contraband
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/gun/ballistic/revolver/mateba
+ )
+
+/obj/effect/spawner/lootdrop/armory_contraband/metastation
+ loot = list(
+ /obj/item/gun/ballistic/automatic/pistol = 8,
+ /obj/item/gun/ballistic/shotgun/automatic/combat = 5,
+ /obj/item/storage/box/syndie_kit/throwing_weapons = 3,
+ /obj/item/gun/ballistic/automatic/pistol/deagle,
+ /obj/item/gun/ballistic/revolver/mateba
+ )
+
+```
diff --git a/code/game/objects/effects/spawners/random/salvaging.dm b/code/game/objects/effects/spawners/random/salvaging.dm
new file mode 100644
index 000000000000..9a6f4571a35e
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/salvaging.dm
@@ -0,0 +1,207 @@
+//GENERIC
+/obj/effect/spawner/random/salvage_capacitor
+ icon_state = "matter_bin"
+ loot = list(
+ /obj/item/stock_parts/capacitor = 120,
+ /obj/item/stock_parts/capacitor/adv = 20,
+ /obj/item/stock_parts/capacitor/super = 5,
+ )
+
+/obj/effect/spawner/random/salvage_scanning
+ icon_state = "matter_bin"
+ loot = list(
+ /obj/item/stock_parts/scanning_module = 120,
+ /obj/item/stock_parts/scanning_module/adv = 20,
+ /obj/item/stock_parts/scanning_module/phasic = 5,
+ )
+
+/obj/effect/spawner/random/salvage_manipulator
+ icon_state = "matter_bin"
+ loot = list(
+ /obj/item/stock_parts/manipulator = 120,
+ /obj/item/stock_parts/manipulator/nano = 20,
+ /obj/item/stock_parts/manipulator/pico = 5,
+ )
+
+/obj/effect/spawner/random/salvage_matter_bin
+ icon_state = "matter_bin"
+ loot = list(
+ /obj/item/stock_parts/matter_bin = 120,
+ /obj/item/stock_parts/matter_bin/adv = 20,
+ /obj/item/stock_parts/matter_bin/super = 5,
+ )
+
+/obj/effect/spawner/random/salvage_laser
+ icon_state = "matter_bin"
+ loot = list(
+ /obj/item/stock_parts/micro_laser = 120,
+ /obj/item/stock_parts/micro_laser/high = 20,
+ /obj/item/stock_parts/micro_laser/ultra = 5,
+ )
+
+//PROTOLATHE
+
+/obj/effect/spawner/random/random_gun_protolathe_lootdrop
+ icon_state = "laser_gun"
+ loot = list(
+ /obj/item/gun/energy/lasercannon = 1,
+ /obj/item/gun/ballistic/automatic/smg/skm_carbine/saber = 1,
+ /obj/item/gun/energy/temperature/security = 1,
+ )
+
+/obj/effect/spawner/random/random_ammo_protolathe_lootdrop
+ icon_state = "rubbershot"
+ loot = list(
+ /obj/item/stock_parts/cell/gun/upgraded = 5,
+ /obj/item/ammo_box/magazine/smgm9mm = 7,
+ )
+
+//DESTRUCTIVE ANAL //i'm killing you
+/obj/effect/spawner/random/destructive_anal_loot //what do people usually put in these things anayways
+ loot = list(
+ /obj/item/storage/toolbox/syndicate/empty = 650,
+ /obj/item/gun/ballistic/automatic/pistol/ringneck = 500,
+ /obj/item/camera_bug = 500,
+ /obj/item/clothing/gloves/combat = 200,
+ /obj/item/clothing/head/chameleon = 200,
+ /obj/item/pen/sleepy = 200,
+ /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 100,
+ /obj/item/grenade/c4 = 100,
+
+ /obj/item/wrench/syndie = 30,
+ /obj/item/screwdriver/nuke = 30,
+ /obj/item/crowbar/syndie = 30,
+ /obj/item/wirecutters/syndie = 30,
+ /obj/item/multitool/syndie = 30,
+ )
+
+/obj/effect/spawner/random/salvage_machine
+ name = "salvageable machine spawner"
+ icon_state = "arcade"
+ loot = list(
+ /obj/structure/salvageable/protolathe,
+ /obj/structure/salvageable/circuit_imprinter,
+ /obj/structure/salvageable/server,
+ /obj/structure/salvageable/machine,
+ /obj/structure/salvageable/autolathe,
+ /obj/structure/salvageable/computer,
+ /obj/structure/salvageable/destructive_analyzer
+ )
+
+/obj/effect/spawner/random/salvage
+ name = "salvage mats spawner"
+ icon_state = "rods"
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapmetal,
+ /obj/item/stack/ore/salvage/scrapgold,
+ /obj/item/stack/ore/salvage/scrapplasma,
+ /obj/item/stack/ore/salvage/scrapsilver,
+ /obj/item/stack/ore/salvage/scraptitanium,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+
+/obj/effect/spawner/random/salvage/half
+ name = "50% salvage spawner"
+ spawn_loot_chance = 50
+ loot = list(
+ /obj/effect/spawner/random/maintenance,
+ /obj/effect/spawner/random/salvage_machine,
+ /obj/effect/spawner/random/exotic/ripley,
+ /obj/structure/closet/crate/secure/loot,
+ )
+
+/obj/effect/spawner/random/salvage/metal
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapmetal
+ )
+
+/obj/effect/spawner/random/salvage/metal/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/random/salvage/gold
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapgold
+ )
+
+/obj/effect/spawner/random/salvage/gold/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/random/salvage/plasma
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapplasma
+ )
+/obj/effect/spawner/random/salvage/plasma/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+
+/obj/effect/spawner/random/salvage/silver
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapsilver
+ )
+/obj/effect/spawner/random/salvage/silver/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+
+/obj/effect/spawner/random/salvage/titanium
+ loot = list(
+ /obj/item/stack/ore/salvage/scraptitanium
+ )
+/obj/effect/spawner/random/salvage/titanium/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/random/salvage/bluespace
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapbluespace
+ )
+/obj/effect/spawner/random/salvage/bluespace/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
+
+/obj/effect/spawner/random/salvage/uranium
+ loot = list(
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+/obj/effect/spawner/random/salvage/uranium/Initialize()
+ spawn_loot_count = pick(list(
+ 1,
+ 2,
+ 3,
+ 4
+ ))
+ return ..()
diff --git a/code/game/objects/effects/spawners/random/structure.dm b/code/game/objects/effects/spawners/random/structure.dm
new file mode 100644
index 000000000000..0264b3d76a9e
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/structure.dm
@@ -0,0 +1,91 @@
+
+/obj/effect/spawner/random/structure
+ name = "structure spawner"
+ desc = "Now you see me, now you don't..."
+ icon_state = "girder"
+
+/obj/effect/spawner/random/structure/crate_abandoned
+ name = "locked crate spawner"
+ icon_state = "crate_secure"
+ spawn_loot_chance = 20
+ loot = list(/obj/structure/closet/crate/secure/loot)
+
+/obj/effect/spawner/random/structure/girder
+ name = "girder spawner"
+ icon_state = "girder"
+ spawn_loot_chance = 90
+ loot = list( // 80% chance normal girder, 10% chance of displaced, 10% chance of nothing
+ /obj/structure/girder = 8,
+ /obj/structure/girder/displaced = 1,
+ )
+
+/obj/effect/spawner/random/structure/grille
+ name = "grille spawner"
+ icon_state = "grille"
+ spawn_loot_chance = 90
+ loot = list( // 80% chance normal grille, 10% chance of broken, 10% chance of nothing
+ /obj/structure/grille = 8,
+ /obj/structure/grille/broken = 1,
+ )
+
+/obj/effect/spawner/random/structure/furniture_parts
+ name = "furniture parts spawner"
+ icon_state = "table_parts"
+ loot = list(
+ /obj/structure/table_frame,
+ /obj/structure/table_frame/wood,
+ /obj/item/rack_parts,
+ )
+
+/obj/effect/spawner/random/structure/table_or_rack
+ name = "table or rack spawner"
+ icon_state = "rack_parts"
+ loot = list(
+ /obj/effect/spawner/random/structure/table,
+ /obj/structure/rack,
+ )
+
+/obj/effect/spawner/random/structure/table
+ name = "table spawner"
+ icon_state = "table"
+ loot = list(
+ /obj/structure/table = 40,
+ /obj/structure/table/wood = 30,
+ /obj/structure/table/glass = 20,
+ /obj/structure/table/reinforced = 5,
+ /obj/structure/table/wood/poker = 5,
+ )
+
+/obj/effect/spawner/random/structure/closet_empty
+ name = "empty closet spawner"
+ icon_state = "locker"
+ loot = list(
+ /obj/structure/closet = 850,
+ /obj/structure/closet/cabinet = 150,
+ /obj/structure/closet/acloset = 1,
+ )
+
+/obj/effect/spawner/random/structure/closet_empty/crate
+ name = "empty crate spawner"
+ icon_state = "crate"
+ loot = list(
+ /obj/structure/closet/crate = 20,
+ /obj/structure/closet/crate/wooden = 1,
+ /obj/structure/closet/crate/internals = 1,
+ /obj/structure/closet/crate/medical = 1,
+ /obj/structure/closet/crate/freezer = 1,
+ /obj/structure/closet/crate/radiation = 1,
+ /obj/structure/closet/crate/hydroponics = 1,
+ /obj/structure/closet/crate/engineering = 1,
+ /obj/structure/closet/crate/engineering/electrical = 1,
+ /obj/structure/closet/crate/science = 1,
+ )
+
+/obj/effect/spawner/random/structure/barricade
+ name = "barricade spawner"
+ icon_state = "barricade"
+ spawn_loot_chance = 80
+ loot = list(
+ /obj/structure/barricade/wooden,
+ /obj/structure/barricade/wooden/crude,
+ )
diff --git a/code/game/objects/effects/spawners/random/trash.dm b/code/game/objects/effects/spawners/random/trash.dm
new file mode 100644
index 000000000000..3c15e77106a3
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/trash.dm
@@ -0,0 +1,282 @@
+/obj/effect/spawner/random/trash
+ name = "trash spawner"
+ desc = "Ewwwwwww gross."
+ icon_state = "trash"
+
+/obj/effect/spawner/random/trash/garbage
+ name = "garbage spawner"
+ loot = list(
+ /obj/effect/spawner/random/trash/food_packaging = 20,
+ /obj/item/trash/can = 15,
+ /obj/item/shard = 10,
+ /obj/effect/spawner/random/trash/cigbutt = 10,
+ /obj/effect/spawner/random/trash/botanical_waste = 5,
+ /obj/item/broken_bottle = 5,
+ /obj/item/light/tube/broken = 5,
+ /obj/item/light/bulb/broken = 5,
+ /obj/item/assembly/mousetrap/armed = 5,
+ /obj/item/stack/cable_coil = 5,
+ /obj/item/trash/candle = 1,
+ /obj/item/reagent_containers/glass/rag = 1,
+ /obj/item/popsicle_stick = 1,
+ /obj/item/reagent_containers/syringe = 1,
+ /obj/item/shard/plasma = 1,
+ )
+
+/obj/effect/spawner/random/trash/deluxe_garbage
+ name = "fancy deluxe garbage spawner"
+ loot = list(
+ /obj/effect/spawner/random/trash/garbage = 25,
+ /obj/effect/spawner/random/trash/food_packaging = 10,
+ /obj/effect/spawner/random/entertainment/money = 10,
+ /obj/effect/spawner/random/trash/crushed_can = 10,
+ /obj/item/shard/plasma = 5,
+ /obj/item/reagent_containers/pill/floorpill = 5,
+ /obj/effect/spawner/random/trash/soap = 3,
+ /obj/item/broken_bottle = 3,
+ /obj/effect/spawner/random/engineering/tool/common = 1,
+ /mob/living/simple_animal/mouse = 1,
+ /obj/item/reagent_containers/glass/rag = 1,
+ /obj/effect/spawner/random/entertainment/drugs= 1,
+ /obj/item/reagent_containers/syringe = 1,
+ /obj/effect/spawner/random/entertainment/cigar = 1,
+ /obj/item/stack/ore/gold = 1,
+ )
+
+/obj/effect/spawner/random/trash/cigbutt
+ name = "cigarette butt spawner"
+ loot = list(
+ /obj/item/cigbutt = 25,
+ /obj/item/cigbutt/roach = 25,
+ /obj/effect/decal/cleanable/ash = 25,
+ /obj/item/cigbutt/cigarbutt = 15,
+ )
+
+/obj/effect/spawner/random/trash/food_packaging
+ name = "empty food packaging spawner"
+ icon_state = "chips"
+ loot = list(
+ /obj/item/trash/raisins = 2,
+ /obj/item/trash/cheesie = 2,
+ /obj/item/trash/candy = 2,
+ /obj/item/trash/chips = 2,
+ /obj/item/trash/sosjerky = 2,
+ /obj/item/trash/pistachios = 2,
+ /obj/item/trash/boritos = 1,
+ /obj/item/trash/can/food/beans = 1,
+ /obj/item/trash/can/food/peaches = 1,
+ /obj/item/trash/popcorn = 1,
+ /obj/item/trash/energybar = 1,
+ /obj/item/trash/can/food/peaches/maint = 1,
+ /obj/item/trash/semki = 1,
+ /obj/item/trash/syndi_cakes = 1,
+ /obj/item/trash/tray = 1,
+ )
+
+/obj/effect/spawner/random/trash/botanical_waste
+ name = "botanical waste spawner"
+ icon_state = "peel"
+ loot = list(
+ /obj/item/grown/bananapeel = 6,
+ /obj/item/grown/corncob = 3,
+ )
+
+/obj/effect/spawner/random/trash/grille_or_waste
+ name = "grille or waste spawner"
+ icon_state = "grille"
+ loot = list(
+ /obj/structure/grille = 5,
+ /obj/effect/spawner/random/trash/food_packaging = 3,
+ /obj/effect/spawner/random/trash/cigbutt = 1,
+ /obj/item/reagent_containers/food/snacks/deadmouse = 1,
+ )
+
+/obj/effect/spawner/random/trash/decal
+ icon_state = "vomit"
+ loot = list(
+ /obj/effect/decal/cleanable/greenglow/filled = 30,
+ /obj/effect/decal/cleanable/greenglow/ecto = 1,
+ /obj/effect/decal/cleanable/glass = 30,
+ /obj/effect/decal/cleanable/glass/plasma = 30,
+ /obj/effect/decal/cleanable/glass/strange = 30,
+ /obj/effect/decal/cleanable/molten_object = 30,
+ /obj/effect/decal/cleanable/molten_object/large = 30,
+ /obj/effect/decal/cleanable/oil = 30,
+ /obj/effect/decal/cleanable/oil/slippery = 1, // :)
+ /obj/effect/decal/cleanable/plastic = 30,
+ /obj/effect/decal/cleanable/ash = 30,
+ /obj/effect/decal/cleanable/ash/large = 30,
+ )
+
+/obj/effect/spawner/random/trash/mess
+ name = "gross decal spawner"
+ icon_state = "vomit"
+ loot = list(
+ /obj/effect/decal/cleanable/dirt = 6,
+ /obj/effect/decal/cleanable/garbage = 3,
+ /obj/effect/decal/cleanable/vomit/old = 3,
+ /obj/effect/decal/cleanable/blood/gibs/old = 3,
+ /obj/effect/decal/cleanable/insectguts = 1,
+ /obj/effect/decal/cleanable/greenglow/ecto = 1,
+ /obj/effect/decal/cleanable/wrapping = 1,
+ /obj/effect/decal/cleanable/plastic = 1,
+ /obj/effect/decal/cleanable/glass = 1,
+ )
+
+/obj/effect/spawner/random/trash/grime
+ name = "trash and grime spawner"
+ spawn_loot_count = 5
+ spawn_scatter_radius = 2
+ loot = list( // This spawner will scatter garbage around a dirty site.
+ /obj/effect/spawner/random/trash/garbage = 6,
+ /mob/living/simple_animal/hostile/cockroach = 5,
+ /obj/effect/decal/cleanable/garbage = 4,
+ /obj/effect/decal/cleanable/vomit/old = 3,
+ /obj/effect/spawner/random/trash/cigbutt = 2,
+ )
+
+/obj/effect/spawner/random/trash/moisture
+ name = "water hazard spawner"
+ icon_state = "caution"
+ spawn_loot_count = 2
+ spawn_scatter_radius = 1
+ loot = list( // This spawner will scatter water related items around a moist site.
+ /obj/item/clothing/head/cone = 7,
+ /obj/item/clothing/suit/caution = 3,
+ /mob/living/simple_animal/hostile/retaliate/frog = 2,
+ /obj/item/reagent_containers/glass/rag = 2,
+ /obj/item/reagent_containers/glass/bucket = 2,
+ /obj/effect/decal/cleanable/blood/old = 2,
+ )
+
+/obj/effect/spawner/random/trash/graffiti
+ name = "random graffiti spawner"
+ icon_state = "rune"
+ loot = list(/obj/effect/decal/cleanable/crayon)
+ var/graffiti_icons = list(
+ "rune1", "rune2", "rune3", "rune4", "rune5", "rune6",
+ "amyjon", "face", "matt", "revolution", "engie", "guy",
+ "end", "dwarf", "uboa", "body", "cyka", "star",
+ "prolizard", "antilizard", "danger", "firedanger", "electricdanger",
+ "biohazard", "radiation", "safe", "evac", "space", "med", "trade", "shop",
+ "food", "peace", "like", "skull", "nay", "heart", "credit",
+ "smallbrush", "brush", "largebrush", "splatter", "snake", "stickman",
+ "carp", "ghost", "clown", "taser", "disk", "fireaxe", "toolbox",
+ "corgi", "cat", "toilet", "blueprint", "beepsky", "scroll", "bottle",
+ "shotgun", "arrow", "line", "thinline", "shortline", "body", "chevron",
+ "footprint", "clawprint", "pawprint",
+ )
+ // This sets the color of the graffiti (used for mapedits)
+ color = COLOR_WHITE
+ /// Whether the graffiti will spawn with a random color (used for mapedits)
+ var/random_color = TRUE
+ /// Whether the graffiti will spawn with this spawner's icon_state instead of a random one (used for mapedits)
+ var/random_icon = TRUE
+
+/obj/effect/spawner/random/trash/graffiti/make_item(spawn_loc, type_path_to_make)
+ var/obj/effect/decal/cleanable/crayon/graffiti_decal = ..()
+ if(istype(graffiti_decal))
+ color = random_color && "#[random_short_color()]" || color
+ icon_state = random_icon && pick(graffiti_icons) || icon_state
+
+ graffiti_decal.add_atom_colour(color, FIXED_COLOUR_PRIORITY)
+ graffiti_decal.icon_state = icon_state
+
+ return graffiti_decal
+
+/obj/effect/spawner/random/trash/mopbucket
+ name = "mop bucket spawner"
+ icon_state = "mopbucket"
+ spawn_loot_count = 2
+ spawn_loot_double = FALSE
+ loot = list(
+ /obj/item/mop = 5,
+ /obj/item/clothing/suit/caution = 3,
+ /obj/item/reagent_containers/glass/bucket = 1,
+ /obj/item/reagent_containers/glass/bucket/wooden = 1,
+ )
+
+/obj/effect/spawner/random/trash/caution_sign
+ name = "caution sign spawner"
+ icon_state = "caution"
+ loot = list(
+ /obj/item/clothing/suit/caution = 40,
+ /obj/structure/holosign/wetsign = 5,
+ /obj/structure/holosign/barrier = 3,
+ /obj/structure/holosign/barrier/wetsign = 2,
+ )
+
+/obj/effect/spawner/random/trash/bucket
+ name = "bucket spawner"
+ icon_state = "caution"
+ loot = list(
+ /obj/item/reagent_containers/glass/bucket,
+ /obj/item/reagent_containers/glass/bucket/wooden,
+ )
+
+/obj/effect/spawner/random/trash/soap
+ name = "soap spawner"
+ icon_state = "soap"
+ loot = list(
+ /obj/item/soap = 25,
+ /obj/item/bikehorn/rubberducky = 20,
+ /obj/item/soap/homemade = 20,
+ /obj/item/soap/deluxe = 15,
+ /obj/item/soap/nanotrasen = 10,
+ )
+
+/obj/effect/spawner/random/trash/box
+ name = "box spawner"
+ icon_state = "box"
+ loot = list(
+ /obj/structure/closet/cardboard = 9,
+ /obj/structure/closet/cardboard/metal = 1,
+ )
+
+/obj/effect/spawner/random/trash/bin
+ name = "trashbin spawner"
+ icon_state = "trash_bin"
+ loot = list(
+ /obj/structure/closet/crate/bin = 10,
+ /obj/structure/closet/crate/trashcart = 3,
+ /obj/effect/spawner/random/trash/box = 3,
+ /obj/structure/closet/crate/trashcart/laundry = 1,
+ )
+
+
+/obj/effect/spawner/random/trash/janitor_supplies
+ name = "janitor supplies spawner"
+ icon_state = "box_small"
+ loot = list(
+ /obj/item/storage/box/mousetraps,
+ /obj/item/storage/box/lights/tubes,
+ /obj/item/storage/box/lights/mixed,
+ /obj/item/storage/box/lights/bulbs,
+ )
+
+/obj/effect/spawner/random/trash/crushed_can
+ name = "crushed can spawner"
+ icon_state = "crushed_can"
+ loot = list(/obj/item/trash/can)
+ /// Whether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits)
+ var/soda_icons = list(
+ "energy_drink", "monkey_energy", "thirteen_loko", "space_mountain_wind", "dr_gibb", "starkist",
+ "sodawater", "tonic", "cola", "purple_can", "ice_tea_can",
+ "sol_dry", "wellcheers", "space beer", "ebisu", "shimauma", "moonlabor",
+ "space_up", "lemon_lime", "shamblers", "shamblerseldritch", "air", "laughter",
+ "volt_energy", "melon_soda",
+ )
+
+/obj/effect/spawner/random/trash/crushed_can/make_item(spawn_loc, type_path_to_make)
+ var/obj/item/trash/can/crushed_can = .. ()
+ if(istype(crushed_can))
+ crushed_can.icon_state = pick(soda_icons)
+ return crushed_can
+
+/obj/effect/spawner/random/trash/ghetto_containers
+ name = "ghetto container spawner"
+ loot = list(
+ /obj/item/reagent_containers/glass/bucket = 5,
+ /obj/item/reagent_containers/glass/bottle = 5,
+ /obj/item/reagent_containers/glass/mortar = 2,
+ )
diff --git a/code/game/objects/effects/spawners/random/vending.dm b/code/game/objects/effects/spawners/random/vending.dm
new file mode 100644
index 000000000000..595746e14e19
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/vending.dm
@@ -0,0 +1,17 @@
+/obj/effect/spawner/random/vending
+ name = "machinery spawner"
+ desc = "Randomized electronics for extra fun."
+
+/obj/effect/spawner/random/vending/snack
+ name = "spawn random snack vending machine"
+ desc = "Automagically transforms into a random snack vendor. If you see this while in a shift, please create a bug report."
+ icon_state = "snack"
+ loot_type_path = /obj/machinery/vending/snack
+ loot = list()
+
+/obj/effect/spawner/random/vending/cola
+ name = "spawn random cola vending machine"
+ desc = "Automagically transforms into a random cola vendor. If you see this while in a shift, please create a bug report."
+ icon_state = "cola"
+ loot_type_path = /obj/machinery/vending/cola
+ loot = list()
diff --git a/code/game/objects/effects/spawners/random/waste_planet.dm b/code/game/objects/effects/spawners/random/waste_planet.dm
new file mode 100644
index 000000000000..64379c40b3d4
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/waste_planet.dm
@@ -0,0 +1,144 @@
+/obj/effect/spawner/random/waste/grille_or_trash
+ icon_state = "grille"
+ name = "wasteplanet loot spawner"
+ loot = list(
+ /obj/structure/grille/broken = 5,
+ /obj/structure/grille = 5,
+ /obj/item/cigbutt = 1,
+ /obj/item/trash/cheesie = 1,
+ /obj/item/trash/candy = 1,
+ /obj/item/trash/chips = 1,
+ /obj/item/reagent_containers/food/snacks/deadmouse = 1,
+ /obj/item/trash/pistachios = 1,
+ /obj/item/trash/plate = 1,
+ /obj/item/trash/popcorn = 1,
+ /obj/item/trash/raisins = 1,
+ /obj/item/trash/sosjerky = 1,
+ /obj/item/trash/syndi_cakes = 1
+ )
+
+/obj/effect/spawner/random/waste/mechwreck
+ icon_state = "ripley"
+ name = "wasteplanet exosuit wreckage"
+ loot = list(
+ /obj/structure/mecha_wreckage/ripley = 15,
+ /obj/structure/mecha_wreckage/ripley/firefighter = 9,
+ /obj/structure/mecha_wreckage/ripley/mkii = 9,
+ /obj/structure/mecha_wreckage/ripley/clip = 9
+ )
+
+/obj/effect/spawner/random/waste/mechwreck/rare
+ loot = list(
+ /obj/structure/mecha_wreckage/durand = 12.5,
+ /obj/structure/mecha_wreckage/durand/clip = 12.5,
+ /obj/structure/mecha_wreckage/odysseus = 25,
+ /obj/structure/mecha_wreckage/gygax = 25
+ )
+
+/obj/effect/spawner/random/waste/radiation
+ loot = list(
+ /obj/structure/radioactive = 6,
+ /obj/structure/radioactive/stack = 6,
+ /obj/structure/radioactive/waste = 6
+ )
+
+/obj/effect/spawner/random/waste/radiation/more_rads
+ loot = list(
+ /obj/structure/radioactive = 3,
+ /obj/structure/radioactive/stack = 12,
+ /obj/structure/radioactive/waste = 12
+ )
+
+/obj/effect/spawner/random/waste/atmos_can
+ loot = list(
+ /obj/machinery/portable_atmospherics/canister/toxins = 3,
+ /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
+ /obj/machinery/portable_atmospherics/canister/nitrogen = 3,
+ /obj/machinery/portable_atmospherics/canister/oxygen = 3,
+ /obj/machinery/portable_atmospherics/canister/nitrous_oxide = 1,
+ /obj/machinery/portable_atmospherics/canister/water_vapor = 1
+ )
+
+/obj/effect/spawner/random/waste/atmos_can/rare
+ loot = list(
+ /obj/machinery/portable_atmospherics/canister/tritium = 3,
+ /obj/machinery/portable_atmospherics/canister/methane = 3
+ )
+
+/obj/effect/spawner/random/waste/salvageable
+ loot = list(
+ /obj/structure/salvageable/machine = 20,
+ /obj/structure/salvageable/autolathe = 15,
+ /obj/structure/salvageable/computer = 10,
+ /obj/structure/salvageable/protolathe = 10,
+ /obj/structure/salvageable/circuit_imprinter = 8,
+ /obj/structure/salvageable/destructive_analyzer = 8,
+ /obj/structure/salvageable/server = 8
+ )
+
+/obj/effect/spawner/random/waste/girder
+ loot = list(
+ /obj/structure/girder/wasteworld,
+ /obj/structure/girder/wasteworld,
+ /obj/structure/girder/wasteworld,
+ /obj/structure/girder,
+ /obj/structure/girder/displaced,
+ /obj/structure/girder/reinforced
+ )
+
+/obj/effect/spawner/random/waste/hivebot
+ loot = list(
+ /obj/effect/spawner/random/salvage/metal,
+ /obj/effect/spawner/random/salvage/metal,
+ /obj/effect/spawner/random/salvage/metal,
+ /obj/effect/spawner/random/salvage/gold,
+ /obj/effect/spawner/random/salvage/plasma,
+ /obj/effect/spawner/random/salvage/silver,
+ /obj/effect/spawner/random/salvage/titanium,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapbluespace,
+ /obj/item/stack/ore/salvage/scrapuranium
+ )
+ spawn_loot_count = 2
+
+/obj/effect/spawner/random/waste/hivebot/more
+ spawn_loot_count = 4
+
+/obj/effect/spawner/random/waste/hivebot/part
+ loot = list(
+ /obj/item/stock_parts/capacitor,
+ /obj/item/stock_parts/scanning_module,
+ /obj/item/stock_parts/manipulator,
+ /obj/item/stock_parts/micro_laser,
+ /obj/item/stock_parts/matter_bin,
+ /obj/item/stock_parts/capacitor/adv,
+ /obj/item/stock_parts/scanning_module/adv,
+ /obj/item/stock_parts/manipulator/nano,
+ /obj/item/stock_parts/micro_laser/high,
+ /obj/item/stock_parts/matter_bin/adv,
+ )
+ spawn_loot_count = 1
+ spawn_loot_chance = 100
+
+/obj/effect/spawner/random/waste/hivebot/part/heavy
+ loot = list(
+ /obj/item/stock_parts/capacitor/super,
+ /obj/item/stock_parts/scanning_module/phasic,
+ /obj/item/stock_parts/manipulator/pico,
+ /obj/item/stock_parts/micro_laser/ultra,
+ /obj/item/stock_parts/matter_bin/super,
+ )
+
+
+/obj/effect/spawner/random/waste/hivebot/part/superheavy
+ loot = list(
+ /obj/item/stock_parts/capacitor/quadratic,
+ /obj/item/stock_parts/scanning_module/triphasic,
+ /obj/item/stock_parts/manipulator/femto,
+ /obj/item/stock_parts/micro_laser/quadultra,
+ /obj/item/stock_parts/matter_bin/bluespace,
+ )
+
+
+/obj/effect/spawner/random/waste/hivebot/beacon
+ spawn_loot_count = 6
diff --git a/code/game/objects/effects/spawners/spawner.dm b/code/game/objects/effects/spawners/spawner.dm
new file mode 100644
index 000000000000..d8091c6cfc65
--- /dev/null
+++ b/code/game/objects/effects/spawners/spawner.dm
@@ -0,0 +1,23 @@
+/obj/effect/spawner
+ name = "object spawner"
+
+// Brief explanation:
+// Rather then setting up and then deleting spawners, we block all atomlike setup
+// and do the absolute bare minimum
+// This is with the intent of optimizing mapload
+/obj/effect/spawner/Initialize(mapload)
+ SHOULD_CALL_PARENT(FALSE)
+ if(flags_1 & INITIALIZED_1)
+ stack_trace("Warning: [src]([type]) initialized multiple times!")
+ flags_1 |= INITIALIZED_1
+
+ return INITIALIZE_HINT_QDEL
+
+/obj/effect/spawner/Destroy(force)
+ SHOULD_CALL_PARENT(FALSE)
+ moveToNullspace()
+ return QDEL_HINT_QUEUE
+
+/// Override to define loot blacklist behavior
+/obj/effect/spawner/proc/can_spawn(atom/loot)
+ return TRUE
diff --git a/code/game/objects/effects/spawners/traps.dm b/code/game/objects/effects/spawners/traps.dm
deleted file mode 100644
index 0409d9944b9b..000000000000
--- a/code/game/objects/effects/spawners/traps.dm
+++ /dev/null
@@ -1,9 +0,0 @@
-/obj/effect/spawner/trap
- name = "random trap"
- icon = 'icons/obj/hand_of_god_structures.dmi'
- icon_state = "trap_rand"
-
-/obj/effect/spawner/trap/Initialize(mapload)
- . = ..()
- var/new_type = pick(subtypesof(/obj/structure/trap) - typesof(/obj/structure/trap/ctf))
- new new_type(get_turf(src))
diff --git a/code/game/objects/effects/spawners/vaultspawner.dm b/code/game/objects/effects/spawners/vaultspawner.dm
deleted file mode 100644
index 9bdf0a673ed9..000000000000
--- a/code/game/objects/effects/spawners/vaultspawner.dm
+++ /dev/null
@@ -1,28 +0,0 @@
-/obj/effect/vaultspawner
- var/maxX = 6
- var/maxY = 6
- var/minX = 2
- var/minY = 2
-
-/obj/effect/vaultspawner/New(turf/location,lX = minX,uX = maxX,lY = minY,uY = maxY,type = null)
- if(!type)
- type = pick("sandstone","rock","alien")
-
- var/lowBoundX = location.x
- var/lowBoundY = location.y
-
- var/hiBoundX = location.x + rand(lX,uX)
- var/hiBoundY = location.y + rand(lY,uY)
-
- var/z = location.z
-
- for(var/i = lowBoundX,i<=hiBoundX,i++)
- for(var/j = lowBoundY,j<=hiBoundY,j++)
- var/turf/T = locate(i,j,z)
- if(i == lowBoundX || i == hiBoundX || j == lowBoundY || j == hiBoundY)
- T.PlaceOnTop(/turf/closed/wall/vault)
- else
- T.PlaceOnTop(/turf/open/floor/vault)
- T.icon_state = "[type]vault"
-
- qdel(src)
diff --git a/code/game/objects/effects/spawners/xeno_egg_delivery.dm b/code/game/objects/effects/spawners/xeno_egg_delivery.dm
deleted file mode 100644
index 1eb4fd0dda94..000000000000
--- a/code/game/objects/effects/spawners/xeno_egg_delivery.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-/obj/effect/spawner/xeno_egg_delivery
- name = "xeno egg delivery"
- icon = 'icons/mob/alien.dmi'
- icon_state = "egg_growing"
- var/announcement_time = 1200
-
-/obj/effect/spawner/xeno_egg_delivery/Initialize(mapload)
- . = ..()
- var/turf/T = get_turf(src)
-
- new /obj/structure/alien/egg(T)
- new /obj/effect/temp_visual/gravpush(T)
- playsound(T, 'sound/items/party_horn.ogg', 50, TRUE, -1)
-
- message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
- log_game("An alien egg has been delivered to [AREACOORD(T)]")
- var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
- SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(_addtimer), CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(print_command_report), message), announcement_time))
diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
index 2b82f656ac48..92c92655cb8c 100644
--- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm
+++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm
@@ -207,16 +207,6 @@
icon_state = "blspell"
duration = 5
-/obj/effect/temp_visual/guardian
- randomdir = 0
-
-/obj/effect/temp_visual/guardian/phase
- duration = 5
- icon_state = "phasein"
-
-/obj/effect/temp_visual/guardian/phase/out
- icon_state = "phaseout"
-
/obj/effect/temp_visual/decoy
desc = "It's a decoy!"
duration = 15
diff --git a/code/game/objects/effects/turf_fire.dm b/code/game/objects/effects/turf_fire.dm
index 0bed49a3709c..46baaf691e87 100644
--- a/code/game/objects/effects/turf_fire.dm
+++ b/code/game/objects/effects/turf_fire.dm
@@ -65,11 +65,17 @@
/obj/effect/abstract/turf_fire/Initialize(mapload, power, fire_color)
. = ..()
- particles = new /particles/smoke/turf_fire
var/turf/open/open_turf = loc
if(open_turf.turf_fire)
return INITIALIZE_HINT_QDEL
+ var/datum/gas_mixture/environment = open_turf.air
+ var/oxy = environment.get_moles(GAS_O2)
+ if (oxy < TURF_FIRE_BURN_MINIMUM_OXYGEN_REQUIRED)
+ return INITIALIZE_HINT_QDEL
+
+ particles = new /particles/smoke/turf_fire
+
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
@@ -100,27 +106,28 @@
var/turf/open/open_turf = loc
if(open_turf.planetary_atmos)
return TRUE
+
var/datum/gas_mixture/cached_air = open_turf.air
+
var/oxy = cached_air.get_moles(GAS_O2)
if (oxy < TURF_FIRE_BURN_MINIMUM_OXYGEN_REQUIRED)
return FALSE
+
var/temperature = cached_air.return_temperature()
var/old_heat_capacity = cached_air.heat_capacity()
+
var/burn_rate = TURF_FIRE_BURN_RATE_BASE + fire_power * TURF_FIRE_BURN_RATE_PER_POWER
- if(burn_rate > oxy)
- burn_rate = oxy
+ burn_rate = max(oxy, burn_rate)
- var/new_o2 = (cached_air.get_moles(GAS_O2) - burn_rate)
- cached_air.set_moles(GAS_O2, new_o2)
+ cached_air.adjust_moles(GAS_O2, -burn_rate)
- var/new_co2 = (cached_air.get_moles(GAS_O2) + burn_rate * TURF_FIRE_BURN_CARBON_DIOXIDE_MULTIPLIER)
- cached_air.set_moles(GAS_CO2, new_co2)
+ cached_air.adjust_moles(GAS_CO2, burn_rate * TURF_FIRE_BURN_CARBON_DIOXIDE_MULTIPLIER)
var/new_heat_capacity = cached_air.heat_capacity()
var/energy_released = burn_rate * TURF_FIRE_ENERGY_PER_BURNED_OXY_MOL
cached_air.adjust_heat((temperature * old_heat_capacity + energy_released) / new_heat_capacity)
- open_turf.air = cached_air
- open_turf.air_update_turf(TRUE)
+
+ open_turf.air_update_turf()
return TRUE
/obj/effect/abstract/turf_fire/process()
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index feb1dfb0c5e4..928fc86ff34a 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -26,6 +26,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
///Icon file for right inhand overlays
var/righthand_file = 'icons/mob/inhands/items_righthand.dmi'
+ ///If set it will add a world icon using item_state
+ var/world_file
+
+ ///Handled by world_icon element
+ var/world_state
+ ///Handled by world_icon element
+ var/inventory_state
+
///This is a bitfield that defines what variations exist for bodyparts like Digi legs.
var/supports_variations = null
@@ -144,6 +152,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/strip_delay = 40
///How long it takes to resist out of the item (cuffs and such)
var/breakouttime = 0
+ ///How much power would this item use?
+ var/power_use_amount = POWER_CELL_USE_NORMAL
/// Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/list/attack_verb
@@ -213,10 +223,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/canMouseDown = FALSE
- //for setting world icons on the go
- var/inventory_state
- var/world_state
-
/obj/item/Initialize()
if(attack_verb)
@@ -315,6 +321,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
updateEmbedding()
+ if(world_file)
+ AddElement(/datum/element/world_icon, null, world_file, icon)
+
if(GLOB.rpg_loot_items)
AddComponent(/datum/component/fantasy)
@@ -522,8 +531,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
playsound(src, 'sound/weapons/effects/deflect.ogg', 100)
if(!istype(src, /obj/item/shield))
COOLDOWN_START(src, block_cooldown, block_cooldown_time)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/proc/talk_into(mob/M, input, channel, spans, datum/language/language, list/message_mods)
return ITALICS | REDUCE_RANGE
@@ -964,6 +973,11 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/obj/item/proc/remove_outline()
remove_filter(HOVER_OUTLINE_FILTER)
+/// Use the power of an attached component that posesses power handling, will return the signal bitflag.
+/obj/item/proc/item_use_power(use_amount, mob/user, check_only)
+ SHOULD_CALL_PARENT(TRUE)
+ return SEND_SIGNAL(src, COMSIG_ITEM_POWER_USE, use_amount, user, check_only)
+
/// Called when a mob tries to use the item as a tool.Handles most checks.
/obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks)
// we have no target, why are we even doing this?
@@ -1203,6 +1217,18 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/// Whether or not this item can be put into a storage item through attackby
/obj/item/proc/attackby_storage_insert(datum/storage, atom/storage_holder, mob/user)
return TRUE
+
+/obj/item/proc/update_weight_class(new_w_class)
+ if(w_class == new_w_class)
+ return FALSE
+
+ var/old_w_class = w_class
+ w_class = new_w_class
+ SEND_SIGNAL(src, COMSIG_ITEM_WEIGHT_CLASS_CHANGED, old_w_class, new_w_class)
+ if(!isnull(loc))
+ SEND_SIGNAL(loc, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, src, old_w_class, new_w_class)
+ return TRUE
+
/// How many different types of mats will be counted in a bite?
#define MAX_MATS_PER_BITE 2
@@ -1225,7 +1251,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
*/
/obj/item/proc/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE)
if(get_sharpness() && force >= 5) //if we've got something sharp with a decent force (ie, not plastic)
- INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, emote), "scream")
+ INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, force_scream))
victim.visible_message("[victim] looks like [victim.p_theyve()] just bit something they shouldn't have!", \
"OH GOD! Was that a crunch? That didn't feel good at all!!")
diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm
index e29a5f25fe5e..1968da023376 100644
--- a/code/game/objects/items/AI_modules.dm
+++ b/code/game/objects/items/AI_modules.dm
@@ -49,7 +49,7 @@ AI MODULES
//Handle the lawcap
if(law_datum)
var/tot_laws = 0
- for(var/lawlist in list(law_datum.devillaws, law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws))
+ for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws))
for(var/mylaw in lawlist)
if(mylaw != "")
tot_laws++
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index 7548625b31f6..f185cdb43a81 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -575,10 +575,10 @@ RLD
/obj/item/rcd_ammo
name = "compressed matter cartridge"
desc = "Highly compressed matter for the RCD."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "rcd"
item_state = "rcdammo"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_NORMAL
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
custom_materials = list(/datum/material/iron=12000, /datum/material/glass=8000)
diff --git a/code/game/objects/items/attachments/_attachment.dm b/code/game/objects/items/attachments/_attachment.dm
index dbb7a111355e..51e6603eb40b 100644
--- a/code/game/objects/items/attachments/_attachment.dm
+++ b/code/game/objects/items/attachments/_attachment.dm
@@ -25,6 +25,9 @@
var/pixel_shift_x = 16
///Determines the amount of pixels to move the icon state for the overlay. in the y direction
var/pixel_shift_y = 16
+ /// Determines what layer the icon state for the overlay renders on.
+ var/render_layer = FLOAT_LAYER //inhands
+ var/render_plane = FLOAT_PLANE //world
//Toggle modifers are handled seperatly
///Modifier applied to the parent
diff --git a/code/game/objects/items/attachments/bayonet.dm b/code/game/objects/items/attachments/bayonet.dm
index 6b1961f4b693..9e9deb969750 100644
--- a/code/game/objects/items/attachments/bayonet.dm
+++ b/code/game/objects/items/attachments/bayonet.dm
@@ -9,6 +9,7 @@
hitsound = 'sound/weapons/bladeslice.ogg'
attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharpness = IS_SHARP_ACCURATE
+ slot = ATTACHMENT_SLOT_MUZZLE
pixel_shift_x = 1
pixel_shift_y = 4
diff --git a/code/game/objects/items/attachments/energy_bayonet.dm b/code/game/objects/items/attachments/energy_bayonet.dm
new file mode 100644
index 000000000000..82d206d428ba
--- /dev/null
+++ b/code/game/objects/items/attachments/energy_bayonet.dm
@@ -0,0 +1,44 @@
+/obj/item/attachment/energy_bayonet
+ name = "energy bayonet"
+ desc = "Stabby-Stabby"
+ icon_state = "ebayonet"
+ force = 3
+ throwforce = 2
+ pickup_sound = 'sound/items/handling/knife1_pickup.ogg'
+ drop_sound = 'sound/items/handling/knife3_drop.ogg'
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+ sharpness = IS_BLUNT
+ slot = ATTACHMENT_SLOT_MUZZLE
+ attach_features_flags = ATTACH_TOGGLE | ATTACH_REMOVABLE_HAND
+
+ light_range = 2
+ light_power = 0.6
+ light_on = FALSE
+ light_color = COLOR_MOSTLY_PURE_RED
+ light_system = MOVABLE_LIGHT
+
+ toggle_on_sound = 'sound/weapons/saberon.ogg'
+ toggle_off_sound = 'sound/weapons/saberoff.ogg'
+
+ pixel_shift_x = 1
+ pixel_shift_y = 4
+ spread_mod = 1
+ wield_delay = 0.2 SECONDS
+
+/obj/item/attachment/energy_bayonet/on_preattack(obj/item/gun/gun, atom/target, mob/living/user, list/params)
+ if(user.a_intent == INTENT_HARM && user.CanReach(target, src, TRUE) && toggled != 0)
+ melee_attack_chain(user, target, params)
+ return COMPONENT_NO_ATTACK
+
+
+/obj/item/attachment/energy_bayonet/toggle_attachment(obj/item/gun/gun, mob/user)
+ . = ..()
+ set_light_on(toggled)
+ update_icon()
+ sharpness = toggled ? IS_SHARP_ACCURATE : IS_BLUNT
+ force = toggled ? 19 : 3
+ throwforce = toggled ? 14 : 2
+
+/obj/item/attachment/energy_bayonet/attack_self(mob/user)
+ toggle_attachment()
diff --git a/code/game/objects/items/attachments/m17_barrel.dm b/code/game/objects/items/attachments/m17_barrel.dm
new file mode 100644
index 000000000000..9d857b56183f
--- /dev/null
+++ b/code/game/objects/items/attachments/m17_barrel.dm
@@ -0,0 +1,10 @@
+/obj/item/attachment/m17_barrel
+ name = "Model 17 barrel"
+ desc = "The barrel of an M17 'Micro Target'."
+ icon_state = "m17_barrel"
+
+ slot = ATTACHMENT_SLOT_MUZZLE
+ spread_mod = -40
+ size_mod = 2
+ pixel_shift_x = 1
+ pixel_shift_y = 1
diff --git a/code/game/objects/items/attachments/rail_light.dm b/code/game/objects/items/attachments/rail_light.dm
index 0cfbe9661e9e..d2216d27d19f 100644
--- a/code/game/objects/items/attachments/rail_light.dm
+++ b/code/game/objects/items/attachments/rail_light.dm
@@ -4,8 +4,8 @@
icon_state = "raillight"
light_color = COLOR_LIGHT_ORANGE
light_system = MOVABLE_LIGHT_DIRECTIONAL
- light_range = 4
- light_power = 0.8
+ light_range = 5
+ light_power = 0.9
light_on = FALSE
attach_features_flags = ATTACH_REMOVABLE_HAND|ATTACH_TOGGLE
diff --git a/code/game/objects/items/attachments/shoulder_sling.dm b/code/game/objects/items/attachments/shoulder_sling.dm
new file mode 100644
index 000000000000..fdf01c17a95b
--- /dev/null
+++ b/code/game/objects/items/attachments/shoulder_sling.dm
@@ -0,0 +1,31 @@
+/obj/item/attachment/sling
+ name = "shoulder sling"
+ desc = "A leather shoulder sling for longarms to allow for easy carrying on the shoulder without the need for traditional armor holsters."
+ icon_state = "sling"
+
+ attach_features_flags = ATTACH_REMOVABLE_HAND
+ pixel_shift_x = 14
+ pixel_shift_y = 15
+ render_layer = BELOW_OBJ_LAYER
+ render_plane = BELOW_OBJ_LAYER
+ wield_delay = 0.2 SECONDS
+
+ var/check_size = TRUE
+
+/obj/item/attachment/sling/apply_attachment(obj/item/gun/gun, mob/user)
+ . = ..()
+ if(initial(gun.w_class) < WEIGHT_CLASS_BULKY && check_size)
+ to_chat(user,span_warning("The frame of the \the [gun] isn't large enough to support \the [src]!"))
+ return FALSE
+ if(!(gun.slot_flags | ITEM_SLOT_SUITSTORE))
+ gun.slot_flags = gun.slot_flags | ITEM_SLOT_SUITSTORE
+ ADD_TRAIT(gun,TRAIT_FORCE_SUIT_STORAGE,REF(src))
+
+/obj/item/attachment/sling/remove_attachment(obj/item/gun/gun, mob/user)
+ . = ..()
+ gun.slot_flags = initial(gun.slot_flags)
+ REMOVE_TRAIT(gun,TRAIT_FORCE_SUIT_STORAGE, REF(src))
+
+/obj/item/attachment/sling/examine(mob/user)
+ . = ..()
+ . += span_notice("The shoulder sling can only be attached to bulky or heavier guns.")
diff --git a/code/game/objects/items/bank_card.dm b/code/game/objects/items/bank_card.dm
index 4a7f2f9d2f21..ecc418030008 100644
--- a/code/game/objects/items/bank_card.dm
+++ b/code/game/objects/items/bank_card.dm
@@ -47,7 +47,7 @@
to_chat(user, "[src] doesn't have a linked account to deposit [I] into!")
return
- registered_account.adjust_money(cash_money)
+ registered_account.adjust_money(cash_money, CREDIT_LOG_DEPOSIT)
SSblackbox.record_feedback("amount", "credits_inserted", cash_money)
log_econ("[cash_money] credits were inserted into [src] owned by [src.registered_name]")
if(physical_currency)
@@ -69,7 +69,7 @@
total += cash_money
- registered_account.adjust_money(cash_money)
+ registered_account.adjust_money(cash_money, CREDIT_LOG_DEPOSIT)
SSblackbox.record_feedback("amount", "credits_inserted", total)
log_econ("[total] credits were inserted into [src] owned by [src.registered_name]")
QDEL_LIST(money)
@@ -132,7 +132,7 @@
return
if(!alt_click_can_use_id(user))
return
- if(registered_account.adjust_money(-amount_to_remove))
+ if(registered_account.adjust_money(-amount_to_remove, CREDIT_LOG_WITHDRAW))
var/obj/item/holochip/holochip = new (user.drop_location(), amount_to_remove)
user.put_in_hands(holochip)
to_chat(user, "You withdraw [amount_to_remove] credits into a holochip.")
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index d2ce379274dc..232b4570a97e 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -150,7 +150,6 @@
if(A.outdoors)
return AREA_SPACE
var/list/SPECIALS = list(
- /area/shuttle,
/area/centcom,
/area/asteroid,
/area/tdome,
diff --git a/code/game/objects/items/chromosome.dm b/code/game/objects/items/chromosome.dm
index 3acf3cfe5cb3..c6ee7f174aab 100644
--- a/code/game/objects/items/chromosome.dm
+++ b/code/game/objects/items/chromosome.dm
@@ -48,7 +48,7 @@
if(!initial(CM.weight))
break
chromosomes[A] = initial(CM.weight)
- return pickweight(chromosomes)
+ return pick_weight(chromosomes)
/obj/item/chromosome/stabilizer
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 6b7b364118d4..3a0d7e1f81c3 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -333,11 +333,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
reagents?.add_reagent(/datum/reagent/toxin/carpotoxin , 3) // They lied
/obj/item/clothing/mask/cigarette/syndicate
- desc = "An unknown brand cigarette."
+ desc = "An obscure brand of cigarette."
chem_volume = 60
smoketime = 60
smoke_all = TRUE
- list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/medicine/omnizine = 15)
+ list_reagents = list(/datum/reagent/drug/nicotine = 10, /datum/reagent/drug/aranesp = 5, /datum/reagent/medicine/synaptizine = 5)
/obj/item/clothing/mask/cigarette/xeno
desc = "A Xeno Filtered brand cigarette."
@@ -566,7 +566,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 1500
resistance_flags = FIRE_PROOF
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/fuel/oil = 5)
- custom_price = 55
+ custom_price = 5
light_system = MOVABLE_LIGHT
light_range = 2
light_power = 0.6
@@ -1059,4 +1059,4 @@ CIGARETTE PACKETS ARE IN FANCY.DM
vapecolor = "ecigar"
overlayname = "ecigar"
chem_volume = 150
- custom_premium_price = 300
+ custom_premium_price = 10
diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm
index 9aece73946cc..5e82266f186c 100644
--- a/code/game/objects/items/circuitboards/computer_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm
@@ -315,11 +315,6 @@
icon_state = "science"
build_path = /obj/machinery/computer/teleporter
-/obj/item/circuitboard/computer/xenobiology
- name = "circuit board (Xenobiology Console)"
- icon_state = "science"
- build_path = /obj/machinery/computer/camera_advanced/xenobio
-
//Security
/obj/item/circuitboard/computer/gulag_teleporter_console
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 4d45e40a8a05..17e774b70c08 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -567,28 +567,31 @@
name = "Smartfridge (Machine Board)"
build_path = /obj/machinery/smartfridge
req_components = list(/obj/item/stock_parts/matter_bin = 1)
-// [CELADON-EDIT] - CELADON_QOL - Bloodbank circuit added
- var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge/bloodbank = "blood",
+ // [CELADON-EDIT] - CELADON_QOL - Bloodbank circuit added
+ // var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/food = "food", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/drinks = "drinks", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/extract = "slimes", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/organ = "organs", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/chemistry = "chems", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/chemistry/virology = "viruses", // CELADON-EDIT - ORIGINAL
+ // /obj/machinery/smartfridge/disks = "disks")*/ // CELADON-EDIT - ORIGINAL
+ var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge/bloodbank = "blood", // CELADON-EDIT - ORIGINAL
+ /obj/machinery/smartfridge/food = "food",
+ /obj/machinery/smartfridge/drinks = "drinks",
+ /obj/machinery/smartfridge/bloodbank = "blood",
+ /obj/machinery/smartfridge/organ = "organs",
/obj/machinery/smartfridge/chemistry = "chems",
/obj/machinery/smartfridge/disks = "disks",
/obj/machinery/smartfridge/drinks = "drinks",
/obj/machinery/smartfridge/food = "food",
/obj/machinery/smartfridge/organ = "organs",
/obj/machinery/smartfridge = "plant produce",
- /obj/machinery/smartfridge/extract = "slimes",
/obj/machinery/smartfridge/chemistry/virology = "viruses")
-// [/CELADON-EDIT]
+ // [/CELADON-EDIT]
needs_anchored = FALSE
// Original is below because var then becomes not connectede to circutboard and problems appera
-/* var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/food = "food", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/drinks = "drinks", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/extract = "slimes", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/organ = "organs", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/chemistry = "chems", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/chemistry/virology = "viruses", // CELADON-EDIT - ORIGINAL
- /obj/machinery/smartfridge/disks = "disks")*/ // CELADON-EDIT - ORIGINAL
/obj/item/circuitboard/machine/smartfridge/Initialize(mapload, new_type)
if(new_type)
build_path = new_type
@@ -997,15 +1000,6 @@
/obj/item/airlock_painter = 1,
/obj/item/stack/sheet/glass = 1)
-/obj/item/circuitboard/machine/monkey_recycler
- name = "Monkey Recycler (Machine Board)"
- icon_state = "science"
- build_path = /obj/machinery/monkey_recycler
- req_components = list(
- /obj/item/stock_parts/matter_bin = 1,
- /obj/item/stock_parts/manipulator = 1)
- needs_anchored = FALSE
-
/obj/item/circuitboard/machine/nanite_chamber
name = "Nanite Chamber (Machine Board)"
icon_state = "science"
@@ -1032,11 +1026,6 @@
/obj/item/stock_parts/micro_laser = 2,
/obj/item/stock_parts/scanning_module = 1)
-/obj/item/circuitboard/machine/processor/slime
- name = "Slime Processor (Machine Board)"
- icon_state = "science"
- build_path = /obj/machinery/processor/slime
-
/obj/item/circuitboard/machine/protolathe/department/science
name = "Protolathe (Machine Board) - Science"
icon_state = "science"
@@ -1292,19 +1281,6 @@
/obj/item/stock_parts/manipulator = 1)
needs_anchored = FALSE
-/obj/item/circuitboard/machine/processor/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_SCREWDRIVER)
- if(build_path == /obj/machinery/processor)
- name = "Slime Processor (Machine Board)"
- build_path = /obj/machinery/processor/slime
- to_chat(user, "Name protocols successfully updated.")
- else
- name = "Food Processor (Machine Board)"
- build_path = /obj/machinery/processor
- to_chat(user, "Defaulting name protocols.")
- else
- return ..()
-
/obj/item/circuitboard/machine/protolathe/department/service
name = "Protolathe - Service (Machine Board)"
icon_state = "service"
@@ -1552,3 +1528,15 @@
icon_state = "engineering"
build_path = /obj/machinery/suit_storage_unit
req_components = list(/obj/item/stock_parts/micro_laser = 4)
+
+/obj/item/circuitboard/machine/turret
+ name = "Turret"
+ icon_state = "security"
+ build_path = /obj/machinery/porta_turret
+ req_components = list(/obj/item/stock_parts/capacitor = 2, /obj/item/stock_parts/scanning_module = 1, /obj/item/assembly/prox_sensor = 1, /obj/item/gun/energy = 1)
+ def_components = list(/obj/item/gun/energy = /obj/item/gun/energy/e_gun/turret)
+
+/obj/item/circuitboard/machine/turret/ship
+ name = "Ship-mounted Turret"
+ //We don't want to let people take the gun out of the turret
+ def_components = list(/obj/item/gun/energy = /obj/item/stack/sheet/metal)
diff --git a/code/game/objects/items/clown_items.dm b/code/game/objects/items/clown_items.dm
index 631eb7d2fc8f..62c33aa9665a 100644
--- a/code/game/objects/items/clown_items.dm
+++ b/code/game/objects/items/clown_items.dm
@@ -71,7 +71,8 @@
/obj/item/soap/syndie
desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster."
icon_state = "soapsyndie"
- cleanspeed = 5 //faster than mop so it is useful for traitors who want to clean crime scenes
+ cleanspeed = 27 // ever so slightly better than NT
+ uses = 300
/obj/item/soap/omega
name = "omega soap"
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index d703ae86ca7d..cd6fafd4dbef 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -235,7 +235,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 = ""
@@ -320,7 +320,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
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 640b4e4a6a0a..89b73a0ffa9b 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -441,7 +441,7 @@
var/mob/living/M = H.pulledby
if(M.electrocute_act(30, H))
M.visible_message("[M] is electrocuted by [M.p_their()] contact with [H]!")
- M.emote("scream")
+ M.force_scream()
/obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user)
if(req_defib && defib.safety)
@@ -501,7 +501,7 @@
user.visible_message("[user] shocks [H] with \the [src]!", "You shock [H] with \the [src]!")
playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1)
playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1)
- H.emote("scream")
+ H.force_scream()
shock_touching(45, H)
if(H.can_heartattack() && !H.undergoing_cardiac_arrest())
if(!H.stat)
diff --git a/code/game/objects/items/desk_flags.dm b/code/game/objects/items/desk_flags.dm
index c1af9cfe6c3f..5f0d76eee5a0 100644
--- a/code/game/objects/items/desk_flags.dm
+++ b/code/game/objects/items/desk_flags.dm
@@ -35,3 +35,8 @@
name = "SUNS desk flag"
desc = "A little desk decoration in the gold and purple color palette of SUNS."
icon_state = "suns"
+
+/obj/item/desk_flag/ngr
+ name = "new gorlexian desk flag"
+ desc = "The crimson, black, and tan flag of the New Gorlex Republic."
+ icon_state = "ngr"
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index e259e56ccd0e..99473661dd5e 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -20,7 +20,7 @@ GLOBAL_LIST_EMPTY(PDAs)
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
item_flags = NOBLUDGEON
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_ID | ITEM_SLOT_BELT
actions_types = list(/datum/action/item_action/toggle_light)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
@@ -410,7 +410,7 @@ GLOBAL_LIST_EMPTY(PDAs)
//BASIC FUNCTIONS===================================
if("Refresh")//Refresh, goes to the end of the proc.
-
+ EMPTY_BLOCK_GUARD
if("Return")//Return
if(mode<=9)
mode = 0
diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
index 8986f8443698..b67b4bb3f707 100644
--- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
+++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
@@ -4,7 +4,7 @@
desc = "An all-in-one circuit imprinter, designer, synthesizer, outfitter, creator, and chef. It can be used in place of any generic circuit board during construction."
icon = 'icons/obj/module.dmi'
icon_state = "boris"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron = 50, /datum/material/glass = 300)
var/recharging = FALSE
var/circuits = 5 //How many circuits the pseudocircuit has left
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index a9f28d88caed..9dd5d80d78bf 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -170,6 +170,7 @@
icon_state = "penlight"
item_state = ""
flags_1 = CONDUCT_1
+ w_class = WEIGHT_CLASS_TINY
light_range = 2
light_color = "#FFDDCC"
light_power = 0.3
@@ -259,13 +260,13 @@
/obj/item/flashlight/flare
name = "flare"
- desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'."
+ desc = "A generic red flare. There are instructions on the side, it reads 'pull cord, make light'."
w_class = WEIGHT_CLASS_SMALL
light_range = 7 // Pretty bright.
icon_state = "flare"
item_state = "flare"
actions_types = list()
- var/fuel = 0
+ var/fuel = 900
var/on_damage = 7
var/produce_heat = 1500
heat = 1000
@@ -275,9 +276,14 @@
light_color = "#FA421A" //Cit lighting
light_power = 0.8 //Cit lighting
+/obj/item/flashlight/flare/burnt
+ desc = "A burnt out red flare."
+ icon_state = "flare-empty"
+ fuel = 0
+ grind_results = list(/datum/reagent/sulfur = 2)
+
/obj/item/flashlight/flare/Initialize()
. = ..()
- fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
/obj/item/flashlight/flare/process()
open_flame(heat)
@@ -559,15 +565,6 @@
name = "pink glowstick"
color = LIGHT_COLOR_PINK
-/obj/effect/spawner/lootdrop/glowstick
- name = "random colored glowstick"
- icon = 'icons/obj/lighting.dmi'
- icon_state = "random_glowstick"
-
-/obj/effect/spawner/lootdrop/glowstick/Initialize()
- loot = typesof(/obj/item/flashlight/glowstick)
- . = ..()
-
/obj/item/flashlight/spotlight //invisible lighting source
name = "disco light"
desc = "Groovy..."
diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm
index 4abc1a3786bb..e1a20b508a5c 100644
--- a/code/game/objects/items/devices/geiger_counter.dm
+++ b/code/game/objects/items/devices/geiger_counter.dm
@@ -1,13 +1,3 @@
-#define RAD_LEVEL_NORMAL 9
-#define RAD_LEVEL_MODERATE 100
-#define RAD_LEVEL_HIGH 400
-#define RAD_LEVEL_VERY_HIGH 800
-#define RAD_LEVEL_CRITICAL 1500
-
-#define RAD_MEASURE_SMOOTHING 5
-
-#define RAD_GRACE_PERIOD 2
-
/obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis
name = "\improper Geiger counter"
desc = "A handheld device used for detecting and measuring radiation pulses."
@@ -222,9 +212,3 @@
. = ..()
if(listeningTo)
UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT)
-
-#undef RAD_LEVEL_NORMAL
-#undef RAD_LEVEL_MODERATE
-#undef RAD_LEVEL_HIGH
-#undef RAD_LEVEL_VERY_HIGH
-#undef RAD_LEVEL_CRITICAL
diff --git a/code/game/objects/items/devices/mines.dm b/code/game/objects/items/devices/mines.dm
index 1772cbf497c3..4e1ec520e55c 100644
--- a/code/game/objects/items/devices/mines.dm
+++ b/code/game/objects/items/devices/mines.dm
@@ -11,6 +11,7 @@
icon_state = "mine"
item_state = "assembly"//when we get custom sprites replace this. please
base_icon_state = "mine"
+ light_color = "#FF0000"
/// Is our mine live?
var/armed = FALSE
@@ -24,13 +25,11 @@
var/manufacturer = MANUFACTURER_NONE
-
/obj/item/mine/Initialize(mapload)
. = ..()
if(armed)
now_armed()
-
/obj/item/mine/examine(mob/user)
. = ..()
if(!armed)
@@ -45,33 +44,39 @@
. = ..()
icon_state = "[base_icon_state][triggered ? "_exploding" : null][!armed && anchored ? "_arming" : null][armed && anchored && !triggered ? "_armed" : null]"
-//mines have a small chance to be triggered by damage, but they take longer to explode
+/// mines have a small chance to be triggered by damage, but they take longer to explode
/obj/item/mine/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir)
. = ..()
if(prob(35) & obj_integrity > 0)
blast_delay = blast_delay * 2
trigger_mine()
-//insert your horrible fate here
+/// insert your horrible fate here
/obj/item/mine/proc/mine_effect(mob/victim)
return
-//handles controlled deactivation
+/// handles controlled deactivation
/obj/item/mine/proc/disarm()
if(triggered) //no turning back now
return
+ light_power = 0
+ light_range = 0
anchored = FALSE
armed = FALSE
update_appearance(UPDATE_ICON_STATE)
return
-//using an unarmed mine inhand deploys it.
+/// using an unarmed mine inhand deploys it.
/obj/item/mine/attack_self(mob/user)
if(!armed)
+ if(!loccheck(user))
+ to_chat(user, span_warning("There's already a mine at this position!"))
+ return
user.visible_message(span_danger("[user] deploys the [src]."), span_notice("You deploy the [src]."))
user.dropItemToGround(src)
anchored = TRUE
+ dir = user.dir
playsound(src, 'sound/machines/click.ogg', 60, TRUE)
if(arm_delay)
@@ -82,27 +87,30 @@
armed = TRUE
message_admins("[key_name(user)] has placed \a [src] at ([x],[y],[z]).")
-//let them know the mine's done cooking
+/obj/item/mine/proc/loccheck(mob/user)
+ for(var/obj/item/mine/alreadymined in user.loc)
+ if(alreadymined.anchored)
+ return FALSE
+ return TRUE
+
+/// let them know the mine's done cooking
/obj/item/mine/proc/now_armed()
armed = TRUE
update_appearance(UPDATE_ICON_STATE)
+ light_power = 1
+ light_range = 1
playsound(src, 'sound/machines/nuke/angry_beep.ogg', 55, FALSE, 1)
visible_message("\The [src] beeps softly, indicating it is now active.", vision_distance = COMBAT_MESSAGE_RANGE)
/// Can this mine trigger on the passed movable?
/obj/item/mine/proc/can_trigger(atom/movable/on_who)
- //var/badtype = typecacheof(list(/obj/effect, /obj/item/mine))
if(triggered || !isturf(loc) || !armed || iseffect(on_who) || istype(on_who, /obj/item/mine))
return FALSE
- //if(on_who == badtype)//no recursive self triggering. Bad landmine
- // return FALSE
return TRUE
/// When something sets off a mine
/obj/item/mine/proc/trigger_mine(atom/movable/triggerer)
- if(obj_integrity <= 0)
- return
- if(triggered) //too busy detonating to detonate again
+ if(obj_integrity <= 0 || triggered)//too busy detonating to detonate again
return
if(triggerer)
triggerer.visible_message(span_danger("[icon2html(src, viewers(src))] [triggerer] sets off \the [src]. It's gonna blow!"), span_danger("[icon2html(src, viewers(src))] \The [src] activates."))
@@ -114,7 +122,6 @@
playsound(src, 'sound/items/mine_activate.ogg', 70, FALSE)
else
playsound(src, 'sound/items/mine_activate_short.ogg', 80, FALSE)
- light_color = "#FF0000"
light_power = 5
light_range = 3
if(!blast_delay)//addtimer gets mad if the delay is 0
@@ -122,7 +129,7 @@
else
addtimer(CALLBACK(src, PROC_REF(blast_now), triggerer), blast_delay)
-//NOW we actually blow up
+///NOW we actually blow up
/obj/item/mine/proc/blast_now(atom/movable/triggerer)
var/datum/effect_system/spark_spread/sporks = new /datum/effect_system/spark_spread
sporks.set_up(3, 1, src)
@@ -142,7 +149,7 @@
user.visible_message(span_warning("[user] extends their hand towards \the [src]!"), span_userdanger("You extend your arms to pick up \the [src], knowing that it will likely blow up when you touch it!"))
if(do_after(user, 5 SECONDS, target = src))//SO SO generous. You can still step back from the edge.
if(prob(10))
- user.visible_message(span_notice("[user] picks up \the [src], which miraculously doesn't explode!"), span_notice("You pick up \the [src], which miraculously doesn't explode!"))
+ user.visible_message(span_notice("[user] picks up \the [src], which miraculously doesn't go off!"), span_notice("You pick up \the [src], which miraculously doesn't go off!"))
disarm()
else
user.visible_message(span_danger("[user] attempts to pick up \the [src] only to hear a beep as it activates in their hand!"), span_danger("You attempt to pick up \the [src] only to hear a beep as it activates in your hands!"))
@@ -166,8 +173,8 @@
trigger_mine(user)
//
-//PRESSURE BASED MINE:
-//Mine that explodes when stepped on.
+///PRESSURE BASED MINE:
+///Mine that explodes when stepped on.
/obj/item/mine/pressure
name = "dummy landmine"
/// When true, mines trigger instantly on being stepped upon
@@ -196,6 +203,11 @@
AddElement(/datum/element/connect_loc, loc_connections)
wires = new /datum/wires/mine(src)
+/obj/item/mine/pressure/Destroy()
+ if(wires)
+ QDEL_NULL(wires)
+ . = ..()
+
/obj/item/mine/pressure/examine(mob/user)
. = ..()
if(hair_trigger)
@@ -254,11 +266,7 @@
clicked = FALSE
. = ..()
-/obj/item/mine/pressure/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
- trigger_mine(AM)
- ..()
-
-//handles disarming(and failing to disarm)
+///handles disarming(and failing to disarm)
/obj/item/mine/pressure/attackby(obj/item/I, mob/user)
if(I.tool_behaviour == TOOL_SCREWDRIVER)
if(sealed)
@@ -275,18 +283,16 @@
else
. = ..()
-//
-//PROXIMITY MINES
-//Mines that explode when someone moves nearby. Simpler, because I don't have to worry about saving step info or disarming logic
-//
+//PROXIMITY MINES
+///Mines that explode when someone moves nearby. Simpler, because I don't have to worry about saving step info or disarming logic
/obj/item/mine/proximity
name = "dummy proximity mine"
blast_delay = 15 DECISECONDS
arm_delay = 10 SECONDS//clear the area
///needed for the proximity checks.
var/datum/proximity_monitor/proximity_monitor
- var/proximity_range = 2
+ var/proximity_range = 3
/obj/item/mine/proximity/Initialize(mapload)
. = ..()
@@ -302,12 +308,8 @@
/obj/item/mine/proximity/now_armed()
. = ..()
proximity_monitor = new(src, proximity_range)
- light_color = "#FF0000"
- light_power = 1
- light_range = 1
/obj/item/mine/proximity/disarm()
- . = ..()
QDEL_NULL(proximity_monitor)
/obj/item/mine/proximity/Destroy()
@@ -316,7 +318,11 @@
. = ..()
/obj/item/mine/proximity/HasProximity(atom/movable/triggerer)
- if(!iscarbon(triggerer))//let's keep these on player movements for now.
+ //let's keep these on player movements for now.
+ if(!iscarbon(triggerer))
+ return
+ //Quick and dirty solution for preventing activations behind walls.
+ if(!can_see(src, triggerer))
return
if(!can_trigger(triggerer))
return
@@ -326,9 +332,92 @@
QDEL_NULL(proximity_monitor)
return
+//DIRECTIONAL MINES
+///Once deployed, keeps an eye on a line of turfs in the faced direction. If something moves in them, explode.
+/obj/item/mine/directional
+ name = "directional mine"
+ desc = "An anti-personnel device that activates when an object moves in front of it. This one does nothing and is for testing purposes only."
+
+ blast_delay = 1 DECISECONDS
+ arm_delay = 5 SECONDS
+
+ ///range of tripwire
+ var/trigger_range = 4
+
+ ///projectile casing to fire in the selected direction when the mine is triggered.
+ //null prevents a projectile from being fired.
+ var/obj/item/ammo_casing/casingtype = null
+
+ ///cache of turfs for detection area
+ var/list/tripwire_turfs
+
+ ///for aiming the resulting projectiles
+ var/turf/target_turf
+
+///kills any existing tripwires
+/obj/item/mine/directional/proc/remove_tripwires()
+ if(tripwire_turfs)
+ for(var/turf/affected_turf in tripwire_turfs)
+ UnregisterSignal(affected_turf, COMSIG_ATOM_ENTERED)
+ tripwire_turfs = null
+ if(target_turf)
+ target_turf = null
+ return
+
+///sets up tripwires(or recreates them, if already present)
+/obj/item/mine/directional/proc/draw_tripwires()
+ if(tripwire_turfs)
+ remove_tripwires()
+ //we'll also use this to set up the pew
+ target_turf = get_ranged_target_turf(src, dir, trigger_range)
+ var/turf/starting_turf = get_turf(src)
+ tripwire_turfs = get_line(starting_turf, target_turf)
+
+ for(var/turf/affected_turf in tripwire_turfs)
+ RegisterSignal(affected_turf, COMSIG_ATOM_ENTERED, PROC_REF(on_entered))
+
+/obj/item/mine/directional/claymore/now_armed()
+ draw_tripwires()
+ . = ..()
+
+/obj/item/mine/directional/proc/on_entered(datum/source, atom/movable/arrived)
+ SIGNAL_HANDLER
+ if(!(arrived in view(trigger_range, src)))
+ return
+ if(!can_trigger(arrived))
+ return
+
+ if(ismob(arrived))
+ var/mob/living/fool = arrived
+ fool.do_alert_animation(fool)
+
+ visible_message(span_danger("[icon2html(src, viewers(src))] *click*"))
+ playsound(src, 'sound/machines/click.ogg', 100, TRUE)
+ INVOKE_ASYNC(src, PROC_REF(trigger_mine), arrived)
+
+
+//pew pew
+/obj/item/mine/directional/mine_effect(mob/victim)
+ if(casingtype && target_turf && victim ?(src.loc != victim.loc) : victim == null)
+ var/obj/item/ammo_casing/casing = new casingtype(src)
+ casing.fire_casing(target_turf, null, null, null, 30, ran_zone(), 60, src)
+ . = ..()
+
+/obj/item/mine/directional/disarm()
+ remove_tripwires()
+ visible_message(span_danger("With a soft clunk, the [src]'s securing bolts retract."))
+ . = ..()
+
+///handles weird cases like ship movement or teleporting
+/obj/item/mine/directional/Moved()
+ . = ..()
+ if(!loc)
+ return
+ if(armed & !triggered)
+ draw_tripwires()
+
//
//LANDMINE TYPES
-//Rylie please help me make these more immersive
//
/obj/item/mine/pressure/explosive
@@ -380,7 +469,7 @@
shrapnel_magnitude = 4
/obj/item/mine/pressure/explosive/fire/mine_effect(mob/victim)
- if(victim.is_holding(src))//in case it's been picked up
+ if(victim?.is_holding(src))//in case it's been picked up
for(var/turf/T in view(4,victim))
T.IgniteTurf(15)
new /obj/effect/hotspot(T)
@@ -473,7 +562,7 @@
AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude)
-//like all real 'less' than lethal crowd control options this is, in fact, not very good at being nonlethal
+///like all real 'less' than lethal crowd control options this is, in fact, not very good at being nonlethal
/obj/item/mine/proximity/explosive/sting
name = "\improper'Stinger' Crowd Management Device"
desc = "A \"less\" than lethal crowd control weapon, designed to demoralise and scatter anti-NT protestors. The bands of ballistic gel inside strike targets and incapacitate without causing serious maiming. In Theory."
@@ -526,6 +615,76 @@
desc = "An anti-infantry device produced during the corporate wars. The explosive payload has been swapped out for 'viscerator'-type antipersonnel drones."
spawn_type = /mob/living/simple_animal/hostile/viscerator
+
+
+//Claymores
+//shrapnel based dir explosive, extreme short range
+//FRONT TOWARDS ENEMY
+/obj/item/mine/directional/claymore
+ name = "C-10 Claymore"
+ desc = "A compact anti-personnel device with a directional trigger that responds to movement. A faded sticker on the back reads \"FRONT TOWARDS ENEMY\"."
+ icon = 'icons/obj/world/landmine.dmi'
+ icon_state = "mine_claymore"
+ base_icon_state = "mine_claymore"
+
+ trigger_range = 2
+
+ //customize explosive power
+ var/range_devastation = -1
+ var/range_heavy = 0
+ var/range_light = 1
+ var/range_flame = 0
+
+ //using this to indicate pb
+ var/range_flash = 1
+
+ //a second run of shrapnel, intended for maiming especially pb targets
+ var/obj/item/ammo_casing/shredtype = /obj/item/ammo_casing/caseless/shrapnel/shred
+ casingtype = /obj/item/ammo_casing/caseless/shrapnel
+
+ manufacturer = MANUFACTURER_SCARBOROUGH
+
+//this will return to basic mines when we relegate them to specifically being on certain ruins & battlefields. For now, it's way too dangerous
+/obj/item/mine/directional/claymore/Initialize()
+ . = ..()
+ AddElement(/datum/element/world_icon, null, icon, 'icons/obj/landmine.dmi')
+
+/obj/item/mine/directional/claymore/attackby(obj/item/I, mob/user)
+ if (I.tool_behaviour == TOOL_SCREWDRIVER && armed)
+ to_chat(user, "You begin unscrewing \the [src]'s arming pin...")
+ I.play_tool_sound(src, 50)
+ if(do_after(user, 10 SECONDS, target = src))
+ to_chat(user, "You unscrew \the [src]'s arming pin, disarming it.")
+ disarm()
+ else
+ . = ..()
+
+/obj/item/mine/directional/claymore/mine_effect(mob/victim)
+ . = ..()
+ //if you somehow explode it while on the same tile, you win bonus shrapnel
+ //also spews stuff everywhere if it's triggered while not set up
+ if(!target_turf || victim ? (victim.loc == src.loc) : victim == null)
+ explosion(src, range_devastation, range_heavy, range_light, range_flash, 1, 0, range_flame, 0, 1)
+ var/casingammo = casingtype.projectile_type
+ var/shredammo = shredtype.projectile_type
+ if(casingtype)
+ AddComponent(/datum/component/pellet_cloud, projectile_type = casingammo, magnitude = 1)
+ if(shredtype)
+ AddComponent(/datum/component/pellet_cloud, projectile_type = shredammo, magnitude = 2)
+ else
+ var/blastloc = get_step_towards(src, target_turf)
+ explosion(blastloc, range_devastation, range_heavy, range_light, range_flash, 1, 0, range_flame, 0, 1)
+ if(shredtype)
+ var/obj/item/ammo_casing/shredcasing = new shredtype(src)
+ shredcasing.fire_casing(target_turf, null, null, null, 30, ran_zone(), 50, src)
+
+/obj/item/mine/directional/claymore/plasma
+ name = "\improper Etherbor EC-1"
+ desc = "A proximity explosive designed by the PGF for ambushing advancing infantry & defending corridors. Cooks armored targets to well-done."
+ shredtype = /obj/item/ammo_casing/caseless/shrapnel/shred/plasma
+ casingtype = /obj/item/ammo_casing/caseless/shrapnel/plasma
+ manufacturer = MANUFACTURER_PGF
+
//
//GIMMICK MINES//
//pretty much exclusively for adminbus & code dependencies
@@ -671,6 +830,9 @@ LIVE_MINE_HELPER(proximity/explosive/sting)
LIVE_MINE_HELPER(proximity/spawner/manhack)
LIVE_MINE_HELPER(proximity/explosive/plasma)
+LIVE_MINE_HELPER(directional/claymore)
+LIVE_MINE_HELPER(directional/claymore/plasma)
+
LIVE_MINE_HELPER(pressure/gas)
LIVE_MINE_HELPER(pressure/kickmine)
LIVE_MINE_HELPER(pressure/sound)
@@ -679,10 +841,10 @@ LIVE_MINE_HELPER(pressure/sound)
// spawners (random mines, minefields, non-guaranteed mine)
//
-/obj/effect/spawner/lootdrop/mine
+/obj/effect/spawner/random/mine
name = "live mine spawner (random)"
- lootcount = 1
- fan_out_items = TRUE
+ spawn_loot_count = 1
+ spawn_loot_split = TRUE
loot = list(
/obj/item/mine/pressure/explosive/live = 10,
/obj/item/mine/pressure/explosive/shrapnel/live = 3,
@@ -702,7 +864,7 @@ LIVE_MINE_HELPER(pressure/sound)
/obj/effect/spawner/minefield/random
name = "random minefield spawner"
- minetype = /obj/effect/spawner/lootdrop/mine
+ minetype = /obj/effect/spawner/random/mine
/obj/effect/spawner/minefield/manhack
name = "manhack field spawner"
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index 204371ca0e51..50b8e3958043 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -170,10 +170,8 @@
toolspeed = 0.5
/obj/item/multitool/syndie
- name = "suspicious-looking multitool"
desc = "A darkened multitool with a matte finish and an ominous glowing screen."
icon_state = "multitool_syndie"
- toolspeed = 0.5
/obj/item/multitool/old
desc = "Used for pulsing wires to test which to cut. This one looks... 'retro'. It wasn't recommended by doctors then and won't be recommended by doctors now."
diff --git a/code/game/objects/items/devices/polycircuit.dm b/code/game/objects/items/devices/polycircuit.dm
index be41de2c8411..def5d876d11b 100644
--- a/code/game/objects/items/devices/polycircuit.dm
+++ b/code/game/objects/items/devices/polycircuit.dm
@@ -4,7 +4,7 @@
desc = "A dense, overdesigned cluster of electronics which attempted to function as a multipurpose circuit electronic. Circuits can be removed from it... if you don't bleed out in the process."
icon_state = "circuit_mess"
item_state = "rods"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_NORMAL
max_amount = 8
var/circuit_type = /obj/item/electronics/airlock
var/chosen_circuit = "airlock"
diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm
index f8ced22c54be..d93760363e71 100644
--- a/code/game/objects/items/devices/radio/encryptionkey.dm
+++ b/code/game/objects/items/devices/radio/encryptionkey.dm
@@ -63,12 +63,12 @@
/obj/item/encryptionkey/headset_com
name = "command radio encryption key"
icon_state = "com_cypherkey"
- channels = list(RADIO_CHANNEL_COMMAND = 1)
+ channels = list(RADIO_CHANNEL_EMERGENCY = 1)
/obj/item/encryptionkey/heads/captain
name = "\proper the captain's encryption key"
icon_state = "cap_cypherkey"
- channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit - Wideband radio
+ channels = list(RADIO_CHANNEL_EMERGENCY = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit - Wideband radio
/obj/item/encryptionkey/headset_cent
name = "\improper CentCom radio encryption key"
@@ -77,10 +77,7 @@
channels = list(RADIO_CHANNEL_CENTCOM = 1, RADIO_CHANNEL_WIDEBAND = 0) //WS edit- Wideband Radio
/obj/item/encryptionkey/ai //ported from NT, this goes 'inside' the AI.
- channels = list(RADIO_CHANNEL_COMMAND = 1, RADIO_CHANNEL_AI_PRIVATE = 1)
-
-/obj/item/encryptionkey/secbot
- channels = list(RADIO_CHANNEL_AI_PRIVATE = 1)
+ channels = list(RADIO_CHANNEL_EMERGENCY = 1)
/obj/item/encryptionkey/solgov
name = "\improper SolGov encryption key"
@@ -88,11 +85,6 @@
icon_state = "solgov_cypherkey"
channels = list(RADIO_CHANNEL_SOLGOV = 1)
-// /obj/item/encryptionkey/suns
-// name = "\improper SUNS encryption key"
-// icon_state = "suns_cypherkey"
-// channels = list(RADIO_CHANNEL_SUNS = 1)
-
/obj/item/encryptionkey/wideband
name = "wideband encryption key"
icon = 'icons/obj/radio.dmi'
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index b19672530a23..c9f25310242a 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -1,7 +1,7 @@
// Used for translating channels to tokens on examination
GLOBAL_LIST_INIT(channel_tokens, list(
RADIO_CHANNEL_COMMON = RADIO_KEY_COMMON,
- RADIO_CHANNEL_COMMAND = RADIO_TOKEN_COMMAND,
+ RADIO_CHANNEL_EMERGENCY = RADIO_TOKEN_EMERGENCY,
RADIO_CHANNEL_CENTCOM = RADIO_TOKEN_CENTCOM,
RADIO_CHANNEL_SOLGOV = RADIO_TOKEN_SOLGOV, //WS Edit - SolGov Rep
RADIO_CHANNEL_SYNDICATE = RADIO_TOKEN_SYNDICATE,
@@ -11,7 +11,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
RADIO_CHANNEL_INTEQ = RADIO_TOKEN_INTEQ,
RADIO_CHANNEL_PIRATE = RADIO_TOKEN_PIRATE,
MODE_BINARY = MODE_TOKEN_BINARY,
- RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE,
+ // RADIO_CHANNEL_AI_PRIVATE = RADIO_TOKEN_AI_PRIVATE,
RADIO_CHANNEL_WIDEBAND = RADIO_TOKEN_WIDEBAND
))
@@ -213,6 +213,10 @@ GLOBAL_LIST_INIT(channel_tokens, list(
desc = "This is used by Inteq Risk Management Group's mercenaries. Protects ears from flashbangs."
icon_state = "inteq_headset_alt"
+/obj/item/radio/headset/inteq/alt/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))
+
/obj/item/radio/headset/inteq/alt/captain
name = "vanguard bowman headset"
desc = "Used by Inteq Risk Management Group's elite vanguards. Protects ears from flashbangs."
@@ -312,7 +316,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
/obj/item/radio/headset/headset_com/alt
name = "command bowman headset"
desc = "An officer's headset. Protects ears from flashbangs."
- icon_state = "com_headset_alt"
+ icon_state = "headset_alt"
/obj/item/radio/headset/headset_com/alt/ComponentInitialize()
. = ..()
@@ -331,7 +335,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
/obj/item/radio/headset/heads/captain/alt
name = "captain's bowman headset"
desc = "Dresses the ears of independent ship captains across the frontier. Protects ears from flashbangs."
- icon_state = "com_headset_alt"
+ icon_state = "headset_alt"
/obj/item/radio/headset/heads/captain/alt/ComponentInitialize()
. = ..()
@@ -457,7 +461,7 @@ GLOBAL_LIST_INIT(channel_tokens, list(
/obj/item/radio/headset/heads/hos/alt
name = "\proper the head of security's bowman headset"
desc = "The headset of the man in charge of keeping order and protecting the innocent. Protects ears from flashbangs."
- icon_state = "com_headset_alt"
+ icon_state = "headset_alt"
/obj/item/radio/headset/heads/hos/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 944fe7462583..ef5b92641d53 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -177,6 +177,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/item/radio/intercom, 31)
set_frequency(FREQ_WIDEBAND)
freqlock = TRUE
+/obj/item/radio/intercom/wideband/examine_more(mob/user)
+ interact(user)
+ return ..()
+
/obj/item/radio/intercom/wideband/unscrewed
unscrewed = TRUE
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 68673fd0b529..f0b0368f73a3 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -16,34 +16,54 @@
throw_speed = 3
throw_range = 7
w_class = WEIGHT_CLASS_SMALL
- custom_materials = list(/datum/material/iron=75, /datum/material/glass=25)
+ custom_materials = list(/datum/material/iron = 75, /datum/material/glass = 25)
+ slot_flags = ITEM_SLOT_NECK //Allows to be worn on neck so it's not eating pocket slots.
obj_flags = USES_TGUI
var/on = TRUE
var/frequency = FREQ_COMMON
- var/canhear_range = 3 // The range around the radio in which mobs can hear what it receives.
- var/emped = 0 // Tracks the number of EMPs currently stacked.
- var/headset = FALSE // It can be used for hotkeys
- var/last_chatter_time // The time since we last played a radio chatter sound. (WS edit - Radio Chatter #434)
-
- var/broadcasting = FALSE // Whether the radio will transmit dialogue it hears nearby.
- var/listening = FALSE // Whether the radio is currently receiving.
- var/prison_radio = FALSE // If true, the transmit wire starts cut.
- var/unscrewed = FALSE // Whether wires are accessible. Toggleable by screwdrivering.
- var/freerange = FALSE // If true, the radio has access to the full spectrum.
- var/subspace_transmission = FALSE // If true, the radio transmits and receives on subspace exclusively.
- var/subspace_switchable = FALSE // If true, subspace_transmission can be toggled at will.
- var/freqlock = FALSE // Frequency lock to stop the user from untuning specialist radios.
- var/use_command = FALSE // If true, broadcasts will be large and BOLD.
- var/command = FALSE // If true, use_command can be toggled at will.
- var/log = FALSE // If true, the UI will display the voice log for the frequency
- var/list/loglist = list() //the voice log
-
- // Encryption key handling
+ ///The range around the radio in which mobs can hear what it receives.
+ var/canhear_range = 3
+ ///Tracks the number of EMPs currently stacked.
+ var/emped = 0
+ ///It can be used for hotkeys
+ var/headset = FALSE
+ ///The time since we last played a radio chatter sound.
+ var/last_chatter_time
+
+ ///Whether the radio will transmit dialogue it hears nearby.
+ var/broadcasting = FALSE
+ ///Whether the radio is currently receiving.
+ var/listening = FALSE
+ ///If true, the transmit wire starts cut.
+ var/prison_radio = FALSE
+ ///Whether wires are accessible. Toggleable by screwdrivering.
+ var/unscrewed = FALSE
+ ///If true, the radio has access to the full spectrum.
+ var/freerange = FALSE
+ ///If true, the radio transmits and receives on subspace exclusively.
+ var/subspace_transmission = FALSE
+ ///If true, subspace_transmission can be toggled at will.
+ var/subspace_switchable = FALSE
+ ///Frequency lock to stop the user from untuning specialist radios.
+ var/freqlock = FALSE
+ ///If true, broadcasts will be large and BOLD.
+ var/use_command = FALSE
+ ///If true, use_command can be toggled at will.
+ var/command = FALSE
+ ///If true, the UI will display the voice log for the frequency
+ var/log = FALSE
+ ///the voice log
+ var/list/loglist = list()
+
+ ///Encryption key handling
var/obj/item/encryptionkey/keyslot
- var/translate_binary = FALSE // If true, can hear the special binary channel.
- var/independent = FALSE // If true, can say/hear on the special CentCom channel.
- var/list/channels = list() // Map from name (see communications.dm) to on/off. First entry is current department (:h)
+ ///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
+ ///Map from name (see communications.dm) to on/off. First entry is current department (:h)
+ var/list/channels = list()
var/list/secure_radio_connections
var/const/FREQ_LISTENING = 1
@@ -254,7 +274,7 @@
var/datum/signal/subspace/vocal/signal = new(src, freq, speaker, language, message, spans, message_mods)
// Independent radios, on the CentCom frequency, reach all independent radios
- if (independent && (freq == FREQ_CENTCOM || freq == FREQ_WIDEBAND || freq == FREQ_CTF_RED || freq == FREQ_CTF_BLUE)) //WS Edit - SolGov Rep
+ if (independent && (freq == FREQ_CENTCOM || freq == FREQ_WIDEBAND)) //WS Edit - SolGov Rep
signal.data["compression"] = 0
signal.transmission_method = TRANSMISSION_SUPERSPACE
signal.map_zones = list(0) // reaches all Z-levels
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 1f4b2ae6f6a2..e273aceed473 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -5,7 +5,6 @@ CONTAINS:
T-RAY
HEALTH ANALYZER
GAS ANALYZER
-SLIME SCANNER
NANITE SCANNER
GENE SCANNER
@@ -88,7 +87,7 @@ GENE SCANNER
item_flags = NOBLUDGEON
slot_flags = ITEM_SLOT_BELT
throwforce = 3
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 7
custom_materials = list(/datum/material/iron=200)
@@ -235,7 +234,7 @@ GENE SCANNER
[CEILING(brute_loss,1)] | \
[CEILING(fire_loss,1)] | \
[CEILING(tox_loss,1)] | \
- [CEILING(oxy_loss,1)] | "
+ [CEILING(oxy_loss,1)] | "
for(var/o in damaged)
var/obj/item/bodypart/org = o //head, left arm, right arm, etc.
@@ -290,9 +289,9 @@ GENE SCANNER
var/render = FALSE
var/toReport = "Organs:\
\
- Organ | \
- [advanced ? "Dmg | " : ""]\
- Status | "
+ Organ | \
+ [advanced ? "Dmg | " : ""]\
+ Status | "
for(var/obj/item/organ/organ in H.internal_organs)
var/status = ""
@@ -301,8 +300,8 @@ GENE SCANNER
else if (organ.damage > organ.low_threshold) status = "Mildly Damaged"
if (status != "")
render = TRUE
- toReport += "
[organ.name] | \
- [advanced ? "[CEILING(organ.damage,1)] | " : ""]\
+ toReport += "
[organ.name] | \
+ [advanced ? "[CEILING(organ.damage,1)] | " : ""]\
[status] |
"
if (render)
@@ -616,65 +615,6 @@ GENE SCANNER
to_chat(user, examine_block(jointext(render_list, "\n")), type = MESSAGE_TYPE_INFO)
return TRUE
-//slime scanner
-
-/obj/item/slime_scanner
- name = "slime scanner"
- desc = "A device that analyzes a slime's internal composition and measures its stats."
- icon = 'icons/obj/device.dmi'
- icon_state = "adv_spectrometer"
- item_state = "analyzer"
- lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- pickup_sound = 'sound/items/handling/device_pickup.ogg'
- drop_sound = 'sound/items/handling/device_drop.ogg'
- w_class = WEIGHT_CLASS_SMALL
- flags_1 = CONDUCT_1
- throwforce = 0
- throw_speed = 3
- throw_range = 7
- custom_materials = list(/datum/material/iron=30, /datum/material/glass=20)
-
-/obj/item/slime_scanner/attack(mob/living/M, mob/living/user)
- if(user.stat)
- return
- if (!isslime(M))
- to_chat(user, "This device can only scan slimes!")
- return
- var/mob/living/simple_animal/slime/T = M
- slime_scan(T, user)
-
-/proc/slime_scan(mob/living/simple_animal/slime/T, mob/living/user)
- var/to_render = "\nSlime scan results:\
- \n[T.colour] [T.is_adult ? "adult" : "baby"] slime\
- \nNutrition: [T.nutrition]/[T.get_max_nutrition()]"
- if (T.nutrition < T.get_starve_nutrition())
- to_render += "\nWarning: slime is starving!"
- else if (T.nutrition < T.get_hunger_nutrition())
- to_render += "\nWarning: slime is hungry"
- to_render += "\nElectric change strength: [T.powerlevel]\nHealth: [round(T.health/T.maxHealth,0.01)*100]%"
- if (T.slime_mutation[4] == T.colour)
- to_render += "\nThis slime does not evolve any further."
- else
- if (T.slime_mutation[3] == T.slime_mutation[4])
- if (T.slime_mutation[2] == T.slime_mutation[1])
- to_render += "\nPossible mutation: [T.slime_mutation[3]]\
- \nGenetic destability: [T.mutation_chance/2] % chance of mutation on splitting"
- else
- to_render += "\nPossible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)\
- \nGenetic destability: [T.mutation_chance] % chance of mutation on splitting"
- else
- to_render += "\nPossible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]\
- \nGenetic destability: [T.mutation_chance] % chance of mutation on splitting"
- if (T.cores > 1)
- to_render += "\nMultiple cores detected"
- to_render += "\nGrowth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]"
- if(T.effectmod)
- to_render += "\nCore mutation in progress: [T.effectmod]\
- \nProgress in core mutation: [T.applied] / [(SLIME_EXTRACT_CROSSING_REQUIRED * T.crossbreed_modifier)]"
- to_chat(user, examine_block(to_render))
-
-
/obj/item/nanite_scanner
name = "nanite scanner"
icon = 'icons/obj/device.dmi'
@@ -862,7 +802,7 @@ GENE SCANNER
item_flags = NOBLUDGEON
slot_flags = ITEM_SLOT_BELT
throwforce = 3
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 7
custom_materials = list(/datum/material/iron=200)
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 6184f4c2e736..0c614b0671e4 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -1,3 +1,17 @@
+/datum/wires/recorder
+ wires = list(WIRE_ACTIVATE, WIRE_DISABLE, WIRE_RX)
+ holder_type = /obj/item/taperecorder
+
+/datum/wires/recorder/on_pulse(wire)
+ var/obj/item/taperecorder/recorder = holder
+ switch(wire)
+ if(WIRE_ACTIVATE)
+ recorder.record()
+ if(WIRE_DISABLE)
+ recorder.stop()
+ if(WIRE_RX)
+ recorder.play()
+
/obj/item/taperecorder
name = "universal recorder"
desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback."
@@ -20,16 +34,19 @@
var/starting_tape_type = /obj/item/tape/random
var/open_panel = 0
var/canprint = 1
-
+ var/list/icons_available = list()
+ var/icon_directory = 'icons/effects/icons.dmi'
/obj/item/taperecorder/Initialize(mapload)
. = ..()
+ wires = new /datum/wires/recorder(src)
if(starting_tape_type)
mytape = new starting_tape_type(src)
update_appearance()
become_hearing_sensitive(ROUNDSTART_TRAIT)
/obj/item/taperecorder/Destroy()
+ QDEL_NULL(wires)
QDEL_NULL(mytape)
return ..()
@@ -38,18 +55,26 @@
. += "The wire panel is [open_panel ? "opened" : "closed"]."
-/obj/item/taperecorder/attackby(obj/item/I, mob/user, params)
- if(!mytape && istype(I, /obj/item/tape))
- if(!user.transferItemToLoc(I,src))
+/obj/item/taperecorder/attackby(obj/item/item, mob/user, params)
+ if(!mytape && istype(item, /obj/item/tape))
+ if(!user.transferItemToLoc(item,src))
return
- mytape = I
- to_chat(user, "You insert [I] into [src].")
+ mytape = item
+ to_chat(user, span_notice("You insert [item] into [src]."))
+ playsound(src, 'sound/items/taperecorder/taperecorder_close.ogg', 50, FALSE)
update_appearance()
+ if(open_panel)
+ if(is_wire_tool(item))
+ wires.interact(user)
+/obj/item/taperecorder/screwdriver_act(mob/living/user, obj/item/screwdriver)
+ to_chat(usr, span_notice("You [open_panel ? "close" : "open"] [src]s panel."))
+ open_panel = !open_panel
/obj/item/taperecorder/proc/eject(mob/user)
if(mytape)
- to_chat(user, "You remove [mytape] from [src].")
+ to_chat(user, span_notice("You remove [mytape] from [src]."))
+ playsound(src, 'sound/items/taperecorder/taperecorder_open.ogg', 50, FALSE)
stop()
user.put_in_hands(mytape)
mytape = null
@@ -125,7 +150,7 @@
return
if(mytape.used_capacity < mytape.max_capacity)
- to_chat(usr, "Recording started.")
+ to_chat(usr, span_notice("Recording started."))
recording = 1
update_appearance()
mytape.timestamp += mytape.used_capacity
@@ -139,7 +164,7 @@
recording = 0
update_appearance()
else
- to_chat(usr, "The tape is full.")
+ to_chat(usr, span_notice("[src] is full."))
/obj/item/taperecorder/verb/stop()
@@ -153,11 +178,13 @@
recording = 0
mytape.timestamp += mytape.used_capacity
mytape.storedinfo += "\[[time2text(mytape.used_capacity * 10,"mm:ss")]\] Recording stopped."
+ playsound(src, 'sound/items/taperecorder/taperecorder_stop.ogg', 50, FALSE)
to_chat(usr, "Recording stopped.")
return
else if(playing)
playing = 0
var/turf/T = get_turf(src)
+ playsound(src, 'sound/items/taperecorder/taperecorder_stop.ogg', 50, FALSE)
T.visible_message("Tape Recorder: Playback stopped.")
update_appearance()
@@ -177,10 +204,11 @@
playing = 1
update_appearance()
+ playsound(src, 'sound/items/taperecorder/taperecorder_play.ogg', 50, FALSE)
to_chat(usr, "Playing started.")
var/used = mytape.used_capacity //to stop runtimes when you eject the tape
var/max = mytape.max_capacity
- for(var/i = 1, used < max, sleep(10 * playsleepseconds))
+ for(var/i = 1, used <= max, sleep(10 * playsleepseconds))
if(!mytape)
break
if(playing == 0)
@@ -205,12 +233,30 @@
/obj/item/taperecorder/attack_self(mob/user)
- if(!mytape || mytape.ruined)
+ if(!mytape)
+ to_chat(user, span_notice("The [src] does not have a tape inside."))
+ if(mytape.ruined)
+ to_chat(user, span_notice("The tape inside the [src] appears to be broken."))
return
- if(recording)
- stop()
- else
- record()
+
+ update_available_icons()
+ if(icons_available)
+ var/selection = show_radial_menu(user, src, icons_available, radius = 38, require_near = TRUE, tooltips = TRUE)
+ if(!selection)
+ return
+ switch(selection)
+ if("Pause")
+ stop()
+ if("Stop Recording") // yes we actually need 2 seperate stops for the same proc- Hopek
+ stop()
+ if("Record")
+ record()
+ if("Play")
+ play()
+ if("Print Transcript")
+ print_transcript()
+ if("Eject")
+ eject(user)
/obj/item/taperecorder/verb/print_transcript()
@@ -222,14 +268,15 @@
if(!mytape)
return
if(!canprint)
- to_chat(usr, "The recorder can't print that fast!")
+ to_chat(usr, span_notice("The recorder can't print that fast!"))
return
if(recording || playing)
return
- to_chat(usr, "Transcript printed.")
+ to_chat(usr, span_notice("Transcript printed."))
+ playsound(src, 'sound/items/taperecorder/taperecorder_print.ogg', 50, FALSE)
var/obj/item/paper/transcript_paper = new /obj/item/paper(get_turf(src))
- var/t1 = "Transcript:
"
+ var/t1 = "Transcript:
"
for(var/i = 1, mytape.storedinfo.len >= i, i++)
t1 += "[mytape.storedinfo[i]]
"
transcript_paper.add_raw_text(t1)
@@ -238,6 +285,32 @@
canprint = FALSE
addtimer(VARSET_CALLBACK(src, canprint, TRUE), 30 SECONDS)
+/obj/item/taperecorder/AltClick(mob/user)
+ . = ..()
+ if (recording)
+ stop()
+ else
+ record()
+
+/obj/item/taperecorder/proc/update_available_icons()
+ icons_available = list()
+
+ if(recording)
+ icons_available += list("Stop Recording" = image(icon = icon_directory, icon_state = "record_stop"))
+ else
+ if(!playing)
+ icons_available += list("Record" = image(icon = icon_directory, icon_state = "record"))
+
+ if(playing)
+ icons_available += list("Pause" = image(icon = icon_directory, icon_state = "pause"))
+ else
+ if(!recording)
+ icons_available += list("Play" = image(icon = icon_directory, icon_state = "play"))
+
+ if(canprint && !recording && !playing)
+ icons_available += list("Print Transcript" = image(icon = icon_directory, icon_state = "print"))
+ if(mytape)
+ icons_available += list("Eject" = image(icon = icon_directory, icon_state = "eject"))
//empty tape recorders
/obj/item/taperecorder/empty
@@ -252,7 +325,7 @@
item_state = "analyzer"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron=20, /datum/material/glass=5)
force = 1
throwforce = 0
@@ -262,34 +335,36 @@
var/list/timestamp = list()
var/ruined = 0
+/obj/item/tape/Initialize()
+ . = ..()
+ if(ruined)
+ add_overlay("ribbonoverlay")
+
/obj/item/tape/fire_act(exposed_temperature, exposed_volume)
- ruin()
+ if(!ruined)
+ ruin()
..()
/obj/item/tape/attack_self(mob/user)
if(!ruined)
- to_chat(user, "You pull out all the tape!")
- ruin()
-
+ if(do_after(user, 30, src))
+ to_chat(user, span_notice("You pull out all the tape!"))
+ ruin()
/obj/item/tape/proc/ruin()
- //Lets not add infinite amounts of overlays when our fireact is called
- //repeatedly
- if(!ruined)
- add_overlay("ribbonoverlay")
+ add_overlay("ribbonoverlay")
ruined = 1
-
/obj/item/tape/proc/fix()
cut_overlay("ribbonoverlay")
ruined = 0
/obj/item/tape/attackby(obj/item/I, mob/user, params)
- if(ruined && I.tool_behaviour == TOOL_SCREWDRIVER || istype(I, /obj/item/pen))
- to_chat(user, "You start winding the tape back in...")
+ if(ruined && (I.tool_behaviour == TOOL_SCREWDRIVER || istype(I, /obj/item/pen)))
+ to_chat(user, span_notice("You start winding the tape back in..."))
if(I.use_tool(src, user, 120))
- to_chat(user, "You wound the tape back in.")
+ to_chat(user, span_notice("You wound the tape back in."))
fix()
//Random colour tapes
@@ -299,3 +374,12 @@
/obj/item/tape/random/Initialize()
. = ..()
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
+
+//How 2 set custom recorded tapes:
+//create a list of lines to populate stored_info. Each line should follow a format like "[timestamp] [speaker] [speaking verb] ["what they're saying"]"
+//create a list of timestamps. Each one should correspond to how long the recorder should wait before saying the line associated with the timestamp.
+//e.g. "[00:00] Recording started." timestamp = 0
+//"[00:15] [span_name("berry fox")] says "wow. I love eating berries so much"" timestamp = 15
+//set used capacity to how many 'seconds' used by the prerecorded message
+//optional: set max capacity to used capacity
+//optional: set ruined var (you can fix this with a pen)
diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm
index 51c17ff4290d..a0bd46148358 100644
--- a/code/game/objects/items/documents.dm
+++ b/code/game/objects/items/documents.dm
@@ -5,7 +5,7 @@
icon_state = "docs_generic"
item_state = "paper"
throwforce = 0
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_NORMAL
throw_range = 1
throw_speed = 1
layer = MOB_LAYER
@@ -27,6 +27,15 @@
/obj/item/documents/syndicate
desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence."
+/obj/item/documents/syndicate/cybersun
+ name = "classified Cybersun documents"
+ desc = "\"Top Secret\" documents detailing sensitive Cybersun Virtual Solutions operational intelligence. These documents are verified with a red wax seal."
+ icon_state = "docs_red"
+
+/obj/item/documents/syndicate/cybersun/biodynamics
+ desc = "\"Top Secret\" Cybersun Biodynamics documents, filled with patient lists and unfinished designs. These documents are verified with a teal wax seal."
+ icon_state = "docs_teal"
+
/obj/item/documents/syndicate/red
name = "red secret documents"
desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence. These documents are verified with a red wax seal."
@@ -40,6 +49,15 @@
/obj/item/documents/syndicate/mining
desc = "\"Top Secret\" documents detailing Syndicate plasma mining operations."
+/obj/item/documents/syndicate/ngr
+ name = "Second Battlegroup secret documents"
+ desc = "\"Top Secret\" documents belonging to the Second Battlegroup of New Gorlex Republic. They are filled with sensitive operational intelligence. These documents are verified with a red wax seal."
+ icon_state = "docs_red"
+
+/obj/item/documents/eoehoma // For use in Eoehoma-related ruins.
+ desc = "\"Top Secret\" Eoehoma Firearms documents. Filled with weapon blueprints and eviction notices."
+ icon_state = "docs_blue"
+
/obj/item/documents/photocopy
desc = "A copy of some top-secret documents. Nobody will notice they aren't the originals... right?"
var/forgedseal = 0
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index 79b37d41e52c..2e5c9275d8df 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -332,7 +332,7 @@
/obj/item/book/granter/spell/random/Initialize()
. = ..()
- var/static/banned_spells = list(/obj/item/book/granter/spell/mimery_blockade, /obj/item/book/granter/spell/mimery_guns)
+ var/static/banned_spells = list(/obj/item/book/granter/spell/mimery_blockade)
var/real_type = pick(subtypesof(/obj/item/book/granter/spell) - banned_spells)
new real_type(loc)
return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index e8b7e0de487f..58fd68157f08 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -217,36 +217,8 @@
if(stage != GRENADE_READY)
return
- for(var/obj/item/slime_extract/S in beakers)
- if(S.Uses)
- for(var/obj/item/reagent_containers/glass/G in beakers)
- G.reagents.trans_to(S, G.reagents.total_volume)
-
- //If there is still a core (sometimes it's used up)
- //and there are reagents left, behave normally,
- //otherwise drop it on the ground for timed reactions like gold.
-
- if(S)
- if(S.reagents && S.reagents.total_volume)
- for(var/obj/item/reagent_containers/glass/G in beakers)
- S.reagents.trans_to(G, S.reagents.total_volume)
- else
- S.forceMove(get_turf(src))
- no_splash = TRUE
..()
- //I tried to just put it in the allowed_containers list but
- //if you do that it must have reagents. If you're going to
- //make a special case you might as well do it explicitly. -Sayu
-/obj/item/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/slime_extract) && stage == GRENADE_WIRED)
- if(!user.transferItemToLoc(I, src))
- return
- to_chat(user, "You add [I] to the [initial(name)] assembly.")
- beakers += I
- else
- return ..()
-
/obj/item/grenade/chem_grenade/cryo // Intended for rare cryogenic mixes. Cools the area moderately upon detonation.
name = "cryo grenade"
desc = "A custom made cryogenic grenade. Rapidly cools contents upon ignition."
diff --git a/code/game/objects/items/grenades/clusterbuster.dm b/code/game/objects/items/grenades/clusterbuster.dm
index 5326b303d977..b9ad8730b652 100644
--- a/code/game/objects/items/grenades/clusterbuster.dm
+++ b/code/game/objects/items/grenades/clusterbuster.dm
@@ -79,36 +79,7 @@
var/obj/item/grenade/P = new type(loc)
if(istype(P))
P.active = TRUE
- addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60))
- var/steps = rand(1,4)
- for(var/i in 1 to steps)
- step_away(src,loc)
-
-/obj/effect/payload_spawner/random_slime
- var/volatile = FALSE
-
-/obj/effect/payload_spawner/random_slime/volatile
- volatile = TRUE
-
-/obj/item/slime_extract/proc/activate_slime()
- var/list/slime_chems = src.activate_reagents
- if(!QDELETED(src))
- var/chem = pick(slime_chems)
- var/amount = 5
- if(chem == "lesser plasma") //In the rare case we get another rainbow.
- chem = /datum/reagent/toxin/plasma
- amount = 4
- if(chem == "holy water and uranium")
- chem = /datum/reagent/uranium
- reagents.add_reagent(/datum/reagent/water/holywater)
- reagents.add_reagent(chem,amount)
-
-/obj/effect/payload_spawner/random_slime/spawn_payload(type, numspawned)
- for(var/loop = numspawned ,loop > 0, loop--)
- var/chosen = pick(subtypesof(/obj/item/slime_extract))
- var/obj/item/slime_extract/P = new chosen(loc)
- if(volatile)
- addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/slime_extract, activate_slime)), rand(15,60))
+ P.preprime(delayoverride = P.det_time + rand(1.5 SECONDS, 6 SECONDS))
var/steps = rand(1,4)
for(var/i in 1 to steps)
step_away(src,loc)
@@ -180,14 +151,3 @@
var/real_type = pick(subtypesof(/obj/item/grenade/clusterbuster))
new real_type(loc)
return INITIALIZE_HINT_QDEL
-
-//rainbow slime effect
-/obj/item/grenade/clusterbuster/slime
- name = "Blorble Blorble"
- icon_state = "slimebang"
- base_state = "slimebang"
- payload_spawner = /obj/effect/payload_spawner/random_slime
- prime_sound = 'sound/effects/bubbles.ogg'
-
-/obj/item/grenade/clusterbuster/slime/volatile
- payload_spawner = /obj/effect/payload_spawner/random_slime/volatile
diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm
index 915011b81b11..247ca439c8bd 100644
--- a/code/game/objects/items/grenades/ghettobomb.dm
+++ b/code/game/objects/items/grenades/ghettobomb.dm
@@ -25,7 +25,7 @@
add_overlay("improvised_grenade_filled")
add_overlay("improvised_grenade_wired")
times = list("5" = 10, "-1" = 20, "[rand(30,80)]" = 50, "[rand(65,180)]" = 20)// "Premature, Dud, Short Fuse, Long Fuse"=[weighting value]
- det_time = text2num(pickweight(times))
+ det_time = text2num(pick_weight(times))
if(det_time < 0) //checking for 'duds'
range = 1
det_time = rand(30,80)
diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm
index f0198b7f1a0b..fb19cfe31700 100644
--- a/code/game/objects/items/grenades/grenade.dm
+++ b/code/game/objects/items/grenades/grenade.dm
@@ -150,7 +150,18 @@
/obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
var/obj/projectile/P = hitby
- if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15))
+ var/list/valid_hands = list(FALSE, FALSE)
+
+ //checks if the projectile hits an arm holding a grenade
+ if (istype(owner.held_items[1], (/obj/item/grenade)))
+ if (P.def_zone == "l_arm")
+ valid_hands[1] = TRUE
+
+ if (istype(owner.held_items[2], (/obj/item/grenade)))
+ if (P.def_zone == "r_arm")
+ valid_hands[2] = TRUE
+
+ if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && (valid_hands[1] || valid_hands[2]) && prob(5)) //5% chance to go off
owner.visible_message("[attack_text] hits [owner]'s [src], setting it off! What a shot!")
var/turf/T = get_turf(src)
log_game("A projectile ([hitby]) detonated a grenade held by [key_name(owner)] at [COORD(T)]")
diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm
index c4cafbc8fdb9..7a21c9129ad7 100644
--- a/code/game/objects/items/grenades/plastic.dm
+++ b/code/game/objects/items/grenades/plastic.dm
@@ -67,7 +67,12 @@
//assembly stuff
/obj/item/grenade/c4/receive_signal()
- prime()
+ if(!active)
+ active = TRUE
+ icon_state = "[item_state]2"
+ balloon_alert_to_viewers("[src] begins ticking!")
+ addtimer(CALLBACK(src, PROC_REF(prime)), det_time*10)
+ return
/obj/item/grenade/c4/attack_self(mob/user)
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num|null
@@ -125,3 +130,16 @@
item_state = "plasticx4"
directional = TRUE
boom_sizes = list(0, 2, 5)
+
+
+// x-com ufo defense high ex charge 1993
+/obj/item/grenade/c4/satchel_charge
+ name = "\improper satchel charge"
+ desc = "Used to put craters into places without too much hassle. An engineer's favorite."
+ w_class = WEIGHT_CLASS_NORMAL
+ icon_state = "satchel_charge0"
+ item_state = "satchel_charge"
+ throw_range = 3
+ lefthand_file = 'icons/mob/inhands/weapons/bombs_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/bombs_righthand.dmi'
+ boom_sizes = list(0, 3, 5)
diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm
index dfea3fb87829..c29a00a83901 100644
--- a/code/game/objects/items/grenades/smokebomb.dm
+++ b/code/game/objects/items/grenades/smokebomb.dm
@@ -1,17 +1,10 @@
/obj/item/grenade/smokebomb
name = "smoke grenade"
- desc = "Real bruh moment if you ever see this. Probably tell a c*der or something."
+ desc = "A smoke grenade pattern, used to screen unit movements, and signal landing zones, widely used by military forces on the frontier and beyond."
icon = 'icons/obj/grenade.dmi'
icon_state = "smokewhite"
item_state = "smoke"
slot_flags = ITEM_SLOT_BELT
- ///It's extremely important to keep this list up to date. It helps to generate the insightful description of the smokebomb. EDIT: honestly fuck you nemvar. go directly to jail and do not collect 200 dollars
- var/static/list/bruh_moment = list("Dank", "Hip", "Lit", "Based", "Robust", "Bruh")
-
-///Here we generate the extremely insightful description.
-/obj/item/grenade/smokebomb/Initialize()
- . = ..()
- desc = "The word '[pick(bruh_moment)]' is scribbled on it in crayon."
///Here we generate some smoke and also damage blobs??? for some reason. Honestly not sure why we do that.
/obj/item/grenade/smokebomb/prime()
diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm
index 121fa9f0c234..0a7094fb3895 100644
--- a/code/game/objects/items/implants/implant_mindshield.dm
+++ b/code/game/objects/items/implants/implant_mindshield.dm
@@ -28,10 +28,7 @@
deconverted = TRUE
if(!silent)
- if(target.mind in SSticker.mode.cult)
- to_chat(target, "You feel something interfering with your mental conditioning, but you resist it!")
- else
- to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.")
+ to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.")
ADD_TRAIT(target, TRAIT_MINDSHIELD, "implant")
target.sec_hud_set_implants()
if(deconverted)
diff --git a/code/game/objects/items/implants/implant_misc.dm b/code/game/objects/items/implants/implant_misc.dm
index c4c832209bac..4379003d57a8 100644
--- a/code/game/objects/items/implants/implant_misc.dm
+++ b/code/game/objects/items/implants/implant_misc.dm
@@ -110,6 +110,10 @@
radio.keyslot = new radio_key
radio.recalculateChannels()
+/obj/item/implant/radio/Destroy()
+ QDEL_NULL(radio)
+ return ..()
+
/obj/item/implant/radio/mining
radio_key = /obj/item/encryptionkey
@@ -118,13 +122,6 @@
radio_key = /obj/item/encryptionkey/syndicate
subspace_transmission = TRUE
-/obj/item/implant/radio/slime
- name = "slime radio"
- icon = 'icons/obj/surgery.dmi'
- icon_state = "adamantine_resonator"
- radio_key = /obj/item/encryptionkey
- subspace_transmission = TRUE
-
/obj/item/implant/radio/get_data()
var/dat = {"Implant Specifications:
Name: Internal Radio Implant
diff --git a/code/game/objects/items/implants/implant_track.dm b/code/game/objects/items/implants/implant_track.dm
index a83d69c53145..fb4730dadf14 100644
--- a/code/game/objects/items/implants/implant_track.dm
+++ b/code/game/objects/items/implants/implant_track.dm
@@ -9,17 +9,18 @@
///The id of the timer that's qdeleting us
var/timerid
-/obj/item/implant/tracking/c38
+/obj/item/implant/tracking/bullet
name = "TRAC implant"
desc = "A smaller tracking implant that supplies power for only a few minutes."
var/lifespan = 3000 //how many deciseconds does the implant last?
allow_teleport = FALSE
-/obj/item/implant/tracking/c38/Initialize()
+/obj/item/implant/tracking/bullet/Initialize()
. = ..()
timerid = QDEL_IN(src, lifespan)
+ AddComponent(/datum/component/gps/item, "*TRAC")
-/obj/item/implant/tracking/c38/Destroy()
+/obj/item/implant/tracking/bullet/Destroy()
deltimer(timerid)
return ..()
diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm
index 2b4aec09ac87..1a1906188895 100644
--- a/code/game/objects/items/manuals.dm
+++ b/code/game/objects/items/manuals.dm
@@ -240,10 +240,10 @@
"}
/obj/item/book/manual/trickwines_4_brewers
- name = "Trickwines for brewers"
+ name = "Ashen Brewing"
icon_state = "book2"
- author = "Bridget Saint-Baskett"
- title = "Trickwines for brewers"
+ author = "Amarasatsu ke Qazawat"
+ title = "Ashen Brewing"
dat = {"
@@ -256,73 +256,50 @@
- Trickwines for brewers
- Okay, so you just joined the SRM and you want to make some brews! I'm tired of explaining all of this so I'm jotting it all down for the new hires.
- Trickwines almost all share the same effect. When you drink them, they provide a beneficial effect and when you toss them at someone it provides some sort of bad effect.
- Breakaway flasks
- Honestly, I love these things. I'm not a scientist so I cant exactly explain how it works but somehow when you fuse plasma into glass it makes it ultra sharp and makes it really good for cracking over fauna heads.
- The simplest way I have found of making them is crafting them with a chunk of glass, plasma, and a welder.
-
- Bacteria
- A speical speices of bacteria native to Illestren is what allows Trickwines form.
- Now we use a special distiller that keeps just enough bacertia alive to ferment without turning the batch sour.
- Now you should still have one on board but if you dont its fine.
- It just so happens we have trees on board our ships host to the Bacteria.
- To get enough Bacteria your going to need to feed it anything that would help a plant.
- Water, Fertilizer, Ashwine are all good options.
- Soon it will drops some apples and you can grind them for the bacteria.
- Once you have enough you can fabricate it the same way you would a normal barrel.
-
- Ratios
- A common trend among Trickwines is the ratio of 3:1:1.
- 3 parts being an ethonal, the other 2 parts are often made from flora or fauna.
-
- Ashwine
- It's kind of our trademark, and it's one of the simplest trickwines to make.
- These are the most common wines used in ceremonies so we often stock ships with the moonflowers needed to make them.
- It's made with a ratio of 3:1:1 absinthe, mushroom hallucinogen, and ash respectively.
- Mushroom hallucinogens come from mushroom caps and you can ferment absinthe from moonflowers.
- Its a mild hallucinogenic but seems to have powerful cleansing effects on the devoted SRM.
- It can also really fuck someone up, causing their vision to go shaky and blurry which makes it difficult for them to fight.
-
- Icewine
- This one helps stopping foes in their tracks. One of my favorite flavor wise.
- Its made with 3:1:1 saké, polar bear fur, frost oil(grind chilled peppers).
- You can get polar bear fur and frost oil from grinding up polar bear hides and chilled peppers.
- It's pretty good at sealing burns and lowering your temperature quickly.
- However, it completely encases foes in ice and drops their temperature substantially.
-
- Shockwine
- Easily my favorite for its splashed effect, this thing is great at scorching most fauna.
- Its made with vodka, calcium, and lemon juice.
- If you did not know, vodka requires enzymes instead of the normal fermenting process.
- It's a nice upper. Great if you're trying to run away.
- This one's really flashy. Expect some severe burns on your target
-
- Hearthwine
- I once threw back a flask of this stuff in the heat of a really bad battle and it sealed my wounds within seconds its honestly increadible.
- It also acts like the inverse of Icewine heating you up more then a fever.
- Last time I threw it at someone though i almost burnt down the forest I was in.
- Its made out of ground up fireblossems with some nice hard cider and a bit of welding fuel with of course a ratio of 3:1:1.
-
- Forcewine
- Two intresting effects from the consumption of Forcewine.
- First it seems to give you an "anti magic" effect, I have read about of tales of how it fizzled out some sort of great curse that we could best trace back to a ancient cult.
- Second is it protects the mind from cohersion and mind control.
- From my research this seems to act like nanotrasen mindshield implants.
- Would recomend for any esoteric senarios. We wont see these alot but its always smart to prepare for the worst.
- You can also use it to entrap Fauna inside of a forcefield like bubble, Gives you time to breath and prepare an attack.
- 3:1:1. Tequila, Space Montain Wind, and I know its one of the most difficult things to come by but hollow water, Its that stuff you can extract from geysers
-
- Prismwine
- Gives you a nice shiny layer of armour, fire seems to have alot harder time sticking to me when i tested it.
- Throwing it seeems to do the reverse acting like a magnifying glass to burns and lasers
- 3:1:1. Good ol Gin, then add plasma and tinea luxor which is found from mushroom stems
-
- Some of these can be a bit situatinal but its always nice to have a few in your bag for emergecys.
- As a bonus, most of the other factions have no clue how to make these so you can sell them for a fair chunk of cash.
-
-
Bridget Saint-Baskett, Senior Brewer
+ On the Topic of Trickwines
+ The alchemists of Roumain have long held that with sufficient preparation can many a potion be made. Many a daring hunter has returned to their domicile at the aid of an Alchemist. For those who travel, the 'Trickwine' is oft chosen, and so the learners of Roumain pass the secrets on to others.
+ A 'trickwine' is a potent brew, made by taking the powers that rest in the world around us and fermenting them in the blessings of Illestren. When imbibed by a Hunter, strength and power flow through their body, yet when shattered upon the beasts of the World, Illestrens' curses are unleashed upon it.
+ To freely create a trickwine is the mark of a rising alchemist, and to deliver it in the heat of a brawl is the mark of a true Hunter.
+ May this document guide you to both those marks.
+
+ Brewing Vessels.
+ While many vessels permeate the minds of alchemists, the Breakaway Flask is the instrument of choice for the rising talent. By taking the essence of plasma and infusing it within the body of glass - a most durable vessel is produced for the Trickwine. The glass remains firm lest it impacts upon a foe.
+ Any who tinker will find the infusion of essence is done most easily with a flame. Something that burns with a flame most potent. Away from the furnaces of Illestren, the burn of a welder suffices to create the vessel.
+
+ The Bacteria Of Illestren
+ The world of Illestren gave birth to a bacterium that has formed the backbone of alchemical experimentation for countless years. It has given birth to countless fermentation methods, including the cycle of brewing a Trickwine.
+ By use of a specialized distillery, the Illestren Bacteria can be maintained in amounts ideal to the fermentation of reagents from Trickwines to Beers. A talented brewer can create their own heritage by blending activating bacterium and reagent into a new concotion.
+ Not all vessels of the Militia bear a distillery, but plants transplanted from Illestren carry the bacterium within the flesh of their fruit. Careful nurture of a fruit-bearing plant will allow it to spread the blessings of Illestren. Treat the plant as you would treat any other ally. Allot it drinks. Trim its branches. Protect it from those who seek to harm it.
+ Once the fruit has ripened and dropped from the host, an alchemist can take it, fermenting the ripe flesh into a potent mixture of ciders and bacterias entangled together.
+ Just as we give to the tree, it shall give to us. It pays a talent to remember this.
+
+ Common Mixtures
+ Those that find easy success within the alchemical arts have written that to make a Trickwine, one must maintain a careful mixture.
+ Three wholes of an ethanol base, with the flavor varied for impact. Entangled with a whole strand of beast, and the blessings of plant. Once cut with the potent catalyst that is the Bacterium, the fermentation is rapid, and a Trickwine is born from the mixture.
+
+ Wine Of Ash
+ The Wine Of Ash is the most endearing brew to have come from the Distilleries of the Militia. It carries a variety of uses, from the Ceremonies of Roumain, to the warm afterparty of a successful hunt. The flavor is said to be somewhat rustic, with hints of fruit and a sweet yet ashy tang.
+ Brewing the Wine Of Ash is a simple task, that even Shadows are expected to do at times. By fermenting a flower of the moon into a potent absinthe, a strong base is formed. Seeping a hallucinogenic mushroom within the absinthe, and then introducing an ash into the mixture of drink and plant creates the Wine Of Ash. One must be patient when brewing, as the brew will be strong, but further fermentation will allow it to blossom into a true vintage.
+ Take care whilst brewing to maintain a proper ratio of ingredients. The Wine shall become off-balance if more than one whole of mushroom and one whole of ash is introduced to three wholes of absinthe. One must also take care to protect their eyes, as the Vapors of Ash are a potent irritant.
+ The Wine itself is held to be hallucinogenic, although debate rages within the halls of Roumain on the nature of such. A talented brewer can offset such trivialities by cutting the Wine with water, or introducing another substance once it has been fermented. Many a Hunter holds the drink to purify the soul, and strengthen the mind for days ahead.
+
+ Wine Of Ice
+ The Wine Of Ice is a strong brew formented by the Talent Keo Lanai. Talent Lanai had long found solace from the heat in his visions of the 'Godsforsaken Precipice' that the Ashen Huntsman was said to wander, and sought to share this solace with other Hunters. The flavor is said to be somewhat meaty, with a pleasing current of pepper.
+ Brewing of the Wine Of Ice requires a unique assortment of reagents. By fermenting the fur of a bear within traditionally brewed rice sake, Keo Lanai found a solid base for the introduction of Frozen Pepper Essence. It is said that the original brew produced a cold so potent that frost formed on Lanai's brow.
+ Hunters favor the Wine Of Ice for blessed relief from heat imbibing it provide. Alchemists have theorized that the brew stimulates the production of sweat in the body, allowing the body to cool itself more rapidly. Other Hunters swear by relief seeping into their burns as the brew finds its way into their system. Others find usage in the potent frost that it leaves upon impact, using it to freeze everything from foe to food.
+
+ Lightning's Blessing
+ Lightning's Blessing is said to be a potent stimulant, brewed by Hunter Trackers to allow them to track mobile prey through unknown environments. The flavor is said to be sharp and unrelenting, much like the Hunters who indulge in it.
+ Lightning's Blessing is brewed with a base of Vodka. By taking vodka and fermenting ground down bones within it, a strong alchemical blend is created. This blend is then inoculated with juiced lemon whilst within a distillery. The resulting blend is an environment ripe for a particular strain of Bacterium to multiply in. This strain of the Bacterium is said to be what gives the flavor to the brew, and its digestion produces a high in most sapients.
+ Hunters are said to use Lightning's Blessing as a weapon, where the bacterium, upon being introduced to open air quickly produces an electrical field, shocking whatever the mixture lands upon.
+
+ Hearthflame
+ Hearthflame is Talent Lanai's other great creation. While travelling through the cold of many a fringe world, Lanai sought the warmth of his home, and took the creation of another mixture as a challenge. By taking the hearty fermented blend of an Illestren Apple, The petals of a Fireblossom, and a hint of phosphorous, Lanai produced a potent heating drink.
+ Hearthflame is said to have a bold flavor profile, not unlike an apple shredded apart by tangy pricks. The bacterium is said to stimulate the body and cause it to start heating herself, or in cases of localized exposure, causes rapid, cauterizing heating.
+ When this particular blend is exposed to the air, it rapidly heats up. Hunters have advised Shadows be careful if issued it, and most Alchemists refuse to make it unless it is required for the hunt at hand.
+
Transcribed by Amarasatsu ke Qazawat
+
+ Amarasatsu ke Qazawat
"}
diff --git a/code/game/objects/items/melee/chainsaw.dm b/code/game/objects/items/melee/chainsaw.dm
index d179237f8559..f0b7019200f1 100644
--- a/code/game/objects/items/melee/chainsaw.dm
+++ b/code/game/objects/items/melee/chainsaw.dm
@@ -3,13 +3,13 @@
/obj/item/chainsaw
name = "chainsaw"
desc = "A versatile power tool. Useful for limbing trees and delimbing humans."
- icon_state = "chainsaw_off"
+ icon_state = "chainsaw"
icon = 'icons/obj/weapon/axe.dmi'
lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
flags_1 = CONDUCT_1
force = 13
- var/force_on = 24
+ var/active_force = 24
w_class = WEIGHT_CLASS_HUGE
throwforce = 13
throw_speed = 2
@@ -31,8 +31,8 @@
/obj/item/chainsaw/attack_self(mob/user)
on = !on
to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]")
- force = on ? force_on : initial(force)
- throwforce = on ? force_on : initial(force)
+ force = on ? active_force : initial(force)
+ throwforce = on ? active_force : initial(force)
icon_state = "chainsaw_[on ? "on" : "off"]"
var/datum/component/butchering/butchering = src.GetComponent(/datum/component/butchering)
butchering.butchering_enabled = on
@@ -56,7 +56,7 @@
name = "THE GREAT COMMUNICATOR"
desc = "VRRRRRRR!!!"
armour_penetration = 100
- force_on = 30
+ active_force = 30
/obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(attack_type == PROJECTILE_ATTACK)
diff --git a/code/game/objects/items/melee/dualsaber.dm b/code/game/objects/items/melee/dualsaber.dm
index 28242c1006a1..1959fa81eaea 100644
--- a/code/game/objects/items/melee/dualsaber.dm
+++ b/code/game/objects/items/melee/dualsaber.dm
@@ -23,7 +23,7 @@
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
- var/w_class_on = WEIGHT_CLASS_BULKY
+ var/active_w_class = WEIGHT_CLASS_BULKY
var/saber_color = "green"
var/two_hand_force = 34
var/hacked = FALSE
@@ -43,7 +43,7 @@
to_chat(user, "You lack the grace to wield this!")
return COMPONENT_TWOHANDED_BLOCK_WIELD
sharpness = IS_SHARP
- w_class = w_class_on
+ w_class = active_w_class
hitsound = 'sound/weapons/blade1.ogg'
START_PROCESSING(SSobj, src)
set_light_on(TRUE)
@@ -128,7 +128,7 @@
return 1
/obj/item/dualsaber/ignition_effect(atom/A, mob/user)
- // same as /obj/item/melee/transforming/energy, mostly
+ // same as /obj/item/melee/energy, mostly
if(!HAS_TRAIT(src, TRAIT_WIELDED))
return ""
var/in_mouth = ""
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index 34219662e53d..1985c3d7ebfa 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -1,7 +1,9 @@
-/obj/item/melee/transforming/energy
+/obj/item/melee/energy
+ sharpness = IS_SHARP
+ w_class = WEIGHT_CLASS_SMALL
+ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
icon = 'icons/obj/weapon/energy.dmi'
- hitsound_on = 'sound/weapons/blade1.ogg'
- heat = 3500
+ heat = 0
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
@@ -10,42 +12,81 @@
light_power = 1
light_on = FALSE
var/sword_color
-
-/obj/item/melee/transforming/energy/Initialize()
+ /// The heat given off when active.
+ var/active_heat = 3500
+
+ /// Force while active.
+ var/active_force = 30
+ /// Throwforce while active.
+ var/active_throwforce = 20
+ /// Sharpness while active.
+ var/active_sharpness = IS_SHARP
+ /// Hitsound played attacking while active.
+ var/active_hitsound = 'sound/weapons/blade1.ogg'
+ /// Weight class while active.
+ var/active_w_class = WEIGHT_CLASS_BULKY
+
+ var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
+
+/obj/item/melee/energy/Initialize(mapload)
. = ..()
- if(active)
+ AddComponent( \
+ /datum/component/transforming, \
+ force_on = active_force, \
+ throwforce_on = active_throwforce, \
+ throw_speed_on = 4, \
+ sharpness_on = active_sharpness, \
+ hitsound_on = active_hitsound, \
+ w_class_on = active_w_class, \
+ attack_verb_on = attack_verb_on, \
+ )
+ RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
+ AddElement(/datum/element/update_icon_updates_onmob)
+ if(sharpness)
+ AddComponent(/datum/component/butchering, 50, 100, 0, hitsound)
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
START_PROCESSING(SSobj, src)
-/obj/item/melee/transforming/energy/Destroy()
+/obj/item/melee/energy/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
-/obj/item/melee/transforming/energy/add_blood_DNA(list/blood_dna)
- return FALSE
+/obj/item/melee/energy/proc/on_transform(obj/item/source, mob/user, active)
+ SIGNAL_HANDLER
-/obj/item/melee/transforming/energy/get_sharpness()
- return active * sharpness
+ if(active)
+ heat = active_heat
+ START_PROCESSING(SSobj, src)
+ if(sword_color)
+ icon_state = "[base_icon_state][sword_color]"
+ else
+ heat = initial(heat)
+ STOP_PROCESSING(SSobj, src)
-/obj/item/melee/transforming/energy/process()
- open_flame()
+ tool_behaviour = (active ? TOOL_SAW : NONE) //Lets energy weapons cut trees. Also lets them do bonecutting surgery, which is kinda metal!
+ if(user)
+ balloon_alert(user, "[name] [active ? "enabled":"disabled"]")
+ playsound(src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE)
+ set_light_on(active)
+ update_appearance(UPDATE_ICON_STATE)
-/obj/item/melee/transforming/energy/transform_weapon(mob/living/user, supress_message_text)
- . = ..()
- if(.)
- if(active)
- if(sword_color)
- icon_state = "[base_icon_state][sword_color]"
- START_PROCESSING(SSobj, src)
- else
- STOP_PROCESSING(SSobj, src)
- set_light_on(active)
+ return COMPONENT_NO_DEFAULT_MESSAGE
+
+/obj/item/melee/energy/add_blood_DNA(list/blood_dna)
+ return FALSE
+
+/obj/item/melee/energy/get_sharpness()
+ return sharpness
+/obj/item/melee/energy/process(seconds_per_tick)
+ if(heat)
+ open_flame()
-/obj/item/melee/transforming/energy/get_temperature()
- return active * heat
+/obj/item/melee/energy/get_temperature()
+ return heat
-/obj/item/melee/transforming/energy/ignition_effect(atom/A, mob/user)
- if(!active)
+/obj/item/melee/energy/ignition_effect(atom/A, mob/user)
+ if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
return ""
var/in_mouth = ""
@@ -57,28 +98,28 @@
playsound(loc, hitsound, get_clamped_volume(), TRUE, -1)
add_fingerprint(user)
-/obj/item/melee/transforming/energy/axe
+/obj/item/melee/energy/axe
name = "energy axe"
desc = "An energized battle axe."
- icon_state = "axe0"
+ icon_state = "axe"
lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi'
force = 40
- force_on = 150
+ active_force = 150
throwforce = 25
- throwforce_on = 30
+ active_throwforce = 30
hitsound = 'sound/weapons/bladeslice.ogg'
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_NORMAL
- w_class_on = WEIGHT_CLASS_HUGE
+ active_w_class = WEIGHT_CLASS_HUGE
flags_1 = CONDUCT_1
armour_penetration = 100
- attack_verb_off = list("attacked", "chopped", "cleaved", "torn", "cut")
+ attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
attack_verb_on = list()
light_color = LIGHT_COLOR_LIGHT_CYAN
-/obj/item/melee/transforming/energy/sword
+/obj/item/melee/energy/sword
name = "energy sword"
desc = "For when a katana isn't enough. While Nanotrasen and the Syndicate both produce the so-called e-swords, they are visually and functionaly identical."
icon_state = "sword"
@@ -88,7 +129,7 @@
force = 3
throwforce = 5
hitsound = "swing_hit" //it starts deactivated
- attack_verb_off = list("tapped", "poked")
+ attack_verb = list("tapped", "poked")
throw_speed = 3
throw_range = 5
sharpness = IS_SHARP
@@ -96,38 +137,32 @@
armour_penetration = 35
block_chance = 50
-/obj/item/melee/transforming/energy/sword/transform_weapon(mob/living/user, supress_message_text)
- . = ..()
- if(. && active && sword_color)
- icon_state = "[base_icon_state][sword_color]"
-
-/obj/item/melee/transforming/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- if(active)
+/obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
return ..()
return 0
-/obj/item/melee/transforming/energy/sword/cyborg
+/obj/item/melee/energy/sword/cyborg
sword_color = "red"
var/hitcost = 50
-/obj/item/melee/transforming/energy/sword/cyborg/attack(mob/M, mob/living/silicon/robot/R)
+/obj/item/melee/energy/sword/cyborg/attack(mob/M, mob/living/silicon/robot/R)
if(R.cell)
var/obj/item/stock_parts/cell/C = R.cell
- if(active && !(C.use(hitcost)))
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) && !(C.use(hitcost)))
attack_self(R)
to_chat(R, "It's out of charge!")
return
return ..()
-/obj/item/melee/transforming/energy/sword/cyborg/saw //Used by medical Syndicate cyborgs
+/obj/item/melee/energy/sword/cyborg/saw //Used by medical Syndicate cyborgs
name = "energy saw"
desc = "For heavy duty cutting. It has a carbon-fiber blade in addition to a toggleable hard-light edge to dramatically increase sharpness."
- force_on = 30
+ active_force = 30
force = 18 //About as much as a spear
hitsound = 'sound/weapons/circsawhit.ogg'
icon = 'icons/obj/surgery.dmi'
- icon_state = "esaw_0"
- icon_state_on = "esaw_1"
+ icon_state = "esaw"
sword_color = null //stops icon from breaking when turned on.
hitcost = 75 //Costs more than a standard cyborg esword
w_class = WEIGHT_CLASS_NORMAL
@@ -136,54 +171,49 @@
tool_behaviour = TOOL_SAW
toolspeed = 0.7 //faster as a saw
-/obj/item/melee/transforming/energy/sword/cyborg/saw/cyborg_unequip(mob/user)
- if(!active)
- return
- transform_weapon(user, TRUE)
-
-/obj/item/melee/transforming/energy/sword/cyborg/saw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- return 0
+/obj/item/melee/energy/sword/cyborg/saw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
+ return FALSE
-/obj/item/melee/transforming/energy/sword/saber
+/obj/item/melee/energy/sword/saber
var/list/possible_colors = list("red" = COLOR_SOFT_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER, "yellow" = COLOR_YELLOW)
var/hacked = FALSE
-/obj/item/melee/transforming/energy/sword/saber/Initialize(mapload)
+/obj/item/melee/energy/sword/saber/Initialize(mapload)
. = ..()
if(LAZYLEN(possible_colors))
var/set_color = pick(possible_colors)
sword_color = set_color
set_light_color(possible_colors[set_color])
-/obj/item/melee/transforming/energy/sword/saber/process()
+/obj/item/melee/energy/sword/saber/process()
. = ..()
if(hacked)
var/set_color = pick(possible_colors)
set_light_color(possible_colors[set_color])
-/obj/item/melee/transforming/energy/sword/saber/red
+/obj/item/melee/energy/sword/saber/red
possible_colors = list("red" = COLOR_SOFT_RED)
-/obj/item/melee/transforming/energy/sword/saber/blue
+/obj/item/melee/energy/sword/saber/blue
possible_colors = list("blue" = LIGHT_COLOR_LIGHT_CYAN)
-/obj/item/melee/transforming/energy/sword/saber/green
+/obj/item/melee/energy/sword/saber/green
possible_colors = list("green" = LIGHT_COLOR_GREEN)
-/obj/item/melee/transforming/energy/sword/saber/purple
+/obj/item/melee/energy/sword/saber/purple
possible_colors = list("purple" = LIGHT_COLOR_LAVENDER)
-/obj/item/melee/transforming/energy/sword/saber/yellow
+/obj/item/melee/energy/sword/saber/yellow
possible_colors = list("yellow" = COLOR_YELLOW)
-/obj/item/melee/transforming/energy/sword/saber/attackby(obj/item/W, mob/living/user, params)
+/obj/item/melee/energy/sword/saber/attackby(obj/item/W, mob/living/user, params)
if(W.tool_behaviour == TOOL_MULTITOOL)
if(!hacked)
hacked = TRUE
sword_color = "rainbow"
to_chat(user, "RNBW_ENGAGE")
- if(active)
+ if(HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
icon_state = "[base_icon_state]rainbow"
user.update_inv_hands()
else
@@ -192,39 +222,38 @@
return ..()
-/obj/item/melee/transforming/energy/sword/saber/pirate
+/obj/item/melee/energy/sword/saber/pirate
name = "energy cutlass"
desc = "Arrrr matey."
icon_state = "cutlass"
base_icon_state = "cutlass"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
- icon_state_on = "cutlass"
-/obj/item/melee/transforming/energy/sword/saber/pirate/red
+/obj/item/melee/energy/sword/saber/pirate/red
possible_colors = list("red" = COLOR_SOFT_RED)
-/obj/item/melee/transforming/energy/sword/saber/pirate/blue
+/obj/item/melee/energy/sword/saber/pirate/blue
possible_colors = list("blue" = LIGHT_COLOR_LIGHT_CYAN)
-/obj/item/melee/transforming/energy/sword/saber/pirate/green
+/obj/item/melee/energy/sword/saber/pirate/green
possible_colors = list("green" = LIGHT_COLOR_GREEN)
-/obj/item/melee/transforming/energy/sword/saber/pirate/purple
+/obj/item/melee/energy/sword/saber/pirate/purple
possible_colors = list("purple" = LIGHT_COLOR_LAVENDER)
-/obj/item/melee/transforming/energy/sword/saber/pirate/yellow
+/obj/item/melee/energy/sword/saber/pirate/yellow
possible_colors = list("yellow" = COLOR_YELLOW)
-/obj/item/melee/transforming/energy/blade
+/obj/item/melee/energy/blade
name = "energy blade"
desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal."
- icon_state = "blade"
+ icon_state = "lightblade"
+ item_state = "lightblade"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
force = 30 //Normal attacks deal esword damage
hitsound = 'sound/weapons/blade1.ogg'
- active = 1
throwforce = 1 //Throwing or dropping the item deletes it.
throw_speed = 3
throw_range = 1
@@ -233,29 +262,29 @@
sharpness = IS_SHARP
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
-/obj/item/melee/transforming/energy/blade/Initialize()
+/obj/item/melee/energy/blade/Initialize()
. = ..()
spark_system = new /datum/effect_system/spark_spread()
spark_system.set_up(5, 0, src)
spark_system.attach(src)
-/obj/item/melee/transforming/energy/blade/Destroy()
+/obj/item/melee/energy/blade/Destroy()
QDEL_NULL(spark_system)
return ..()
-/obj/item/melee/transforming/energy/blade/transform_weapon(mob/living/user, supress_message_text)
+/obj/item/melee/energy/blade/on_transform(obj/item/source, mob/user, active)
return
-/obj/item/melee/transforming/energy/blade/hardlight
+/obj/item/melee/energy/blade/hardlight
name = "hardlight blade"
desc = "An extremely sharp blade made out of hard light. Packs quite a punch."
icon_state = "lightblade"
item_state = "lightblade"
-/obj/item/melee/transforming/energy/ctf
+/obj/item/melee/energy/ctf
name = "energy sword"
desc = "That cable over there, I'm going to cut it."
- icon_state = "plasmasword0"
+ icon_state = "plasmasword"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
sharpness = IS_SHARP
@@ -264,20 +293,19 @@
force = 0
throwforce = 0
hitsound = "swing_hit" //it starts deactivated
- attack_verb_off = list("tapped", "poked")
+ attack_verb = list("tapped", "poked")
throw_speed = 3
throw_range = 5
- force_on = 200 //instakill if shields are down
+ active_force = 200 //instakill if shields are down
-/obj/item/melee/transforming/energy/ctf/transform_weapon(mob/living/user, supress_message_text)
+/obj/item/melee/energy/ctf/on_transform(obj/item/source, mob/user, active)
. = ..()
- if(. && active)
- icon_state = "plasmasword1"
-
-/obj/item/melee/transforming/energy/ctf/solgov
- armour_penetration = 40
- force_on = 34 //desword grade, but 0 blocking
-
-/obj/item/melee/transforming/energy/ctf/transform_messages(mob/living/user, supress_message_text)
+ if(active)
+ icon_state = "plasmasword_on"
playsound(user, active ? 'sound/weapons/SolGov_sword_arm.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE)
to_chat(user, "[src] [active ? "is now active":"can now be concealed"].")
+ return COMPONENT_NO_DEFAULT_MESSAGE
+
+/obj/item/melee/energy/ctf/solgov
+ armour_penetration = 40
+ active_force = 34 //desword grade, but 0 blocking
diff --git a/code/game/objects/items/melee/energyhalberd.dm b/code/game/objects/items/melee/energyhalberd.dm
index 8ae5cdd96f36..961325d50c16 100644
--- a/code/game/objects/items/melee/energyhalberd.dm
+++ b/code/game/objects/items/melee/energyhalberd.dm
@@ -26,7 +26,7 @@
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
- var/w_class_on = WEIGHT_CLASS_BULKY
+ var/active_w_class = WEIGHT_CLASS_BULKY
var/halberd_color = "green"
var/two_hand_force = 34
var/hacked = FALSE
@@ -46,7 +46,7 @@
to_chat(user, "You lack the grace to wield this!")
return COMPONENT_TWOHANDED_BLOCK_WIELD
sharpness = IS_SHARP
- w_class = w_class_on
+ w_class = active_w_class
hitsound = 'sound/weapons/blade1.ogg'
START_PROCESSING(SSobj, src)
set_light_on(TRUE)
@@ -129,7 +129,7 @@
return 1
/obj/item/energyhalberd/ignition_effect(atom/A, mob/user)
- // same as /obj/item/melee/transforming/energy, mostly
+ // same as /obj/item/melee/energy, mostly
if(!HAS_TRAIT(src, TRAIT_WIELDED))
return ""
var/in_mouth = ""
diff --git a/code/game/objects/items/melee/fireaxe.dm b/code/game/objects/items/melee/fireaxe.dm
index b3e04ac1bc3c..d58c48c5e4ff 100644
--- a/code/game/objects/items/melee/fireaxe.dm
+++ b/code/game/objects/items/melee/fireaxe.dm
@@ -2,6 +2,7 @@
icon = 'icons/obj/weapon/axe.dmi'
lefthand_file = 'icons/mob/inhands/weapons/axes_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/axes_righthand.dmi'
+ mob_overlay_icon = 'icons/mob/clothing/back.dmi'
force = 5
throwforce = 15
w_class = WEIGHT_CLASS_BULKY
@@ -12,15 +13,14 @@
max_integrity = 200
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30)
resistance_flags = FIRE_PROOF
- species_exception = list(/datum/species/kepori)
/obj/item/melee/axe/ComponentInitialize()
. = ..()
AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools
- AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="[base_icon_state]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="[base_icon_state]_w")
-/obj/item/fireaxe/update_icon_state()
- icon_state = "[base_icon_state]0"
+/obj/item/melee/axe/update_icon_state()
+ icon_state = "[base_icon_state]"
return ..()
/obj/item/melee/axe/afterattack(atom/A, mob/user, proximity)
@@ -35,13 +35,13 @@
/obj/item/melee/axe/fire // DEM AXES MAN, marker -Agouri
name = "fire axe"
desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?"
- icon_state = "fireaxe0"
+ icon_state = "fireaxe"
base_icon_state = "fireaxe"
/obj/item/melee/axe/bone // Blatant imitation of the fireaxe, but made out of bone.
name = "bone axe"
desc = "A large, vicious axe crafted out of several sharpened bone plates and crudely tied together. Made of monsters, by killing monsters, for killing monsters."
- icon_state = "bone_axe0"
+ icon_state = "bone_axe"
base_icon_state = "bone_axe"
/obj/item/melee/axe/scrap
@@ -51,4 +51,50 @@
/obj/item/melee/axe/scrap/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=22, icon_wielded="[base_icon_state]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=22, icon_wielded="[base_icon_state]_w")
+
+/*
+Blunt
+ */
+/obj/item/melee/axe/sledgehammer
+ icon_state = "sledgehammer"
+ base_icon_state = "sledgehammer"
+ name = "breaching sledgehammer"
+ desc = "A large hammer used by the Gorlex Marauder splinters. As powerful as a weapon as it is a shipbreaking and mining tool."
+ force = 5
+ armour_penetration = 40
+ attack_verb = list("bashed", "smashed", "crushed", "smacked")
+ hitsound = list('sound/weapons/genhit1.ogg', 'sound/weapons/genhit2.ogg', 'sound/weapons/genhit3.ogg')
+ slot_flags = ITEM_SLOT_BACK
+ sharpness = IS_BLUNT
+ toolspeed = 0.5
+ wall_decon_damage = MINERAL_WALL_INTEGRITY
+ usesound = list('sound/effects/picaxe1.ogg', 'sound/effects/picaxe2.ogg', 'sound/effects/picaxe3.ogg')
+ var/wielded = FALSE
+
+/obj/item/melee/axe/sledgehammer/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=30, icon_wielded="[base_icon_state]_w")
+
+/obj/item/melee/axe/sledgehammer/Initialize()
+ . = ..()
+ RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield))
+ RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield))
+
+/obj/item/melee/axe/sledgehammer/proc/on_wield(obj/item/source, mob/user)
+ SIGNAL_HANDLER
+
+ tool_behaviour = TOOL_MINING
+ wielded = TRUE
+
+/obj/item/melee/axe/sledgehammer/proc/on_unwield(obj/item/source, mob/user)
+ SIGNAL_HANDLER
+
+ tool_behaviour = null
+ wielded = FALSE
+
+/obj/item/melee/axe/sledgehammer/attack(mob/living/target, mob/living/user)
+ . = ..()
+ var/atom/throw_target = get_edge_target_turf(target, user.dir)
+ if(!target.anchored)
+ target.throw_at(throw_target, rand(1,2), 2, user, gentle = TRUE)
diff --git a/code/game/objects/items/melee/knife.dm b/code/game/objects/items/melee/knife.dm
index 83022e7125ff..b671018d6540 100644
--- a/code/game/objects/items/melee/knife.dm
+++ b/code/game/objects/items/melee/knife.dm
@@ -1,7 +1,8 @@
/obj/item/melee/knife
icon_state = "kitchenknife"
item_state = "kitchenknife"
- icon = 'icons/obj/weapon/knife.dmi'
+ icon = 'icons/obj/weapon/knives/knife.dmi'
+ world_file = 'icons/obj/weapon/knives/knife_world.dmi'
lefthand_file = 'icons/mob/inhands/weapons/knifes_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/knifes_righthand.dmi'
pickup_sound = 'sound/items/handling/knife1_pickup.ogg'
@@ -20,7 +21,6 @@
item_flags = EYE_STAB
tool_behaviour = TOOL_KNIFE
-
/obj/item/melee/knife/ComponentInitialize()
. = ..()
set_butchering()
@@ -161,10 +161,12 @@
icon_state = "switchblade"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
+ world_file = null
desc = "A sharp, concealable, spring-loaded knife."
flags_1 = CONDUCT_1
force = 3
w_class = WEIGHT_CLASS_SMALL
+ sharpness = IS_BLUNT
throwforce = 5
throw_speed = 3
throw_range = 6
@@ -172,31 +174,24 @@
hitsound = 'sound/weapons/genhit.ogg'
attack_verb = list("stubbed", "poked")
resistance_flags = FIRE_PROOF
- var/extended = 0
-
-/obj/item/melee/knife/switchblade/attack_self(mob/user)
- extended = !extended
- playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, TRUE)
- if(extended)
- force = 20
- w_class = WEIGHT_CLASS_NORMAL
- throwforce = 23
- icon_state = "switchblade_ext"
- attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
- hitsound = 'sound/weapons/bladeslice.ogg'
- sharpness = IS_SHARP
- else
- force = 3
- w_class = WEIGHT_CLASS_SMALL
- throwforce = 5
- icon_state = "switchblade"
- attack_verb = list("stubbed", "poked")
- hitsound = 'sound/weapons/genhit.ogg'
- sharpness = IS_BLUNT
+
+/obj/item/melee/knife/switchblade/ComponentInitialize()
+ . = ..()
+ AddComponent( \
+ /datum/component/transforming, \
+ force_on = 20, \
+ throwforce_on = 23, \
+ throw_speed_on = 4, \
+ sharpness_on = IS_SHARP, \
+ hitsound_on = 'sound/weapons/bladeslice.ogg', \
+ w_class_on = WEIGHT_CLASS_NORMAL, \
+ attack_verb_on = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut"), \
+ )
/obj/item/melee/knife/letter_opener
name = "letter opener"
icon = 'icons/obj/items.dmi'
+ world_file = null
icon_state = "letter_opener"
desc = "A military combat utility survival knife."
embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE)
diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm
index afb4bfe2ec33..13d4ac99fe18 100644
--- a/code/game/objects/items/melee/misc.dm
+++ b/code/game/objects/items/melee/misc.dm
@@ -5,11 +5,7 @@
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
var/projectile_block_chance = 0
-/obj/item/melee/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- if(attack_type == PROJECTILE_ATTACK)
- final_block_chance = projectile_block_chance //Don't bring a sword to a gunfight
- return ..()
-
+//cruft
/obj/item/melee/proc/check_martial_counter(mob/living/carbon/human/target, mob/living/carbon/human/user)
if(target.check_block())
target.visible_message("[target.name] blocks [src] and twists [user]'s arm behind [user.p_their()] back!",
@@ -17,6 +13,12 @@
user.Stun(40)
return TRUE
+//This is only pathed here because there is currently only melee using it, the second you want to add charged to something just make it /obj/item/get_cell()
+/obj/item/melee/get_cell()
+ var/datum/component/transforming/charged/charged_comp = GetComponent(/datum/component/transforming/charged)
+ if(charged_comp)
+ return charged_comp.cell
+
/obj/item/melee/chainofcommand
name = "chain of command"
desc = "A tool used by great men to placate the frothing masses."
@@ -101,8 +103,8 @@
attack_verb = list("beat", "smacked")
custom_materials = list(/datum/material/wood = MINERAL_MATERIAL_AMOUNT * 3.5)
w_class = WEIGHT_CLASS_HUGE
- var/homerun_ready = 0
- var/homerun_able = 0
+ var/homerun_ready = FALSE
+ var/homerun_able = FALSE
/obj/item/melee/baseball_bat/homerun
name = "home run bat"
diff --git a/code/game/objects/items/melee/spear.dm b/code/game/objects/items/melee/spear.dm
index 218638882bfb..4a7b8b789dc1 100644
--- a/code/game/objects/items/melee/spear.dm
+++ b/code/game/objects/items/melee/spear.dm
@@ -1,6 +1,6 @@
//spears
/obj/item/melee/spear
- icon_state = "spearglass0"
+ icon_state = "spearglass"
icon = 'icons/obj/weapon/spear.dmi'
lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/polearms_righthand.dmi'
@@ -26,10 +26,10 @@
. = ..()
AddComponent(/datum/component/butchering, 100, 70) //decent in a pinch, but pretty bad.
AddComponent(/datum/component/jousting)
- AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]_w")
/obj/item/melee/spear/update_icon_state()
- icon_state = "[icon_prefix]0"
+ icon_state = "[icon_prefix]"
return ..()
/obj/item/melee/spear/CheckParts(list/parts_list)
@@ -37,7 +37,7 @@
if (istype(tip, /obj/item/shard/plasma))
throwforce = 21
icon_prefix = "spearplasma"
- AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]_w")
update_appearance()
qdel(tip)
..()
@@ -46,9 +46,9 @@
* Bone Spear
*/
/obj/item/melee/spear/bone //Blatant imitation of spear, but made out of bone. Not valid for explosive modification.
- icon_state = "bone_spear0"
+ icon_state = "bone_spear"
name = "bone spear"
- base_icon_state = "bone_spear0"
+ base_icon_state = "bone_spear"
icon_prefix = "bone_spear"
desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology."
//this should be a plasma spear or worse.
@@ -57,11 +57,11 @@
/obj/item/melee/spear/bone/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]_w")
/obj/item/melee/spear/explosive
name = "explosive lance"
- icon_state = "spearbomb0"
+ icon_state = "spearbomb"
base_icon_state = "spearbomb"
icon_prefix = "spearbomb"
var/obj/item/grenade/explosive = null
@@ -73,7 +73,7 @@
/obj/item/melee/spear/explosive/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]_w")
/obj/item/melee/spear/explosive/proc/set_explosive(obj/item/grenade/G)
if(explosive)
diff --git a/code/game/objects/items/melee/stunbaton.dm b/code/game/objects/items/melee/stunbaton.dm
index 05225d80cff8..152bc76d5f80 100644
--- a/code/game/objects/items/melee/stunbaton.dm
+++ b/code/game/objects/items/melee/stunbaton.dm
@@ -23,7 +23,7 @@
var/can_remove_cell = TRUE
var/turned_on = FALSE
- var/activate_sound = "sparks"
+ var/activate_sound = SFX_SPARKS
var/attack_cooldown_check = 0 SECONDS
var/attack_cooldown = 2.5 SECONDS
@@ -99,7 +99,7 @@
/obj/item/melee/baton/update_icon_state()
if(turned_on)
- icon_state = "[initial(icon_state)]_active"
+ icon_state = "[initial(icon_state)]_on"
return ..()
if(!cell)
icon_state = "[initial(icon_state)]_nocell"
@@ -110,23 +110,23 @@
/obj/item/melee/baton/examine(mob/user)
. = ..()
if(cell)
- . += "\The [src] is [round(cell.percent())]% charged."
+ . += span_notice("\The [src] is [round(cell.percent())]% charged.")
else
- . += "\The [src] does not have a power source installed."
+ . += span_warning("\The [src] does not have a power source installed.")
/obj/item/melee/baton/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stock_parts/cell))
var/obj/item/stock_parts/cell/C = W
if(cell)
- to_chat(user, "[src] already has a cell!")
+ to_chat(user, span_notice("[src] already has a cell!"))
else
if(C.maxcharge < cell_hit_cost)
- to_chat(user, "[src] requires a higher capacity cell.")
+ to_chat(user, span_notice("[src] requires a higher capacity cell."))
return
if(!user.transferItemToLoc(W, src))
return
cell = W
- to_chat(user, "You install a cell in [src].")
+ to_chat(user, span_notice("You install a cell in [src]."))
update_appearance()
else if(W.tool_behaviour == TOOL_SCREWDRIVER)
@@ -139,7 +139,7 @@
cell.update_appearance()
cell.forceMove(get_turf(src))
cell = null
- to_chat(user, "You remove the cell from [src].")
+ to_chat(user, span_notice("You remove the cell from [src]."))
turned_on = FALSE
update_appearance()
@@ -149,22 +149,22 @@
/obj/item/melee/baton/proc/toggle_on(mob/user)
if(cell && cell.charge > cell_hit_cost)
turned_on = !turned_on
- to_chat(user, "[src] is now [turned_on ? "on" : "off"].")
+ to_chat(user, span_notice("[src] is now [turned_on ? "on" : "off"]."))
playsound(src, activate_sound, 75, TRUE, -1)
else
turned_on = FALSE
if(!cell)
- to_chat(user, "[src] does not have a power source!")
+ to_chat(user, span_warning("[src] does not have a power source!"))
else
- to_chat(user, "[src] is out of charge.")
+ to_chat(user, span_warning("[src] is out of charge."))
update_appearance()
add_fingerprint(user)
/obj/item/melee/baton/proc/clumsy_check(mob/living/carbon/human/user)
if(turned_on && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
playsound(src, stun_sound, 75, TRUE, -1)
- user.visible_message("[user] accidentally hits [user.p_them()]self with [src]!", \
- "You accidentally hit yourself with [src]!")
+ user.visible_message(span_danger("[user] accidentally hits [user.p_them()]self with [src]!"), \
+ span_userdanger("You accidentally hit yourself with [src]!"))
user.Knockdown(stun_time*3) //should really be an equivalent to attack(user,user)
deductcharge(cell_hit_cost)
return TRUE
@@ -191,10 +191,10 @@
user.do_attack_animation(M)
return
else
- to_chat(user, "The baton is still charging!")
+ to_chat(user, span_danger("The [src] is still charging!"))
else
- M.visible_message("[user] prods [M] with [src]. Luckily it was off.", \
- "[user] prods you with [src]. Luckily it was off.")
+ M.visible_message(span_warning("[user] prods [M] with [src]. Luckily it was off."), \
+ span_warning("[user] prods you with [src]. Luckily it was off."))
else
if(turned_on)
if(attack_cooldown_check <= world.time)
@@ -206,7 +206,7 @@
if(shields_blocked(L, user))
return FALSE
if(HAS_TRAIT_FROM(L, TRAIT_IWASBATONED, user)) //no doublebaton abuse anon!
- to_chat(user, "[L] manages to avoid the attack!")
+ to_chat(user, span_danger("[L] manages to avoid the attack!"))
return FALSE
if(iscyborg(loc))
var/mob/living/silicon/robot/R = loc
@@ -228,8 +228,8 @@
if(user)
L.lastattacker = user.real_name
L.lastattackerckey = user.ckey
- L.visible_message("[user] stuns [L] with [src]!", \
- "[user] stuns you with [src]!")
+ L.visible_message(span_danger("[user] stuns [L] with [src]!"), \
+ span_userdanger("[user] stuns you with [src]!"))
log_combat(user, L, "stunned")
playsound(src, stun_sound, 50, TRUE, -1)
@@ -245,7 +245,7 @@
/obj/item/melee/baton/proc/apply_stun_effect_end(mob/living/target)
var/trait_check = HAS_TRAIT(target, TRAIT_STUNRESISTANCE) //var since we check it in out to_chat as well as determine stun duration
if(!target.IsKnockdown())
- to_chat(target, "Your muscles seize, making you collapse[trait_check ? ", but your body quickly recovers..." : "!"]")
+ to_chat(target, span_warning("Your muscles seize, making you collapse[trait_check ? ", but your body quickly recovers..." : "!"]"))
if(trait_check)
target.Knockdown(stun_time * 0.1)
@@ -361,7 +361,7 @@
var/on_icon_state // What is our sprite when turned on
var/off_icon_state // What is our sprite when turned off
var/on_item_state // What is our in-hand sprite when turned on
- var/force_on // Damage when on - not stunning
+ var/active_force // Damage when on - not stunning
var/force_off // Damage when off - not stunning
var/weight_class_on // What is the new size class when turned on
@@ -373,8 +373,8 @@
/obj/item/melee/classic_baton/proc/get_on_description()
. = list()
- .["local_on"] = "You extend the baton."
- .["local_off"] = "You collapse the baton."
+ .["local_on"] = span_warning("You extend the baton.")
+ .["local_off"] = span_notice("You collapse the baton.")
return .
@@ -382,8 +382,8 @@
/obj/item/melee/classic_baton/proc/get_stun_description(mob/living/target, mob/living/user)
. = list()
- .["visible"] = "[user] knocks [target] down with [src]!"
- .["local"] = "[user] knocks you down with [src]!"
+ .["visible"] = span_danger("[user] knocks [target] down with [src]!")
+ .["local"] = span_userdanger("[user] knocks you down with [src]!")
return .
@@ -391,8 +391,8 @@
/obj/item/melee/classic_baton/proc/get_silicon_stun_description(mob/living/target, mob/living/user)
. = list()
- .["visible"] = "[user] pulses [target]'s sensors with the baton!"
- .["local"] = "You pulse [target]'s sensors with the baton!"
+ .["visible"] = span_danger("[user] pulses [target]'s sensors with the baton!")
+ .["local"] = span_danger("You pulse [target]'s sensors with the baton!")
return .
@@ -410,7 +410,7 @@
add_fingerprint(user)
if((HAS_TRAIT(user, TRAIT_CLUMSY)) && prob(50))
- to_chat(user, "You hit yourself over the head!")
+ to_chat(user, span_userdanger("You hit yourself over the head!"))
user.Paralyze(knockdown_time_carbon * force)
user.apply_damage(stamina_damage, STAMINA, BODY_ZONE_HEAD)
@@ -493,7 +493,7 @@
/obj/item/melee/classic_baton/telescopic
name = "telescopic baton"
desc = "A compact yet robust personal defense weapon. Can be concealed when folded."
- icon_state = "telebaton_0"
+ icon_state = "telebaton"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi'
item_state = null
@@ -504,10 +504,10 @@
on = FALSE
on_sound = 'sound/weapons/batonextend.ogg'
- on_icon_state = "telebaton_1"
- off_icon_state = "telebaton_0"
+ on_icon_state = "telebaton_on"
+ off_icon_state = "telebaton"
on_item_state = "nullrod"
- force_on = 10
+ active_force = 10
force_off = 0
weight_class_on = WEIGHT_CLASS_BULKY
@@ -520,7 +520,7 @@
icon_state = on_icon_state
item_state = on_item_state
w_class = weight_class_on
- force = force_on
+ force = active_force
attack_verb = list("smacked", "struck", "cracked", "beaten")
else
to_chat(user, desc["local_off"])
@@ -537,7 +537,7 @@
/obj/item/melee/classic_baton/telescopic/contractor_baton
name = "contractor baton"
desc = "A compact, specialised baton assigned to Syndicate contractors. Applies light electrical shocks to targets."
- icon_state = "contractor_baton_0"
+ icon_state = "contractor_baton"
item_state = null
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
@@ -550,15 +550,15 @@
on_sound = 'sound/weapons/contractorbatonextend.ogg'
on_stun_sound = 'sound/effects/contractorbatonhit.ogg'
- on_icon_state = "contractor_baton_1"
- off_icon_state = "contractor_baton_0"
+ on_icon_state = "contractor_baton_on"
+ off_icon_state = "contractor_baton"
on_item_state = "contractor_baton"
- force_on = 16
+ active_force = 16
force_off = 5
weight_class_on = WEIGHT_CLASS_NORMAL
/obj/item/melee/classic_baton/telescopic/contractor_baton/get_wait_description()
- return "The baton is still charging!"
+ return span_danger("The baton is still charging!")
/obj/item/melee/classic_baton/telescopic/contractor_baton/additional_effects_carbon(mob/living/target, mob/living/user)
target.Jitter(20)
diff --git a/code/game/objects/items/melee/sword.dm b/code/game/objects/items/melee/sword.dm
index ff384770a318..223a6c17f328 100644
--- a/code/game/objects/items/melee/sword.dm
+++ b/code/game/objects/items/melee/sword.dm
@@ -8,13 +8,22 @@
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK
w_class = WEIGHT_CLASS_BULKY
- obj_flags = UNIQUE_RENAME
- block_chance = 25
+ block_chance = 10
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
sharpness = IS_SHARP
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
+/obj/item/melee/sword/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/butchering, 30, 95, 5) //fast and effective, but as a sword, it might damage the results.
+
+//cruft
+/obj/item/melee/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
+ if(attack_type == PROJECTILE_ATTACK)
+ final_block_chance = projectile_block_chance //Don't bring a sword to a gunfight
+ return ..()
+
/obj/item/melee/sword/claymore
name = "claymore"
desc = "What are you standing around staring at this for? Get to killing!"
@@ -41,7 +50,7 @@
/obj/item/melee/sword/scrap
name = "scrap sword"
desc = "A jagged and painful weapon only effective on targets without an armour"
- icon_state = "machete0"
+ icon_state = "machete"
force = 24
throwforce = 10
armour_penetration = -35
@@ -50,7 +59,7 @@
/obj/item/melee/sword/mass
name = "mass produced machete"
desc = "A middle ground between a machete and a short sword. A simple construction of stamped steel but its so cheap its hard to complain. Its right between being a one hand and two handed weapon"
- icon_state = "machete0"
+ icon_state = "machete"
base_icon_state = "machete"
force = 20
throwforce = 15
@@ -58,7 +67,7 @@
/obj/item/melee/sword/mass/ComponentInitialize()
. = ..()
- AddComponent(/datum/component/two_handed, force_unwielded=20, force_wielded=22, icon_wielded="[base_icon_state]1")
+ AddComponent(/datum/component/two_handed, force_unwielded=20, force_wielded=22)
/obj/item/melee/sword/katana
name = "katana"
@@ -75,8 +84,8 @@
/obj/item/melee/sword/chainsaw
name = "sacred chainsaw sword"
desc = "Suffer not a heretic to live."
- icon_state = "chainswordon"
- item_state = "chainswordon"
+ icon_state = "chainsword_on"
+ item_state = "chainsword_on"
force = 15
throwforce = 10
armour_penetration = 25
@@ -99,10 +108,6 @@
hitsound = 'sound/weapons/rapierhit.ogg'
custom_materials = list(/datum/material/iron = 1000)
-/obj/item/melee/sword/sabre/Initialize()
- . = ..()
- AddComponent(/datum/component/butchering, 30, 95, 5) //fast and effective, but as a sword, it might damage the results.
-
/obj/item/melee/sword/sabre/on_enter_storage(datum/component/storage/concrete/S)
var/obj/item/storage/belt/sabre/B = S.real_location()
if(istype(B))
@@ -132,6 +137,13 @@
icon_state = "suns-swordstick"
item_state = "suns-swordstick"
+/obj/item/melee/sword/sabre/pgf
+ name = "\improper boarding cutlass"
+ desc = "When beam and bullet puncture the hull, a trustworthy blade will carry you through the fight"
+ icon_state = "pgf-sabre"
+ block_chance = 30
+ force = 22
+
/obj/item/melee/sword/sabre/suns/telescopic
name = "telescopic sabre"
desc = "A telescopic and retractable blade given to SUNS peacekeepers for easy concealment and carry. It's design makes it slightly less effective than normal sabres sadly, however it is still excelent at piercing armor."
@@ -145,50 +157,30 @@
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("smacked", "prodded")
- var/extended = FALSE
var/extend_sound = 'sound/weapons/batonextend.ogg'
- var/on_icon_state = "suns-tsword_ext"
- var/on_item_state = "suns-tsword_ext"
- var/off_icon_state = "suns-tsword"
- var/off_item_state = "suns-tsword"
-
- var/force_on = 10
- var/on_throwforce = 10
- var/on_blockchance = 40
-
- var/force_off = 0
- var/off_throwforce = 0
- var/off_blockchance = 0
-
- var/weight_class_on = WEIGHT_CLASS_BULKY
-
-/obj/item/melee/sword/sabre/suns/telescopic/attack_self(mob/user)
- extended = !extended
-
- if(extended)
- to_chat(user, "You extend the [src].")
- icon_state = on_icon_state
- item_state = on_item_state
- slot_flags = 0
- w_class = weight_class_on
- force = force_on
- throwforce = on_throwforce
- block_chance = on_blockchance
- attack_verb = list("slashed", "cut")
+ var/on_block_chance = 40
+
+/obj/item/melee/sword/sabre/suns/telescopic/ComponentInitialize()
+ . = ..()
+ AddComponent( \
+ /datum/component/transforming, \
+ force_on = 10, \
+ throwforce_on = 10, \
+ attack_verb_on = list("slashed", "cut"), \
+ w_class_on = WEIGHT_CLASS_BULKY, \
+ )
+ RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
+
+/obj/item/melee/sword/sabre/suns/telescopic/proc/on_transform(obj/item/source, mob/user, active)
+ SIGNAL_HANDLER
+
+ if(active)
+ block_chance = on_block_chance
else
- to_chat(user, "You collapse the [src].")
- icon_state = off_icon_state
- item_state = off_item_state
- slot_flags = ITEM_SLOT_BELT
- w_class = WEIGHT_CLASS_SMALL
- force = force_off
- throwforce = off_throwforce
- block_chance = off_blockchance
- attack_verb = list("smacked", "prodded")
-
- playsound(get_turf(src), extend_sound, 50, TRUE)
- add_fingerprint(user)
+ block_chance = initial(block_chance)
+ playsound(user, extend_sound, 50, TRUE)
+ return COMPONENT_NO_DEFAULT_MESSAGE
/obj/item/melee/sword/supermatter
name = "supermatter sword"
@@ -317,7 +309,7 @@
//HF blade
/obj/item/melee/sword/vibro
- icon_state = "hfrequency0"
+ icon_state = "hfrequency"
base_icon_state = "hfrequency"
lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
diff --git a/code/game/objects/items/melee/transforming.dm b/code/game/objects/items/melee/transforming.dm
deleted file mode 100644
index 8059e021b8f0..000000000000
--- a/code/game/objects/items/melee/transforming.dm
+++ /dev/null
@@ -1,88 +0,0 @@
-/obj/item/melee/transforming
- sharpness = IS_SHARP
- stealthy_audio = TRUE //Most of these are antag weps so we dont want them to be /too/ overt.
- var/active = FALSE
- var/force_on = 30 //force when active
- var/faction_bonus_force = 0 //Bonus force dealt against certain factions
- var/throwforce_on = 20
- var/icon_state_on = "axe1"
- var/hitsound_on = 'sound/weapons/blade1.ogg'
- var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
- var/list/attack_verb_off = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
- w_class = WEIGHT_CLASS_SMALL
- var/bonus_active = FALSE //If the faction damage bonus is active
- var/list/nemesis_factions //Any mob with a faction that exists in this list will take bonus damage/effects
- var/w_class_on = WEIGHT_CLASS_BULKY
- var/clumsy_check = TRUE
-
-/obj/item/melee/transforming/Initialize()
- . = ..()
- if(active)
- if(attack_verb_on.len)
- attack_verb = attack_verb_on
- else
- if(attack_verb_off.len)
- attack_verb = attack_verb_off
- if(embedding)
- updateEmbedding()
- if(sharpness)
- AddComponent(/datum/component/butchering, 50, 100, 0, hitsound)
-
-/obj/item/melee/transforming/attack_self(mob/living/carbon/user)
- if(transform_weapon(user))
- clumsy_transform_effect(user)
-
-/obj/item/melee/transforming/attack(mob/living/target, mob/living/carbon/human/user)
- var/nemesis_faction = FALSE
- if(LAZYLEN(nemesis_factions))
- for(var/F in target.faction)
- if(F in nemesis_factions)
- nemesis_faction = TRUE
- force += faction_bonus_force
- nemesis_effects(user, target)
- break
- . = ..()
- if(nemesis_faction)
- force -= faction_bonus_force
-
-/obj/item/melee/transforming/proc/transform_weapon(mob/living/user, supress_message_text)
- active = !active
- if(active)
- force = force_on
- throwforce = throwforce_on
- hitsound = hitsound_on
- throw_speed = 4
- if(attack_verb_on.len)
- attack_verb = attack_verb_on
- icon_state = icon_state_on
- w_class = w_class_on
- if(embedding)
- updateEmbedding()
- else
- force = initial(force)
- throwforce = initial(throwforce)
- hitsound = initial(hitsound)
- throw_speed = initial(throw_speed)
- if(attack_verb_off.len)
- attack_verb = attack_verb_off
- icon_state = initial(icon_state)
- w_class = initial(w_class)
- if(embedding)
- disableEmbedding()
-
- transform_messages(user, supress_message_text)
- add_fingerprint(user)
- return TRUE
-
-/obj/item/melee/transforming/proc/nemesis_effects(mob/living/user, mob/living/target)
- return
-
-/obj/item/melee/transforming/proc/transform_messages(mob/living/user, supress_message_text)
- playsound(user, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE) //changed it from 50% volume to 35% because deafness
- if(!supress_message_text)
- to_chat(user, "[src] [active ? "is now active":"can now be concealed"].")
-
-/obj/item/melee/transforming/proc/clumsy_transform_effect(mob/living/user)
- if(clumsy_check && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
- to_chat(user, "You accidentally cut yourself with [src], like a doofus!")
- user.take_bodypart_damage(5,5)
diff --git a/code/game/objects/items/melee/trickweapon.dm b/code/game/objects/items/melee/trickweapon.dm
new file mode 100644
index 000000000000..af574085a158
--- /dev/null
+++ b/code/game/objects/items/melee/trickweapon.dm
@@ -0,0 +1,69 @@
+/obj/item/melee/cleaving_saw
+ name = "cleaving saw"
+ desc = "This saw, effective at drawing the blood of beasts, transforms into a long cleaver that makes use of centrifugal force."
+ force = 12
+ var/active_force = 20 //force when active
+ throwforce = 20
+ var/active_throwforce = 20
+ icon = 'icons/obj/lavaland/artefacts.dmi'
+ lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
+ inhand_x_dimension = 64
+ inhand_y_dimension = 64
+ icon_state = "cleaving_saw"
+ item_state = "cleaving_saw"
+ slot_flags = ITEM_SLOT_BELT
+ attack_verb = list("attacked", "sawed", "sliced", "torn", "ripped", "diced", "cut")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ sharpness = IS_SHARP
+
+ var/transform_cooldown
+ var/swiping = FALSE
+ var/bleed_stacks_per_hit = 3
+
+/obj/item/melee/cleaving_saw/Initialize(mapload)
+ . = ..()
+ AddElement(/datum/element/update_icon_updates_onmob)
+ AddComponent(/datum/component/butchering, 50, 100, 0, hitsound)
+ AddComponent( \
+ /datum/component/transforming, \
+ transform_cooldown_time = (CLICK_CD_MELEE * 0.25), \
+ force_on = active_force, \
+ throwforce_on = active_throwforce, \
+ attack_verb_on = list("cleave", "swipe", "slash", "chop"), \
+ )
+ RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform))
+
+/obj/item/melee/cleaving_saw/examine(mob/user)
+ . = ..()
+ . += span_notice("It is [HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) ? "open, will cleave enemies in a wide arc and deal additional damage to fauna":"closed, and can be used for rapid consecutive attacks that cause fauna to bleed"].")
+ . += span_notice("Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.")
+ . += span_notice("Transforming it immediately after an attack causes the next attack to come out faster.")
+
+/obj/item/melee/cleaving_saw/proc/on_transform(obj/item/source, mob/user, active)
+ SIGNAL_HANDLER
+ user.changeNext_move(CLICK_CD_MELEE * 0.25)
+ if(user)
+ balloon_alert(user, "[active ? "opened" : "closed"] [src]")
+ playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000))
+ return COMPONENT_NO_DEFAULT_MESSAGE
+
+/obj/item/melee/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
+ . = ..()
+ if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE))
+ user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly
+
+/obj/item/melee/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
+ if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) || swiping || !target.density || get_turf(target) == get_turf(user))
+ ..()
+ else
+ var/turf/user_turf = get_turf(user)
+ var/dir_to_target = get_dir(user_turf, get_turf(target))
+ swiping = TRUE
+ var/static/list/cleaving_saw_cleave_angles = list(0, -45, 45) //so that the animation animates towards the target clicked and not towards a side target
+ for(var/i in cleaving_saw_cleave_angles)
+ var/turf/T = get_step(user_turf, turn(dir_to_target, i))
+ for(var/mob/living/L in T)
+ if(user.Adjacent(L) && L.density)
+ melee_attack_chain(user, L)
+ swiping = FALSE
diff --git a/code/game/objects/items/melee/weaponry.dm b/code/game/objects/items/melee/weaponry.dm
index 11c1b118570b..131e5e1aab20 100644
--- a/code/game/objects/items/melee/weaponry.dm
+++ b/code/game/objects/items/melee/weaponry.dm
@@ -75,7 +75,7 @@
/obj/item/throwing_star/magspear
name = "magnetic spear"
desc = "A reusable spear that is typically loaded into kinetic spearguns."
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "magspear"
throwforce = 25 //kills regular carps in one hit
force = 10
diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm
index 25476dd70ad8..e8e78e186031 100644
--- a/code/game/objects/items/miscellaneous.dm
+++ b/code/game/objects/items/miscellaneous.dm
@@ -122,7 +122,6 @@
new /obj/item/storage/belt/fannypack/bustin(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/clothing/shoes/jackboots(src)
- new /obj/item/clothing/under/color/khaki/buster(src)
new /obj/item/grenade/chem_grenade/ghostbuster(src)
new /obj/item/grenade/chem_grenade/ghostbuster(src)
new /obj/item/grenade/chem_grenade/ghostbuster(src)
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index a08b1398aad8..0882034b165a 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -31,13 +31,13 @@
/obj/item/pet_carrier/Exited(atom/movable/occupant)
. = ..()
- if(occupant in occupants && isliving(occupant))
+ if((occupant in occupants) && isliving(occupant))
var/mob/living/L = occupant
occupants -= occupant
occupant_weight -= L.mob_size
/obj/item/pet_carrier/handle_atom_del(atom/A)
- if(A in occupants && isliving(A))
+ if((A in occupants) && isliving(A))
var/mob/living/L = A
occupants -= L
occupant_weight -= L.mob_size
@@ -178,7 +178,7 @@
add_occupant(target)
/obj/item/pet_carrier/proc/add_occupant(mob/living/occupant)
- if(occupant in occupants || !istype(occupant))
+ if((occupant in occupants) || !istype(occupant))
return
occupant.forceMove(src)
occupants += occupant
diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm
index 4b16ee60942d..dd00d3abd1fd 100644
--- a/code/game/objects/items/plushes.dm
+++ b/code/game/objects/items/plushes.dm
@@ -863,43 +863,3 @@
var/mutable_appearance/base_overlay_among = mutable_appearance(icon, "plushie_among_visor")
base_overlay_among.appearance_flags = RESET_COLOR
add_overlay(base_overlay_among)
-
-/obj/effect/spawner/lootdrop/plushie
- loot = list (
- /obj/item/toy/plush/beeplushie,
- /obj/item/toy/plush/blahaj,
- /obj/item/toy/plush/carpplushie,
- /obj/item/toy/plush/flushed,
- /obj/item/toy/plush/kari,
- /obj/item/toy/plush/lizardplushie,
- /obj/item/toy/plush/mora,
- /obj/item/toy/plush/realgoat,
- /obj/item/toy/plush/rilena,
- /obj/item/toy/plush/sharai,
- /obj/item/toy/plush/slimeplushie,
- /obj/item/toy/plush/snakeplushie,
- /obj/item/toy/plush/spider,
- /obj/item/toy/plush/tali,
- /obj/item/toy/plush/xader,
- /obj/effect/spawner/lootdrop/plushie/moth // fair chances
- )
-
-/obj/effect/spawner/lootdrop/plushie/moth
- loot = list (
- /obj/item/toy/plush/moth,
- /obj/item/toy/plush/moth/monarch,
- /obj/item/toy/plush/moth/luna,
- /obj/item/toy/plush/moth/atlas,
- /obj/item/toy/plush/moth/redish,
- /obj/item/toy/plush/moth/royal,
- /obj/item/toy/plush/moth/gothic,
- /obj/item/toy/plush/moth/lovers,
- /obj/item/toy/plush/moth/whitefly,
- /obj/item/toy/plush/moth/punished,
- /obj/item/toy/plush/moth/firewatch,
- /obj/item/toy/plush/moth/deadhead,
- /obj/item/toy/plush/moth/poison,
- /obj/item/toy/plush/moth/ragged,
- /obj/item/toy/plush/moth/snow,
- /obj/item/toy/plush/moth/moonfly
- )
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 614b37ec4548..0b83489ed8c5 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -593,7 +593,7 @@
to_chat(user, "You [active? "activate":"deactivate"] [src].")
/obj/item/borg/projectile_dampen/update_icon_state()
- icon_state = "[initial(icon_state)][active]"
+ icon_state = "shield[active]"
return ..()
/obj/item/borg/projectile_dampen/proc/activate_field()
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 3194c1302512..6aba20463392 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -289,7 +289,6 @@
if(M.laws.id == DEFAULT_AI_LAWID)
O.make_laws()
- SSticker.mode.remove_antag_for_borging(B.mind)
O.job = "Cyborg"
O.cell = chest.cell
diff --git a/code/game/objects/items/sharpener.dm b/code/game/objects/items/sharpener.dm
index f9d429b55a3e..00217a8550a4 100644
--- a/code/game/objects/items/sharpener.dm
+++ b/code/game/objects/items/sharpener.dm
@@ -21,7 +21,7 @@
if(requires_sharpness && !I.get_sharpness())
to_chat(user, "You can only sharpen items that are already sharp, such as knives!")
return
- if(istype(I, /obj/item/melee/transforming/energy))
+ if(istype(I, /obj/item/melee/energy))
to_chat(user, "You don't think \the [I] will be the thing getting modified if you use it on \the [src]!")
return
diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm
index 685bfeae8a8a..a9051a5c24eb 100644
--- a/code/game/objects/items/shields.dm
+++ b/code/game/objects/items/shields.dm
@@ -27,6 +27,8 @@
transparent = TRUE
max_integrity = 75
material_flags = MATERIAL_NO_EFFECTS
+ ///Modifier for recoil when using a gun with this shield in the offhand
+ var/recoil_bonus = -2
/obj/item/shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(transparent && (hitby.pass_flags & PASSGLASS))
@@ -42,30 +44,32 @@
/obj/item/shield/riot/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/melee/baton))
if(cooldown < world.time - 25)
- user.visible_message("[user] bashes [src] with [W]!")
+ user.visible_message(span_warning("[user] bashes [src] with [W]!"))
playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, TRUE)
cooldown = world.time
else if(istype(W, /obj/item/stack/sheet/mineral/titanium))
if (obj_integrity >= max_integrity)
- to_chat(user, "[src] is already in perfect condition.")
+ to_chat(user, span_warning("[src] is already in perfect condition."))
else
var/obj/item/stack/sheet/mineral/titanium/T = W
T.use(1)
obj_integrity = max_integrity
- to_chat(user, "You repair [src] with [T].")
+ to_chat(user, span_notice("You repair [src] with [T]."))
else
return ..()
/obj/item/shield/riot/examine(mob/user)
. = ..()
+ if(recoil_bonus)
+ . += span_info("Firing a gun while holding this will brace against it, reducing the impact of recoil.")
var/healthpercent = round((obj_integrity/max_integrity) * 100, 1)
switch(healthpercent)
if(50 to 99)
- . += "It looks slightly damaged."
+ . += span_info("It looks slightly damaged.")
if(25 to 50)
- . += "It appears heavily damaged."
+ . += span_info("It appears heavily damaged.")
if(0 to 25)
- . += "It's falling apart!"
+ . += span_warning("It's falling apart!")
/obj/item/shield/riot/proc/shatter(mob/living/carbon/human/owner)
playsound(owner, 'sound/effects/glassbr3.ogg', 100)
@@ -97,6 +101,7 @@
block_chance = 0
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
max_integrity = 30
+ recoil_bonus = 0 //it's PLASTIC
/obj/item/shield/riot/roman/shatter(mob/living/carbon/human/owner)
playsound(owner, 'sound/effects/grillehit.ogg', 100)
@@ -115,6 +120,7 @@
transparent = FALSE
max_integrity = 55
w_class = WEIGHT_CLASS_NORMAL
+ recoil_bonus = -1
/obj/item/shield/riot/buckler/shatter(mob/living/carbon/human/owner)
playsound(owner, 'sound/effects/bang.ogg', 50)
diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm
index 959649c8c59b..8eb154baf74f 100644
--- a/code/game/objects/items/shrapnel.dm
+++ b/code/game/objects/items/shrapnel.dm
@@ -20,7 +20,7 @@
/obj/item/shrapnel/bullet // bullets
name = "bullet"
- icon = 'icons/obj/ammo_bullets.dmi'
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
icon_state = "pistol-brass"
item_flags = NONE
@@ -31,11 +31,42 @@
name = "\improper .38 DumDum bullet"
embedding = list(embed_chance=70, fall_chance=7, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=5, jostle_pain_mult=6, rip_time=10, embed_chance_turf_mod=-100)
+/obj/item/shrapnel/bullet/tracker
+ name = "\improper bullet tracker"
+ embedding = list(embed_chance=100, fall_chance=0, jostle_chance=1, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=1, jostle_pain_mult=2, rip_time=100, embed_chance_turf_mod=-100)
+ var/lifespan = 3000
+ var/gps_tag = "*TRAC"
+ var/timer_id
+
+/obj/item/shrapnel/bullet/tracker/Initialize()
+ . = ..()
+ timer_id = QDEL_IN(src, lifespan)
+ AddComponent(/datum/component/gps/item, gps_tag)
+
+/obj/item/shrapnel/bullet/tracker/Destroy()
+ deltimer(timer_id)
+ return ..()
+
+/obj/item/shrapnel/bullet/tracker/c38
+ name = ".38 Tracker"
+
+/obj/item/shrapnel/bullet/tracker/a8_50r
+ name = "8x50mm Tracker"
+
+/obj/item/shrapnel/bullet/tracker/a858
+ name = "8x58mm Tracker"
+
+/obj/item/shrapnel/bullet/tracker/a65clip
+ name = "6.5x57mm Tracker"
+
+/obj/item/shrapnel/bullet/tracker/a308
+ name = ".308 Tracker"
+
/obj/projectile/bullet/shrapnel
name = "flying shrapnel shard"
damage = 10
range = 10
- armour_penetration = -20
+ armour_penetration = -5
dismemberment = 25
ricochets_max = 2
ricochet_chance = 40
@@ -49,7 +80,7 @@
/obj/projectile/bullet/shrapnel/rusty
damage = 8
- armour_penetration = -35
+ armour_penetration = -10
dismemberment = 15
ricochets_max = 3//duller = less likely to stick in a wall
ricochet_chance = 60
@@ -115,3 +146,42 @@
/obj/projectile/bullet/pellet/stingball/on_ricochet(atom/A)
hit_stunned_targets = TRUE // ducking will save you from the first wave, but not the rebounds
+
+
+//claymore shrapnel stuff//
+//2 small bursts- one that harasses people passing by a bit aways, one that brutalizes point-blank targets.
+/obj/item/ammo_casing/caseless/shrapnel
+ name = "directional shrapnel burst :D"
+ desc = "I May Have Overreacted"
+ pellets = 5
+ variance = 70
+ projectile_type = /obj/projectile/bullet/shrapnel/claymore
+ randomspread = TRUE
+
+/obj/item/ammo_casing/caseless/shrapnel/shred
+ name = "point blank directional shrapnel burst"
+ desc = "Claymores are lethal to armored infantry at point blank range."
+ pellets = 4
+ variance = 50
+ projectile_type = /obj/projectile/bullet/shrapnel/claymore/pointbl
+ randomspread = TRUE
+
+/obj/projectile/bullet/shrapnel/claymore
+ name = "ceramic splinter"
+ range = 4
+ armour_penetration = 0
+
+/obj/projectile/bullet/shrapnel/claymore/pointbl
+ name = "large ceramic shard"
+ range = 2
+ damage = 18
+ dismemberment = 30
+ armour_penetration = 10
+
+/obj/item/ammo_casing/caseless/shrapnel/plasma
+ name = "directional plasma burst"
+ projectile_type = /obj/projectile/energy/plasmabolt
+
+/obj/item/ammo_casing/caseless/shrapnel/shred/plasma
+ name = "point blank directional plasma burst"
+ projectile_type = /obj/projectile/energy/plasmabolt/shred
diff --git a/code/game/objects/items/shuttle_creator.dm b/code/game/objects/items/shuttle_creator.dm
index 781020f87318..76927aabcd5c 100644
--- a/code/game/objects/items/shuttle_creator.dm
+++ b/code/game/objects/items/shuttle_creator.dm
@@ -1,5 +1,6 @@
-#define SHUTTLE_CREATOR_MAX_SIZE CONFIG_GET(number/max_shuttle_size)
-
+// [CELADON-EDIT] - subshuttles fix
+#define SHUTTLE_CREATOR_MAX_SIZE 100
+// [/CELADON-EDIT] - subshuttles fix
/obj/item/shuttle_creator
name = "Rapid Shuttle Designator"
icon = 'icons/obj/tools.dmi'
@@ -218,7 +219,6 @@
/obj/item/shuttle_creator/proc/check_current_area(mob/user)
var/static/area_or_turf_fail_types = typecacheof(list(
/turf/open/space,
- /area/shuttle
))
//Check to see if the user can make a new area to prevent spamming
if(user)
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index 10eb8c1e2cf8..8335a2d82737 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -4,16 +4,16 @@
icon = 'icons/obj/stack_objects.dmi'
amount = 6
max_amount = 6
- w_class = WEIGHT_CLASS_TINY
- full_w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
+ full_w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
throw_range = 7
resistance_flags = FLAMMABLE
max_integrity = 40
novariants = FALSE
item_flags = NOBLUDGEON
- var/splint_fracture = FALSE //WS Edit- Splints
- var/failure_chance //WS Edit - Failure chance
+ var/splint_fracture = FALSE
+ var/failure_chance
var/self_delay = 50
var/other_delay = 0
var/repeating = FALSE
@@ -117,9 +117,6 @@
grind_results = list(/datum/reagent/medicine/styptic_powder = 10)
/obj/item/stack/medical/bruise_pack/heal(mob/living/target, mob/user)
- if(target.stat == DEAD)
- to_chat(user, "[target] is dead! You can not help [target.p_them()].")
- return
if(isanimal(target))
var/mob/living/simple_animal/critter = target
if (!(critter.healable))
@@ -204,9 +201,6 @@
grind_results = list(/datum/reagent/medicine/silver_sulfadiazine = 10)
/obj/item/stack/medical/ointment/heal(mob/living/target, mob/user)
- if(target.stat == DEAD)
- to_chat(user, "[target] is dead! You can not help [target.p_them()].")
- return
if(iscarbon(target))
return heal_carbon(target, user, 0, heal_burn)
to_chat(user, "You can't heal [target] with the \the [src]!")
@@ -234,9 +228,6 @@
/obj/item/stack/medical/suture/heal(mob/living/target, mob/user)
. = ..()
- if(target.stat == DEAD)
- to_chat(user, "[target] is dead! You can not help [target.p_them()].")
- return
if(iscarbon(target))
return heal_carbon(target, user, heal_brute, 0)
if(isanimal(target))
@@ -281,9 +272,6 @@
/obj/item/stack/medical/mesh/heal(mob/living/target, mob/user)
. = ..()
- if(target.stat == DEAD)
- to_chat(user, "[target] is dead! You can not help [target.p_them()].")
- return
if(iscarbon(target))
return heal_carbon(target, user, 0, heal_burn)
to_chat(user, "You can't heal [target] with the \the [src]!")
@@ -347,9 +335,6 @@
/obj/item/stack/medical/aloe/heal(mob/living/target, mob/user)
. = ..()
- if(target.stat == DEAD)
- to_chat(user, "[target] is dead! You can not help [target.p_them()].")
- return FALSE
if(iscarbon(target))
return heal_carbon(target, user, heal, heal)
if(isanimal(target))
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 23a8c8d5e5f0..0930ec09cabe 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -143,7 +143,7 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
null, \
new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \
new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \
- new/datum/stack_recipe(" reinforced glass tile", /obj/item/stack/tile/glass/reinforced, 1, 4, 20), \
+ new/datum/stack_recipe("reinforced glass tile", /obj/item/stack/tile/glass/reinforced, 1, 4, 20), \
new/datum/stack_recipe("glass shard", /obj/item/shard, 1) \
))
@@ -282,7 +282,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
var/obj/item/stack/sheet/weld_material = /obj/item/stack/sheet/glass
embedding = list("embed_chance" = 65)
-/obj/item/shard/Initialize()
+/obj/item/shard/Initialize(mapload)
. = ..()
AddComponent(/datum/component/caltrop, force)
AddComponent(/datum/component/butchering, 150, 65)
@@ -300,17 +300,14 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
if (icon_prefix)
icon_state = "[icon_prefix][icon_state]"
- SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
+ if(!mapload)
+ SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
)
AddElement(/datum/element/connect_loc, loc_connections)
-/obj/item/shard/Destroy()
- . = ..()
- SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name)
-
/obj/item/shard/afterattack(atom/A as mob|obj, mob/user, proximity)
. = ..()
if(!proximity || !(src in user))
@@ -371,7 +368,7 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
playsound(src, 'sound/effects/glass_step.ogg', HAS_TRAIT(L, TRAIT_LIGHT_STEP) ? 30 : 50, TRUE)
/obj/item/shard/plasma
- name = "purple shard"
+ name = "plasmaglass shard"
desc = "A nasty looking shard of plasma glass."
force = 6
throwforce = 11
@@ -379,3 +376,13 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
icon_prefix = "plasma"
weld_material = /obj/item/stack/sheet/plasmaglass
+
+/obj/item/shard/plastitanium
+ name = "plastitanium glass shard"
+ desc = "A nasty looking shard of plastitanium glass."
+ force = 6
+ throwforce = 11
+ icon_state = "plastitaniumlarge"
+ custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT)
+ icon_prefix = "plastitanium"
+ weld_material = /obj/item/stack/sheet/plastitaniumglass
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 4bbb67267b70..6eefdcf349b7 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -11,14 +11,6 @@
singular_name = "human skin piece"
novariants = FALSE
-GLOBAL_LIST_INIT(human_recipes, list( \
- new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5), \
- ))
-
-/obj/item/stack/sheet/animalhide/human/get_main_recipes()
- . = ..()
- . += GLOB.human_recipes
-
/obj/item/stack/sheet/animalhide/generic
name = "skin"
desc = "A piece of skin."
@@ -32,12 +24,6 @@ GLOBAL_LIST_INIT(human_recipes, list( \
icon_state = "sheet-corgi"
item_state = "sheet-corgi"
-
-GLOBAL_LIST_INIT(gondola_recipes, list ( \
- new/datum/stack_recipe("gondola mask", /obj/item/clothing/mask/gondola, 1), \
- new/datum/stack_recipe("gondola suit", /obj/item/clothing/under/costume/gondola, 2), \
- ))
-
/obj/item/stack/sheet/animalhide/mothroach
name = "mothroach hide"
desc = "A thin layer of mothroach hide."
@@ -53,10 +39,6 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \
icon_state = "sheet-gondola"
item_state = "sheet-gondola"
-/obj/item/stack/sheet/animalhide/gondola/get_main_recipes()
- . = ..()
- . += GLOB.gondola_recipes
-
/obj/item/stack/sheet/animalhide/cat
name = "cat hide"
desc = "The by-product of cat farming."
diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm
index acbf6ce36ff4..ebb54224becd 100644
--- a/code/game/objects/items/stacks/sheets/mineral.dm
+++ b/code/game/objects/items/stacks/sheets/mineral.dm
@@ -26,7 +26,6 @@ Mineral Sheets
GLOBAL_LIST_INIT(sandstone_recipes, list ( \
new/datum/stack_recipe("pile of dirt", /obj/machinery/hydroponics/soil, 3, time = 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("sandstone door", /obj/structure/mineral_door/sandstone, 10, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Assistant Statue", /obj/structure/statue/sandstone/assistant, 5, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("Breakdown into sand", /obj/item/stack/ore/glass, 1, one_per_turf = 0, on_floor = 1) \
))
@@ -75,7 +74,7 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \
name = "empty sandbag"
desc = "A bag to be filled with sand."
icon_state = "sandbag"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
/obj/item/emptysandbag/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/ore/glass))
@@ -108,9 +107,6 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \
GLOBAL_LIST_INIT(diamond_recipes, list ( \
new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("diamond tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \
- new/datum/stack_recipe("Captain Statue", /obj/structure/statue/diamond/captain, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("AI Hologram Statue", /obj/structure/statue/diamond/ai1, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("AI Core Statue", /obj/structure/statue/diamond/ai2, 5, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/sheet/mineral/diamond/get_main_recipes()
@@ -146,7 +142,6 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \
new/datum/stack_recipe("Nuke Statue", /obj/structure/statue/uranium/nuke, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Engineer Statue", /obj/structure/statue/uranium/eng, 5, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/sheet/mineral/uranium/get_main_recipes()
@@ -186,7 +181,6 @@ GLOBAL_LIST_INIT(uranium_recipes, list ( \
GLOBAL_LIST_INIT(plasma_recipes, list ( \
new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \
- new/datum/stack_recipe("Scientist Statue", /obj/structure/statue/plasma/scientist, 5, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/sheet/mineral/plasma/get_main_recipes()
@@ -240,12 +234,7 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \
new/datum/stack_recipe("chemical crate", /obj/structure/closet/crate/chem, 1, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("gold tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \
new/datum/stack_recipe("blank plaque", /obj/item/plaque, 1), \
- new/datum/stack_recipe("HoS Statue", /obj/structure/statue/gold/hos, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("HOP Statue", /obj/structure/statue/gold/head_of_personnel, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("CE Statue", /obj/structure/statue/gold/ce, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("RD Statue", /obj/structure/statue/gold/rd, 5, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \
- new/datum/stack_recipe("CMO Statue", /obj/structure/statue/gold/cmo, 5, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/sheet/mineral/gold/get_main_recipes()
@@ -296,11 +285,6 @@ GLOBAL_LIST_INIT(gold_recipes, list ( \
GLOBAL_LIST_INIT(silver_recipes, list ( \
new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("silver tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \
- new/datum/stack_recipe("Med Officer Statue", /obj/structure/statue/silver/md, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Janitor Statue", /obj/structure/statue/silver/janitor, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Sec Officer Statue", /obj/structure/statue/silver/sec, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Sec Borg Statue", /obj/structure/statue/silver/secborg, 5, one_per_turf = 1, on_floor = 1), \
- new/datum/stack_recipe("Med Borg Statue", /obj/structure/statue/silver/medborg, 5, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/sheet/mineral/silver/get_main_recipes()
diff --git a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm
index 93d7b9f0fcdf..894660914004 100644
--- a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm
+++ b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm
@@ -225,7 +225,6 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
null, \
new/datum/stack_recipe("firelock frame (fulltile)", /obj/structure/firelock_frame, 3, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("firelock frame (directional)", /obj/structure/firelock_frame/border, 1, time = 25, on_floor = TRUE), \
- new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \
null, \
@@ -242,7 +241,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
null, \
new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("voting box", /obj/structure/votebox, 15, time = 50), \
+ new/datum/stack_recipe("voting box", /obj/structure/votebox, 5, time = 50), \
new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar/metal, 3), \
new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \
new/datum/stack_recipe("hygienebot assembly", /obj/item/bot_assembly/hygienebot, 2, time = 50), \
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index a1416af6fcf8..b881f86647f2 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -7,7 +7,6 @@
* Plastic
* Cardboard
* Paper Frames
- * Runed Metal (cult)
* Bronze (bake brass)
*/
@@ -134,6 +133,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
new/datum/stack_recipe("dresser", /obj/structure/dresser, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\
new/datum/stack_recipe("painting frame", /obj/item/wallframe/painting, 1, time = 10),\
+ new/datum/stack_recipe("easel", /obj/structure/easel, 4, time = 10),\
new/datum/stack_recipe("display case chassis", /obj/structure/displaycase_chassis, 5, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("wooden buckler", /obj/item/shield/riot/buckler, 20, time = 40), \
new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\
@@ -143,6 +143,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
new/datum/stack_recipe("rake", /obj/item/cultivator/rake, 5, time = 10),\
new/datum/stack_recipe("ore box", /obj/structure/ore_box, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE),\
new/datum/stack_recipe("wooden crate", /obj/structure/closet/crate/wooden, 6, time = 50, one_per_turf = TRUE, on_floor = TRUE),\
+ new/datum/stack_recipe("wooden cabinet", /obj/structure/closet/cabinet, 10, time = 50, one_per_turf = TRUE, on_floor = TRUE),\
new/datum/stack_recipe("baseball bat", /obj/item/melee/baseball_bat, 5, time = 15),\
new/datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \
@@ -361,8 +362,6 @@ GLOBAL_LIST_INIT(durathread_recipes, list ( \
*/
GLOBAL_LIST_INIT(cardboard_recipes, list ( \
new/datum/stack_recipe("box", /obj/item/storage/box), \
- new/datum/stack_recipe("cardborg suit", /obj/item/clothing/suit/cardborg, 3), \
- new/datum/stack_recipe("cardborg helmet", /obj/item/clothing/head/cardborg), \
new/datum/stack_recipe("large box", /obj/structure/closet/cardboard, 4, one_per_turf = TRUE, on_floor = TRUE), \
new/datum/stack_recipe("cardboard cutout", /obj/item/cardboard_cutout, 5), \
null, \
@@ -471,7 +470,6 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
// [/CELADON-ADD]
null,
new/datum/stack_recipe("bronze chair", /obj/structure/chair/comfy/shuttle/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
- new/datum/stack_recipe("Marx Bust", /obj/structure/statue/bronze/marx, 15, one_per_turf = 1, on_floor = 1), \
))
/obj/item/stack/tile/bronze
diff --git a/code/game/objects/items/storage/ammo_can.dm b/code/game/objects/items/storage/ammo_can.dm
new file mode 100644
index 000000000000..e619aced0692
--- /dev/null
+++ b/code/game/objects/items/storage/ammo_can.dm
@@ -0,0 +1,69 @@
+//No idea why this is a toolbox but I'm not fixing that right now
+/obj/item/storage/toolbox/ammo
+ name = "ammo can"
+ desc = "A metal container for storing multiple boxes of ammunition or grenades."
+ icon_state = "ammobox"
+ item_state = "ammobox"
+ drop_sound = 'sound/items/handling/ammobox_drop.ogg'
+ pickup_sound = 'sound/items/handling/ammobox_pickup.ogg'
+ material_flags = NONE
+ has_latches = FALSE
+ w_class = WEIGHT_CLASS_BULKY
+
+/obj/item/storage/toolbox/ammo/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_volume = STORAGE_VOLUME_BACKPACK
+ STR.max_w_class = MAX_WEIGHT_CLASS_BACKPACK
+ STR.set_holdable(list(
+ /obj/item/storage/box/ammo,
+ /obj/item/mine,
+ /obj/item/grenade,
+ /obj/item/ammo_casing/caseless/rocket,
+ /obj/item/ammo_box/magazine/ammo_stack,
+ /obj/item/ammo_casing,
+ /obj/item/mine,
+ /obj/item/grenade
+ ))
+
+/obj/item/storage/toolbox/ammo/a850r/PopulateContents()
+ name = "ammo can (8x50mmR)"
+ icon_state = "ammobox_850"
+ for(var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a8_50r(src)
+
+/obj/item/storage/toolbox/ammo/a762_40/PopulateContents()
+ name = "ammo can (7.62x40mm CLIP)"
+ icon_state = "ammobox_762"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a762_40(src)
+
+/obj/item/storage/toolbox/ammo/a308/PopulateContents()
+ name = "ammo can (.308)"
+ icon_state = "ammobox_308"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a308(src)
+
+/obj/item/storage/toolbox/ammo/c45/PopulateContents()
+ name = "ammo can (.45)"
+ icon_state = "ammobox_45"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c45(src)
+
+/obj/item/storage/toolbox/ammo/c9mm/PopulateContents()
+ name = "ammo can (9mm)"
+ icon_state = "ammobox_9mm"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c9mm(src)
+
+/obj/item/storage/toolbox/ammo/c10mm/PopulateContents()
+ name = "ammo can (10mm)"
+ icon_state = "ammobox_10mm"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/c10mm(src)
+
+/obj/item/storage/toolbox/ammo/shotgun/PopulateContents()
+ name = "ammo can (12ga)"
+ icon_state = "ammobox_12ga"
+ for (var/i in 1 to 4)
+ new /obj/item/storage/box/ammo/a12g_buckshot(src)
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 1c35a27df1ac..1242d6191061 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -483,7 +483,6 @@
desc = "A large duffel bag for holding extra tactical supplies."
icon_state = "duffel-syndie"
item_state = "duffel-syndieammo"
- slowdown = 0
resistance_flags = FIRE_PROOF
/obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize()
@@ -597,7 +596,7 @@
new /obj/item/clothing/shoes/magboots/syndie(src)
new /obj/item/storage/firstaid/tactical(src)
new /obj/item/gun/ballistic/automatic/toy(src)
- new /obj/item/ammo_box/foambox/riot(src)
+ new /obj/item/storage/box/ammo/foam_darts/riot(src)
/obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle
desc = "A large duffel bag containing deadly chemicals, a handheld chem sprayer, Bioterror foam grenade, a Donksoft assault rifle, box of riot grade darts, a dart pistol, and a box of syringes."
@@ -608,7 +607,7 @@
new /obj/item/gun/syringe/syndicate(src)
new /obj/item/gun/ballistic/automatic/toy(src)
new /obj/item/storage/box/syringes(src)
- new /obj/item/ammo_box/foambox/riot(src)
+ new /obj/item/storage/box/ammo/foam_darts/riot(src)
new /obj/item/grenade/chem_grenade/bioterrorfoam(src)
if(prob(5))
new /obj/item/reagent_containers/food/snacks/pizza/pineapple(src)
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index ecee3894ccbb..cfe07df070ba 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -407,7 +407,7 @@
))
/*
- * Biowaste bag (mostly for xenobiologists)
+ * Biowaste bag
*/
/obj/item/storage/bag/bio
@@ -424,7 +424,6 @@
STR.max_items = 20
STR.insert_preposition = "in"
STR.set_holdable(list(
- /obj/item/slime_extract,
/obj/item/reagent_containers/syringe,
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/glass/beaker,
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 54ccfc301e9c..3247ceb443cd 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -87,7 +87,6 @@
/obj/item/storage/belt/utility/chief/full/PopulateContents()
new /obj/item/screwdriver/power(src)
new /obj/item/crowbar/power(src)
- new /obj/item/weldingtool/experimental(src)//This can be changed if this is too much
new /obj/item/multitool(src)
new /obj/item/stack/cable_coil(src,MAXCOIL,pick("red","yellow","orange"))
new /obj/item/extinguisher/mini(src)
@@ -143,7 +142,6 @@
/obj/item/storage/belt/utility/full/ert/PopulateContents()
new /obj/item/screwdriver/power(src)
new /obj/item/crowbar/power(src)
- new /obj/item/weldingtool/experimental(src)
new /obj/item/multitool(src)
new /obj/item/construction/rcd/combat(src)
new /obj/item/extinguisher/mini(src)
@@ -259,6 +257,15 @@
new /obj/item/hypospray/mkii(src)
update_appearance()
+/obj/item/storage/belt/medical/webbing/combat/PopulateContents()
+ . = ..()
+ new /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor(src)
+ new /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor(src)
+ new /obj/item/reagent_containers/medigel/silver_sulf(src)
+ new /obj/item/reagent_containers/medigel/styptic(src)
+ new /obj/item/stack/medical/gauze/twelve(src)
+ new /obj/item/stack/medical/splint(src)
+
/obj/item/storage/belt/security
name = "security belt"
desc = "Can hold security gear like handcuffs and flashes."
@@ -285,7 +292,6 @@
/obj/item/ammo_box/magazine,
/obj/item/ammo_box/c38, //speed loaders don't have a common path like magazines. pain.
/obj/item/ammo_box/a357, //some day we should refactor these into an ammo_box/speedloader type
- /obj/item/ammo_box/a4570, //but not today
/obj/item/ammo_box/a858, //oh boy stripper clips too
/obj/item/ammo_box/vickland_a308,
/obj/item/ammo_box/a300,
@@ -299,7 +305,8 @@
/obj/item/clothing/gloves,
/obj/item/restraints/legcuffs/bola,
/obj/item/holosign_creator/security,
- /obj/item/stock_parts/cell/gun //WS edit Gun cells fit where they should and not where they dont
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/ammo_box/magazine/ammo_stack, //handfuls of bullets
))
/obj/item/storage/belt/security/full/PopulateContents()
@@ -323,10 +330,12 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
-/obj/item/storage/belt/security/webbing/bulldog/PopulateContents()
+/obj/item/storage/belt/security/webbing/bulldog_mixed/PopulateContents()
. = ..()
- for(var/i in 1 to 3)
- new /obj/item/ammo_box/magazine/m12g_bulldog/drum(src)
+ new /obj/item/ammo_box/magazine/m12g_bulldog/drum/bioterror(src) // you only get ONE this one is nasty
+ new /obj/item/ammo_box/magazine/m12g_bulldog/drum/slug(src)
+ new /obj/item/ammo_box/magazine/m12g_bulldog/drum/slug(src)
+ new /obj/item/ammo_box/magazine/m12g_bulldog/drum(src)
/obj/item/storage/belt/mining
name = "explorer's webbing"
@@ -405,32 +414,6 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 5
-/obj/item/storage/belt/soulstone
- name = "soul stone belt"
- desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away."
- icon_state = "soulstone"
- item_state = "soulstone"
-
-/obj/item/storage/belt/soulstone/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 6
- STR.set_holdable(list(
- /obj/item/soulstone
- ))
-
-/obj/item/storage/belt/soulstone/full/PopulateContents()
- for(var/i in 1 to 6)
- new /obj/item/soulstone(src)
-
-/obj/item/storage/belt/soulstone/full/chappy/PopulateContents()
- for(var/i in 1 to 6)
- new /obj/item/soulstone/anybody/chaplain(src)
-
-/obj/item/storage/belt/soulstone/full/purified/PopulateContents()
- for(var/i in 1 to 6)
- new /obj/item/soulstone/anybody/purified(src)
-
/obj/item/storage/belt/champion
name = "championship belt"
desc = "Proves to the world that you are the strongest!"
@@ -479,16 +462,30 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_w_class = WEIGHT_CLASS_SMALL
-/obj/item/storage/belt/military/c20r/PopulateContents()
+/obj/item/storage/belt/military/cobra/PopulateContents()
. = ..()
for(var/i in 1 to 4)
new /obj/item/ammo_box/magazine/m45_cobra(src)
-/obj/item/storage/belt/military/assault/m90/PopulateContents()
+/obj/item/storage/belt/military/hydra/PopulateContents()
. = ..()
for(var/i in 1 to 4)
new /obj/item/ammo_box/magazine/m556_42_hydra(src)
+/obj/item/storage/belt/military/boomslang/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/boomslang(src)
+
+/obj/item/storage/belt/military/mako/PopulateContents()
+ . = ..()
+ new /obj/item/ammo_casing/caseless/rocket/a70mm/hedp(src)
+ new /obj/item/ammo_casing/caseless/rocket/a70mm/hedp(src)
+ new /obj/item/ammo_casing/caseless/rocket/a70mm(src)
+ new /obj/item/ammo_casing/caseless/rocket/a70mm(src)
+ new /obj/item/ammo_casing/caseless/rocket/a70mm(src)
+ new /obj/item/ammo_casing/caseless/rocket/a70mm(src)
+
/obj/item/storage/belt/military/snack
name = "tactical snack rig"
@@ -572,6 +569,22 @@
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 6
+/obj/item/storage/belt/military/assault/hydra/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/m556_42_hydra(src)
+
+/obj/item/storage/belt/military/assault/sniper/PopulateContents()
+ . = ..()
+ new /obj/item/ammo_box/magazine/sniper_rounds(src)
+ new /obj/item/ammo_box/magazine/sniper_rounds(src)
+ new /obj/item/ammo_box/magazine/sniper_rounds/penetrator(src)
+
+/obj/item/storage/belt/military/assault/commander/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/co9mm(src)
+
/obj/item/storage/belt/grenade
name = "grenadier belt"
desc = "A belt for holding grenades."
@@ -590,7 +603,7 @@
/obj/item/screwdriver,
/obj/item/lighter,
/obj/item/multitool,
- /obj/item/reagent_containers/food/drinks/bottle/molotov,
+ /obj/item/reagent_containers/food/drinks/molotov,
/obj/item/grenade/c4,
/obj/item/reagent_containers/food/snacks/grown/cherry_bomb,
/obj/item/reagent_containers/food/snacks/grown/firelemon
@@ -777,6 +790,7 @@
item_state = "sheath"
base_icon_state = "sheath"
w_class = WEIGHT_CLASS_BULKY
+ var/sabre_type = /obj/item/melee/sword/sabre
/obj/item/storage/belt/sabre/ComponentInitialize()
. = ..()
@@ -786,7 +800,7 @@
STR.use_sound = null //if youre wondering why this is null, its so you can look in your sheath to prepare to draw, without letting anyone know youre preparing to draw it
STR.max_w_class = WEIGHT_CLASS_BULKY
STR.set_holdable(list(
- /obj/item/melee/sword/sabre
+ sabre_type
))
/obj/item/storage/belt/sabre/examine(mob/user)
@@ -814,7 +828,7 @@
return ..()
/obj/item/storage/belt/sabre/PopulateContents()
- new /obj/item/melee/sword/sabre(src)
+ new sabre_type(src)
update_appearance()
/obj/item/storage/belt/sabre/solgov
@@ -824,21 +838,7 @@
icon_state = "sheath-solgov"
item_state = "sheath-solgov"
w_class = WEIGHT_CLASS_BULKY
-
-/obj/item/storage/belt/sabre/solgov/ComponentInitialize()
- AddComponent(component_type)
- AddElement(/datum/element/update_icon_updates_onmob)
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 1
- STR.use_sound = null
- STR.max_w_class = WEIGHT_CLASS_BULKY
- STR.set_holdable(list(
- /obj/item/melee/sword/sabre/solgov
- ))
-
-/obj/item/storage/belt/sabre/solgov/PopulateContents()
- new /obj/item/melee/sword/sabre/solgov(src)
- update_appearance()
+ sabre_type = /obj/item/melee/sword/sabre/solgov
/obj/item/storage/belt/sabre/suns
name = "SUNS sabre sheath"
@@ -853,22 +853,7 @@
icon_state = "suns-sheath"
item_state = "suns-sheath"
w_class = WEIGHT_CLASS_BULKY
-
-/obj/item/storage/belt/sabre/suns/ComponentInitialize()
- AddComponent(component_type)
- AddElement(/datum/element/update_icon_updates_onmob)
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 1
- STR.use_sound = null
- STR.max_w_class = WEIGHT_CLASS_BULKY
- STR.set_holdable(list(
- /obj/item/melee/sword/sabre/suns
- ))
-
-/obj/item/storage/belt/sabre/suns/PopulateContents()
- new /obj/item/melee/sword/sabre/suns(src)
- update_appearance()
-
+ sabre_type = /obj/item/melee/sword/sabre/suns
/obj/item/storage/belt/sabre/suns/captain
name = "SUNS captain's sabre sheath"
@@ -878,21 +863,7 @@
icon_state = "suns-capsheath"
item_state = "suns-capsheath"
w_class = WEIGHT_CLASS_BULKY
-
-/obj/item/storage/belt/sabre/suns/captain/ComponentInitialize()
- AddComponent(component_type)
- AddElement(/datum/element/update_icon_updates_onmob)
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 1
- STR.use_sound = null
- STR.max_w_class = WEIGHT_CLASS_BULKY
- STR.set_holdable(list(
- /obj/item/melee/sword/sabre/suns/captain
- ))
-
-/obj/item/storage/belt/sabre/suns/captain/PopulateContents()
- new /obj/item/melee/sword/sabre/suns/captain(src)
- update_appearance()
+ sabre_type = /obj/item/melee/sword/sabre/suns/captain
/obj/item/storage/belt/sabre/suns/cmo
name = "SUNS cane sheath"
@@ -908,21 +879,15 @@
icon_state = "suns-cane"
item_state = "suns-cane"
w_class = WEIGHT_CLASS_BULKY
+ sabre_type = /obj/item/melee/sword/sabre/suns/cmo
-/obj/item/storage/belt/sabre/suns/cmo/ComponentInitialize()
- AddComponent(component_type)
- AddElement(/datum/element/update_icon_updates_onmob)
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 1
- STR.use_sound = null
- STR.max_w_class = WEIGHT_CLASS_BULKY
- STR.set_holdable(list(
- /obj/item/melee/sword/sabre/suns/cmo
- ))
-
-/obj/item/storage/belt/sabre/suns/cmo/PopulateContents()
- new /obj/item/melee/sword/sabre/suns/cmo(src)
- update_appearance()
+/obj/item/storage/belt/sabre/pgf
+ name = "cutlass sheath"
+ desc = "A mass produced thermoplastic-leather sheath made to hold a boarding cutlass."
+ base_icon_state = "sheath-pgf"
+ icon_state = "sheath-pgf"
+ item_state = "sheath-pgf"
+ sabre_type = /obj/item/melee/sword/sabre/pgf
/obj/item/storage/belt/security/webbing/inteq
name = "inteq webbing"
@@ -936,8 +901,18 @@
for(var/i in 1 to 4)
new /obj/item/ammo_box/magazine/skm_762_40(src)
+/obj/item/storage/belt/security/webbing/inteq/skm_carabine/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/smgm10mm(src)
+
/obj/item/storage/belt/security/webbing/inteq/alt
name = "inteq drop pouch harness"
desc = "A harness with a bunch of pouches attached to them emblazoned in the colors of the IRMG, can hold security gear."
icon_state = "inteq_droppouch"
item_state = "inteq_droppouch"
+
+/obj/item/storage/belt/security/webbing/inteq/alt/bulldog/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/m12g_bulldog(src)
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 43f47d2b53ff..498fdc630585 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -41,6 +41,11 @@
/obj/item/storage/box/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ // [CELADON-EDIT]
+ //STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT
+ //STR.max_volume = STORAGE_VOLUME_CONTAINER_S
+ //STR.max_w_class = WEIGHT_CLASS_SMALL
+ // [/CELADON-EDIT]
STR.use_sound = 'sound/items/storage/briefcase.ogg'
/obj/item/storage/box/update_overlays()
@@ -99,6 +104,14 @@
for(var/i in 1 to 7)
new /obj/item/disk/data(src)
+/obj/item/storage/box/holodisc
+ name = "holodisc box"
+ illustration = "disk_kit"
+
+/obj/item/storage/box/holodisc/PopulateContents()
+ for(var/i in 1 to 7)
+ new /obj/item/disk/holodisk(src)
+
//guys why are my tests failing
/obj/item/storage/box/disks_plantgene
name = "plant data disks box"
@@ -158,7 +171,7 @@
// Security survival box
/obj/item/storage/box/survival/security
- mask_type = /obj/item/clothing/mask/gas/sechailer
+ mask_type = /obj/item/clothing/mask/gas
// Medical survival box
/obj/item/storage/box/survival/medical
@@ -168,9 +181,13 @@
internal_type = /obj/item/tank/internals/emergency_oxygen/engi //clip actually cares about their personnel
/obj/item/storage/box/survival/clip/balaclava
- mask_type = /obj/item/clothing/mask/gas/sechailer/balaclava
+ mask_type = /obj/item/clothing/mask/balaclava
internal_type = /obj/item/tank/internals/emergency_oxygen/double
+/obj/item/storage/box/survival/inteq
+ mask_type = /obj/item/clothing/mask/balaclava/inteq
+ internal_type = /obj/item/tank/internals/emergency_oxygen/engi
+
/obj/item/storage/box/survival/frontier
mask_type = null // we spawn in gas masks in frontiersmen bags alongside this, so it isn't nessary
internal_type = /obj/item/tank/internals/emergency_oxygen //frontiersmen dont
@@ -472,15 +489,15 @@
icon_state = "donkpocketbox"
illustration=null
var/donktype = /obj/item/reagent_containers/food/snacks/donkpocket
-
-/obj/item/storage/box/donkpockets/PopulateContents()
- for(var/i in 1 to 6)
- new donktype(src)
-
+// [CELADON-EDIT]
/obj/item/storage/box/donkpockets/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donkpocket))
+// [/CELADON-EDIT]
+/obj/item/storage/box/donkpockets/PopulateContents()
+ for(var/i in 1 to 6)
+ new donktype(src)
/obj/item/storage/box/donkpockets/donkpocketspicy
name = "box of spicy-flavoured donk-pockets"
@@ -518,13 +535,13 @@
icon_state = "monkeycubebox"
illustration = null
var/cube_type = /obj/item/reagent_containers/food/snacks/monkeycube
-
+// [CELADON-EDIT]
/obj/item/storage/box/monkeycubes/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 7
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube))
-
+// [/CELADON-EDIT]
/obj/item/storage/box/monkeycubes/PopulateContents()
for(var/i in 1 to 5)
new cube_type(src)
@@ -538,12 +555,13 @@
desc = "Waffle Co. brand gorilla cubes. Do not taunt."
icon_state = "monkeycubebox"
illustration = null
-
+// [CELADON-EDIT]
/obj/item/storage/box/gorillacubes/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 3
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube))
+// [/CELADON-EDIT]
/obj/item/storage/box/gorillacubes/PopulateContents()
for(var/i in 1 to 3)
@@ -675,13 +693,13 @@
desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children."
icon = 'icons/obj/toy.dmi'
icon_state = "spbox"
-
+ // [CELADON-EDIT]
/obj/item/storage/box/snappops/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.set_holdable(list(/obj/item/toy/snappop))
STR.max_items = 8
-
+// [/CELADON-EDIT]
/obj/item/storage/box/snappops/PopulateContents()
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/toy/snappop)
@@ -695,14 +713,14 @@
slot_flags = ITEM_SLOT_BELT
drop_sound = 'sound/items/handling/matchbox_drop.ogg'
pickup_sound = 'sound/items/handling/matchbox_pickup.ogg'
- custom_price = 20
-
+ custom_price = 2
+// [CELADON-EDIT]
/obj/item/storage/box/matches/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 10
STR.set_holdable(list(/obj/item/match))
-
+// [/CELADON-EDIT]
/obj/item/storage/box/matches/PopulateContents()
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/match)
@@ -720,9 +738,10 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
-/obj/item/storage/box/lights/ComponentInitialize()
+/obj/item/storage/box/lights/ComponentInitialize()//holy oversized box. this one can stay the way it is, for now
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT
STR.max_items = 21
STR.set_holdable(list(/obj/item/light/tube, /obj/item/light/bulb))
STR.max_combined_w_class = 21
@@ -758,6 +777,14 @@
for(var/i in 1 to 7)
new /obj/item/flashlight/flare(src)
+/obj/item/storage/box/glowsticks
+ name = "box of glowsticks"
+ illustration = "sparkler"
+
+/obj/item/storage/box/glowsticks/PopulateContents()
+ for(var/i in 1 to 7)
+ new /obj/effect/spawner/random/decoration/glowstick(src)
+
/obj/item/storage/box/deputy
name = "box of deputy armbands"
desc = "To be issued to those authorized to act as deputy of security."
@@ -768,6 +795,15 @@
for(var/i in 1 to 7)
new /obj/item/clothing/accessory/armband/deputy(src)
+/obj/item/storage/box/smokebombs
+ name = "box of smoke grenades"
+ desc = "Used for rapidly laying cover."
+ illustration = "grenade"
+
+/obj/item/storage/box/smokebombs/PopulateContents()
+ for(var/i in 1 to 7)
+ new /obj/item/grenade/smokebomb(src)
+
/obj/item/storage/box/metalfoam
name = "box of metal foam grenades"
desc = "To be used to rapidly seal hull breaches."
@@ -1328,30 +1364,6 @@
/obj/item/screwdriver = 1)
generate_items_inside(items_inside,src)
-//It's a maid costume from the IRMG and Syndicate, what else.
-/obj/item/storage/box/inteqmaid
- name = "IRMG non standard issue maid outfit"
- desc = "A box containing a 'tactical' and 'practical' maid outfit from the IRMG."
-
-/obj/item/storage/box/inteqmaid/PopulateContents()
- var/static/items_inside = list(
- /obj/item/clothing/head/maidheadband/inteq = 1,
- /obj/item/clothing/under/syndicate/inteq/skirt/maid = 1,
- /obj/item/clothing/gloves/combat/maid/inteq = 1,)
- generate_items_inside(items_inside,src)
-
-/obj/item/storage/box/syndimaid
- name = "Syndicate maid outfit"
- desc = "A box containing a 'tactical' and 'practical' maid outfit."
- icon_state = "syndiebox"
-
-/obj/item/storage/box/syndimaid/PopulateContents()
- var/static/items_inside = list(
- /obj/item/clothing/head/maidheadband/syndicate = 1,
- /obj/item/clothing/under/syndicate/skirt/maid = 1,
- /obj/item/clothing/gloves/combat/maid = 1,)
- generate_items_inside(items_inside,src)
-
// because i have no idea where the fuck to put this
/obj/item/storage/box/maid
name = "Maid box"
@@ -1362,7 +1374,8 @@
/obj/item/clothing/head/maidheadband = 1,
/obj/item/clothing/under/costume/maid = 1,
/obj/item/clothing/gloves/maid = 1,
- /obj/item/clothing/neck/maid = 1,)
+ /obj/item/clothing/neck/maid = 1,
+ /obj/item/clothing/accessory/maidapron = 1,)
generate_items_inside(items_inside,src)
/obj/item/storage/box/material
@@ -1478,14 +1491,15 @@
w_class = WEIGHT_CLASS_TINY
illustration = null
foldable = null
- custom_price = 120
+ custom_price = 5
/obj/item/storage/box/gum/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+// [CELADON-EDIT]
STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/chewable/bubblegum))
STR.max_items = 4
-
+// [/CELADON-EDIT]
/obj/item/storage/box/gum/PopulateContents()
for(var/i in 1 to 4)
new/obj/item/reagent_containers/food/snacks/chewable/bubblegum(src)
@@ -1494,7 +1508,7 @@
name = "nicotine gum packet"
desc = "Designed to help with nicotine addiction and oral fixation all at once without destroying your lungs in the process. Mint flavored!"
icon_state = "bubblegum_nicotine"
- custom_premium_price = 275
+ custom_premium_price = 10
/obj/item/storage/box/gum/nicotine/PopulateContents()
for(var/i in 1 to 4)
@@ -1504,8 +1518,8 @@
name = "HP+ gum packet"
desc = "A seemingly homemade packaging with an odd smell. It has a weird drawing of a smiling face sticking out its tongue."
icon_state = "bubblegum_happiness"
- custom_price = 300
- custom_premium_price = 300
+ custom_price = 10
+ custom_premium_price = 10
/obj/item/storage/box/gum/happiness/Initialize()
. = ..()
diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm
index dfc65846bd11..b42784eb9619 100644
--- a/code/game/objects/items/storage/briefcase.dm
+++ b/code/game/objects/items/storage/briefcase.dm
@@ -19,7 +19,10 @@
/obj/item/storage/briefcase/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_w_class = WEIGHT_CLASS_NORMAL
+ // [CELADON-EDIT] - CELADON_BALANCE - Кейс теперь может вмещать много
+ // STR.max_w_class = WEIGHT_CLASS_NORMAL // CELADON-EDIT - ORIGINAL
+ STR.max_w_class = WEIGHT_CLASS_SMALL
+ // [/CELADON-EDIT]
STR.max_combined_w_class = 21
STR.use_sound = 'sound/items/storage/briefcase.ogg'
diff --git a/code/game/objects/items/storage/cases.dm b/code/game/objects/items/storage/cases.dm
new file mode 100644
index 000000000000..d09961da043e
--- /dev/null
+++ b/code/game/objects/items/storage/cases.dm
@@ -0,0 +1,61 @@
+// For Cases of all kinds, storage with specific purpose
+
+//Base Case
+/obj/item/storage/case
+ name = "case"
+ desc = "A large case."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "case_base"
+ lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
+ drop_sound = 'sound/items/handling/toolbox_drop.ogg'
+ pickup_sound = 'sound/items/handling/toolbox_pickup.ogg'
+ throw_speed = 3
+ throw_range = 7
+ var/empty = FALSE
+ w_class = WEIGHT_CLASS_BULKY
+
+/obj/item/storage/case/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.use_sound = 'sound/items/storage/toolbox.ogg'
+
+/obj/item/storage/case/surgery
+ name = "surgical case"
+ icon_state = "case_surgery"
+ item_state = "case_surgery"
+ desc = "A large sterile tray with a lid for storing all of the tools you'd need for surgery."
+
+//Surgical Case
+/obj/item/storage/case/surgery/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_w_class = WEIGHT_CLASS_NORMAL
+ STR.max_items = 7
+ STR.set_holdable(list(
+ /obj/item/healthanalyzer,
+ /obj/item/healthanalyzer/advanced,
+ /obj/item/scalpel,
+ /obj/item/scalpel/advanced,
+ /obj/item/circular_saw,
+ /obj/item/surgicaldrill,
+ /obj/item/surgicaldrill/advanced,
+ /obj/item/retractor,
+ /obj/item/retractor/advanced,
+ /obj/item/cautery,
+ /obj/item/hemostat,
+ /obj/item/shears,
+ ))
+
+/obj/item/storage/case/surgery/PopulateContents()
+ if(empty)
+ return
+ var/static/items_inside = list(
+ /obj/item/scalpel = 1,
+ /obj/item/retractor = 1,
+ /obj/item/hemostat = 1,
+ /obj/item/circular_saw = 1,
+ /obj/item/surgicaldrill = 1,
+ /obj/item/cautery = 1,
+ /obj/item/healthanalyzer = 1)
+ generate_items_inside(items_inside,src)
diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm
index 9d80a3b5acc6..3a6763282cbe 100644
--- a/code/game/objects/items/storage/fancy.dm
+++ b/code/game/objects/items/storage/fancy.dm
@@ -196,7 +196,7 @@
slot_flags = ITEM_SLOT_BELT
spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette
var/candy = FALSE //for cigarette overlay
- custom_price = 75
+ custom_price = 10
contents_tag = "cigarette"
/obj/item/storage/fancy/cigarettes/ComponentInitialize()
@@ -366,7 +366,7 @@
base_icon_state = "cig_paper_pack"
contents_tag = "rolling paper"
spawn_type = /obj/item/rollingpaper
- custom_price = 25
+ custom_price = 5
/obj/item/storage/fancy/rollingpapers/ComponentInitialize()
. = ..()
diff --git a/code/game/objects/items/storage/filled_guncases.dm b/code/game/objects/items/storage/filled_guncases.dm
new file mode 100644
index 000000000000..49e487072087
--- /dev/null
+++ b/code/game/objects/items/storage/filled_guncases.dm
@@ -0,0 +1,327 @@
+//Erika here. I did this because guncase.dm was annoying me. It needs better organization at some point.
+
+/* Hunter's Pride */
+
+/obj/item/storage/guncase/pistol/firebrand
+ gun_type = /obj/item/gun/ballistic/revolver/firebrand
+
+/obj/item/storage/guncase/pistol/derringer
+ gun_type = /obj/item/gun/ballistic/derringer
+
+/obj/item/storage/guncase/pistol/montagne
+ gun_type = /obj/item/gun/ballistic/revolver/montagne
+ mag_type = /obj/item/ammo_box/a44roum_speedloader
+
+/obj/item/storage/guncase/pistol/candor
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/candor
+ mag_type = /obj/item/ammo_box/magazine/m45
+
+/obj/item/storage/guncase/pistol/detective
+ gun_type = /obj/item/gun/ballistic/revolver/detective
+ mag_type = /obj/item/ammo_box/c38
+
+/obj/item/storage/guncase/pistol/shadow
+ gun_type = /obj/item/gun/ballistic/revolver/shadow
+
+/obj/item/storage/guncase/pistol/ashhand
+ gun_type = /obj/item/gun/ballistic/revolver/ashhand
+
+/obj/item/storage/guncase/hellfire
+ gun_type = /obj/item/gun/ballistic/shotgun/hellfire
+
+/obj/item/storage/guncase/doublebarrel
+ gun_type = /obj/item/gun/ballistic/shotgun/doublebarrel
+
+/obj/item/storage/guncase/brimstone
+ gun_type = /obj/item/gun/ballistic/shotgun/brimstone
+
+/obj/item/storage/guncase/illestren
+ gun_type = /obj/item/gun/ballistic/rifle/illestren
+ mag_type = /obj/item/ammo_box/magazine/illestren_a850r
+
+/obj/item/storage/guncase/beacon
+ gun_type = /obj/item/gun/ballistic/shotgun/doublebarrel/beacon
+
+/obj/item/storage/guncase/scout
+ gun_type = /obj/item/gun/ballistic/rifle/scout
+ mag_type = /obj/item/ammo_box/a300
+
+/obj/item/storage/guncase/winchester
+ gun_type = /obj/item/gun/ballistic/shotgun/flamingarrow
+
+/obj/item/storage/guncase/conflagration
+ gun_type = /obj/item/gun/ballistic/shotgun/flamingarrow/conflagration
+
+/obj/item/storage/guncase/absolution
+ gun_type = /obj/item/gun/ballistic/shotgun/flamingarrow/absolution
+
+/obj/item/storage/guncase/firestorm
+ gun_type = /obj/item/gun/ballistic/automatic/smg/firestorm
+ mag_type = /obj/item/ammo_box/magazine/c45_firestorm_mag
+
+/obj/item/storage/guncase/vickland
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/vickland
+ mag_type = /obj/item/ammo_box/vickland_a308
+
+/* Scarbourough */
+
+/obj/item/storage/guncase/pistol/a357
+ gun_type = /obj/item/gun/ballistic/revolver/viper
+ mag_type = /obj/item/ammo_box/a357/empty
+
+/obj/item/storage/guncase/pistol/viper
+ gun_type = /obj/item/gun/ballistic/revolver/viper/indie
+ mag_type = /obj/item/ammo_box/a357/empty
+
+/obj/item/storage/guncase/pistol/ringneck
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/ringneck/indie
+ mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck
+
+/obj/item/storage/guncase/pistol/pc76
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/ringneck
+ mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck
+
+/obj/item/storage/guncase/pistol/asp
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/asp
+ mag_type = /obj/item/ammo_box/magazine/m57_39_asp
+
+/obj/item/storage/guncase/pistol/rattlesnake
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/rattlesnake
+ mag_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake
+
+/obj/item/storage/guncase/cobra
+ gun_type = /obj/item/gun/ballistic/automatic/smg/cobra/indie
+ mag_type = /obj/item/ammo_box/magazine/m45_cobra
+
+/obj/item/storage/guncase/boomslang
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/boomslang/indie
+ mag_type = /obj/item/ammo_box/magazine/boomslang/short
+
+/obj/item/storage/guncase/boomslangmilitary
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/boomslang
+ mag_type = /obj/item/ammo_box/magazine/boomslang/short
+
+/obj/item/storage/guncase/rattlesnake
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/rattlesnake
+ mag_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake
+
+/obj/item/storage/guncase/bulldog
+ gun_type = /obj/item/gun/ballistic/shotgun/automatic/bulldog
+ mag_type = /obj/item/ammo_box/magazine/m12g_bulldog
+
+/obj/item/storage/guncase/sidewinder
+ gun_type = /obj/item/gun/ballistic/automatic/smg/sidewinder
+ mag_type = /obj/item/ammo_box/magazine/m57_39_sidewinder
+
+/obj/item/storage/guncase/hydra
+ gun_type = /obj/item/gun/ballistic/automatic/assault/hydra
+ mag_type = /obj/item/ammo_box/magazine/m556_42_hydra
+
+/obj/item/storage/guncase/sbr80
+ gun_type = /obj/item/gun/ballistic/automatic/assault/hydra/dmr
+ mag_type = /obj/item/ammo_box/magazine/m556_42_hydra/small
+
+/obj/item/storage/guncase/taipan
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/taipan
+ mag_type = /obj/item/ammo_box/magazine/sniper_rounds
+
+/* Etherbor */
+
+/obj/item/storage/guncase/pistol/kalixpistol
+ gun_type = /obj/item/gun/energy/kalix/pistol
+ mag_type = /obj/item/stock_parts/cell/gun/kalix
+
+/obj/item/storage/guncase/energy/kalixrifle
+ gun_type = /obj/item/gun/energy/kalix
+ mag_type = /obj/item/stock_parts/cell/gun/kalix
+
+/obj/item/storage/guncase/energy/bg16
+ gun_type = /obj/item/gun/energy/kalix/pgf
+ mag_type = /obj/item/stock_parts/cell/gun/pgf
+
+/obj/item/storage/guncase/energy/hbg7
+ gun_type = /obj/item/gun/energy/kalix/pgf/heavy
+ mag_type = /obj/item/stock_parts/cell/gun/pgf
+
+/obj/item/storage/guncase/energy/hbg7l
+ gun_type = /obj/item/gun/energy/kalix/pgf/heavy/sniper
+ mag_type = /obj/item/stock_parts/cell/gun/pgf
+
+/* Serene Outdoors Guns */
+
+/obj/item/storage/guncase/pistol/m17
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/m17
+ mag_type = /obj/item/ammo_box/magazine/m17
+
+/obj/item/storage/guncase/m12
+ gun_type = /obj/item/gun/ballistic/automatic/m12_sporter
+ mag_type = /obj/item/ammo_box/magazine/m12_sporter
+
+/obj/item/storage/guncase/m13
+ gun_type = /obj/item/gun/ballistic/automatic/m12_sporter/mod
+ mag_type = /obj/item/ammo_box/magazine/m12_sporter
+ mag_count = 3
+
+/obj/item/storage/guncase/m15
+ gun_type = /obj/item/gun/ballistic/automatic/m15
+ mag_type = /obj/item/ammo_box/magazine/m15
+
+/obj/item/storage/guncase/buckmaster
+ gun_type = /obj/item/gun/ballistic/shotgun/automatic/m11
+
+/* Solar Armories */
+
+/obj/item/storage/guncase/pistol/modelh
+ gun_type = /obj/item/gun/ballistic/automatic/powered/gauss/modelh
+ mag_type = /obj/item/ammo_box/magazine/modelh
+
+/obj/item/storage/guncase/pistol/pistolec
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/solgov
+ mag_type = /obj/item/ammo_box/magazine/pistol556mm
+
+/obj/item/storage/guncase/ssg669
+ gun_type = /obj/item/gun/ballistic/rifle/solgov
+ mag_type = /obj/item/ammo_box/a858
+
+/obj/item/storage/guncase/claris
+ gun_type = /obj/item/gun/ballistic/automatic/powered/gauss/claris
+ mag_type = /obj/item/ammo_box/amagpellet_claris
+
+/obj/item/storage/guncase/gar
+ gun_type = /obj/item/gun/ballistic/automatic/powered/gauss/gar
+ mag_type = /obj/item/ammo_box/magazine/gar
+
+/* VI */
+
+/obj/item/storage/guncase/pistol/commander
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/commander
+ mag_type = /obj/item/ammo_box/magazine/co9mm
+
+/obj/item/storage/guncase/vector
+ gun_type = /obj/item/gun/ballistic/automatic/smg/vector
+ mag_type = /obj/item/ammo_box/magazine/smgm9mm
+
+/* Sharplite */
+
+/obj/item/storage/guncase/pistol/miniegun
+ gun_type = /obj/item/gun/energy/e_gun/mini
+ mag_type = /obj/item/stock_parts/cell/gun/mini
+
+/obj/item/storage/guncase/energy
+ mag_type = /obj/item/stock_parts/cell/gun
+
+/obj/item/storage/guncase/energy/laser
+ gun_type = /obj/item/gun/energy/laser
+
+/obj/item/storage/guncase/energy/egun
+ gun_type = /obj/item/gun/energy/e_gun
+
+/obj/item/storage/guncase/energy/ultima
+ gun_type = /obj/item/gun/energy/e_gun/iot
+
+/obj/item/storage/guncase/energy/etar
+ gun_type = /obj/item/gun/energy/e_gun/smg
+
+/obj/item/storage/guncase/energy/iongun
+ gun_type = /obj/item/gun/energy/ionrifle
+
+/obj/item/storage/guncase/hades
+ gun_type = /obj/item/gun/energy/e_gun/hades
+ mag_type = /obj/item/stock_parts/cell/gun/upgraded
+
+/* Old NT */
+
+/obj/item/storage/guncase/wt550
+ gun_type = /obj/item/gun/ballistic/automatic/smg/wt550
+ mag_type = /obj/item/ammo_box/magazine/wt550m9
+
+/obj/item/storage/guncase/gauss
+ gun_type = /obj/item/gun/ballistic/automatic/powered/gauss
+ mag_type = /obj/item/ammo_box/magazine/gauss
+
+/obj/item/storage/guncase/saber
+ gun_type = /obj/item/gun/ballistic/automatic/smg/skm_carbine/saber
+ mag_type = /obj/item/ammo_box/magazine/smgm9mm
+
+/* Minutemen */
+
+/obj/item/storage/guncase/pistol/cm23
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/cm23
+ mag_type = /obj/item/ammo_box/magazine/cm23
+
+/obj/item/storage/guncase/pistol/cm70
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/cm70
+ mag_type = /obj/item/ammo_box/magazine/m9mm_cm70
+
+/obj/item/storage/guncase/pistol/cm357
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/cm357
+ mag_type = /obj/item/ammo_box/magazine/cm357
+
+/obj/item/storage/guncase/cm5
+ gun_type = /obj/item/gun/ballistic/automatic/smg/cm5
+ mag_type = /obj/item/ammo_box/magazine/cm5_9mm
+
+/obj/item/storage/guncase/cm82
+ gun_type = /obj/item/gun/ballistic/automatic/assault/cm82
+ mag_type = /obj/item/ammo_box/magazine/p16
+
+/obj/item/storage/guncase/cmf4
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/f4
+ mag_type = /obj/item/ammo_box/magazine/f4_308
+
+/obj/item/storage/guncase/cm15
+ gun_type = /obj/item/gun/ballistic/shotgun/cm15
+ mag_type = /obj/item/ammo_box/magazine/cm15_12g
+
+/obj/item/storage/guncase/cm24
+ gun_type = /obj/item/gun/ballistic/automatic/assault/skm/cm24
+ mag_type = /obj/item/ammo_box/magazine/skm_762_40
+
+/obj/item/storage/guncase/cmf90
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/f90
+ mag_type = /obj/item/ammo_box/magazine/f90
+
+/obj/item/storage/guncase/cm40
+ gun_type = /obj/item/gun/ballistic/automatic/hmg/cm40
+ mag_type = /obj/item/ammo_box/magazine/cm40_762_40_box
+
+/* Inteq */
+
+/obj/item/storage/guncase/skm_inteq
+ gun_type = /obj/item/gun/ballistic/automatic/assault/skm/inteq
+ mag_type = /obj/item/ammo_box/magazine/skm_762_40
+
+/obj/item/storage/guncase/commissioner
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/commander/inteq
+ mag_type = /obj/item/ammo_box/magazine/co9mm
+
+/obj/item/storage/guncase/mongrel
+ gun_type = /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq
+ mag_type = /obj/item/ammo_box/magazine/smgm10mm
+
+/obj/item/storage/guncase/mastiff
+ gun_type = /obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq
+ mag_type = /obj/item/ammo_box/magazine/m12g_bulldog
+
+/obj/item/storage/guncase/kingsnake
+ gun_type = /obj/item/gun/ballistic/automatic/pistol/rattlesnake/inteq
+ mag_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake
+
+/obj/item/storage/guncase/ssg04
+ gun_type = /obj/item/gun/ballistic/automatic/marksman/f4/inteq
+ mag_type = /obj/item/ammo_box/magazine/f4_308
+
+/* idk */
+
+/obj/item/storage/guncase/pistol/disposable
+/obj/item/storage/guncase/pistol/disposable/PopulateContents()
+ new /obj/item/gun/ballistic/automatic/pistol/disposable(src)
+ new /obj/item/gun/ballistic/automatic/pistol/disposable(src)
+
+/obj/item/storage/guncase/skm
+ gun_type = /obj/item/gun/ballistic/automatic/assault/skm
+ mag_type = /obj/item/ammo_box/magazine/skm_762_40
+
+/obj/item/storage/guncase/skm_lmg
+ gun_type = /obj/item/gun/ballistic/automatic/hmg/skm_lmg
+ mag_type = /obj/item/ammo_box/magazine/skm_762_40/drum
diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm
index bac896c0b8d5..5cc98e8c6092 100644
--- a/code/game/objects/items/storage/firstaid.dm
+++ b/code/game/objects/items/storage/firstaid.dm
@@ -108,7 +108,7 @@
return
var/static/items_inside = list(
/obj/item/healthanalyzer = 1,
- /obj/item/stack/medical/gauze = 1,
+ /obj/item/stack/medical/gauze/twelve = 1,
/obj/item/stack/medical/suture = 2,
/obj/item/stack/medical/mesh = 2,
/obj/item/reagent_containers/hypospray/medipen = 1,
diff --git a/code/game/objects/items/storage/guncases.dm b/code/game/objects/items/storage/guncases.dm
index 2feb49af03f7..ec07ea096dc0 100644
--- a/code/game/objects/items/storage/guncases.dm
+++ b/code/game/objects/items/storage/guncases.dm
@@ -3,6 +3,8 @@
desc = "A large box designed for holding firearms and magazines safely."
icon = 'icons/obj/guncase.dmi'
icon_state = "guncase"
+ lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi'
item_state = "infiltrator_case"
force = 12
throwforce = 12
@@ -13,203 +15,62 @@
hitsound = 'sound/weapons/smash.ogg'
drop_sound = 'sound/items/handling/toolbox_drop.ogg'
pickup_sound = 'sound/items/handling/toolbox_pickup.ogg'
-
-/obj/item/storage/guncase/ComponentInitialize()
- . = ..()
- var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 10
- STR.max_w_class = WEIGHT_CLASS_BULKY
- STR.set_holdable(list(
+ custom_materials = list(/datum/material/iron = 500)
+ var/max_items = 10
+ var/max_w_class = WEIGHT_CLASS_BULKY
+ var/gun_type
+ var/mag_type
+ var/mag_count = 2
+ var/ammoless = TRUE
+ var/grab_loc = FALSE
+ var/holdable_items = list(
/obj/item/gun,
/obj/item/ammo_box,
/obj/item/stock_parts/cell/gun
- ))
-
-/obj/item/storage/guncase/winchester
-/obj/item/storage/guncase/winchester/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/flamingarrow/no_mag(src)
-
-/obj/item/storage/guncase/conflagration
-/obj/item/storage/guncase/conflagration/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/no_mag(src)
-
-/obj/item/storage/guncase/absolution
-/obj/item/storage/guncase/absolution/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/flamingarrow/absolution/no_mag(src)
-
-/obj/item/storage/guncase/skm
-/obj/item/storage/guncase/skm/PopulateContents()
- new /obj/item/gun/ballistic/automatic/assault/skm/no_mag(src)
- new /obj/item/ammo_box/magazine/skm_762_40/empty(src)
- new /obj/item/ammo_box/magazine/skm_762_40/empty(src)
-
-/obj/item/storage/guncase/p16
-/obj/item/storage/guncase/p16/PopulateContents()
- new /obj/item/gun/ballistic/automatic/assault/p16/no_mag(src)
- new /obj/item/ammo_box/magazine/p16/empty(src)
- new /obj/item/ammo_box/magazine/p16/empty(src)
-
-/obj/item/storage/guncase/beacon
-/obj/item/storage/guncase/beacon/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/doublebarrel/beacon/no_mag(src)
-
-/obj/item/storage/guncase/scout
-/obj/item/storage/guncase/scout/PopulateContents()
- new /obj/item/gun/ballistic/rifle/scout/no_mag(src)
- new /obj/item/ammo_box/a300/empty(src)
- new /obj/item/ammo_box/a300/empty(src)
-
-/obj/item/storage/guncase/boomslang
-/obj/item/storage/guncase/boomslang/PopulateContents()
- new /obj/item/gun/ballistic/automatic/marksman/boomslang/indie/no_mag(src)
- new /obj/item/ammo_box/magazine/boomslang/short/empty(src)
- new /obj/item/ammo_box/magazine/boomslang/short/empty(src)
-
-/obj/item/storage/guncase/cobra
-/obj/item/storage/guncase/cobra/PopulateContents()
- new /obj/item/gun/ballistic/automatic/smg/cobra/indie/no_mag(src)
- new /obj/item/ammo_box/magazine/m45_cobra/empty(src)
- new /obj/item/ammo_box/magazine/m45_cobra/empty(src)
-
-/obj/item/storage/guncase/hellfire
-/obj/item/storage/guncase/hellfire/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/hellfire/no_mag(src)
+ )
-/obj/item/storage/guncase/doublebarrel
-/obj/item/storage/guncase/doublebarrel/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/doublebarrel/no_mag(src)
-
-/obj/item/storage/guncase/brimstone
-/obj/item/storage/guncase/brimstone/PopulateContents()
- new /obj/item/gun/ballistic/shotgun/brimstone/no_mag(src)
-
-/obj/item/storage/guncase/illestren
-/obj/item/storage/guncase/illestren/PopulateContents()
- new /obj/item/gun/ballistic/rifle/illestren/empty(src)
- new /obj/item/ammo_box/magazine/illestren_a850r/empty(src)
- new /obj/item/ammo_box/magazine/illestren_a850r/empty(src)
-
-/obj/item/storage/guncase/wt550
-/obj/item/storage/guncase/wt550/PopulateContents()
- new /obj/item/gun/ballistic/automatic/smg/wt550/no_mag(src)
- new /obj/item/ammo_box/magazine/wt550m9/empty(src)
- new /obj/item/ammo_box/magazine/wt550m9/empty(src)
-
-/obj/item/storage/pistolcase
- name = "pistol case"
- desc = "A large box designed for holding pistols and magazines safely."
- icon = 'icons/obj/guncase.dmi'
- icon_state = "guncase"
- item_state = "infiltrator_case"
- force = 12
- throwforce = 12
- throw_speed = 2
- w_class = WEIGHT_CLASS_BULKY
- attack_verb = list("robusted")
- hitsound = 'sound/weapons/smash.ogg'
- drop_sound = 'sound/items/handling/toolbox_drop.ogg'
- pickup_sound = 'sound/items/handling/toolbox_pickup.ogg'
+/obj/item/storage/guncase/Initialize(mapload)
+ . = ..()
+ if(mapload && grab_loc)
+ var/items_eaten = 0
+ for(var/obj/item/I in loc)
+ if(I.w_class > max_w_class)
+ continue
+ if(is_type_in_list(I, holdable_items))
+ I.forceMove(src)
+ items_eaten++
+ if(items_eaten >= mag_count + 1)
+ break
-/obj/item/storage/pistolcase/ComponentInitialize()
+/obj/item/storage/guncase/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
- STR.max_items = 8
- STR.max_w_class = WEIGHT_CLASS_NORMAL
- STR.set_holdable(list(
- /obj/item/gun,
- /obj/item/ammo_box/,
- /obj/item/stock_parts/cell/gun
- ))
-
-/obj/item/storage/pistolcase/modelh
-/obj/item/storage/pistolcase/modelh/PopulateContents()
- new /obj/item/gun/ballistic/automatic/powered/gauss/modelh/no_mag(src)
- new /obj/item/ammo_box/magazine/modelh/empty(src)
- new /obj/item/ammo_box/magazine/modelh/empty(src)
-
-/obj/item/storage/pistolcase/ringneck
-/obj/item/storage/pistolcase/ringneck/PopulateContents()
- new /obj/item/gun/ballistic/automatic/pistol/ringneck/indie/no_mag(src)
- new /obj/item/ammo_box/magazine/m10mm_ringneck/empty(src)
- new /obj/item/ammo_box/magazine/m10mm_ringneck/empty(src)
-
-/obj/item/storage/pistolcase/candor
-/obj/item/storage/pistolcase/candor/PopulateContents()
- new /obj/item/gun/ballistic/automatic/pistol/candor/no_mag(src)
- new /obj/item/ammo_box/magazine/m45/empty(src)
- new /obj/item/ammo_box/magazine/m45/empty(src)
-
-/obj/item/storage/pistolcase/detective
-/obj/item/storage/pistolcase/detective/PopulateContents()
- new /obj/item/gun/ballistic/revolver/detective/no_mag(src)
- new /obj/item/ammo_box/c38/empty(src)
- new /obj/item/ammo_box/c38/empty(src)
-
-/obj/item/storage/pistolcase/shadow
-/obj/item/storage/pistolcase/shadow/PopulateContents()
- new /obj/item/gun/ballistic/revolver/shadow/no_mag(src)
-
-/obj/item/storage/pistolcase/viper
-/obj/item/storage/pistolcase/viper/PopulateContents()
- new /obj/item/gun/ballistic/revolver/viper/indie/no_mag(src)
-
-/obj/item/storage/pistolcase/commander
-/obj/item/storage/pistolcase/commander/PopulateContents()
- new /obj/item/gun/ballistic/automatic/pistol/commander/no_mag(src)
- new /obj/item/ammo_box/magazine/co9mm/empty(src)
- new /obj/item/ammo_box/magazine/co9mm/empty(src)
-
-/obj/item/storage/pistolcase/firebrand
-/obj/item/storage/pistolcase/firebrand/PopulateContents()
- new /obj/item/gun/ballistic/revolver/firebrand/no_mag(src)
-
-/obj/item/storage/pistolcase/derringer
-/obj/item/storage/pistolcase/derringer/PopulateContents()
- new /obj/item/gun/ballistic/derringer/no_mag(src)
-
-/obj/item/storage/pistolcase/a357
-/obj/item/storage/pistolcase/a357/PopulateContents()
- new /obj/item/gun/ballistic/revolver/viper/no_mag(src)
- new /obj/item/ammo_box/a357/empty(src)
- new /obj/item/ammo_box/a357/empty(src)
-
-/obj/item/storage/pistolcase/montagne
-/obj/item/storage/pistolcase/montagne/PopulateContents()
- new /obj/item/gun/ballistic/revolver/montagne/no_mag(src)
- new /obj/item/ammo_box/a44roum_speedloader/empty(src)
- new /obj/item/ammo_box/a44roum_speedloader/empty(src)
-
-/obj/item/storage/pistolcase/disposable
-/obj/item/storage/pistolcase/disposable/PopulateContents()
- new /obj/item/gun/ballistic/automatic/pistol/disposable(src)
- new /obj/item/gun/ballistic/automatic/pistol/disposable(src)
-
-/obj/item/storage/pistolcase/laser
-/obj/item/storage/pistolcase/laser/PopulateContents()
- new /obj/item/gun/energy/laser/empty_cell(src)
- new /obj/item/stock_parts/cell/gun(src)
-
-/obj/item/storage/pistolcase/egun
-/obj/item/storage/pistolcase/egun/PopulateContents()
- new /obj/item/gun/energy/e_gun/empty_cell(src)
- new /obj/item/stock_parts/cell/gun(src)
-
-/obj/item/storage/pistolcase/kalixpistol
-/obj/item/storage/pistolcase/kalixpistol/PopulateContents()
- new /obj/item/gun/energy/kalix/pistol/empty_cell(src)
- new /obj/item/stock_parts/cell/gun/kalix(src)
-
-/obj/item/storage/guncase/kalixrifle
-/obj/item/storage/guncase/kalixrifle/PopulateContents()
- new /obj/item/gun/energy/kalix/empty_cell(src)
- new /obj/item/stock_parts/cell/gun/kalix(src)
-
-/obj/item/storage/pistolcase/miniegun
-/obj/item/storage/pistolcase/miniegun/PopulateContents()
- new /obj/item/gun/energy/e_gun/mini/empty_cell(src)
- new /obj/item/stock_parts/cell/gun/mini(src)
+ STR.max_items = max_items
+ STR.max_w_class = max_w_class
+ STR.set_holdable(holdable_items)
+
+/obj/item/storage/guncase/PopulateContents()
+ if(grab_loc)
+ return
+ if(gun_type)
+ new gun_type(src, ammoless)
+ if(mag_type)
+ for(var/i in 1 to mag_count)
+ if(ispath(mag_type, /obj/item/ammo_box) | ispath(mag_type, /obj/item/stock_parts/cell))
+ new mag_type(src, ammoless)
+
+/// Need to double check this in a seperate pr that adds this to a few ships
+/// Eats the items on its tile
+/obj/item/storage/guncase/inherit
+ grab_loc = TRUE
+
+/obj/item/storage/guncase/pistol
+ name = "pistol case"
+ desc = "A large box designed for holding pistols and magazines safely."
+ max_items = 8
+ max_w_class = WEIGHT_CLASS_NORMAL
-/obj/item/storage/pistolcase/iongun
-/obj/item/storage/pistolcase/iongun/PopulateContents()
- new /obj/item/gun/energy/ionrifle/empty_cell(src)
- new /obj/item/stock_parts/cell/gun(src)
+/// Need to double check this in a seperate pr that adds this to a few ships
+/// Eats the items on its tile
+/obj/item/storage/guncase/pistol/inherit
+ grab_loc = TRUE
diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm
index f918a3b883fb..f46d6eb4c2c9 100644
--- a/code/game/objects/items/storage/secure.dm
+++ b/code/game/objects/items/storage/secure.dm
@@ -211,3 +211,20 @@
/obj/item/storage/secure/safe/suns/PopulateContents()
. = ..()
new /obj/item/storage/belt/sabre/suns(src)
+
+/obj/item/storage/secure/safe/cybersun
+ name = "Captain's secure safe"
+ desc = "An electronic safe manufactured by Cybersun Virtual Solutions."
+
+/obj/item/storage/secure/safe/cybersun/PopulateContents()
+ new /obj/item/gun/ballistic/automatic/pistol/himehabu/no_mag(src)
+ new /obj/item/ammo_box/magazine/m22lr_himehabu(src)
+ new /obj/item/ammo_box/magazine/m22lr_himehabu(src)
+
+/obj/item/storage/secure/safe/cybersun/solutions/PopulateContents()
+ . = ..()
+ new /obj/item/folder/documents/syndicate/cybersun(src)
+
+/obj/item/storage/secure/safe/cybersun/biodynamics/PopulateContents()
+ . = ..()
+ new /obj/item/folder/documents/syndicate/cybersun/biodynamics(src)
diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm
index 6e35529fd5b6..0dafea0611bf 100644
--- a/code/game/objects/items/storage/toolbox.dm
+++ b/code/game/objects/items/storage/toolbox.dm
@@ -17,12 +17,13 @@
drop_sound = 'sound/items/handling/toolbox_drop.ogg'
pickup_sound = 'sound/items/handling/toolbox_pickup.ogg'
material_flags = MATERIAL_COLOR
- var/latches = "single_latch"
+ var/latches = null
var/has_latches = TRUE
/obj/item/storage/toolbox/Initialize()
. = ..()
- if(has_latches)
+ if(has_latches && !latches)
+ latches = "single_latch"
if(prob(10))
latches = "double_latch"
if(prob(1))
@@ -71,12 +72,10 @@
material_flags = NONE
/obj/item/storage/toolbox/mechanical/PopulateContents()
- //WS Edit - Better Tool sprites
if(prob(50))
new /obj/item/wrench(src)
else
new /obj/item/wrench/crescent(src)
- //WS End
new /obj/item/screwdriver(src)
new /obj/item/weldingtool(src)
new /obj/item/crowbar(src)
@@ -158,11 +157,9 @@
new /obj/item/stack/cable_coil(src,MAXCOIL,pickedcolor)
/obj/item/storage/toolbox/syndicate
- name = "suspicious looking toolbox"
+ name = "black and red toolbox"
icon_state = "syndicate"
item_state = "toolbox_syndi"
- force = 15
- throwforce = 18
material_flags = NONE
/obj/item/storage/toolbox/syndicate/ComponentInitialize()
@@ -172,11 +169,11 @@
/obj/item/storage/toolbox/syndicate/PopulateContents()
new /obj/item/screwdriver/nuke(src)
- new /obj/item/wrench/syndie(src) //WS Edit - Cool Syndie Tools
+ new /obj/item/wrench/syndie(src)
new /obj/item/weldingtool/largetank(src)
- new /obj/item/crowbar/syndie(src) //WS Begin - Cool Syndie Tools
+ new /obj/item/crowbar/syndie(src)
new /obj/item/wirecutters/syndie(src)
- new /obj/item/multitool/syndie(src) //WS End
+ new /obj/item/multitool/syndie(src)
new /obj/item/clothing/gloves/color/yellow(src)
/obj/item/storage/toolbox/syndicate/empty
@@ -225,58 +222,6 @@
new /obj/item/stack/cable_coil/cyan(src)
new /obj/item/stack/cable_coil/white(src)
-/obj/item/storage/toolbox/ammo
- name = "ammo can"
- desc = "A metal container for storing multiple boxes of ammunition or grenades."
- icon_state = "ammobox"
- item_state = "ammobox"
- drop_sound = 'sound/items/handling/ammobox_drop.ogg'
- pickup_sound = 'sound/items/handling/ammobox_pickup.ogg'
- material_flags = NONE
- has_latches = FALSE
-
-/obj/item/storage/toolbox/ammo/a850r/PopulateContents()
- name = "ammo can (8x50mmR)"
- icon_state = "ammobox_850"
- for(var/i in 1 to 4)
- new /obj/item/ammo_box/c8x50mm_box(src)
-
-/obj/item/storage/toolbox/ammo/a762_40/PopulateContents()
- name = "ammo can (7.62x40mm CLIP)"
- icon_state = "ammobox_762"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a762_40(src)
-
-/obj/item/storage/toolbox/ammo/a308/PopulateContents()
- name = "ammo can (.308)"
- icon_state = "ammobox_308"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a308(src)
-
-/obj/item/storage/toolbox/ammo/c45/PopulateContents()
- name = "ammo can (.45)"
- icon_state = "ammobox_45"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c45(src)
-
-/obj/item/storage/toolbox/ammo/c9mm/PopulateContents()
- name = "ammo can (9mm)"
- icon_state = "ammobox_9mm"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c9mm(src)
-
-/obj/item/storage/toolbox/ammo/c10mm/PopulateContents()
- name = "ammo can (10mm)"
- icon_state = "ammobox_10mm"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/c10mm(src)
-
-/obj/item/storage/toolbox/ammo/shotgun/PopulateContents()
- name = "ammo can (12ga)"
- icon_state = "ammobox_12ga"
- for (var/i in 1 to 4)
- new /obj/item/ammo_box/a12g(src)
-
/obj/item/storage/toolbox/infiltrator
name = "insidious case"
desc = "Bearing the emblem of the Syndicate, this case contains a full infiltrator stealth suit, and has enough room to fit weaponry if necessary."
@@ -328,6 +273,26 @@
STR.max_combined_w_class = 4
STR.max_items = 2
+/obj/item/storage/toolbox/bounty/hunt
+ name = "dogtag case"
+ desc = "Store pirate dogtags in here."
+
+/obj/item/storage/toolbox/bounty/hunt/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_combined_w_class = 6
+ STR.max_items = 3
+
+/obj/item/storage/toolbox/bounty/salvage
+ name = "research case"
+ desc = "Store salvaged science equipment in here."
+
+/obj/item/storage/toolbox/bounty/salvage/ComponentInitialize()
+ . = ..()
+ var/datum/component/storage/STR = GetComponent(/datum/component/storage)
+ STR.max_combined_w_class = 2
+ STR.max_items = 1
+
//floorbot assembly
/obj/item/storage/toolbox/attackby(obj/item/stack/tile/plasteel/T, mob/user, params)
var/list/allowed_toolbox = list(/obj/item/storage/toolbox/emergency, //which toolboxes can be made into floorbots
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index 3ef2d547931a..26b9b790b2f8 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -2,7 +2,7 @@
/obj/item/storage/box/syndicate
/obj/item/storage/box/syndicate/bundle_A/PopulateContents()
- switch (pickweight(list("recon" = 2, "bloodyspai" = 3, "stealth" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "sniper" = 1, "metaops" = 1)))
+ switch (pick_weight(list("recon" = 2, "bloodyspai" = 3, "stealth" = 2, "screwed" = 2, "sabotage" = 3, "guns" = 2, "murder" = 2, "implant" = 1, "hacker" = 3, "sniper" = 1, "metaops" = 1)))
if("recon")
new /obj/item/clothing/glasses/thermal/xray(src) // ~8 tc?
new /obj/item/storage/briefcase/launchpad(src) //6 tc
@@ -56,7 +56,7 @@
new /obj/item/encryptionkey/syndicate(src)
if("murder")
- new /obj/item/melee/transforming/energy/sword/saber(src)
+ new /obj/item/melee/energy/sword/saber(src)
new /obj/item/clothing/glasses/thermal/syndi(src)
new /obj/item/card/emag(src)
new /obj/item/clothing/shoes/chameleon/noslip(src)
@@ -117,7 +117,7 @@
new /obj/item/card/emag(src) // 6 tc
/obj/item/storage/box/syndicate/bundle_B/PopulateContents()
- switch (pickweight(list( "bond" = 2, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = 2, "mad_scientist" = 2, "mr_freeze" = 2, "made_man"= 1)))
+ switch (pick_weight(list( "bond" = 2, "ninja" = 1, "darklord" = 1, "white_whale_holy_grail" = 2, "mad_scientist" = 2, "mr_freeze" = 2, "made_man"= 1)))
if("bond")
new /obj/item/gun/ballistic/automatic/pistol/ringneck(src)
new /obj/item/attachment/silencer(src)
@@ -178,10 +178,10 @@
new /obj/item/dnainjector/geladikinesis(src)
new /obj/item/dnainjector/cryokinesis(src)
new /obj/item/gun/energy/temperature/security(src)
- new /obj/item/melee/transforming/energy/sword/saber/blue(src) //see see it fits the theme bc its blue and ice is blue
+ new /obj/item/melee/energy/sword/saber/blue(src) //see see it fits the theme bc its blue and ice is blue
if("made_man")
- new /obj/effect/spawner/lootdrop/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family
+ new /obj/effect/spawner/random/clothing/mafia_outfit(src) // 0 TC, just an outfit for the new 'don of this family
new /obj/item/gun/ballistic/automatic/smg/firestorm/pan(src) // 20 TC, a gun with 50 .45 bullets on a three round burst is kinda outstanding
new /obj/item/melee/knife/switchblade(src) // 3 TC? It's nice, but it's really a stealth/oh fuck I'm out of ammo weapon
new /obj/item/reagent_containers/food/drinks/bottle/vodka (src) // 5 TC, free molotov assemblies
@@ -282,7 +282,6 @@
/obj/item/storage/firstaid/tactical,
/obj/item/encryptionkey/syndicate,
/obj/item/clothing/glasses/thermal/syndi,
- /obj/item/slimepotion/slime/sentience/nuclear,
/obj/item/storage/box/syndie_kit/imp_radio,
/obj/item/storage/box/syndie_kit/imp_uplink,
/obj/item/clothing/gloves/krav_maga/combatglovesplus,
@@ -501,7 +500,6 @@
/obj/item/storage/box/syndie_kit/mimery/PopulateContents()
new /obj/item/book/granter/spell/mimery_blockade(src)
- new /obj/item/book/granter/spell/mimery_guns(src)
/obj/item/storage/box/syndie_kit/centcom_costume/PopulateContents()
new /obj/item/clothing/under/rank/centcom/official(src)
@@ -561,12 +559,3 @@
/obj/item/storage/box/syndie_kit/signaler/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/assembly/signaler(src)
-
-/obj/item/storage/box/syndie_kit/cultconstructkit
- name = "cult construct kit"
- desc = "A sleek, sturdy box with an ominous, dark energy inside. Yikes."
-
-/obj/item/storage/box/syndie_kit/cultconstructkit/PopulateContents()
- new /obj/item/storage/belt/soulstone/full/purified(src)
- new /obj/item/sbeacondrop/constructshell(src)
- new /obj/item/sbeacondrop/constructshell(src)
diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm
index deca5b57397e..117a6fedb84f 100644
--- a/code/game/objects/items/tanks/jetpack.dm
+++ b/code/game/objects/items/tanks/jetpack.dm
@@ -11,7 +11,7 @@
var/gas_type = GAS_O2
var/on = FALSE
var/stabilizers = FALSE
- var/full_speed = TRUE // If the jetpack will have a speedboost in space/nograv or not
+ var/full_speed = TRUE // Whether damage slowdown will affect the jetpack
var/datum/effect_system/trail_follow/ion/ion_trail
/obj/item/tank/jetpack/Initialize()
@@ -28,7 +28,7 @@
if(gas_type)
air_contents.set_moles(gas_type, ((6 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C)))
-/obj/item/tank/jetpack/ui_action_click(mob/user, action)
+/obj/item/tank/jetpack/ui_action_click(mob/living/user, action)
if(istype(action, /datum/action/item_action/toggle_jetpack))
cycle(user)
else if(istype(action, /datum/action/item_action/jetpack_stabilization))
@@ -39,7 +39,7 @@
toggle_internals(user)
-/obj/item/tank/jetpack/proc/cycle(mob/user)
+/obj/item/tank/jetpack/proc/cycle(mob/living/user)
if(user.incapacitated())
return
@@ -54,7 +54,7 @@
A.UpdateButtonIcon()
-/obj/item/tank/jetpack/proc/turn_on(mob/user)
+/obj/item/tank/jetpack/proc/turn_on(mob/living/user)
if(!allow_thrust(0.01, user))
return
on = TRUE
@@ -63,18 +63,18 @@
RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(move_react))
RegisterSignal(user, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(pre_move_react))
if(full_speed)
- user.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed)
+ user.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown_flying)
-/obj/item/tank/jetpack/proc/turn_off(mob/user)
+/obj/item/tank/jetpack/proc/turn_off(mob/living/user)
on = FALSE
stabilizers = FALSE
icon_state = initial(icon_state)
ion_trail.stop()
UnregisterSignal(user, COMSIG_MOVABLE_MOVED)
UnregisterSignal(user, COMSIG_MOVABLE_PRE_MOVE)
- user.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/fullspeed)
+ user.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown_flying)
-/obj/item/tank/jetpack/proc/move_react(mob/user)
+/obj/item/tank/jetpack/proc/move_react(mob/living/user)
if(!on)//If jet dont work, it dont work
return
if(!user)//Don't allow jet self using
@@ -90,7 +90,7 @@
if(length(user.client.keys_held & user.client.movement_keys))//You use jet when press keys. yes.
allow_thrust(0.01, user)
-/obj/item/tank/jetpack/proc/pre_move_react(mob/user)
+/obj/item/tank/jetpack/proc/pre_move_react(mob/living/user)
ion_trail.oldposition = get_turf(src)
/obj/item/tank/jetpack/proc/allow_thrust(num, mob/living/user)
@@ -110,7 +110,7 @@
item_state = "jetpack-sec"
volume = 20 //normal jetpacks have 70 volume
gas_type = null //it starts empty
- full_speed = FALSE //moves at hardsuit jetpack speeds
+ full_speed = FALSE // affected by damage slowdown
/obj/item/tank/jetpack/improvised/allow_thrust(num, mob/living/user)
if(rand(0,250) == 0)
@@ -181,7 +181,6 @@
volume = 1
slot_flags = null
gas_type = null
- full_speed = FALSE
custom_price = 2000
var/datum/gas_mixture/temp_air_contents
var/obj/item/tank/internals/tank = null
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index fd9b3859cd3b..5b9da6611bd9 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -80,12 +80,8 @@
//snowflake screwdriver, works as a key to start nuke theft, traitor only
/obj/item/screwdriver/nuke
- name = "screwdriver"
- desc = "A screwdriver with an ultra thin tip that's carefully designed to boost screwing speed."
-// icon = 'icons/obj/nuke_tools.dmi' WS edit - better tool sprites
icon_state = "screwdriver_nuke"
item_state = "screwdriver_nuke"
- toolspeed = 0.5
random_color = FALSE
/obj/item/paper/guides/antag/nuke_instructions
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index 26509776dd16..c53fb57a8bd3 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -117,10 +117,7 @@
toolspeed = 0.5
/obj/item/crowbar/syndie
- name = "suspicious-looking crowbar"
- desc = "It has special counterweights that adjust to the amount of pressure put on it by using a complex array of springs and screws."
icon_state = "crowbar_syndie"
- toolspeed = 0.5
force = 8
/obj/item/crowbar/old
diff --git a/code/game/objects/items/tools/electric_weldingtool.dm b/code/game/objects/items/tools/electric_weldingtool.dm
new file mode 100644
index 000000000000..3611d8ffcd9f
--- /dev/null
+++ b/code/game/objects/items/tools/electric_weldingtool.dm
@@ -0,0 +1,84 @@
+/obj/item/weldingtool/electric
+ name = "electrical welding tool"
+ desc = "A welding tool capable of welding functionality through the use of electricity."
+ icon_state = "elwelder"
+ light_power = 1
+ light_color = LIGHT_COLOR_HALOGEN
+ tool_behaviour = NONE
+ toolspeed = 0.5 //twice as fast, but doesn't require welding fuel
+ power_use_amount = POWER_CELL_USE_LOW
+ change_icons = FALSE //we don't use fuel
+ var/cell_override = /obj/item/stock_parts/cell/high
+ var/powered = FALSE
+ max_fuel = 20 //uses fuel anyways like a boss
+
+/obj/item/weldingtool/electric/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/cell, cell_override, CALLBACK(src, PROC_REF(switched_off)))
+
+/obj/item/weldingtool/electric/attack_self(mob/user, modifiers)
+ . = ..()
+ if(!powered)
+ if(!(item_use_power(power_use_amount, user, TRUE) & COMPONENT_POWER_SUCCESS))
+ return
+ powered = !powered
+ playsound(src, 'sound/effects/sparks4.ogg', 100, TRUE)
+
+ if(powered)
+ to_chat(user, span_notice("You turn [src] on."))
+ switched_on()
+ return
+
+ to_chat(user, span_notice("You turn [src] off."))
+ switched_off()
+
+/obj/item/weldingtool/electric/switched_on(mob/user)
+ welding = TRUE
+ tool_behaviour = TOOL_WELDER
+ light_on = TRUE
+ force = 15
+ damtype = BURN
+ hitsound = 'sound/items/welder.ogg'
+ set_light_on(powered)
+ update_appearance()
+ START_PROCESSING(SSobj, src)
+
+/obj/item/weldingtool/electric/switched_off(mob/user)
+ powered = FALSE
+ welding = FALSE
+ light_on = FALSE
+ force = initial(force)
+ damtype = BRUTE
+ set_light_on(powered)
+ tool_behaviour = NONE
+ update_appearance()
+ STOP_PROCESSING(SSobj, src)
+
+/obj/item/weldingtool/electric/process(seconds_per_tick)
+ if(!powered)
+ switched_off()
+ return
+
+ if(!(item_use_power(power_use_amount) & COMPONENT_POWER_SUCCESS))
+ switched_off()
+ return
+
+/obj/item/weldingtool/electric/examine(mob/user)
+ . = ..()
+ //Overwrite the last entry, which normally shows welder fuel usage
+ .[length(.)] = "[src] is currently [powered ? "powered" : "unpowered"]."
+
+// This is what uses fuel in the parent. We override it here to not use fuel
+/obj/item/weldingtool/electric/use(used = 0)
+ return isOn()
+
+/obj/item/weldingtool/electric/examine()
+ . = ..()
+ . += "[src] is currently [powered ? "powered" : "unpowered"]."
+
+/obj/item/weldingtool/electric/update_icon_state()
+ if(powered)
+ mob_overlay_icon = "[initial(mob_overlay_icon)]1"
+ else
+ mob_overlay_icon = "[initial(mob_overlay_icon)]"
+ return ..()
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index f953a3604367..fcccb13b4b27 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -351,29 +351,6 @@
/obj/item/weldingtool/hugetank/empty
start_full = FALSE
-/obj/item/weldingtool/experimental
- name = "experimental welding tool"
- desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes."
- icon_state = "exwelder"
- item_state = "exwelder"
- max_fuel = 40
- custom_materials = list(/datum/material/iron=70, /datum/material/glass=120)
- /*WS Begin - Better Tool sprites
- change_icons = 0
- WS End */
- can_off_process = 1
- light_range = 1
- toolspeed = 0.5
- wall_decon_damage = 100
- var/last_gen = 0
- var/nextrefueltick = 0
-
-/obj/item/weldingtool/experimental/process()
- ..()
- if(get_fuel() < max_fuel && nextrefueltick < world.time)
- nextrefueltick = world.time + 10
- reagents.add_reagent(/datum/reagent/fuel, 1)
-
/obj/item/weldingtool/old
desc = "A standard edition welder provided by Nanotrasen. This one seems to leak a little bit."
icon = 'icons/obj/tools.dmi'
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index e2dfc9a81dc3..383cbd027395 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -85,10 +85,7 @@
random_color = FALSE
/obj/item/wirecutters/syndie
- name = "suspicious-looking wirecutters"
- desc = "The blades of these wirecutters have suspiciously fine serrated teeth."
icon_state = "cutters_syndie"
- toolspeed = 0.5
random_color = FALSE
/obj/item/wirecutters/old
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index 3e9898d87508..b6b99c7c8282 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -95,10 +95,7 @@
return ..()
/obj/item/wrench/syndie
- name = "suspicious-looking wrench"
- desc = "It's one of those fancy wrenches that you turn backward without twisting the bolt for faster action."
icon_state = "wrench_syndie"
- toolspeed = 0.5
/obj/item/wrench/crescent
name = "crescent wrench"
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 7d2828c41660..84601407f649 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -245,9 +245,9 @@
/obj/item/toy/ammo/gun
name = "capgun ammo"
desc = "Make sure to recyle the box in an autolathe when it gets empty."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
icon_state = "357OLD-7"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_NORMAL
custom_materials = list(/datum/material/iron=10, /datum/material/glass=10)
var/amount_left = 7
@@ -296,7 +296,7 @@
w_class = WEIGHT_CLASS_SMALL
add_fingerprint(user)
-// Copied from /obj/item/melee/transforming/energy/sword/attackby
+// Copied from /obj/item/melee/energy/sword/attackby
/obj/item/toy/sword/attackby(obj/item/W, mob/living/user, params)
if(istype(W, /obj/item/toy/sword))
if(HAS_TRAIT(W, TRAIT_NODROP) || HAS_TRAIT(src, TRAIT_NODROP))
@@ -542,31 +542,6 @@
/obj/item/toy/talking/AI/generate_messages()
return list(generate_ion_law())
-/obj/item/toy/talking/codex_gigas
- name = "Toy Codex Gigas"
- desc = "A tool to help you write fictional devils!"
- icon = 'icons/obj/library.dmi'
- icon_state = "demonomicon"
- lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi'
- w_class = WEIGHT_CLASS_SMALL
- recharge_time = 60
-
-/obj/item/toy/talking/codex_gigas/activation_message(mob/user)
- user.visible_message(
- "[user] presses the button on \the [src].",
- "You press the button on \the [src].",
- "You hear a soft click.")
-
-/obj/item/toy/talking/codex_gigas/generate_messages()
- var/datum/fakeDevil/devil = new
- var/list/messages = list()
- messages += "Some fun facts about: [devil.truename]"
- messages += "[GLOB.lawlorify[LORE][devil.obligation]]"
- messages += "[GLOB.lawlorify[LORE][devil.ban]]"
- messages += "[GLOB.lawlorify[LORE][devil.banish]]"
- return messages
-
/obj/item/toy/talking/owl
name = "owl action figure"
desc = "An action figure modeled after 'The Owl', defender of justice."
@@ -1041,7 +1016,8 @@
desc = "A compact ball of snow. Good for throwing at people."
icon = 'icons/obj/toy.dmi'
icon_state = "snowball"
- throwforce = 12 //pelt your enemies to death with lumps of snow
+ throwforce = 1 //pelt your enemies to death with lumps of snow
+ var/stam_dam = 8
/obj/item/toy/snowball/afterattack(atom/target as mob|obj|turf|area, mob/user)
. = ..()
@@ -1050,6 +1026,10 @@
/obj/item/toy/snowball/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(!..())
+ var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum)
+ if(ishuman(hit_atom) && !caught)//if they are a carbon and they didn't catch it
+ var/mob/living/carbon/human/dorkass = hit_atom
+ dorkass.apply_damage(stam_dam, STAMINA)
playsound(src, 'sound/effects/pop.ogg', 20, TRUE)
qdel(src)
@@ -1417,7 +1397,7 @@
pixel_x = rand(-5, 5)
pixel_y = rand(-5, 5)
icon_state = "shell[rand(1,3)]"
- color = pickweight(possible_colors)
+ color = pick_weight(possible_colors)
setDir(pick(GLOB.cardinals))
/obj/item/toy/brokenradio
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index bdcb89796bc4..cc67c6795783 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -8,11 +8,8 @@
resistance_flags = FLAMMABLE
/obj/item/trash/Initialize(mapload)
- SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
- return ..()
-
-/obj/item/trash/Destroy()
- SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name)
+ if(!mapload)
+ SSblackbox.record_feedback("tally", "station_mess_created", 1, name)
return ..()
/obj/item/trash/raisins
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index e0e115b81d01..363a83d965a3 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -24,11 +24,8 @@
/obj/proc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0)
if(damage_flag == "melee" && damage_amount < damage_deflection)
return 0
- switch(damage_type)
- if(BRUTE)
- if(BURN)
- else
- return 0
+ if(damage_type != BRUTE && damage_type != BURN)
+ return 0
var/armor_protection = 0
if(damage_flag)
armor_protection = armor.getRating(damage_flag)
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 0ffeaa673b53..0391de85eb33 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -84,7 +84,9 @@
if(!ismachinery(src))
STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
SStgui.close_uis(src)
- . = ..()
+ if(burning_particles)
+ QDEL_NULL(burning_particles)
+ return ..()
/obj/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE)
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 1994ff330dd9..dba1c510767d 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -220,7 +220,6 @@
to_chat(user, "You connect the monitor.")
if(brain)
var/mob/living/brain/B = brain.brainmob
- SSticker.mode.remove_antag_for_borging(B.mind)
var/mob/living/silicon/ai/A = null
diff --git a/code/game/objects/structures/artstuff.dm b/code/game/objects/structures/artstuff.dm
index 15cbb9481f35..4cd16c934446 100644
--- a/code/game/objects/structures/artstuff.dm
+++ b/code/game/objects/structures/artstuff.dm
@@ -224,7 +224,7 @@
custom_materials = null
flags_1 = 0
icon_state = "frame-empty"
- result_path = /obj/structure/sign/painting
+ result_path = /obj/structure/sign/painting/library
/obj/structure/sign/painting
name = "Painting"
@@ -241,8 +241,8 @@
if(dir)
setDir(dir)
if(building)
- pixel_x = (dir & 3)? 0 : (dir == 4 ? -30 : 30)
- pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0
+ pixel_x = (dir & 3)? 0 : (dir == 4 ? 30 : -30)
+ pixel_y = (dir & 3)? (dir ==1 ? 30 : -30) : 0
//The painting is being loaded by the maploader and SSpersistence has already run. Load a painting ourselves.
if(mapload && SSpersistence.initialized)
load_persistent()
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 31e9d9a0b8fc..19aabed49946 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -17,7 +17,7 @@ LINEN BINS
throwforce = 0
throw_speed = 1
throw_range = 2
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
resistance_flags = FLAMMABLE
dying_key = DYE_REGISTRY_BEDSHEET
greyscale_icon_state = "bedsheet"
@@ -209,7 +209,7 @@ LINEN BINS
/obj/item/bedsheet/cult
name = "cultist's bedsheet"
- desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence."
+ desc = "You might dream of elder gods if you sleep with this. It seems rather tattered."
icon_state = "sheetcult"
item_state = "sheetcult"
dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure")
@@ -383,7 +383,7 @@ LINEN BINS
/obj/item/bedsheet/dorms/Initialize()
..()
- var/type = pickweight(list("Colors" = 80, "Special" = 20))
+ var/type = pick_weight(list("Colors" = 80, "Special" = 20))
switch(type)
if("Colors")
type = pick(list(/obj/item/bedsheet,
@@ -408,7 +408,7 @@ LINEN BINS
/obj/item/bedsheet/dorms/double/Initialize()
..()
- var/type = pickweight(list("Colors" = 80, "Special" = 20))
+ var/type = pick_weight(list("Colors" = 80, "Special" = 20))
switch(type)
if("Colors")
type = pick(list(/obj/item/bedsheet/double,
diff --git a/code/game/objects/structures/cabinet_types.dm b/code/game/objects/structures/cabinet_types.dm
index 347e1954ded4..c64356ac4db1 100644
--- a/code/game/objects/structures/cabinet_types.dm
+++ b/code/game/objects/structures/cabinet_types.dm
@@ -3,8 +3,14 @@
desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if."
icon = 'icons/obj/wallmounts.dmi'
icon_state = "fireaxe"
- anchored = TRUE
- density = FALSE
stored_sprite = "axe"
allowed_type = /obj/item/melee/axe/fire
req_one_access_txt = "24"
+
+/obj/structure/cabinet/oneshot
+ name = "\improper rocket launcher cabinet"
+ desc = "There is a small label that reads \"For Emergency use only\" along with a small drawing of how to operate the launcher."
+ icon_state = "rpg"
+ stored_sprite = "launcher"
+ allowed_type = /obj/item/gun/ballistic/rocketlauncher/oneshot
+ req_one_access_txt = "3"
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index cfea37148e55..626640f5a607 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -14,7 +14,6 @@
desc = "It looks alien!"
icon_state = "alien"
-
/obj/structure/closet/gimmick
name = "administrative supply closet"
desc = "It's a storage unit for things that have no right being here."
@@ -56,7 +55,7 @@
for(var/i in 1 to 3)
new /obj/item/clothing/suit/armor/tdome/red(src)
for(var/i in 1 to 3)
- new /obj/item/melee/transforming/energy/sword/saber(src)
+ new /obj/item/melee/energy/sword/saber(src)
for(var/i in 1 to 3)
new /obj/item/gun/energy/laser(src)
for(var/i in 1 to 3)
@@ -75,7 +74,7 @@
for(var/i in 1 to 3)
new /obj/item/clothing/suit/armor/tdome/green(src)
for(var/i in 1 to 3)
- new /obj/item/melee/transforming/energy/sword/saber(src)
+ new /obj/item/melee/energy/sword/saber(src)
for(var/i in 1 to 3)
new /obj/item/gun/energy/laser(src)
for(var/i in 1 to 3)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 185e673a8b8f..f6395e6a6d04 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -138,17 +138,17 @@
new /obj/item/clothing/under/rank/security/warden/skirt(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
new /obj/item/holosign_creator/security(src)
- new /obj/item/clothing/mask/gas/sechailer(src)
+ new /obj/item/clothing/mask/gas(src)
new /obj/item/storage/box/zipties(src)
new /obj/item/storage/box/flashbangs(src)
new /obj/item/storage/belt/security/full(src)
new /obj/item/flashlight/seclite(src)
- new /obj/item/megaphone/sec(src) //WS edit - Small QoL Brig additions
+ new /obj/item/megaphone/sec(src)
new /obj/item/clothing/gloves/krav_maga/sec(src)
new /obj/item/door_remote/head_of_security(src)
- new /obj/item/gun/ballistic/shotgun/automatic/combat/compact(src)
- new /obj/item/gun/ballistic/automatic/pistol/commander(src) //WS edit - free lethals
- new /obj/item/gun_voucher //WS edit - gun gun gun gun gun gun gun
+ new /obj/item/gun/ballistic/shotgun/automatic/m11(src)
+ new /obj/item/gun/ballistic/automatic/pistol/commander(src)
+ new /obj/item/gun_voucher
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
@@ -282,6 +282,11 @@
name = "Contraband Locker"
req_access = list(ACCESS_HEADS)
+/obj/structure/closet/secure_closet/armorycage
+ name = "armory locker"
+ req_access = list(ACCESS_ARMORY)
+ icon_state = "shotguncase"
+
/obj/structure/closet/secure_closet/armory1
name = "armory armor locker"
req_access = list(ACCESS_ARMORY)
@@ -331,7 +336,7 @@
..()
new /obj/item/gun/ballistic/automatic/smg/wt550(src)
new /obj/item/clothing/head/helmet/bulletproof(src)
- new /obj/item/clothing/mask/gas/sechailer(src)
+ new /obj/item/clothing/mask/gas/vigilitas(src)
new /obj/item/clothing/suit/armor/vest/bulletproof(src)
/obj/structure/closet/secure_closet/lethalshots
@@ -343,10 +348,10 @@
..()
for(var/i in 1 to 3)
new /obj/item/storage/box/lethalshot(src)
- new /obj/item/ammo_box/magazine/co9mm(src) //WS edit - begin - better safe than sorry
new /obj/item/ammo_box/magazine/co9mm(src)
new /obj/item/ammo_box/magazine/co9mm(src)
- new /obj/item/ammo_box/magazine/co9mm(src) //WS edit - end
+ new /obj/item/ammo_box/magazine/co9mm(src)
+ new /obj/item/ammo_box/magazine/co9mm(src)
/obj/structure/closet/secure_closet/labor_camp_security
name = "labor camp security locker"
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index fdc061e9769d..fa4fe485015d 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -29,7 +29,7 @@
if (prob(40))
new /obj/item/storage/toolbox/emergency(src)
- switch (pickweight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 4, "delete" = 1)))
+ switch (pick_weight(list("small" = 40, "aid" = 25, "tank" = 20, "both" = 10, "nothing" = 4, "delete" = 1)))
if ("small")
new /obj/item/tank/internals/emergency_oxygen(src)
new /obj/item/tank/internals/emergency_oxygen(src)
@@ -50,7 +50,7 @@
new /obj/item/clothing/mask/breath(src)
if ("nothing")
- // doot
+ EMPTY_BLOCK_GUARD
// teehee
if ("delete")
diff --git a/code/game/objects/structures/crateshelf.dm b/code/game/objects/structures/crateshelf.dm
index 3b1387f5490b..f5f31fb30e32 100644
--- a/code/game/objects/structures/crateshelf.dm
+++ b/code/game/objects/structures/crateshelf.dm
@@ -1,4 +1,5 @@
#define DEFAULT_SHELF_CAPACITY 3 // Default capacity of the shelf
+#define DEFAULT_SHELF_MAX_CAPACITY 4
#define DEFAULT_SHELF_USE_DELAY 1 SECONDS // Default interaction delay of the shelf
#define DEFAULT_SHELF_VERTICAL_OFFSET 10 // Vertical pixel offset of shelving-related things. Set to 10 by default due to this leaving more of the crate on-screen to be clicked.
@@ -12,9 +13,13 @@
max_integrity = 50 // Not hard to break
var/capacity = DEFAULT_SHELF_CAPACITY
+ var/max_capacity = DEFAULT_SHELF_MAX_CAPACITY
var/use_delay = DEFAULT_SHELF_USE_DELAY
var/list/shelf_contents
+/obj/structure/crate_shelf/built
+ capacity = 1
+
/obj/structure/crate_shelf/debug
capacity = 12
@@ -38,6 +43,8 @@
/obj/structure/crate_shelf/examine(mob/user)
. = ..()
+ if(capacity < max_capacity)
+ . += span_notice("You could add another shelf with 2 sheets of metal.")
. += span_notice("There are some bolts holding [src] together.")
if(shelf_contents.Find(null)) // If there's an empty space in the shelf, let the examiner know.
. += span_notice("You could drag and drop a crate into [src].")
@@ -47,12 +54,40 @@
for(var/obj/structure/closet/crate/crate in shelf_contents)
. += " [icon2html(crate, user)] [crate]"
+/obj/structure/crate_shelf/proc/add_shelf(num)
+ if(capacity + num > max_capacity)
+ return FALSE
+ var/stack_layer // This is used to generate the sprite layering of the shelf pieces.
+ var/stack_offset // This is used to generate the vertical offset of the shelf pieces.
+ var/prev_capacity = capacity
+ capacity += num
+ shelf_contents.len = capacity
+ for(var/i in prev_capacity to (capacity - 1))
+ if(i >= 3) // If we're at or above three, we'll be on the way to going off the tile we're on. This allows mobs to be below the shelf when this happens.
+ stack_layer = ABOVE_MOB_LAYER + (0.02 * i) - 0.01
+ else
+ stack_layer = BELOW_OBJ_LAYER + (0.02 * i) - 0.01 // Make each shelf piece render above the last, but below the crate that should be on it.
+ stack_offset = DEFAULT_SHELF_VERTICAL_OFFSET * i // Make each shelf piece physically above the last.
+ overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "shelf_stack", layer = stack_layer, pixel_y = stack_offset)
+
/obj/structure/crate_shelf/attackby(obj/item/item, mob/living/user, params)
if (item.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
item.play_tool_sound(src)
- if(do_after(user, 3 SECONDS, target = src))
+ if(do_after(user, 3 SECONDS, src))
deconstruct(TRUE)
return TRUE
+ if(istype(item, /obj/item/stack/sheet/metal))
+ if(capacity < max_capacity)
+ var/obj/item/stack/sheet/metal/our_sheet = item
+ if(our_sheet.get_amount() >= 2)
+ balloon_alert(user, "adding additional shelf to rack")
+ if(do_after(user, 3 SECONDS, src))
+ add_shelf(1)
+ our_sheet.use(2)
+ return TRUE
+ to_chat(user, span_notice("Adding a shelf to [src] requires more metal."))
+ return FALSE
+ to_chat(user, span_notice("[src] cannot be built any higher!"))
return ..()
/obj/structure/crate_shelf/relay_container_resist_act(mob/living/user, obj/structure/closet/crate)
@@ -123,6 +158,7 @@
crate.SpinAnimation(rand(4,7), 1) // Spin the crates around a little as they fall. Randomness is applied so it doesn't look weird.
switch(pick(1, 1, 1, 1, 2, 2, 3)) // Randomly pick whether to do nothing, open the crate, or break it open.
if(1) // Believe it or not, this does nothing.
+ EMPTY_BLOCK_GUARD
if(2) // Open the crate!
if(crate.open()) // Break some open, cause a little chaos.
crate.visible_message(span_warning("[crate]'s lid falls open!"))
@@ -135,11 +171,15 @@
shelf_contents[shelf_contents.Find(crate)] = null
if(!(flags_1&NODECONSTRUCT_1))
density = FALSE
- var/obj/item/rack_parts/shelf/newparts = new(loc)
- transfer_fingerprints_to(newparts)
+ var/obj/item/rack_parts/shelf/new_parts = new(loc)
+ if(capacity >= 2)
+ var/obj/item/stack/sheet/metal/new_metal = new(loc)
+ new_metal.amount = (capacity-1)*2
+ transfer_fingerprints_to(new_metal)
+ transfer_fingerprints_to(new_parts)
return ..()
/obj/item/rack_parts/shelf
name = "crate shelf parts"
desc = "Parts of a shelf."
- construction_type = /obj/structure/crate_shelf
+ construction_type = /obj/structure/crate_shelf/built
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 4e95b5558842..b74c4926ea17 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -185,6 +185,11 @@
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
take_damage(2)
+/obj/structure/displaycase/broken
+ name = "broken display case"
+ desc = "A display case for prized possessions. Or at least it was, until someone smashed it open."
+ broken = 1
+
/obj/structure/displaycase_chassis
anchored = TRUE
density = FALSE
diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm
index d2bcf77cfda7..b77f86be469f 100644
--- a/code/game/objects/structures/door_assembly_types.dm
+++ b/code/game/objects/structures/door_assembly_types.dm
@@ -141,20 +141,6 @@
airlock_type = /obj/machinery/door/airlock/shuttle
glass_type = /obj/machinery/door/airlock/shuttle/glass
-/obj/structure/door_assembly/door_assembly_cult
- name = "cult airlock assembly"
- icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi'
- base_name = "cult airlock"
- overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi'
- airlock_type = /obj/machinery/door/airlock/cult
- glass_type = /obj/machinery/door/airlock/cult/glass
-
-/obj/structure/door_assembly/door_assembly_cult/unruned
- icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi'
- overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi'
- airlock_type = /obj/machinery/door/airlock/cult/unruned
- glass_type = /obj/machinery/door/airlock/cult/unruned/glass
-
/obj/structure/door_assembly/door_assembly_viro
name = "virology airlock assembly"
icon = 'icons/obj/doors/airlocks/station/virology.dmi'
diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm
index ebfda776726f..61944f81198c 100644
--- a/code/game/objects/structures/dresser.dm
+++ b/code/game/objects/structures/dresser.dm
@@ -9,14 +9,40 @@
hitsound_type = PROJECTILE_HITSOUND_WOOD
/obj/structure/dresser/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_WRENCH)
- to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].")
- if(I.use_tool(src, user, 20, volume=50))
- to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].")
- set_anchored(!anchored)
+ var/list/modifiers = params2list(params)
+ if(user.transferItemToLoc(I, drop_location(), silent = FALSE))
+ //Center the icon where the user clicked.
+ if(!LAZYACCESS(modifiers, ICON_X) || !LAZYACCESS(modifiers, ICON_Y))
+ return
+ //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
+ I.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2)
+ I.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2)
+ return TRUE
else
return ..()
+/obj/structure/dresser/wrench_act(mob/living/user, obj/item/I)
+ . = ..()
+ to_chat(user, "You begin to [anchored ? "unwrench" : "wrench"] [src].")
+ if(I.use_tool(src, user, 20, volume=50))
+ to_chat(user, "You successfully [anchored ? "unwrench" : "wrench"] [src].")
+ set_anchored(!anchored)
+
+/obj/structure/dresser/crowbar_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(!anchored)
+ to_chat(user, span_notice("You begin to pull apart [src]."))
+ if(I.use_tool(src, user, 30, volume=50))
+ to_chat(user, span_notice("You successfully deconstruct [src]."))
+ deconstruct()
+
+/obj/structure/dresser/deconstruct_act(mob/living/user, obj/item/I)
+ . = ..()
+ to_chat(user, span_notice("You begin to disassemble [src]."))
+ if(I.use_tool(src, user, 10, volume=50))
+ to_chat(user, span_notice("You successfully deconstruct [src]."))
+ deconstruct()
+
/obj/structure/dresser/deconstruct(disassembled = TRUE)
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
qdel(src)
diff --git a/code/game/objects/structures/fence.dm b/code/game/objects/structures/fence.dm
index 8697662ed097..819264eb1ced 100644
--- a/code/game/objects/structures/fence.dm
+++ b/code/game/objects/structures/fence.dm
@@ -111,11 +111,6 @@
cuttable = FALSE
var/open = FALSE
-/obj/structure/fence/door/Initialize()
- . = ..()
-
- update_door_status()
-
/obj/structure/fence/door/opened
icon_state = "door_opened"
open = TRUE
diff --git a/code/game/objects/structures/geyser.dm b/code/game/objects/structures/geyser.dm
index af536d2e8c1c..d5c7dbeef362 100644
--- a/code/game/objects/structures/geyser.dm
+++ b/code/game/objects/structures/geyser.dm
@@ -45,7 +45,7 @@
/obj/structure/geyser/random/Initialize()
. = ..()
- reagent_id = pickweight(options)
+ reagent_id = pick_weight(options)
/obj/item/plunger
name = "plunger"
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index aed3ae724c59..f8893a3e3bc9 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -102,58 +102,6 @@
head = /obj/item/clothing/head/helmet/gladiator
uniform = /obj/item/clothing/under/costume/gladiator/ash_walker
-/obj/effect/mob_spawn/human/demonic_friend
- name = "Essence of friendship"
- desc = "Oh boy! Oh boy! A friend!"
- mob_name = "Demonic friend"
- icon = 'icons/obj/cardboard_cutout.dmi'
- icon_state = "cutout_basic"
- outfit = /datum/outfit/demonic_friend
- death = FALSE
- roundstart = FALSE
- random = TRUE
- id_job = "SuperFriend"
- var/obj/effect/proc_holder/spell/targeted/summon_friend/spell
- var/datum/mind/owner
- assignedrole = "SuperFriend"
-
-/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell)
- . = ..()
- owner = owner_mind
- flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil."
- important_info = "Be aware that if you do not live up to [owner.name]'s expectations, they can send you back to hell with a single thought. [owner.name]'s death will also return you to hell."
- var/area/A = get_area(src)
- if(!mapload && A)
- notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE)
- objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell."
- spell = summoning_spell
-
-
-/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L)
- if(!QDELETED(owner.current) && owner.current.stat != DEAD)
- L.fully_replace_character_name(null,"[owner.name]'s best friend")
- soullink(/datum/soullink/oneway, owner.current, L)
- spell.friend = L
- spell.charge_counter = spell.charge_max
- L.mind.hasSoul = FALSE
- var/mob/living/carbon/human/H = L
- var/obj/item/worn = H.wear_id
- var/obj/item/card/id/id = worn.GetID()
- id.registered_name = L.real_name
- id.update_label()
- else
- to_chat(L, "Your owner is already dead! You will soon perish.")
- addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy.
-
-/datum/outfit/demonic_friend
- name = "Demonic Friend"
- uniform = /obj/item/clothing/under/misc/assistantformal
- shoes = /obj/item/clothing/shoes/laceup
- r_pocket = /obj/item/radio
- back = /obj/item/storage/backpack
- implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend.
- id = /obj/item/card/id
-
/obj/effect/mob_spawn/human/syndicate
name = "Syndicate Operative"
roundstart = FALSE
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index df0d3cf1f43c..5f35e69d098e 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -314,10 +314,6 @@
new remains(loc)
qdel(src)
-/obj/structure/girder/narsie_act()
- new /obj/structure/girder/cult(loc)
- qdel(src)
-
/obj/structure/girder/displaced
name = "displaced girder"
icon_state = "displaced"
@@ -339,56 +335,6 @@
new remains(loc, 2)
qdel(src)
-
-
-//////////////////////////////////////////// cult girder //////////////////////////////////////////////
-
-/obj/structure/girder/cult
- name = "runed girder"
- desc = "Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts."
- icon = 'icons/obj/cult.dmi'
- icon_state= "cultgirder"
- can_displace = FALSE
-
-/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params)
- add_fingerprint(user)
- if(W.tool_behaviour == TOOL_WELDER)
- if(!W.tool_start_check(user, amount=0))
- return
-
- to_chat(user, "You start slicing apart the girder...")
- if(W.use_tool(src, user, 40, volume=50))
- to_chat(user, "You slice apart the girder.")
- var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1)
- transfer_fingerprints_to(R)
- qdel(src)
-
- else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone))
- var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W
- if(R.get_amount() < 1)
- to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!")
- return 0
- user.visible_message("[user] begins laying runed metal on [src]...", "You begin constructing a runed wall...")
- if(do_after(user, 50, target = src))
- if(R.get_amount() < 1)
- return
- user.visible_message("[user] plates [src] with runed metal.", "You construct a runed wall.")
- R.use(1)
- var/turf/T = get_turf(src)
- T.PlaceOnTop(/turf/closed/wall/mineral/cult)
- qdel(src)
-
- else
- return ..()
-
-/obj/structure/girder/cult/narsie_act()
- return
-
-/obj/structure/girder/cult/deconstruct(disassembled = TRUE)
- if(!(flags_1 & NODECONSTRUCT_1))
- new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1)
- qdel(src)
-
/obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
switch(the_rcd.mode)
if(RCD_FLOORWALL)
diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm
index 59ef31fafa4e..83bae84fc575 100644
--- a/code/game/objects/structures/guillotine.dm
+++ b/code/game/objects/structures/guillotine.dm
@@ -154,7 +154,7 @@
else
H.apply_damage(15 * blade_sharpness, BRUTE, head)
log_combat(user, H, "dropped the blade on", src, " non-fatally")
- H.emote("scream")
+ H.force_scream()
if (blade_sharpness > 1)
blade_sharpness -= 1
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 6512a0683947..1840c27f9271 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -74,7 +74,7 @@
playsound(src.loc, 'sound/effects/splat.ogg', 25, TRUE)
L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.")
L.forceMove(drop_location())
- L.emote("scream")
+ L.force_scream()
L.add_splatter_floor()
L.adjustBruteLoss(30)
L.setDir(2)
@@ -128,7 +128,7 @@
M.adjustBruteLoss(30)
src.visible_message(text("[M] falls free of [src]!"))
unbuckle_mob(M,force=1)
- M.emote("scream")
+ M.force_scream()
M.AdjustParalyzed(20)
/obj/structure/kitchenspike/Destroy()
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 2e8c7508d594..ae1f50f0624f 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -264,7 +264,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
for(var/mob/living/M in conts)
if (M.stat != DEAD)
- M.emote("scream")
+ M.force_scream()
if(user)
log_combat(user, M, "cremated")
else
diff --git a/code/game/objects/structures/platforms.dm b/code/game/objects/structures/platforms.dm
new file mode 100644
index 000000000000..c6ede0166d1b
--- /dev/null
+++ b/code/game/objects/structures/platforms.dm
@@ -0,0 +1,172 @@
+/obj/structure/platform
+ name = "platform"
+ desc = "An elevated platform meant to make someone feel more important."
+ icon = 'icons/obj/platform.dmi'
+ icon_state = "platform"
+ flags_1 = ON_BORDER_1
+ layer = RAILING_LAYER
+ pass_flags_self = LETPASSTHROW
+ density = TRUE
+ anchored = TRUE
+ climbable = TRUE
+
+/obj/structure/platform/Initialize()
+ . = ..()
+ if(density && flags_1 & ON_BORDER_1)
+ var/static/list/loc_connections = list(
+ COMSIG_ATOM_EXIT = PROC_REF(on_exit),
+ )
+ AddElement(/datum/element/connect_loc, loc_connections)
+ update_appearance()
+
+/obj/structure/platform/update_appearance(updates)
+ . = ..()
+ if(dir == 1)
+ layer = 2.89
+ else
+ layer = 3.08
+
+
+/obj/structure/platform/corner
+ icon_state = "platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/industrial
+ icon_state = "industrial_platform"
+
+/obj/structure/platform/industrial/corner
+ icon_state = "ind_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/industrial_alt
+ icon_state = "industrial2_platform"
+
+/obj/structure/platform/industrial_alt/corner
+ icon_state = "ind2_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/military
+ icon_state = "military_platform"
+
+/obj/structure/platform/military/corner
+ icon_state = "mil_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/ship
+ icon_state = "ship_platform"
+
+/obj/structure/platform/ship/corner
+ icon_state = "ship_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/ship_two
+ icon_state = "ship2_platform"
+
+/obj/structure/platform/ship_two/corner
+ icon_state = "ship2_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/ship_three
+ icon_state = "ship3_platform"
+
+/obj/structure/platform/ship_three/corner
+ icon_state = "ship3_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/ship_four
+ icon_state = "ship4_platform"
+
+/obj/structure/platform/ship_four/corner
+ icon_state = "ship4_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/wood
+ name = "wooden platform"
+ icon_state = "wood_platform"
+ resistance_flags = FLAMMABLE
+
+/obj/structure/platform/wood/corner
+ icon_state = "wood_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/wood_two
+ name = "wooden platform"
+ icon_state = "fancy_wood_platform"
+ resistance_flags = FLAMMABLE
+
+/obj/structure/platform/wood_two/corner
+ icon_state = "fwood_platform_corners"
+ density = FALSE
+ climbable = FALSE
+
+/obj/structure/platform/attackby(obj/item/I, mob/living/user, params)
+ ..()
+ add_fingerprint(user)
+
+ if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP)
+ if(obj_integrity < max_integrity)
+ if(!I.tool_start_check(user, amount=0))
+ return
+
+ to_chat(user, span_notice("You begin repairing [src]..."))
+ if(I.use_tool(src, user, 40, volume=50))
+ obj_integrity = max_integrity
+ to_chat(user, span_notice("You repair [src]."))
+ else
+ to_chat(user, span_warning("[src] is already in good condition!"))
+ return
+
+/obj/structure/platform/deconstruct_act(mob/living/user, obj/item/I)
+ . = ..()
+ if(!I.tool_start_check(user, amount=0))
+ return FALSE
+ if(I.use_tool(src, user, 3 SECONDS, volume=0))
+ to_chat(user, span_warning("You cut apart the platform."))
+ deconstruct()
+ return TRUE
+
+/obj/structure/platform/deconstruct(disassembled)
+ . = ..()
+ if(!loc) //quick check if it's qdeleted already.
+ return
+ if(!(flags_1 & NODECONSTRUCT_1))
+ qdel(src)
+
+/obj/structure/platform/CanPass(atom/movable/mover, border_dir)
+ . = ..()
+ if(border_dir & dir)
+ return . || mover.throwing || mover.movement_type & (FLYING | FLOATING)
+ return TRUE
+
+/obj/structure/platform/proc/on_exit(datum/source, atom/movable/leaving, direction)
+ SIGNAL_HANDLER
+
+ if(leaving == src)
+ return // Let's not block ourselves.
+
+ if(!(direction & dir))
+ return
+
+ if(!density)
+ return
+
+ if(leaving.throwing)
+ return
+
+ if(leaving.movement_type & (PHASING | FLYING | FLOATING))
+ return
+
+ if(leaving.move_force >= MOVE_FORCE_EXTREMELY_STRONG)
+ return
+
+ leaving.Bump(src)
+ return COMPONENT_ATOM_BLOCK_EXIT
diff --git a/code/game/objects/structures/poddoor_assembly.dm b/code/game/objects/structures/poddoor_assembly.dm
index 5909e0f666b2..f06610ddbc5d 100644
--- a/code/game/objects/structures/poddoor_assembly.dm
+++ b/code/game/objects/structures/poddoor_assembly.dm
@@ -56,6 +56,14 @@
return
created_name = new_name
+ else if(item_used.tool_behaviour == TOOL_DECONSTRUCT)
+ if(!item_used.tool_start_check(user, amount=0))
+ return
+ user.visible_message(span_notice("[user] cuts apart [src]."), span_notice("You start to slice apart [src]..."))
+ if(item_used.use_tool(src, user, 4 SECONDS, volume=50))
+ to_chat(user, span_notice("You disassemble [src]."))
+ deconstruct(TRUE)
+
else if(item_used.tool_behaviour == TOOL_WELDER)
if(!item_used.tool_start_check(user, amount=0))
return
diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm
index d8f5c543a168..16905af75179 100644
--- a/code/game/objects/structures/railings.dm
+++ b/code/game/objects/structures/railings.dm
@@ -106,16 +106,16 @@
if(!(direction & dir))
return
- if (!density)
+ if(!density)
return
- if (leaving.throwing)
+ if(leaving.throwing)
return
- if (leaving.movement_type & (PHASING | FLYING | FLOATING))
+ if(leaving.movement_type & (PHASING | FLYING | FLOATING))
return
- if (leaving.move_force >= MOVE_FORCE_EXTREMELY_STRONG)
+ if(leaving.move_force >= MOVE_FORCE_EXTREMELY_STRONG)
return
leaving.Bump(src)
@@ -142,12 +142,12 @@
/obj/structure/railing/wood
name = "wooden railing"
- color = "#A47449"
+ icon_state = "wood_railing_thin"
buildstack = /obj/item/stack/sheet/mineral/wood
/obj/structure/railing/corner/wood
name = "wooden railing"
- color = "#A47449"
+ icon_state = "wood_corners_thin"
buildstack = /obj/item/stack/sheet/mineral/wood
/obj/structure/railing/modern
@@ -196,3 +196,15 @@
density = FALSE
climbable = FALSE
buildstackamount = 1
+
+/obj/structure/railing/thick
+ icon_state = "railing_thick"
+
+/obj/structure/railing/thick/corner
+ icon_state = "railing_thick_corner"
+
+/obj/structure/railing/thin
+ icon_state = "railing_thin"
+
+/obj/structure/railing/thin/corner
+ icon_state = "railing_thin_corner"
diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm
index 44a9f7f94717..3cc9dd50dbee 100644
--- a/code/game/objects/structures/safe.dm
+++ b/code/game/objects/structures/safe.dm
@@ -42,8 +42,9 @@ FLOOR SAFES
. = ..()
// Combination generation
- for(var/i in 1 to number_of_tumblers)
- tumblers.Add(rand(0, 99))
+ if(tumblers.len < 1) // [CELADON-ADD] - Добавляем проверку наличия кодов, для возможности использования определённых кодов.
+ for(var/i in 1 to number_of_tumblers)
+ tumblers.Add(rand(0, 99))
if(!mapload)
return
@@ -78,7 +79,7 @@ FLOOR SAFES
else if(I.tool_behaviour == TOOL_DECONSTRUCT)
user.visible_message("[user] begin to cut through the lock of \the [src].","You start cutting trough the lock of [src].")
- if(I.use_tool(src, user, 60 SECONDS))
+ if(I.use_tool(src, user, 45 SECONDS))
broken = TRUE
user.visible_message("[user] successfully cuts trough the lock of \the [src].","You successfully cut trough the lock of [src].")
diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm
index f4aad715db19..ccb76bd81c4a 100644
--- a/code/game/objects/structures/salvaging.dm
+++ b/code/game/objects/structures/salvaging.dm
@@ -56,16 +56,16 @@
/obj/item/stack/ore/salvage/scrapgold/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/lootdrop/salvage_capacitor = 50,
- /obj/effect/spawner/lootdrop/salvage_capacitor = 50,
- /obj/effect/spawner/lootdrop/salvage_scanning = 50,
- /obj/effect/spawner/lootdrop/salvage_scanning = 50,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 40,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 40,
- /obj/effect/spawner/lootdrop/salvage_laser = 40,
- /obj/effect/spawner/lootdrop/salvage_laser = 40,
+ /obj/effect/spawner/random/salvage_capacitor = 50,
+ /obj/effect/spawner/random/salvage_capacitor = 50,
+ /obj/effect/spawner/random/salvage_scanning = 50,
+ /obj/effect/spawner/random/salvage_scanning = 50,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_manipulator = 40,
+ /obj/effect/spawner/random/salvage_manipulator = 40,
+ /obj/effect/spawner/random/salvage_laser = 40,
+ /obj/effect/spawner/random/salvage_laser = 40,
)
/obj/structure/salvageable/computer
@@ -79,7 +79,7 @@
/obj/item/stack/ore/salvage/scrapgold/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/lootdrop/salvage_capacitor = 60,
+ /obj/effect/spawner/random/salvage_capacitor = 60,
/obj/item/computer_hardware/battery = 40,
/obj/item/computer_hardware/battery = 40,
@@ -91,8 +91,8 @@
/obj/item/computer_hardware/card_slot = 40,
/obj/item/computer_hardware/network_card/advanced = 20,
- /obj/effect/spawner/lootdrop/random_computer_circuit_common = 50,
- /obj/effect/spawner/lootdrop/random_computer_circuit_rare = 5,
+ /obj/effect/spawner/random/circuit/computer/common = 50,
+ /obj/effect/spawner/random/circuit/computer/rare = 5,
/obj/item/research_notes/loot/tiny = 10,
)
@@ -106,11 +106,10 @@
/obj/item/stack/ore/salvage/scraptitanium/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
-
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_manipulator = 30,
/obj/item/circuitboard/machine/autolathe = 35,
@@ -134,17 +133,17 @@
/obj/item/stack/ore/salvage/scrapplasma/five = 60,
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_manipulator = 30,
+ /obj/effect/spawner/random/salvage_manipulator = 30,
- /obj/effect/spawner/lootdrop/tool_engie_proto = 45,
- /obj/effect/spawner/lootdrop/tool_surgery_proto = 55,
- /obj/effect/spawner/lootdrop/beaker_loot_spawner = 45,
- /obj/effect/spawner/lootdrop/random_prosthetic = 25,
- /obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop = 5, //:flushed:
- /obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop = 5,
+ /obj/effect/spawner/random/engineering/tool = 45,
+ /obj/effect/spawner/random/medical/surgery_tool = 55,
+ /obj/effect/spawner/random/medical/beaker = 45,
+ /obj/effect/spawner/random/medical/prosthetic = 25,
+ /obj/effect/spawner/random/random_gun_protolathe_lootdrop = 5, //:flushed:
+ /obj/effect/spawner/random/random_ammo_protolathe_lootdrop = 5,
/obj/item/storage/part_replacer = 20,
/obj/item/storage/part_replacer/bluespace = 1,
@@ -172,13 +171,13 @@
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
/obj/item/stack/ore/salvage/scrapbluespace = 60,
- /obj/effect/spawner/lootdrop/salvage_matter_bin = 40,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
+ /obj/effect/spawner/random/salvage_matter_bin = 40,
+ /obj/effect/spawner/random/salvage_manipulator = 30,
/obj/item/stack/circuit_stack = 50, //this might be the only way in the game to get a poly circuit, and the only way for many ships to get essensial electronics. huh.
- /obj/effect/spawner/lootdrop/random_machine_circuit_mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered.
- /obj/effect/spawner/lootdrop/random_machine_circuit_common = 50, //well.... "common"
- /obj/effect/spawner/lootdrop/random_machine_circuit_rare = 5,
+ /obj/effect/spawner/random/circuit/machine/mech = 45, //with all the wonderful broken mechs lying around, this might be a chance to get something stupidly overpowered.
+ /obj/effect/spawner/random/circuit/machine/common = 50, //well.... "common"
+ /obj/effect/spawner/random/circuit/machine/rare = 5,
/obj/item/stack/sheet/metal/five = 15, //same as above but more geared towards stuff used by circuit imprinter
/obj/item/stack/sheet/glass/five = 15,
@@ -199,12 +198,12 @@
/obj/item/stack/ore/salvage/scrapmetal/five = 60,
/obj/item/stack/ore/salvage/scrapplasma = 60,
- /obj/effect/spawner/lootdrop/salvage_scanning = 40,
- /obj/effect/spawner/lootdrop/salvage_laser = 30,
- /obj/effect/spawner/lootdrop/salvage_manipulator = 30,
+ /obj/effect/spawner/random/salvage_scanning = 40,
+ /obj/effect/spawner/random/salvage_laser = 30,
+ /obj/effect/spawner/random/salvage_manipulator = 30,
/obj/item/storage/toolbox/syndicate/empty = 80,
- /obj/effect/spawner/lootdrop/destructive_anal_loot = 65,
+ /obj/effect/spawner/random/destructive_anal_loot = 65,
/obj/item/stack/sheet/metal/five = 15, //same as above but more geared towards stuff used by circuit imprinter
/obj/item/stack/sheet/glass/five = 15,
@@ -342,11 +341,11 @@
color = "#808080"
salvageable_parts = list(
- /obj/effect/spawner/lootdrop/seeded = 80,
- /obj/effect/spawner/lootdrop/seeded = 80,
- /obj/effect/spawner/lootdrop/seeded = 80,
- /obj/effect/spawner/lootdrop/seeded = 80,
- /obj/effect/spawner/lootdrop/seeded = 80,
+ /obj/effect/spawner/random/food_or_drink/seed = 80,
+ /obj/effect/spawner/random/food_or_drink/seed = 80,
+ /obj/effect/spawner/random/food_or_drink/seed = 80,
+ /obj/effect/spawner/random/food_or_drink/seed = 80,
+ /obj/effect/spawner/random/food_or_drink/seed = 80,
/obj/item/seeds/random = 80,
/obj/item/seeds/random = 40,
/obj/item/seeds/random = 40,
@@ -470,238 +469,3 @@
/obj/item/stack/ore/salvage/scrapbluespace/five
amount = 5
-
-//loot spawners as shown above
-
-//GENERIC
-/obj/effect/spawner/lootdrop/salvage_capacitor
- loot = list(
- /obj/item/stock_parts/capacitor = 120,
- /obj/item/stock_parts/capacitor/adv = 20,
- /obj/item/stock_parts/capacitor/super = 5,
- )
-
-/obj/effect/spawner/lootdrop/salvage_scanning
- loot = list(
- /obj/item/stock_parts/scanning_module = 120,
- /obj/item/stock_parts/scanning_module/adv = 20,
- /obj/item/stock_parts/scanning_module/phasic = 5,
- )
-
-/obj/effect/spawner/lootdrop/salvage_manipulator
- loot = list(
- /obj/item/stock_parts/manipulator = 120,
- /obj/item/stock_parts/manipulator/nano = 20,
- /obj/item/stock_parts/manipulator/pico = 5,
- )
-
-/obj/effect/spawner/lootdrop/salvage_matter_bin
- loot = list(
- /obj/item/stock_parts/matter_bin = 120,
- /obj/item/stock_parts/matter_bin/adv = 20,
- /obj/item/stock_parts/matter_bin/super = 5,
- )
-
-/obj/effect/spawner/lootdrop/salvage_laser
- loot = list(
- /obj/item/stock_parts/micro_laser = 120,
- /obj/item/stock_parts/micro_laser/high = 20,
- /obj/item/stock_parts/micro_laser/ultra = 5,
- )
-
-//PROTOLATHE
-/obj/effect/spawner/lootdrop/tool_engie_proto
- loot = list(
- /obj/effect/spawner/lootdrop/tool_engie_common = 120,
- /obj/effect/spawner/lootdrop/tool_engie_sydnie = 20,
- /obj/effect/spawner/lootdrop/tool_engie_adv = 5,
- )
-
-/obj/effect/spawner/lootdrop/tool_engie_common
- loot = list(
- /obj/item/wrench/crescent = 1,
- /obj/item/screwdriver = 1,
- /obj/item/weldingtool = 1,
- /obj/item/crowbar = 1,
- /obj/item/wirecutters = 1,
- /obj/item/multitool = 1,
- )
-
-/obj/effect/spawner/lootdrop/tool_engie_sydnie
- loot = list(
- /obj/item/wrench/syndie = 1,
- /obj/item/screwdriver/nuke = 1,
- /obj/item/weldingtool/largetank = 1,
- /obj/item/crowbar/syndie = 1,
- /obj/item/wirecutters/syndie = 1,
- /obj/item/multitool/syndie = 1,
- )
-
-/obj/effect/spawner/lootdrop/tool_engie_adv
- loot = list(
- /obj/item/screwdriver/power = 1,
- /obj/item/weldingtool/experimental = 1,
- /obj/item/crowbar/power = 1,
- )
-
-/obj/effect/spawner/lootdrop/tool_surgery_proto
- loot = list(
- /obj/effect/spawner/lootdrop/tool_surgery_common = 120,
- /obj/effect/spawner/lootdrop/tool_surgery_adv = 10,
- )
-
-/obj/effect/spawner/lootdrop/tool_surgery_common
- loot = list(
- /obj/item/scalpel = 1,
- /obj/item/hemostat = 1,
- /obj/item/cautery = 1,
- /obj/item/retractor = 1,
- /obj/item/circular_saw = 1,
- /obj/item/surgicaldrill = 1,
- )
-
-/obj/effect/spawner/lootdrop/tool_surgery_adv
- loot = list(
- /obj/item/scalpel/advanced = 1,
- /obj/item/retractor/advanced = 1,
- /obj/item/surgicaldrill/advanced = 1,
- )
-
-/obj/effect/spawner/lootdrop/beaker_loot_spawner
- loot = list(
- /obj/item/reagent_containers/glass/beaker = 300,
- /obj/item/reagent_containers/glass/beaker/large = 200,
- /obj/item/reagent_containers/glass/beaker/plastic = 50,
- /obj/item/reagent_containers/glass/beaker/meta = 10,
- /obj/item/reagent_containers/glass/beaker/noreact = 5,
- /obj/item/reagent_containers/glass/beaker/bluespace = 1,
- )
-/obj/effect/spawner/lootdrop/random_prosthetic
- loot = list(
- /obj/item/bodypart/l_arm/robot/surplus = 1,
- /obj/item/bodypart/r_arm/robot/surplus = 1,
- /obj/item/bodypart/leg/left/robot/surplus = 1,
- /obj/item/bodypart/leg/right/robot/surplus = 1,
- )
-/obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop
- loot = list(
- /obj/item/gun/energy/lasercannon = 1,
- /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto = 1,
- /obj/item/gun/energy/temperature/security = 1,
- )
-/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop
- loot = list(
- /obj/item/stock_parts/cell/gun/upgraded = 5,
- /obj/item/ammo_box/magazine/smgm9mm = 7,
- )
-
-//CIRCUIT IMPRINTER
-/obj/effect/spawner/lootdrop/random_machine_circuit_common
- loot = list(
- /obj/item/circuitboard/machine/autolathe = 5,
- /obj/item/circuitboard/machine/biogenerator = 5,
- /obj/item/circuitboard/machine/cell_charger = 5,
- /obj/item/circuitboard/machine/chem_heater = 5,
- /obj/item/circuitboard/machine/chem_master = 5,
- /obj/item/circuitboard/machine/clonescanner = 5,
- /obj/item/circuitboard/machine/cryo_tube = 5,
- /obj/item/circuitboard/machine/cyborgrecharger = 5,
- /obj/item/circuitboard/machine/deep_fryer = 5,
- /obj/item/circuitboard/machine/experimentor = 5,
- /obj/item/circuitboard/machine/holopad = 5,
- /obj/item/circuitboard/machine/hydroponics = 5,
- /obj/item/circuitboard/machine/limbgrower = 5,
- /obj/item/circuitboard/machine/ltsrbt = 5,
- /obj/item/circuitboard/machine/mech_recharger = 5,
- /obj/item/circuitboard/machine/mechfab = 5,
- /obj/item/circuitboard/machine/medical_kiosk = 5,
- /obj/item/circuitboard/machine/medipen_refiller = 5,
- /obj/item/circuitboard/machine/microwave = 5,
- /obj/item/circuitboard/machine/monkey_recycler = 5,
- /obj/item/circuitboard/machine/ore_redemption = 5,
- /obj/item/circuitboard/machine/ore_silo = 5,
- /obj/item/circuitboard/machine/reagentgrinder = 5,
- /obj/item/circuitboard/machine/recharger = 5,
- /obj/item/circuitboard/machine/seed_extractor = 5,
- /obj/item/circuitboard/machine/selling_pad = 5,
- /obj/item/circuitboard/machine/emitter = 5,
- )
-
-/obj/effect/spawner/lootdrop/random_machine_circuit_rare
- loot = list(
- /obj/item/circuitboard/aicore = 5,
- /obj/item/circuitboard/machine/chem_dispenser = 5,
- /obj/item/circuitboard/machine/circuit_imprinter = 5,
- /obj/item/circuitboard/machine/protolathe = 5,
- /obj/item/circuitboard/machine/clonepod/experimental = 5,
- /obj/item/circuitboard/machine/rad_collector = 5,
- /obj/item/circuitboard/machine/launchpad = 5,
- )
-
-/obj/effect/spawner/lootdrop/random_machine_circuit_mech
- loot = list(
- /obj/item/circuitboard/mecha/ripley/main = 100,
- /obj/item/circuitboard/mecha/ripley/peripherals = 100,
- /obj/item/circuitboard/mecha/honker/main = 5,
- /obj/item/circuitboard/mecha/honker/peripherals = 5,
- /obj/item/circuitboard/mecha/odysseus/main = 5,
- /obj/item/circuitboard/mecha/odysseus/peripherals = 5,
- /obj/item/circuitboard/mecha/gygax/main = 1,
- /obj/item/circuitboard/mecha/gygax/peripherals = 1,
- /obj/item/circuitboard/mecha/gygax/targeting = 1,
- /obj/item/circuitboard/mecha/durand/main = 1,
- /obj/item/circuitboard/mecha/durand/peripherals = 1,
- /obj/item/circuitboard/mecha/durand/targeting = 1,
- )
-
-//COMPUTER
-/obj/effect/spawner/lootdrop/random_computer_circuit_common
- loot = list(
- /obj/item/circuitboard/computer/aifixer = 5,
- /obj/item/circuitboard/computer/arcade/amputation = 5,
- /obj/item/circuitboard/computer/arcade/battle = 5,
- /obj/item/circuitboard/computer/arcade/orion_trail = 5,
- /obj/item/circuitboard/computer/atmos_alert = 5,
- /obj/item/circuitboard/computer/card = 5,
- /obj/item/circuitboard/computer/cloning = 5,
- /obj/item/circuitboard/computer/communications = 5,
- /obj/item/circuitboard/computer/launchpad_console = 5,
- /obj/item/circuitboard/computer/mech_bay_power_console = 5,
- /obj/item/circuitboard/computer/pandemic = 5,
- /obj/item/circuitboard/computer/powermonitor/secret = 5,
- /obj/item/circuitboard/computer/prototype_cloning = 5,
- /obj/item/circuitboard/computer/stationalert = 5,
- /obj/item/circuitboard/computer/xenobiology = 5,
- /obj/item/circuitboard/computer/teleporter = 5,
- /obj/item/circuitboard/computer/operating = 5,
- /obj/item/circuitboard/computer/crew = 5,
- /obj/item/circuitboard/computer/scan_consolenew = 5,
- )
-
-/obj/effect/spawner/lootdrop/random_computer_circuit_rare
- loot = list(
- /obj/item/circuitboard/computer/cargo = 5,
- /obj/item/circuitboard/computer/communications = 5,
- /obj/item/circuitboard/computer/shuttle/helm = 5,
- /obj/item/circuitboard/computer/med_data = 5,
- )
-
-//DESTRUCTIVE ANAL //i'm killing you
-/obj/effect/spawner/lootdrop/destructive_anal_loot //what do people usually put in these things anayways
- loot = list(
- /obj/item/storage/toolbox/syndicate/empty = 650,
- /obj/item/gun/ballistic/automatic/pistol/ringneck = 500,
- /obj/item/camera_bug = 500,
- /obj/item/clothing/gloves/combat = 200,
- /obj/item/clothing/head/chameleon = 200,
- /obj/item/pen/sleepy = 200,
- /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 100,
-
- /obj/item/grenade/c4 = 100,
-
- /obj/item/wrench/syndie = 30,
- /obj/item/screwdriver/nuke = 30,
- /obj/item/crowbar/syndie = 30,
- /obj/item/wirecutters/syndie = 30,
- /obj/item/multitool/syndie = 30,
- )
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 16cf7af6ce81..b7c6285d7962 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -134,11 +134,11 @@
if(current_temperature == SHOWER_FREEZING)
if(iscarbon(L))
- C.adjust_bodytemperature(-80, 80)
+ C.adjust_bodytemperature(-5, 280)
to_chat(L, "[src] is freezing!")
else if(current_temperature == SHOWER_BOILING)
if(iscarbon(L))
- C.adjust_bodytemperature(35, 0, 500)
+ C.adjust_bodytemperature(5, 0, 350)
L.adjustFireLoss(5)
to_chat(L, "[src] is searing!")
diff --git a/code/game/objects/structures/signs/signs_flags.dm b/code/game/objects/structures/signs/signs_flags.dm
index 415bce3bf6f5..48eb38cafa32 100644
--- a/code/game/objects/structures/signs/signs_flags.dm
+++ b/code/game/objects/structures/signs/signs_flags.dm
@@ -43,6 +43,12 @@
icon_state = "flag_suns"
item_flag = /obj/item/sign/flag/suns
+/obj/structure/sign/flag/ngr
+ name = "\improper New Gorlexian flag"
+ desc = "The New Gorlex Republic's colors: Red for the martyrs of Old Gorlex, Black for the endless Frontier, and tan for the sands of New Gorlex."
+ icon_state = "flag_ngr"
+ item_flag = /obj/item/sign/flag/ngr
+
// ITEM FLAGS - THE THINGS YOU HOLD AND PLACE
/obj/item/sign/flag
@@ -63,3 +69,9 @@
desc = "A folded up purple Flag. Something about this flag makes you think of chemistry."
icon_state = "folded_suns"
sign_path = /obj/structure/sign/flag/suns
+
+/obj/item/sign/flag/ngr
+ name = "folded New Gorlexian flag"
+ desc = "A folded up NGR flag. Something about this flag makes you think of explosives."
+ icon_state = "folded_ngr"
+ sign_path = /obj/structure/sign/flag/ngr
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index 68c99d6649a5..4d9b3b783cef 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -62,11 +62,6 @@
desc = "This is a grand statue of a Nuclear Explosive. It has a sickening green colour."
icon_state = "nuke"
-/obj/structure/statue/uranium/eng
- name = "Statue of an engineer"
- desc = "This statue has a sickening green colour."
- icon_state = "eng"
-
/obj/structure/statue/uranium/attackby(obj/item/W, mob/user, params)
radiate()
return ..()
@@ -93,168 +88,6 @@
return
return
-////////////////////////////plasma///////////////////////////////////////////////////////////////////////
-
-/obj/structure/statue/plasma
- max_integrity = 200
- material_drop_type = /obj/item/stack/sheet/mineral/plasma
- impressiveness = 20
- desc = "This statue is suitably made from plasma."
-
-/obj/structure/statue/plasma/scientist
- name = "statue of a scientist"
- icon_state = "sci"
-
-/obj/structure/statue/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
- if(exposed_temperature > 300)
- PlasmaBurn(exposed_temperature)
-
-
-/obj/structure/statue/plasma/bullet_act(obj/projectile/Proj)
- var/burn = FALSE
- if(!(Proj.nodamage) && Proj.damage_type == BURN && !QDELETED(src))
- burn = TRUE
- if(burn)
- var/turf/T = get_turf(src)
- if(Proj.firer)
- message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(Proj.firer)] in [ADMIN_VERBOSEJMP(T)]")
- log_game("Plasma statue ignited by [key_name(Proj.firer)] in [AREACOORD(T)]")
- else
- message_admins("Plasma statue ignited by [Proj]. No known firer, in [ADMIN_VERBOSEJMP(T)]")
- log_game("Plasma statue ignited by [Proj] in [AREACOORD(T)]. No known firer.")
- PlasmaBurn(2500)
- . = ..()
-
-/obj/structure/statue/plasma/attackby(obj/item/W, mob/user, params)
- if(W.get_temperature() > 300 && !QDELETED(src))//If the temperature of the object is over 300, then ignite
- var/turf/T = get_turf(src)
- message_admins("Plasma statue ignited by [ADMIN_LOOKUPFLW(user)] in [ADMIN_VERBOSEJMP(T)]")
- log_game("Plasma statue ignited by [key_name(user)] in [AREACOORD(T)]")
- ignite(W.get_temperature())
- else
- return ..()
-
-/obj/structure/statue/plasma/proc/PlasmaBurn(exposed_temperature)
- if(QDELETED(src))
- return
- atmos_spawn_air("plasma=[oreAmount*10];TEMP=[exposed_temperature]")
- deconstruct(FALSE)
-
-/obj/structure/statue/plasma/proc/ignite(exposed_temperature)
- if(exposed_temperature > 300)
- PlasmaBurn(exposed_temperature)
-
-//////////////////////gold///////////////////////////////////////
-
-/obj/structure/statue/gold
- max_integrity = 300
- material_drop_type = /obj/item/stack/sheet/mineral/gold
- impressiveness = 25
- desc = "This is a highly valuable statue made from gold."
-
-/obj/structure/statue/gold/hos
- name = "statue of the head of security"
- icon_state = "hos"
-
-/obj/structure/statue/gold/head_of_personnel
- name = "statue of the head of personnel"
- icon_state = "hop"
-
-/obj/structure/statue/gold/cmo
- name = "statue of the chief medical officer"
- icon_state = "cmo"
-
-/obj/structure/statue/gold/ce
- name = "statue of the chief engineer"
- icon_state = "ce"
-
-/obj/structure/statue/gold/rd
- name = "statue of the research director"
- icon_state = "rd"
-
-//////////////////////////silver///////////////////////////////////////
-
-/obj/structure/statue/silver
- max_integrity = 300
- material_drop_type = /obj/item/stack/sheet/mineral/silver
- impressiveness = 25
- desc = "This is a valuable statue made from silver."
-
-/obj/structure/statue/silver/md
- name = "statue of a medical officer"
- icon_state = "md"
-
-/obj/structure/statue/silver/janitor
- name = "statue of a janitor"
- icon_state = "jani"
-
-/obj/structure/statue/silver/sec
- name = "statue of a security officer"
- icon_state = "sec"
-
-/obj/structure/statue/silver/secborg
- name = "statue of a security cyborg"
- icon_state = "secborg"
-
-/obj/structure/statue/silver/medborg
- name = "statue of a medical cyborg"
- icon_state = "medborg"
-
-/////////////////////////diamond/////////////////////////////////////////
-
-/obj/structure/statue/diamond
- max_integrity = 1000
- material_drop_type = /obj/item/stack/sheet/mineral/diamond
- impressiveness = 50
- desc = "This is a very expensive diamond statue."
-
-/obj/structure/statue/diamond/captain
- name = "statue of THE captain."
- icon_state = "cap"
-
-/obj/structure/statue/diamond/ai1
- name = "statue of the AI hologram."
- icon_state = "ai1"
-
-/obj/structure/statue/diamond/ai2
- name = "statue of the AI core."
- icon_state = "ai2"
-
-////////////////////////bananium///////////////////////////////////////
-
-/obj/structure/statue/bananium
- max_integrity = 300
- material_drop_type = /obj/item/stack/sheet/mineral/hidden/hellstone
- impressiveness = 50
- desc = "A bananium statue with a small engraving:'HOOOOOOONK'."
- var/spam_flag = 0
-
-/obj/structure/statue/bananium/clown
- name = "statue of a clown"
- icon_state = "clown"
-
-/obj/structure/statue/bananium/Bumped(atom/movable/AM)
- honk()
- ..()
-
-/obj/structure/statue/bananium/attackby(obj/item/W, mob/user, params)
- honk()
- return ..()
-
-/obj/structure/statue/bananium/attack_hand(mob/user)
- honk()
- . = ..()
-
-/obj/structure/statue/bananium/attack_paw(mob/user)
- honk()
- ..()
-
-/obj/structure/statue/bananium/proc/honk()
- if(!spam_flag)
- spam_flag = TRUE
- playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE)
- addtimer(VARSET_CALLBACK(src, spam_flag, FALSE), 2 SECONDS)
-
/////////////////////sandstone/////////////////////////////////////////
/obj/structure/statue/sandstone
@@ -262,12 +95,6 @@
material_drop_type = /obj/item/stack/sheet/mineral/sandstone
impressiveness = 15
-/obj/structure/statue/sandstone/assistant
- name = "statue of an assistant"
- desc = "A cheap statue of sandstone for a greyshirt."
- icon_state = "assist"
-
-
/obj/structure/statue/sandstone/venus //call me when we add marble i guess
name = "statue of a pure maiden"
desc = "An ancient marble statue. The subject is depicted with a floor-length braid and is wielding a toolbox. By Jove, it's easily the most gorgeous depiction of a woman you've ever seen. The artist must truly be a master of his craft. Shame about the broken arm, though."
@@ -290,16 +117,6 @@
desc = "Looks like that weird kid with the tiger plushie has been round here again."
icon_state = "snowlegion"
-///////////////////////////////bronze///////////////////////////////////
-
-/obj/structure/statue/bronze
- material_drop_type = /obj/item/stack/tile/bronze
-
-/obj/structure/statue/bronze/marx
- name = "\improper Karl Marx bust"
- desc = "A bust depicting a certain 19th century economist. You get the feeling a specter is haunting the sector."
- icon_state = "marx"
-
/// bone
/obj/structure/statue/bone
anchored = TRUE
diff --git a/code/game/objects/structures/table_flipped.dm b/code/game/objects/structures/table_flipped.dm
index 28af5d0b63bd..8caa87b984a2 100644
--- a/code/game/objects/structures/table_flipped.dm
+++ b/code/game/objects/structures/table_flipped.dm
@@ -7,6 +7,7 @@
density = TRUE
layer = ABOVE_MOB_LAYER
opacity = FALSE
+ pass_flags_self = LETPASSTHROW
var/table_type = /obj/structure/table
/obj/structure/flippedtable/Initialize()
@@ -54,6 +55,8 @@
return
if(istype(exiter, /obj/projectile))
return
+ if(istype(exiter, /obj/item))
+ return
if(direction == table_dir)
exiter.Bump(src)
return COMPONENT_ATOM_BLOCK_EXIT
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index cf45faf697a2..fdafc92db4ac 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -684,15 +684,20 @@
step(O, get_dir(O, src))
/obj/structure/rack/attackby(obj/item/W, mob/user, params)
+ var/list/modifiers = params2list(params)
if (W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1) && user.a_intent != INTENT_HELP)
W.play_tool_sound(src)
deconstruct(TRUE)
return
if(user.a_intent == INTENT_HARM)
return ..()
- if(user.transferItemToLoc(W, drop_location()))
- W.pixel_x = pick(9,0,-9)
- W.pixel_y = pick(10,1)
+ if(user.transferItemToLoc(W, drop_location(), silent = FALSE))
+ //Center the icon where the user clicked.
+ if(!LAZYACCESS(modifiers, ICON_X) || !LAZYACCESS(modifiers, ICON_Y))
+ return
+ //Clamp it so that the icon never moves more than 16 pixels in either direction (thus leaving the table turf)
+ W.pixel_x = clamp(text2num(LAZYACCESS(modifiers, ICON_X)) - 16, -(world.icon_size/2), world.icon_size/2)
+ W.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(world.icon_size/2), world.icon_size/2)
return TRUE
/obj/structure/rack/attack_paw(mob/living/user)
@@ -704,9 +709,13 @@
return
if(user.body_position == LYING_DOWN || user.usable_legs < 2)
return
+
+ if(user.a_intent != INTENT_HARM)
+ to_chat(user, span_danger("You aren't HARMFUL enough to beat the rack."))
+ return
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
- user.visible_message("[user] kicks [src].", null, null, COMBAT_MESSAGE_RANGE)
+ user.visible_message(span_danger("[user] kicks [src]."), null, null, COMBAT_MESSAGE_RANGE)
take_damage(rand(4,8), BRUTE, "melee", 1)
/obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
diff --git a/code/game/objects/structures/traps.dm b/code/game/objects/structures/traps.dm
index 4c6c3173cded..9649812f40f8 100644
--- a/code/game/objects/structures/traps.dm
+++ b/code/game/objects/structures/traps.dm
@@ -116,7 +116,7 @@
/obj/structure/trap/chill/trap_effect(mob/living/L)
to_chat(L, "You're frozen solid!")
L.Paralyze(20)
- L.adjust_bodytemperature(-300)
+ L.adjust_bodytemperature(-20)
L.apply_status_effect(/datum/status_effect/freon)
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index 6db5f18e31b9..da3f85da379e 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -214,7 +214,6 @@
exposed = !exposed
return TRUE
-
/obj/item/reagent_containers/food/snacks/urinalcake
name = "urinal cake"
desc = "The noble urinal cake, protecting the people's pipes from the people's pee. Edibility is suggested to be low."
@@ -478,6 +477,13 @@
/// if it can be seen through when closed
var/opaque_closed = FALSE
+/obj/structure/curtain/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE,CALLBACK(src, PROC_REF(can_be_rotated)),null)
+
+/obj/structure/curtain/proc/can_be_rotated(mob/user, rotation_type)
+ return !anchored
+
/obj/structure/curtain/proc/toggle()
open = !open
if(open)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 5064883c5de9..308d5e120f71 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -27,7 +27,7 @@
var/real_explosion_block //ignore this, just use explosion_block
var/breaksound = "shatter"
var/hitsound = 'sound/effects/Glasshit.ogg'
- var/decon_time = 5 SECONDS
+ var/decon_time = 3 SECONDS
flags_ricochet = RICOCHET_HARD
ricochet_chance_mod = 0.4
@@ -409,7 +409,7 @@
glass_type = /obj/item/stack/sheet/rglass
rad_insulation = RAD_HEAVY_INSULATION
ricochet_chance_mod = 0.8
- decon_time = 20 SECONDS
+ decon_time = 6 SECONDS
//this is shitcode but all of construction is shitcode and needs a refactor, it works for now
//If you find this like 4 years later and construction still hasn't been refactored, I'm so sorry for this
@@ -542,7 +542,7 @@
damage_deflection = 11 //WS Edit - Weakens R-Windows
explosion_block = 2
glass_type = /obj/item/stack/sheet/plasmarglass
- decon_time = 25 SECONDS
+ decon_time = 15 SECONDS
//entirely copypasted code
//take this out when construction is made a component or otherwise modularized in some way
@@ -758,12 +758,21 @@
glass_type = /obj/item/stack/sheet/plastitaniumglass
glass_amount = 2
rad_insulation = RAD_HEAVY_INSULATION
- decon_time = 30 SECONDS
+ decon_time = 10 SECONDS
/obj/structure/window/plasma/reinforced/plastitanium/unanchored
anchored = FALSE
state = WINDOW_OUT_OF_FRAME
+/obj/structure/window/plasma/reinforced/plastitanium/spawnDebris(location)
+ . = list()
+ . += new /obj/item/shard/plastitanium(location)
+ . += new /obj/effect/decal/cleanable/glass/plastitanium(location)
+ if (reinf)
+ . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1))
+ if (fulltile)
+ . += new /obj/item/shard/plastitanium(location)
+
/obj/structure/window/paperframe
name = "paper frame"
desc = "A fragile separator made of thin wood and paper."
diff --git a/code/game/say.dm b/code/game/say.dm
index cac8bafe5365..bfa9d35ac5bc 100644
--- a/code/game/say.dm
+++ b/code/game/say.dm
@@ -9,14 +9,11 @@ GLOBAL_LIST_INIT(freqtospan, list(
"[FREQ_INTEQ]" = "irmgradio",
"[FREQ_PGF]" = "pgfradio",
"[FREQ_PIRATE]" = "pirradio",
- "[FREQ_COMMAND]" = "comradio",
- "[FREQ_AI_PRIVATE]" = "aiprivradio",
+ "[FREQ_EMERGENCY]" = "emrgradio",
"[FREQ_SYNDICATE]" = "syndradio",
"[FREQ_CENTCOM]" = "centcomradio",
- "[FREQ_SOLGOV]" = "solgovradio", //WS Edit - SolGov Rep
- "[FREQ_WIDEBAND]" = "widebandradio", //WS Edit - Overmaps
- "[FREQ_CTF_RED]" = "redteamradio",
- "[FREQ_CTF_BLUE]" = "blueteamradio"
+ "[FREQ_SOLGOV]" = "solgovradio",
+ "[FREQ_WIDEBAND]" = "widebandradio",
))
GLOBAL_LIST_INIT(freqcolor, list())
diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm
index 5c3b554c98dd..9d186868cf54 100644
--- a/code/game/turfs/closed/indestructible.dm
+++ b/code/game/turfs/closed/indestructible.dm
@@ -111,6 +111,12 @@
smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_TITANIUM_WALLS)
canSmoothWith = list(SMOOTH_GROUP_TITANIUM_WALLS, SMOOTH_GROUP_AIRLOCK, SMOOTH_GROUP_SHUTTLE_PARTS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_WINDOW_FULLTILE)
+/turf/closed/indestructible/titanium/nodiagnonal
+ icon = 'icons/turf/walls/shuttle_wall.dmi'
+ icon_state = "map-shuttle_nd"
+ base_icon_state = "shuttle_wall"
+ smoothing_flags = SMOOTH_BITMASK
+
/turf/closed/indestructible/riveted
icon = 'icons/turf/walls/riveted.dmi'
icon_state = "riveted-0"
diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm
index 77f89b669057..f704fc34cdb7 100644
--- a/code/game/turfs/closed/minerals.dm
+++ b/code/game/turfs/closed/minerals.dm
@@ -118,7 +118,8 @@
visible_message(span_warning("The ore was completely ruined!"))
else
new mineralType(src, mineralAmt)
- SSblackbox.record_feedback("tally", "ore_mined", mineralAmt, mineralType)
+ if(ishuman(user))
+ SSblackbox.record_feedback("tally", "ore_mined", mineralAmt, mineralType)
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(give_exp)
@@ -138,9 +139,13 @@
/turf/closed/mineral/attack_animal(mob/living/simple_animal/user)
- if((user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS) || (user.environment_smash & ENVIRONMENT_SMASH_MINERALS))
- gets_drilled(user)
- ..()
+ if((!(user.environment_smash & ENVIRONMENT_SMASH_WALLS) || (user.environment_smash & ENVIRONMENT_SMASH_RWALLS) || (user.environment_smash & ENVIRONMENT_SMASH_MINERALS)))
+ return ..()
+
+ //This scrapes us away and turns us into a floor, so don't call parent.
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.do_attack_animation(src)
+ gets_drilled(user)
/turf/closed/mineral/attack_alien(mob/living/carbon/alien/M)
balloon_alert(M, "digging...")
@@ -172,7 +177,6 @@
ScrapeAway()
/turf/closed/mineral/ex_act(severity, target)
- ..()
switch(severity)
if(3)
if (prob(75))
@@ -182,7 +186,7 @@
gets_drilled(null, FALSE)
if(1)
gets_drilled(null, FALSE)
- return
+ return ..()
/turf/closed/mineral/random
var/list/mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 3, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 4,
@@ -202,7 +206,7 @@
. = ..()
if (prob(mineralChance))
- var/path = pickweight(mineralSpawnChanceList)
+ var/path = pick_weight(mineralSpawnChanceList)
if(ispath(path, /turf))
var/turf/T = ChangeTurf(path,null,CHANGETURF_IGNORE_AIR)
@@ -678,7 +682,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -688,7 +692,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -698,7 +702,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -708,7 +712,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -718,7 +722,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -728,7 +732,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -744,7 +748,7 @@
mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 3, /obj/item/stack/ore/gold = 10,
/obj/item/stack/ore/silver = 10, /obj/item/stack/ore/plasma = 15, /obj/item/stack/ore/iron = 45, /obj/item/stack/ore/titanium = 11,
/turf/closed/mineral/gibtonite/whitesands = 4, /turf/open/floor/plating/asteroid/whitesands = 2, /obj/item/stack/ore/bluespace_crystal = 4)
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -755,7 +759,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -765,7 +769,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
@@ -775,7 +779,7 @@
environment_type = WHITESANDS_WALL_ENV
turf_type = /turf/open/floor/plating/asteroid/whitesands
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
defer_change = TRUE
has_borders = TRUE
diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm
index e37fc13c340b..1c18fdd9904f 100644
--- a/code/game/turfs/closed/wall/misc_walls.dm
+++ b/code/game/turfs/closed/wall/misc_walls.dm
@@ -8,24 +8,12 @@
canSmoothWith = null
sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone
sheet_amount = 1
- girder_type = /obj/structure/girder/cult
-
max_integrity = 600
/turf/closed/wall/mineral/cult/Initialize(mapload, inherited_virtual_z)
new /obj/effect/temp_visual/cult/turf(src)
. = ..()
-/turf/closed/wall/mineral/cult/Exited(atom/movable/AM, atom/newloc)
- . = ..()
- if(istype(AM, /mob/living/simple_animal/hostile/construct/harvester)) //harvesters can go through cult walls, dragging something with
- var/mob/living/simple_animal/hostile/construct/harvester/H = AM
- var/atom/movable/stored_pulling = H.pulling
- if(stored_pulling)
- stored_pulling.setDir(get_dir(stored_pulling.loc, newloc))
- stored_pulling.forceMove(src)
- H.start_pulling(stored_pulling, supress_message = TRUE)
-
/turf/closed/wall/mineral/cult/artificer
name = "runed stone wall"
desc = "A cold stone wall engraved with indecipherable symbols. Studying them causes your head to pound."
diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm
index 44acbe06f6bf..e2c6caa8be7e 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -155,7 +155,7 @@
baseturfs = /turf/open/indestructible/airblock
/turf/open/Initalize_Atmos(times_fired)
- if(!istype(air,/datum/gas_mixture/turf))
+ if(!istype(air, /datum/gas_mixture))
air = new(2500, src)
air.copy_from_turf(src)
update_air_ref(planetary_atmos ? AIR_REF_PLANETARY_TURF : AIR_REF_OPEN_TURF)
@@ -267,7 +267,7 @@
pulse_strength = min(pulse_strength,air.get_moles(GAS_CO2)*1000,air.get_moles(GAS_O2)*2000) //Ensures matter is conserved properly
air.set_moles(GAS_CO2, max(air.get_moles(GAS_CO2)-(pulse_strength/1000),0))
air.set_moles(GAS_O2, max(air.get_moles(GAS_O2)-(pulse_strength/2000),0))
- air.adjust_moles(GAS_PLUOXIUM, pulse_strength/4000)
+ air.adjust_moles(GAS_O3, pulse_strength/4000)
/turf/open/IgniteTurf(power, fire_color)
if(turf_fire)
diff --git a/code/game/turfs/open/acid.dm b/code/game/turfs/open/acid.dm
index 86260871c522..c9f5472fa4fb 100644
--- a/code/game/turfs/open/acid.dm
+++ b/code/game/turfs/open/acid.dm
@@ -145,4 +145,4 @@
/turf/open/water/acid/whitesands
planetary_atmos = TRUE
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
diff --git a/code/game/turfs/open/dirtystation.dm b/code/game/turfs/open/dirtystation.dm
index 29e13585bb7d..5daba45f1b1e 100644
--- a/code/game/turfs/open/dirtystation.dm
+++ b/code/game/turfs/open/dirtystation.dm
@@ -53,8 +53,7 @@
return
//Bathrooms. Blood, vomit, and shavings in the sinks.
- var/static/list/bathroom_dirt_areas = typecacheof(list( /area/ship/crew/toilet,
- /area/awaymission/research/interior/bathroom))
+ var/static/list/bathroom_dirt_areas = typecacheof(/area/ship/crew/toilet)
if(is_type_in_typecache(A, bathroom_dirt_areas))
if(prob(40))
if(prob(90))
diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm
index f7eac409b836..7b1603df119d 100644
--- a/code/game/turfs/open/floor.dm
+++ b/code/game/turfs/open/floor.dm
@@ -62,7 +62,7 @@
if(1)
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(2)
- if(prob(60))
+ if(prob(50) && broken)
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else
break_tile()
@@ -180,11 +180,6 @@
else if(prob(50))
ReplaceWithLattice()
-/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20)
- . = ..()
- if(.)
- ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
-
/turf/open/floor/acid_melt()
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm
index 3a0184849450..2d043371a9bb 100644
--- a/code/game/turfs/open/floor/fancy_floor.dm
+++ b/code/game/turfs/open/floor/fancy_floor.dm
@@ -135,7 +135,7 @@
icon_state = "fairygrass[rand(0,3)]"
/turf/open/floor/grass/fairy/beach
- baseturfs = /turf/open/floor/plating/beach/sand
+ baseturfs = /turf/open/floor/plating/asteroid/sand
planetary_atmos = TRUE
/turf/open/floor/grass/snow
diff --git a/code/game/turfs/open/floor/misc_floor.dm b/code/game/turfs/open/floor/misc_floor.dm
index 98ad4658add0..1b5009d8245b 100644
--- a/code/game/turfs/open/floor/misc_floor.dm
+++ b/code/game/turfs/open/floor/misc_floor.dm
@@ -126,20 +126,6 @@
/turf/open/floor/noslip/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
-/turf/open/floor/bluespace
- slowdown = -1
- icon_state = "bluespace"
- desc = "Through a series of micro-teleports these tiles let people move at incredible speeds."
- floor_tile = /obj/item/stack/tile/bluespace
-
-
-/turf/open/floor/sepia
- slowdown = 2
- icon_state = "sepia"
- desc = "Time seems to flow very slowly around these tiles."
- floor_tile = /obj/item/stack/tile/sepia
-
-
/turf/open/floor/bronze
name = "bronze floor"
desc = "Some heavy bronze tiles."
@@ -185,6 +171,8 @@
base_icon_state = "tcomms"
icon = 'icons/turf/floors/misc.dmi'
color = null
+/turf/open/floor/plasteel/telecomms_floor/tatmos
+ initial_gas_mix = TCOMMS_ATMOS
//ship turfs
/turf/open/floor/ship
@@ -225,6 +213,8 @@
smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS)
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS)
layer = HIGH_TURF_LAYER
+ icon_state = "grass0"
+ base_icon_state = "grass"
var/smooth_icon = 'icons/turf/floors/grass.dmi'
baseturfs = /turf/open/floor/ship/dirt
diff --git a/code/game/turfs/open/floor/plasteel_floor.dm b/code/game/turfs/open/floor/plasteel_floor.dm
index 56851f42795c..bac6f01e5f1f 100644
--- a/code/game/turfs/open/floor/plasteel_floor.dm
+++ b/code/game/turfs/open/floor/plasteel_floor.dm
@@ -62,6 +62,9 @@
base_icon_state = "techfloor"
floor_tile = /obj/item/stack/tile/plasteel/tech
+/turf/open/floor/plasteel/tech/tcomms
+ initial_gas_mix = TCOMMS_ATMOS
+
/turf/open/floor/plasteel/tech/airless
initial_gas_mix = AIRLESS_ATMOS
diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm
index 996d122a4ac9..12fe214deb83 100644
--- a/code/game/turfs/open/floor/plating/asteroid.dm
+++ b/code/game/turfs/open/floor/plating/asteroid.dm
@@ -27,6 +27,7 @@
/// Whether the turf has been dug or not
var/dug
+
/turf/open/floor/plating/asteroid/Initialize(mapload, inherited_virtual_z)
var/proper_name = name
. = ..()
diff --git a/code/game/turfs/open/floor/plating/beach.dm b/code/game/turfs/open/floor/plating/beach.dm
index 88bb3bbcad1b..9b4aa8cf156f 100644
--- a/code/game/turfs/open/floor/plating/beach.dm
+++ b/code/game/turfs/open/floor/plating/beach.dm
@@ -1,13 +1,15 @@
+///it's all sand....
+
/turf/open/floor/plating/asteroid/sand
name = "sand"
icon = 'icons/misc/beach.dmi'
icon_state = "sand"
base_icon_state = "sand"
baseturfs = /turf/open/floor/plating/asteroid/sand
- initial_gas_mix = OPENTURF_DEFAULT_ATMOS //custom atmos? lots of oxygen, hot?
- digResult = /obj/item/stack/ore/glass
+ initial_gas_mix = BEACHPLANET_DEFAULT_ATMOS //custom atmos? lots of oxygen, hot?
planetary_atmos = TRUE
digResult = /obj/item/stack/ore/glass/beach
+ light_color = COLOR_BEACHPLANET_LIGHT
/turf/open/floor/plating/asteroid/sand/Initialize(mapload, inherited_virtual_z)
. = ..()
@@ -16,14 +18,20 @@
/turf/open/floor/plating/asteroid/sand/lit
light_range = 2
light_power = 0.80
- light_color = LIGHT_COLOR_TUNGSTEN
/turf/open/floor/plating/asteroid/sand/dense
icon_state = "light_sand"
- planetary_atmos = TRUE
base_icon_state = "light_sand"
/turf/open/floor/plating/asteroid/sand/dense/lit
light_range = 2
light_power = 0.80
- light_color = LIGHT_COLOR_TUNGSTEN
+
+/turf/open/floor/plating/grass/beach
+ baseturfs = /turf/open/floor/plating/asteroid/sand
+ light_color = COLOR_BEACHPLANET_LIGHT
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/grass/beach/lit
+ light_range = 2
+ light_power = 0.80
diff --git a/code/game/turfs/open/floor/plating/icemoon.dm b/code/game/turfs/open/floor/plating/icemoon.dm
index ca1819af2531..12a1c340edfa 100644
--- a/code/game/turfs/open/floor/plating/icemoon.dm
+++ b/code/game/turfs/open/floor/plating/icemoon.dm
@@ -17,6 +17,7 @@
bullet_sizzle = TRUE
bullet_bounce_sound = null
digResult = /obj/item/stack/sheet/mineral/snow
+ light_color = COLOR_ICEPLANET_LIGHT
// footprint vars
var/entered_dirs
var/exited_dirs
@@ -87,19 +88,17 @@
. = ..()
ScrapeAway()
+/turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/openspace/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+
+ slowdown = 0
+
/turf/open/floor/plating/asteroid/snow/lit
light_range = 2
light_power = 1
baseturfs = /turf/open/floor/plating/asteroid/icerock/lit
-/turf/open/floor/plating/asteroid/snow/lit/whitesands
- baseturfs = /turf/open/floor/plating/asteroid/whitesands/lit
- initial_gas_mix = WHITESANDS_ATMOS
-
-/turf/open/floor/plating/asteroid/snow/lit/rockplanet
- baseturfs = /turf/open/floor/plating/asteroid/rockplanet/lit
- initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
-
/turf/open/floor/plating/asteroid/snow/airless
initial_gas_mix = AIRLESS_ATMOS
@@ -142,6 +141,7 @@
floor_variance = 100
max_icon_states = 7
dug = TRUE
+ light_color = COLOR_ICEPLANET_LIGHT
/turf/open/floor/plating/asteroid/icerock/lit
light_range = 2
@@ -183,21 +183,17 @@
floor_variance = 100
max_icon_states = 7
dug = TRUE
+ light_color = COLOR_ICEPLANET_LIGHT
/turf/open/floor/plating/asteroid/iceberg/lit
light_range = 2
light_power = 1
-
-/turf/open/floor/plating/asteroid/snow/icemoon
- baseturfs = /turf/open/openspace/icemoon
- initial_gas_mix = ICEMOON_DEFAULT_ATMOS
- slowdown = 0
-
/turf/open/lava/plasma/ice_moon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
baseturfs = /turf/open/lava/plasma/ice_moon
planetary_atmos = TRUE
+ light_color = COLOR_ICEPLANET_LIGHT
/turf/open/floor/plating/asteroid/snow/ice
name = "icy snow"
@@ -213,6 +209,8 @@
clawfootstep = FOOTSTEP_HARD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
max_icon_states = 7
+ light_color = COLOR_ICEPLANET_LIGHT
+
/turf/open/floor/plating/asteroid/snow/ice/icemoon
baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
@@ -223,3 +221,27 @@
/turf/open/floor/plating/asteroid/snow/ice/burn_tile()
return FALSE
+/turf/open/floor/wood/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ slowdown = 0
+
+/turf/open/floor/wood/ebony/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ slowdown = 0
+
+/turf/open/floor/plasteel/stairs/wood/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ slowdown = 0
+
+/turf/open/floor/concrete/slab_3/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ slowdown = 0
+
diff --git a/code/game/turfs/open/floor/plating/jungle.dm b/code/game/turfs/open/floor/plating/jungle.dm
new file mode 100644
index 000000000000..19139d782c0e
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/jungle.dm
@@ -0,0 +1,64 @@
+/turf/open/floor/plating/dirt/jungle
+ slowdown = 0.5
+ baseturfs = /turf/open/floor/plating/dirt/jungle
+ initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_JUNGLEPLANET_LIGHT
+
+/turf/open/floor/plating/dirt/jungle/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
+
+/turf/open/floor/plating/dirt/jungle/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/floor/plating/dirt/jungle/dark
+ icon_state = "greenerdirt"
+ baseturfs = /turf/open/floor/plating/dirt/jungle/dark
+
+/turf/open/floor/plating/dirt/jungle/dark/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/floor/plating/dirt/jungle/wasteland //Like a more fun version of living in Arizona.
+ name = "cracked earth"
+ desc = "Looks a bit dry."
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "wasteland"
+ slowdown = 1
+ baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland
+ var/floor_variance = 15
+
+/turf/open/floor/plating/dirt/jungle/wasteland/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/floor/plating/dirt/jungle/wasteland/Initialize(mapload, inherited_virtual_z)
+ .=..()
+ if(prob(floor_variance))
+ icon_state = "[initial(icon_state)][rand(0,12)]"
+
+/turf/open/floor/plating/grass/jungle
+ name = "jungle grass"
+ planetary_atmos = TRUE
+ desc = "Greener on the other side."
+ icon_state = "junglegrass"
+ base_icon_state = "junglegrass"
+ smooth_icon = 'icons/turf/floors/junglegrass.dmi'
+ baseturfs = /turf/open/floor/plating/grass/jungle
+ light_color = COLOR_JUNGLEPLANET_LIGHT
+ initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS
+
+/turf/open/floor/plating/grass/jungle/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
+
+/turf/open/floor/plating/grass/jungle/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/water/jungle/lit
+ light_range = 2
+ light_power = 0.8
+ light_color = LIGHT_COLOR_BLUEGREEN
diff --git a/code/game/turfs/open/floor/plating/lavaland.dm b/code/game/turfs/open/floor/plating/lavaland.dm
index 84e0173819b7..b15f76eabcc2 100644
--- a/code/game/turfs/open/floor/plating/lavaland.dm
+++ b/code/game/turfs/open/floor/plating/lavaland.dm
@@ -1,3 +1,5 @@
+///baseturf
+
/turf/open/floor/plating/asteroid/basalt
name = "volcanic floor"
baseturfs = /turf/open/floor/plating/asteroid/basalt
@@ -7,11 +9,11 @@
base_icon_state = "basalt"
floor_variance = 15
digResult = /obj/item/stack/ore/glass/basalt
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
/turf/open/floor/plating/asteroid/basalt/lava //lava underneath
baseturfs = /turf/open/lava/smooth
@@ -26,11 +28,9 @@
/proc/set_basalt_light(turf/open/floor/B)
switch(B.icon_state)
if("basalt1", "basalt2", "basalt3")
- B.set_light(2, 0.6, LIGHT_COLOR_LAVA) //more light
+ B.set_light(2, 0.6, COLOR_LAVAPLANET_LIGHT) //more light
if("basalt5", "basalt9")
- B.set_light(1.4, 0.6, LIGHT_COLOR_LAVA) //barely anything!
-
-///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
+ B.set_light(1.4, 0.6, COLOR_LAVAPLANET_LIGHT) //barely anything!
/turf/open/floor/plating/asteroid/basalt/lava_land_surface
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
@@ -47,7 +47,8 @@
/turf/open/floor/plating/asteroid/basalt/purple/lit
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+
+///Sand
/turf/open/floor/plating/asteroid/purple
name = "ashen sand"
@@ -57,11 +58,13 @@
turf_type = /turf/open/floor/plating/asteroid/basalt/purple
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
planetary_atmos = TRUE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plating/asteroid/purple/lit
light_range = 2
light_power = 0.3
- light_color = LIGHT_COLOR_FIRE
+
+///Grass
/turf/open/floor/plating/grass/lava
name = "ungodly grass"
@@ -75,7 +78,7 @@
smooth_icon = 'icons/turf/floors/lava_grass_red.dmi'
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
gender = PLURAL
/turf/open/floor/plating/grass/lava/orange
@@ -88,44 +91,68 @@
icon = 'icons/turf/floors/lava_grass_purple.dmi'
smooth_icon = 'icons/turf/floors/lava_grass_purple.dmi'
+///The Moss
+/turf/open/floor/plating/moss
+ name = "mossy carpet"
+ desc = "When the forests burned away and the sky grew dark, the moss learned to feed on the falling ash."
+ baseturfs = /turf/open/floor/plating/ashplanet //explosions and damage can destroy the moss
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ icon_state = "moss"
+ icon = 'icons/turf/lava_moss.dmi'
+ base_icon_state = "moss"
+ bullet_bounce_sound = null
+ footstep = FOOTSTEP_GRASS
+ barefootstep = FOOTSTEP_GRASS
+ clawfootstep = FOOTSTEP_GRASS
+ heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+ layer = HIGH_TURF_LAYER
+ gender = PLURAL
+ light_power = 1
+ light_range = 2
+ pixel_x = -9
+ pixel_y = -9
+
+///Ruin Turfs (to-do, move all ruin turfs into their own bespoke files)
+
/turf/open/floor/concrete/pavement/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/concrete/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/concrete/slab_1/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plating/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plating/rust/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plasteel/white/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
/turf/open/floor/plasteel/dark/lava
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
- light_color = LIGHT_COLOR_FIRE
+ light_color = COLOR_LAVAPLANET_LIGHT
diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm
index 84a49d1a0038..684420c8eb89 100644
--- a/code/game/turfs/open/floor/plating/misc_plating.dm
+++ b/code/game/turfs/open/floor/plating/misc_plating.dm
@@ -116,61 +116,6 @@
icon_state = "[icon_state][rand(1, 9)]"
. = ..()
-
-/turf/open/floor/plating/beach
- name = "beach"
- icon = 'icons/misc/beach.dmi'
- flags_1 = NONE
- attachment_holes = FALSE
- bullet_bounce_sound = null
- footstep = FOOTSTEP_SAND
- barefootstep = FOOTSTEP_SAND
- clawfootstep = FOOTSTEP_SAND
- heavyfootstep = FOOTSTEP_GENERIC_HEAVY
-
-/turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
- return
-
-/turf/open/floor/plating/beach/ex_act(severity, target)
- contents_explosion(severity, target)
-
-/turf/open/floor/plating/beach/sand
- gender = PLURAL
- name = "sand"
- desc = "Surf's up."
- icon_state = "sand"
- baseturfs = /turf/open/floor/plating/beach/sand
-
-/turf/open/floor/plating/beach/coastline_t
- name = "coastline"
- desc = "Tide's high tonight. Charge your batons."
- icon_state = "sandwater_t"
- baseturfs = /turf/open/floor/plating/beach/coastline_t
-
-/turf/open/floor/plating/beach/coastline_b //need to make this water subtype.
- name = "coastline"
- icon_state = "sandwater_b"
- baseturfs = /turf/open/floor/plating/beach/coastline_b
- footstep = FOOTSTEP_LAVA
- barefootstep = FOOTSTEP_LAVA
- clawfootstep = FOOTSTEP_LAVA
- heavyfootstep = FOOTSTEP_LAVA
-
-/turf/open/floor/plating/beach/water
- gender = PLURAL
- name = "water"
- desc = "You get the feeling that nobody's bothered to actually make this water functional..."
- icon_state = "water"
- baseturfs = /turf/open/floor/plating/beach/water
- footstep = FOOTSTEP_LAVA //placeholder, kinda.
- barefootstep = FOOTSTEP_LAVA
- clawfootstep = FOOTSTEP_LAVA
- heavyfootstep = FOOTSTEP_LAVA
-
-/turf/open/floor/plating/beach/coastline_t/sandwater_inner
- icon_state = "sandwater_inner"
- baseturfs = /turf/open/floor/plating/beach/coastline_t/sandwater_inner
-
/turf/open/floor/plating/ironsand
gender = PLURAL
name = "iron sand"
@@ -331,33 +276,3 @@
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
-/turf/open/floor/plating/grass/beach
- baseturfs = /turf/open/floor/plating/beach/sand
- planetary_atmos = TRUE
-
-/turf/open/floor/plating/grass/beach/lit
- light_range = 2
- light_power = 0.80
-
-
-
-/turf/open/floor/plating/moss
- name = "mossy carpet"
- desc = "When the forests burned away and the sky grew dark, the moss learned to feed on the falling ash."
- baseturfs = /turf/open/floor/plating/ashplanet //explosions and damage can destroy the moss
- initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- planetary_atmos = TRUE
- icon_state = "moss"
- icon = 'icons/turf/lava_moss.dmi'
- base_icon_state = "moss"
- bullet_bounce_sound = null
- footstep = FOOTSTEP_GRASS
- barefootstep = FOOTSTEP_GRASS
- clawfootstep = FOOTSTEP_GRASS
- heavyfootstep = FOOTSTEP_GENERIC_HEAVY
- layer = HIGH_TURF_LAYER
- gender = PLURAL
- light_power = 1
- light_range = 2
- pixel_x = -9
- pixel_y = -9
diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm
index a86847ca8f78..5609547928c6 100644
--- a/code/game/turfs/open/floor/plating/planet.dm
+++ b/code/game/turfs/open/floor/plating/planet.dm
@@ -16,74 +16,16 @@
/turf/open/floor/plating/dirt/dark
icon_state = "greenerdirt"
baseturfs = /turf/open/floor/plating/dirt/dark
+ initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS
/turf/open/floor/plating/dirt/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
return
-/turf/open/floor/plating/dirt/jungle
- slowdown = 0.5
- baseturfs = /turf/open/floor/plating/dirt/jungle
- initial_gas_mix = OPENTURF_DEFAULT_ATMOS
-
-/turf/open/floor/plating/dirt/jungle/lit
- baseturfs = /turf/open/floor/plating/dirt/jungle/lit
- light_range = 2
- light_power = 1
- light_color = COLOR_VERY_LIGHT_GRAY
-
-/turf/open/floor/plating/dirt/jungle/dark
- icon_state = "greenerdirt"
- baseturfs = /turf/open/floor/plating/dirt/jungle/dark
-
-/turf/open/floor/plating/dirt/jungle/dark/lit
- light_range = 2
- light_power = 1
-
-/turf/open/floor/plating/dirt/jungle/wasteland //Like a more fun version of living in Arizona.
- name = "cracked earth"
- desc = "Looks a bit dry."
- icon = 'icons/turf/floors.dmi'
- icon_state = "wasteland"
- slowdown = 1
- baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland
- var/floor_variance = 15
-
-/turf/open/floor/plating/dirt/jungle/wasteland/lit
- baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland/lit
- light_range = 2
- light_power = 1
-
-
-/turf/open/floor/plating/dirt/jungle/wasteland/Initialize(mapload, inherited_virtual_z)
- .=..()
- if(prob(floor_variance))
- icon_state = "[initial(icon_state)][rand(0,12)]"
-
/turf/open/floor/plating/dirt/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
baseturfs = /turf/open/floor/plating/dirt/icemoon
planetary_atmos = TRUE
-/turf/open/floor/plating/grass/jungle
- name = "jungle grass"
- planetary_atmos = TRUE
- desc = "Greener on the other side."
- icon_state = "junglegrass"
- base_icon_state = "junglegrass"
- baseturfs = /turf/open/floor/plating/dirt/jungle
- smooth_icon = 'icons/turf/floors/junglegrass.dmi'
- baseturfs = /turf/open/floor/plating/grass/jungle
-
-/turf/open/floor/plating/grass/jungle/lit
- baseturfs = /turf/open/floor/plating/dirt/jungle/lit
- light_range = 2
- light_power = 1
-
-/turf/open/water/jungle/lit
- light_range = 2
- light_power = 0.8
- light_color = LIGHT_COLOR_BLUEGREEN
-
/turf/open/floor/plating/dirt/old
icon_state = "oldsmoothdirt"
@@ -98,8 +40,26 @@
light_power = 1
light_range = 2
-
/turf/open/floor/plating/dirt/dry/lit
light_power = 1
light_range = 2
+
+//Artifical sand turfs
+/turf/open/floor/plating/asteroid/sand/ship
+ name = "sand"
+ icon = 'icons/misc/beach.dmi'
+ icon_state = "sand"
+ base_icon_state = "sand"
+ baseturfs = /turf/open/floor/plating
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+ planetary_atmos = FALSE
+ digResult = null
+
+//artifical water turfs
+/turf/open/water/ship
+ icon = 'icons/misc/beach.dmi'
+ icon_state = "water"
+ base_icon_state = "water"
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+ planetary_atmos = FALSE
diff --git a/code/game/turfs/open/floor/plating/rockplanet.dm b/code/game/turfs/open/floor/plating/rockplanet.dm
index b6324ebbb3d8..7e52dc85aafd 100644
--- a/code/game/turfs/open/floor/plating/rockplanet.dm
+++ b/code/game/turfs/open/floor/plating/rockplanet.dm
@@ -9,11 +9,11 @@
baseturfs = /turf/open/floor/plating/asteroid/rockplanet
turf_type = /turf/open/floor/plating/asteroid/rockplanet
digResult = /obj/item/stack/ore/glass/rockplanet
+ light_color = COLOR_ROCKPLANET_LIGHT
/turf/open/floor/plating/asteroid/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
/turf/open/floor/plating/asteroid/rockplanet/cracked
name = "iron cracked sand"
@@ -25,7 +25,6 @@
/turf/open/floor/plating/asteroid/rockplanet/cracked/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
baseturfs = /turf/open/floor/plating/asteroid/rockplanet/lit
turf_type = /turf/open/floor/plating/asteroid/rockplanet/lit
@@ -45,83 +44,145 @@
/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
+
+//start crackhead subtyping (open reward of 1 erika token to anyone who untangles this somewhat)
/turf/open/floor/plating/grass/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
name = "dry grass"
desc = "A patch of dry grass."
/turf/open/floor/plating/dirt/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
name = "mud"
icon_state = "greenerdirt"
/turf/open/water/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
name = "pond"
+///plating
+
/turf/open/floor/plating/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
name = "exterior plating"
/turf/open/floor/plating/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
+
+/turf/open/floor/plating/rust/rockplanet
+ name = "exterior plating"
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+/turf/open/floor/plating/rust/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+
+///floor tiles
/turf/open/floor/plasteel/stairs/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
name = "exterior stairs"
-/turf/open/floor/engine/hull/rockplanet
- initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+/turf/open/floor/plasteel/stairs/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
/turf/open/floor/plasteel/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
name = "exterior floor"
+/turf/open/floor/plasteel/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
+
/turf/open/floor/plasteel/patterned/rockplanet
+ name = "exterior floor"
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
/turf/open/floor/plasteel/patterned/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
- name = "exterior floor"
+ light_color = COLOR_ROCKPLANET_LIGHT
/turf/open/floor/plasteel/patterned/brushed/rockplanet
+ name = "exterior floor"
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
/turf/open/floor/plasteel/patterned/brushed/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
- name = "exterior floor"
+ light_color = COLOR_ROCKPLANET_LIGHT
/turf/open/floor/plasteel/patterned/ridged/rockplanet
+ name = "exterior floor"
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
/turf/open/floor/plasteel/patterned/ridged/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
- name = "exterior floor"
+ light_color = COLOR_ROCKPLANET_LIGHT
-/turf/open/floor/plating/rust/rockplanet
+/turf/open/floor/wood/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
-/turf/open/floor/plating/rust/rockplanet/lit
+/turf/open/floor/pod/rockplanet
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+///reinforced floors
+
+/turf/open/floor/engine/hull/rockplanet
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+
+/turf/open/floor/engine/hull/rockplanet/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
- name = "exterior plating"
+ light_color = COLOR_ROCKPLANET_LIGHT
-/turf/open/floor/wood/rockplanet
+/turf/open/floor/engine/hull/reinforced/rockplanet
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
-/turf/open/floor/pod/rockplanet
+/turf/open/floor/engine/hull/reinforced/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+/// concrete
+
+/turf/open/floor/concrete/rockplanet
+ planetary_atmos = TRUE
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
-/turf/open/floor/engine/hull/reinforced/rockplanet
+/turf/open/floor/concrete/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+///titanium
+
+/turf/open/floor/mineral/titanium/tiled/rockplanet
+ planetary_atmos = TRUE
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+
+/turf/open/floor/mineral/titanium/tiled/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_ROCKPLANET_LIGHT
+
+///snow
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet
+ light_color = COLOR_ROCKPLANET_LIGHT
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet/lit
initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
diff --git a/code/game/turfs/open/floor/plating/wasteplanet.dm b/code/game/turfs/open/floor/plating/wasteplanet.dm
index 7d839b66932d..dd79a190583f 100644
--- a/code/game/turfs/open/floor/plating/wasteplanet.dm
+++ b/code/game/turfs/open/floor/plating/wasteplanet.dm
@@ -1,3 +1,4 @@
+///base turf
/turf/open/floor/plating/asteroid/wasteplanet
name = "dry rock"
@@ -9,20 +10,18 @@
planetary_atmos = TRUE
baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
digResult = /obj/item/stack/ore/glass/wasteplanet
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/water/tar/waste
- baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
- planetary_atmos = TRUE
- initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+/turf/open/floor/plating/asteroid/wasteplanet/lit
+ light_range = 2
+ light_power = 0.2
-/turf/open/floor/plating/wasteplanet
- baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
- initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+///plating turfs
-/turf/open/floor/plating/rust/wasteplanet
+/turf/open/floor/plating/wasteplanet
baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
- planetary_atmos = TRUE
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/plating/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
@@ -32,49 +31,137 @@
desc = "Corrupted steel."
icon_state = "plating_rust"
-/turf/open/floor/wood/waste
+/turf/open/indestructible/hierophant/waste
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/indestructible/hierophant/waste
+/turf/open/indestructible/hierophant/two/waste
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/indestructible/hierophant/two/waste
+/turf/open/floor/wood/waste
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
- light_color = LIGHT_COLOR_FLARE
-/turf/open/water/waste
+/turf/open/floor/concrete/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
-/turf/open/floor/plating/grass/wasteplanet
- icon_state = "junglegrass"
+/turf/open/floor/concrete/wasteplanet/Initialize()
+ . = ..()
+ icon_state = pick(list(
+ "conc_smooth",
+ "conc_slab_1",
+ "conc_slab_2",
+ "conc_slab_3",
+ "conc_slab_4",
+ "conc_tiles"
+ ))
+
+/turf/open/floor/concrete/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
+
+/turf/open/floor/concrete/reinforced/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
-/turf/open/floor/plating/dirt/old/waste
+/turf/open/floor/concrete/reinforced/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
+
+/turf/open/floor/concrete/pavement/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+
+/turf/open/floor/concrete/pavement/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
/turf/open/floor/plasteel/wasteplanet
+ baseturfs = /turf/open/floor/plating/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/plasteel/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
/turf/open/floor/plasteel/dark/wasteplanet
+ baseturfs = /turf/open/floor/plating/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/plasteel/dark/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
-//cement
+
+/turf/open/floor/wood/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/indestructible/hierophant/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/indestructible/hierophant/two/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+
+
+
+///liquids
+
+/turf/open/water/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/water/tar/waste
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ planetary_atmos = TRUE
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/water/tar/waste/lit
+ light_range = 2
+ light_power = 0.2
+
+///biological-ish turfs
+
+/turf/open/floor/plating/grass/wasteplanet
+ icon_state = "junglegrass"
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/floor/plating/dirt/old/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/floor/plating/grass/wasteplanet/lit
+ light_range = 2
+ light_power = 0.2
+
+/turf/open/floor/plating/dirt/old/waste/lit
+ light_range = 2
+ light_power = 0.2
+
+///cement turfs
/turf/open/floor/concrete/wasteplanet
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/concrete/wasteplanet/Initialize()
. = ..()
@@ -94,6 +181,7 @@
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/concrete/reinforced/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
@@ -102,77 +190,147 @@
initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ light_color = COLOR_WASTEPLANET_LIGHT
/turf/open/floor/concrete/pavement/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
return
+
+
+///Biological Turfs
+
+/turf/open/floor/plating/grass/wasteplanet
+ icon_state = "junglegrass"
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+/turf/open/floor/plating/dirt/old/waste
+ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ light_color = COLOR_WASTEPLANET_LIGHT
+
+
+
+
+
+
//open turfs then open lits.
/turf/open/floor/plating/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
/turf/open/floor/plating/wasteplanet/rust/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
/turf/open/floor/plating/asteroid/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
/turf/open/water/tar/waste/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
-/turf/open/water/waste/lit //do not drink
+/turf/open/floor/concrete/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/floor/plating/dirt/old/waste/lit
+/turf/open/floor/concrete/reinforced/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/floor/plating/grass/wasteplanet/lit
+/turf/open/floor/concrete/pavement/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/floor/concrete/wasteplanet/lit
+/turf/open/floor/plating/dirt/old/waste/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/floor/concrete/reinforced/wasteplanet/lit
+/turf/open/floor/plating/grass/wasteplanet/lit
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
-/turf/open/floor/concrete/pavement/wasteplanet/lit
+/turf/open/water/waste/lit //do not drink
light_range = 2
light_power = 0.2
- light_color = LIGHT_COLOR_FLARE
+ light_color = COLOR_WASTEPLANET_LIGHT
//closed turfs are a thing
/turf/closed/wall/r_wall/wasteplanet
+ max_integrity = 800
+ integrity = 800
baseturfs = /turf/open/floor/plating/wasteplanet
+ girder_type = /obj/structure/girder/wasteworld
+
+/turf/closed/wall/r_wall/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(200,400))
+
/turf/closed/wall/r_wall/rust/wasteplanet
+ max_integrity = 600
+ integrity = 600
baseturfs = /turf/open/floor/plating/wasteplanet/rust
+ girder_type = /obj/structure/girder/wasteworld
+
+/turf/closed/wall/r_wall/rust/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(0,400))
/turf/closed/wall/wasteplanet
+ max_integrity = 200
+ integrity = 200
baseturfs = /turf/open/floor/plating/wasteplanet
+ girder_type = /obj/structure/girder/wasteworld
+
+/turf/closed/wall/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(0,150))
/turf/closed/wall/rust/wasteplanet
+ max_integrity = 100
+ integrity = 100
baseturfs = /turf/open/floor/plating/wasteplanet/rust
+ girder_type = /obj/structure/girder/wasteworld
+
+/turf/closed/wall/rust/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(0,100))
/turf/closed/wall/concrete/wasteplanet
+ max_integrity = 200
+ integrity = 200
baseturfs = /turf/open/floor/concrete/wasteplanet
+/turf/closed/wall/concrete/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(0,100))
+
/turf/closed/wall/concrete/reinforced/wasteplanet
+ max_integrity = 700
+ integrity = 700
baseturfs = /turf/open/floor/concrete/wasteplanet
+
+/turf/closed/wall/concrete/reinforced/wasteplanet/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(prob(25))
+ alter_integrity(-rand(0,500))
+
+//girlder
+
+/obj/structure/girder/wasteworld
+ max_integrity = 40
diff --git a/code/game/turfs/open/floor/plating/whitesands.dm b/code/game/turfs/open/floor/plating/whitesands.dm
index 6d7d0e3343f9..40094890c53c 100644
--- a/code/game/turfs/open/floor/plating/whitesands.dm
+++ b/code/game/turfs/open/floor/plating/whitesands.dm
@@ -1,3 +1,5 @@
+///sand (but not like the other sand that's also called sand)
+
/turf/open/floor/plating/asteroid/whitesands
name = "salted sand"
baseturfs = /turf/open/floor/plating/asteroid/whitesands
@@ -6,13 +8,13 @@
icon_plating = "sand"
planetary_atmos = TRUE
base_icon_state = WHITESANDS_SAND_ENV
- initial_gas_mix = WHITESANDS_ATMOS //Fallback, and used to tell the AACs that this is the exterior
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
digResult = /obj/item/stack/ore/glass/whitesands
+ light_color = COLOR_SANDPLANET_LIGHT
/turf/open/floor/plating/asteroid/whitesands/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
baseturfs = /turf/open/floor/plating/asteroid/whitesands/lit
/turf/open/floor/plating/asteroid/whitesands/dried
@@ -29,24 +31,25 @@
/turf/open/floor/plating/asteroid/whitesands/dried/lit
light_range = 2
light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried/lit
-/turf/open/floor/plating/grass/whitesands
- initial_gas_mix = WHITESANDS_ATMOS
+///basalt
/turf/open/floor/plating/asteroid/basalt/whitesands
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
icon_state = "whitesands_basalt0"
icon_plating = "whitesands_basalt0"
dug = TRUE
+ light_color = COLOR_SANDPLANET_LIGHT
/turf/open/floor/plating/asteroid/basalt/whitesands/Initialize(mapload, inherited_virtual_z)
. = ..()
icon_state = "whitesands_basalt[rand(0,1)]"
+///grass
+
/turf/open/floor/plating/asteroid/whitesands/grass
name = "purple grass"
desc = "The few known flora on Whitesands are in a purplish color."
@@ -55,11 +58,12 @@
base_icon_state = "grass"
baseturfs = /turf/open/floor/plating/asteroid/whitesands
turf_type = /turf/open/floor/plating/asteroid/whitesands/grass
- initial_gas_mix = WHITESANDS_ATMOS
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
planetary_atmos = TRUE
smoothing_flags = SMOOTH_BITMASK
smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS)
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS)
+ light_color = COLOR_SANDPLANET_LIGHT
/turf/open/floor/plating/asteroid/whitesands/grass/Initialize(mapload, inherited_virtual_z)
. = ..()
@@ -80,3 +84,50 @@
/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit
light_power = 1
light_range = 2
+
+///the singular snow tile:
+
+/turf/open/floor/plating/asteroid/snow/lit/whitesands
+ light_color = COLOR_SANDPLANET_LIGHT
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands/lit
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+
+/turf/open/floor/concrete/whitesands
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+ light_color = COLOR_SANDPLANET_LIGHT
+
+/turf/open/floor/concrete/whitesands/lit
+ light_range = 2
+ light_power = 0.6
+
+/turf/open/floor/concrete/reinforced/whitesands
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+ light_color = COLOR_SANDPLANET_LIGHT
+
+/turf/open/floor/concrete/reinforced/whitesands/lit
+ light_range = 2
+ light_power = 0.6
+
+/turf/open/floor/concrete/pavement/whitesands
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+ light_color = COLOR_SANDPLANET_LIGHT
+
+/turf/open/floor/concrete/pavement/whitesands/lit
+ light_range = 2
+ light_power = 0.6
+
+/turf/open/floor/concrete/slab_1/whitesands
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+ light_color = COLOR_SANDPLANET_LIGHT
+
+/turf/open/floor/concrete/slab_1/whitesands/lit
+ light_range = 2
+ light_power = 0.6
+
+/turf/open/floor/plating/whitesands
+ initial_gas_mix = SANDPLANET_DEFAULT_ATMOS
+ light_color = COLOR_SANDPLANET_LIGHT
+
+/turf/open/floor/plating/whitesands/lit
+ light_range = 2
+ light_power = 0.6
diff --git a/code/game/turfs/open/floor/reinf_floor.dm b/code/game/turfs/open/floor/reinf_floor.dm
index 7fb94e541bda..9094b0a3238f 100644
--- a/code/game/turfs/open/floor/reinf_floor.dm
+++ b/code/game/turfs/open/floor/reinf_floor.dm
@@ -141,36 +141,6 @@
name = "hydrogen mix floor"
initial_gas_mix = ATMOS_TANK_HYDROGEN_FUEL
-/turf/open/floor/engine/cult
- name = "engraved floor"
- desc = "The air smells strange over this sinister flooring."
- icon_state = "plating"
- floor_tile = null
- var/obj/effect/cult_turf/overlay/floor/bloodcult/realappearance
-
-
-/turf/open/floor/engine/cult/Initialize(mapload, inherited_virtual_z)
- . = ..()
- new /obj/effect/temp_visual/cult/turf/floor(src)
- realappearance = new /obj/effect/cult_turf/overlay/floor/bloodcult(src)
- realappearance.linked = src
-
-/turf/open/floor/engine/cult/Destroy()
- be_removed()
- return ..()
-
-/turf/open/floor/engine/cult/ChangeTurf(path, new_baseturf, flags)
- if(path != type)
- be_removed()
- return ..()
-
-/turf/open/floor/engine/cult/proc/be_removed()
- qdel(realappearance)
- realappearance = null
-
-/turf/open/floor/engine/cult/airless
- initial_gas_mix = AIRLESS_ATMOS
-
/turf/open/floor/engine/vacuum
name = "vacuum floor"
initial_gas_mix = AIRLESS_ATMOS
diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm
index 90fd6610721c..159a32a2ccce 100644
--- a/code/game/turfs/open/lava.dm
+++ b/code/game/turfs/open/lava.dm
@@ -169,7 +169,7 @@
else if (isliving(thing))
. = 1
var/mob/living/L = thing
- if(L.movement_type & FLYING)
+ if(L.movement_type & FLYING || L.throwing)
continue //YOU'RE FLYING OVER IT
var/buckle_check = L.buckling
if(!buckle_check)
diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm
index f94db41d4713..5a78c24dc1fe 100644
--- a/code/game/turfs/open/water.dm
+++ b/code/game/turfs/open/water.dm
@@ -70,6 +70,7 @@
light_range = 2
light_power = 0.6
light_color = COLOR_VERY_LIGHT_GRAY
+ initial_gas_mix = JUNGLEPLANET_DEFAULT_ATMOS
/turf/open/water/jungle/Initialize(mapload)
. = ..()
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index e5cc9709559c..4da6e25703bb 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -378,7 +378,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
/turf/open/Entered(atom/movable/AM)
. =..()
//melting
- if(isobj(AM) && air && air.return_temperature() > T0C)
+ if(isobj(AM) && air?.return_temperature() > T0C)
var/obj/O = AM
if(O.obj_flags & FROZEN)
O.make_unfrozen()
@@ -582,8 +582,8 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
/turf/proc/acid_melt()
return
-/turf/handle_fall(mob/faller)
- if(has_gravity(src))
+/turf/handle_fall(mob/faller, fall_sound_played)
+ if(has_gravity(src) && !fall_sound_played)
playsound(src, "bodyfall", 50, TRUE)
faller.drop_all_held_items()
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index d05fd3ee3b98..b62a7830cc0d 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -850,22 +850,6 @@
if(!ai_number)
to_chat(usr, "No AIs located" , confidential = TRUE)
-/datum/admins/proc/output_all_devil_info()
- var/devil_number = 0
- for(var/datum/mind/D in SSticker.mode.devils)
- devil_number++
- var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil)
- to_chat(usr, "Devil #[devil_number]:
" + devil.printdevilinfo(), confidential = TRUE)
- if(!devil_number)
- to_chat(usr, "No Devils located" , confidential = TRUE)
-
-/datum/admins/proc/output_devil_info(mob/living/M)
- if(is_devil(M))
- var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil)
- to_chat(usr, devil.printdevilinfo(), confidential = TRUE)
- else
- to_chat(usr, "[M] is not a devil.", confidential = TRUE)
-
/datum/admins/proc/dynamic_mode_options(mob/user)
var/dat = {"
Dynamic Mode Options
diff --git a/code/modules/admin/callproc/callproc.dm b/code/modules/admin/callproc/callproc.dm
index 0fbae3fe55d2..8e99b47573ac 100644
--- a/code/modules/admin/callproc/callproc.dm
+++ b/code/modules/admin/callproc/callproc.dm
@@ -90,6 +90,12 @@ GLOBAL_PROTECT(LastAdminCalledProc)
to_chat(usr, "Calling Del() is not allowed", confidential = TRUE)
return
+ if(findtextEx(trim(lowertext(procname)), "rustg"))
+ var/message = "[key_name(usr)] attempted to call [procname] with arguments: [english_list(arguments)]. Rustg calls are not allowed."
+ log_admin_private(message)
+ message_admins(message)
+ return
+
if(target != GLOBAL_PROC && !target.CanProcCall(procname))
to_chat(usr, "Proccall on [target.type]/proc/[procname] is disallowed!", confidential = TRUE)
return
diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm
index 04e84097f6d1..0be2f41696e6 100644
--- a/code/modules/admin/fun_balloon.dm
+++ b/code/modules/admin/fun_balloon.dm
@@ -136,8 +136,3 @@
/obj/effect/forcefield/arena_shuttle_entrance/proc/do_bloodbath(mob/living/L)
var/obj/item/mine/pressure/pickup/bloodbath/B = new (L)
B.mine_effect(L)
-
-/area/shuttle_arena
- name = "arena"
- has_gravity = STANDARD_GRAVITY
- requires_power = FALSE
diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm
index 5e354e0f6550..0046d353dc5c 100644
--- a/code/modules/admin/permissionedit.dm
+++ b/code/modules/admin/permissionedit.dm
@@ -214,7 +214,7 @@
. = ckey(admin_key)
if(!.)
return FALSE
- if(!admin_ckey && (. in GLOB.admin_datums+GLOB.deadmins))
+ if(!admin_ckey && (. in (GLOB.admin_datums+GLOB.deadmins)))
to_chat(usr, "[admin_key] is already an admin.", confidential = TRUE)
return FALSE
if(use_db)
diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm
index 28646666b46a..bd3d189f85eb 100644
--- a/code/modules/admin/sql_ban_system.dm
+++ b/code/modules/admin/sql_ban_system.dm
@@ -285,8 +285,8 @@
var/list/long_job_lists = list("Service" = GLOB.service_positions,
"Ghost and Other Roles" = list(ROLE_BRAINWASHED, ROLE_DEATHSQUAD, ROLE_DRONE, ROLE_LAVALAND, ROLE_MIND_TRANSFER, ROLE_POSIBRAIN, ROLE_SENTIENCE),
"Antagonist Positions" = list(ROLE_ABDUCTOR, ROLE_ALIEN,
- ROLE_BROTHER, ROLE_CHANGELING, ROLE_CULTIST,
- ROLE_DEVIL, ROLE_INTERNAL_AFFAIRS, ROLE_MALF,
+ ROLE_BROTHER, ROLE_CHANGELING,
+ ROLE_INTERNAL_AFFAIRS, ROLE_MALF,
ROLE_MONKEY, ROLE_NINJA, ROLE_OPERATIVE,
ROLE_OVERTHROW, ROLE_REV, ROLE_REVENANT,
ROLE_REV_HEAD, ROLE_SYNDICATE,
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 7f546f5a6e7d..5123eed0be58 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -78,13 +78,6 @@
else
message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.")
log_admin("[key_name(usr)] failed to create changelings.")
- if("cult")
- if(src.makeCult())
- message_admins("[key_name(usr)] started a cult.")
- log_admin("[key_name(usr)] started a cult.")
- else
- message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.")
- log_admin("[key_name(usr)] failed to start a cult.")
if("wizard")
message_admins("[key_name(usr)] is creating a wizard...")
if(src.makeWizard())
@@ -350,14 +343,6 @@
M.change_mob_type(/mob/living/simple_animal/parrot , null, null, delmob)
if("polyparrot")
M.change_mob_type(/mob/living/simple_animal/parrot/Polly , null, null, delmob)
- if("constructjuggernaut")
- M.change_mob_type(/mob/living/simple_animal/hostile/construct/juggernaut , null, null, delmob)
- if("constructartificer")
- M.change_mob_type(/mob/living/simple_animal/hostile/construct/artificer , null, null, delmob)
- if("constructwraith")
- M.change_mob_type(/mob/living/simple_animal/hostile/construct/wraith , null, null, delmob)
- if("shade")
- M.change_mob_type(/mob/living/simple_animal/shade , null, null, delmob)
else if(href_list["boot2"])
if(!check_rights(R_ADMIN))
@@ -1140,12 +1125,6 @@
return
output_ai_laws()
- else if(href_list["admincheckdevilinfo"])
- if(!check_rights(R_ADMIN))
- return
- var/mob/M = locate(href_list["admincheckdevilinfo"])
- output_devil_info(M)
-
else if(href_list["adminmoreinfo"])
var/mob/M = locate(href_list["adminmoreinfo"]) in GLOB.mob_list
if(!ismob(M))
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 2c269ce1ee9a..61d8b2757836 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -614,6 +614,9 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
dellog += "Ignored force: [I.no_respect_force]"
if (I.no_hint)
dellog += "No hint: [I.no_hint]"
+ if(LAZYLEN(I.extra_details))
+ var/details = I.extra_details.Join("")
+ dellog += "Extra Info: "
dellog += ""
dellog += ""
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index abdecf91de60..d4b9259a61e9 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -16,7 +16,6 @@
var/dat = {"
Make Traitors
Make Changelings
- Make Cult
Make Wizard (Requires Ghosts)
Make Nuke Team (Requires Ghosts)
Make Response Team (Requires Ghosts)
@@ -113,38 +112,6 @@
new_character.mind.make_Wizard()
return TRUE
-
-/datum/admins/proc/makeCult()
- var/datum/game_mode/cult/temp = new
- if(CONFIG_GET(flag/protect_roles_from_antagonist))
- temp.restricted_jobs += temp.protected_jobs
-
- if(CONFIG_GET(flag/protect_assistant_from_antagonist))
- temp.restricted_jobs += "Assistant"
-
- var/list/mob/living/carbon/human/candidates = list()
- var/mob/living/carbon/human/H = null
-
- for(var/mob/living/carbon/human/applicant in GLOB.player_list)
- if(isReadytoRumble(applicant, ROLE_CULTIST))
- if(temp.age_check(applicant.client))
- if(!(applicant.job in temp.restricted_jobs))
- candidates += applicant
-
- if(candidates.len)
- var/numCultists = min(candidates.len, 4)
-
- for(var/i = 0, i 0 || islist(D)) //handling keys in assoc lists
+ if(level > 0 || islist(owner)) //handling keys in assoc lists
if(istype(name,/datum))
name_part = "[VV_HTML_ENCODE(name)] [REF(name)]"
else if(islist(name))
diff --git a/code/modules/admin/view_variables/reference_tracking.dm b/code/modules/admin/view_variables/reference_tracking.dm
index a9a84986416d..b9fd0e6d2ad6 100644
--- a/code/modules/admin/view_variables/reference_tracking.dm
+++ b/code/modules/admin/view_variables/reference_tracking.dm
@@ -1,36 +1,29 @@
#ifdef REFERENCE_TRACKING
+#define REFSEARCH_RECURSE_LIMIT 64
-/datum/proc/find_references(skip_alert)
- running_find_references = type
+/datum/proc/find_references(references_to_clear = INFINITY)
if(usr?.client)
- if(usr.client.running_find_references)
- log_reftracker("CANCELLED search for references to a [usr.client.running_find_references].")
- usr.client.running_find_references = null
- running_find_references = null
- //restart the garbage collector
- SSgarbage.can_fire = TRUE
- SSgarbage.next_fire = world.time + world.tick_lag
+ if(tgui_alert(usr,"Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", list("Yes", "No")) != "Yes")
return
- #ifndef FIND_REF_NO_CHECK_TICK
- if(!skip_alert && alert("Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", "Yes", "No") != "Yes")
- running_find_references = null
- return
- #endif
-
+ src.references_to_clear = references_to_clear
//this keeps the garbage collector from failing to collect objects being searched for in here
SSgarbage.can_fire = FALSE
- if(usr?.client)
- usr.client.running_find_references = type
+ _search_references()
+ //restart the garbage collector
+ SSgarbage.can_fire = TRUE
+ SSgarbage.update_nextfire(reset_time = TRUE)
- log_reftracker("Beginning search for references to a [type].")
+/datum/proc/_search_references()
+ log_reftracker("Beginning search for references to a [type], looking for [references_to_clear] refs.")
var/starting_time = world.time
-
//Time to search the whole game for our ref
- DoSearchVar(GLOB, "GLOB", search_time = starting_time) //globals
+ DoSearchVar(GLOB, "GLOB", starting_time) //globals
log_reftracker("Finished searching globals")
+ if(src.references_to_clear == 0)
+ return
//Yes we do actually need to do this. The searcher refuses to read weird lists
//And global.vars is a really weird list
@@ -38,45 +31,46 @@
for(var/key in global.vars)
global_vars[key] = global.vars[key]
- DoSearchVar(global_vars, "Native Global", search_time = starting_time)
+ DoSearchVar(global_vars, "Native Global", starting_time)
log_reftracker("Finished searching native globals")
+ if(src.references_to_clear == 0)
+ return
for(var/datum/thing in world) //atoms (don't beleive its lies)
- DoSearchVar(thing, "World -> [thing.type]", search_time = starting_time)
+ DoSearchVar(thing, "World -> [thing.type]", starting_time)
+ if(src.references_to_clear == 0)
+ break
log_reftracker("Finished searching atoms")
+ if(src.references_to_clear == 0)
+ return
for(var/datum/thing) //datums
- DoSearchVar(thing, "Datums -> [thing.type]", search_time = starting_time)
+ DoSearchVar(thing, "Datums -> [thing.type]", starting_time)
+ if(src.references_to_clear == 0)
+ break
log_reftracker("Finished searching datums")
+ if(src.references_to_clear == 0)
+ return
-#ifndef REFERENCE_DOING_IT_LIVE
//Warning, attempting to search clients like this will cause crashes if done on live. Watch yourself
+#ifndef REFERENCE_DOING_IT_LIVE
for(var/client/thing) //clients
- DoSearchVar(thing, "Clients -> [thing.type]", search_time = starting_time)
+ DoSearchVar(thing, "Clients -> [thing.type]", starting_time)
+ if(src.references_to_clear == 0)
+ break
log_reftracker("Finished searching clients")
-
- log_reftracker("Completed search for references to a [type].")
+ if(src.references_to_clear == 0)
+ return
#endif
- if(usr?.client)
- usr.client.running_find_references = null
- running_find_references = null
-
- //restart the garbage collector
- SSgarbage.can_fire = TRUE
- SSgarbage.next_fire = world.time + world.tick_lag
-
-/datum/proc/DoSearchVar(potential_container, container_name, recursive_limit = 64, search_time = world.time)
- #ifdef REFERENCE_TRACKING_DEBUG
- if(SSgarbage.should_save_refs && !found_refs)
- found_refs = list()
- #endif
+ log_reftracker("Completed search for references to a [type].")
- if(usr?.client && !usr.client.running_find_references)
+/datum/proc/DoSearchVar(potential_container, container_name, search_time, recursion_count, is_special_list)
+ if(recursion_count >= REFSEARCH_RECURSE_LIMIT)
+ log_reftracker("Recursion limit reached. [container_name]")
return
- if(!recursive_limit)
- log_reftracker("Recursion limit reached. [container_name]")
+ if(references_to_clear == 0)
return
//Check each time you go down a layer. This makes it a bit slow, but it won't effect the rest of the game at all
@@ -84,7 +78,7 @@
CHECK_TICK
#endif
- if(istype(potential_container, /datum))
+ if(isdatum(potential_container))
var/datum/datum_container = potential_container
if(datum_container.last_find_references == search_time)
return
@@ -92,68 +86,122 @@
datum_container.last_find_references = search_time
var/list/vars_list = datum_container.vars
+ var/is_atom = FALSE
+ var/is_area = FALSE
+ if(isatom(datum_container))
+ is_atom = TRUE
+ if(isarea(datum_container))
+ is_area = TRUE
for(var/varname in vars_list)
- #ifndef FIND_REF_NO_CHECK_TICK
- CHECK_TICK
- #endif
- if (varname == "vars" || varname == "vis_locs") //Fun fact, vis_locs don't count for references
- continue
var/variable = vars_list[varname]
-
- if(variable == src)
+ if(islist(variable))
+ //Fun fact, vis_locs don't count for references
+ if(varname == "vars" || (is_atom && (varname == "vis_locs" || varname == "overlays" || varname == "underlays" || varname == "filters" || varname == "verbs" || (is_area && varname == "contents"))))
+ continue
+ // We do this after the varname check to avoid area contents (reading it incures a world loop's worth of cost)
+ if(!length(variable))
+ continue
+ DoSearchVar(variable,\
+ "[container_name] [datum_container.ref_search_details()] -> [varname] (list)",\
+ search_time,\
+ recursion_count + 1,\
+ /*is_special_list = */ is_atom && (varname == "contents" || varname == "vis_contents" || varname == "locs"))
+ else if(variable == src)
#ifdef REFERENCE_TRACKING_DEBUG
if(SSgarbage.should_save_refs)
+ if(!found_refs)
+ found_refs = list()
found_refs[varname] = TRUE
continue //End early, don't want these logging
+ else
+ log_reftracker("Found [type] [text_ref(src)] in [datum_container.type]'s [datum_container.ref_search_details()] [varname] var. [container_name]")
+ #else
+ log_reftracker("Found [type] [text_ref(src)] in [datum_container.type]'s [datum_container.ref_search_details()] [varname] var. [container_name]")
#endif
- log_reftracker("Found [type] [text_ref(src)] in [datum_container.type]'s [text_ref(datum_container)] [varname] var. [container_name]")
+ references_to_clear -= 1
+ if(references_to_clear == 0)
+ log_reftracker("All references to [type] [text_ref(src)] found, exiting.")
+ return
continue
- if(islist(variable))
- DoSearchVar(variable, "[container_name] [text_ref(datum_container)] -> [varname] (list)", recursive_limit - 1, search_time)
-
else if(islist(potential_container))
- var/normal = IS_NORMAL_LIST(potential_container)
var/list/potential_cache = potential_container
for(var/element_in_list in potential_cache)
- #ifndef FIND_REF_NO_CHECK_TICK
- CHECK_TICK
- #endif
+ //Check normal sublists
+ if(islist(element_in_list))
+ if(length(element_in_list))
+ DoSearchVar(element_in_list, "[container_name] -> [element_in_list] (list)", search_time, recursion_count + 1)
//Check normal entrys
- if(element_in_list == src)
+ else if(element_in_list == src)
#ifdef REFERENCE_TRACKING_DEBUG
if(SSgarbage.should_save_refs)
+ if(!found_refs)
+ found_refs = list()
found_refs[potential_cache] = TRUE
- continue //End early, don't want these logging
- #endif
+ continue
+ else
+ log_reftracker("Found [type] [text_ref(src)] in list [container_name].")
+ #else
log_reftracker("Found [type] [text_ref(src)] in list [container_name].")
- continue
-
- var/assoc_val = null
- if(!isnum(element_in_list) && normal)
- assoc_val = potential_cache[element_in_list]
- //Check assoc entrys
- if(assoc_val == src)
- #ifdef REFERENCE_TRACKING_DEBUG
- if(SSgarbage.should_save_refs)
- found_refs[potential_cache] = TRUE
- continue //End early, don't want these logging
#endif
- log_reftracker("Found [type] [text_ref(src)] in list [container_name]\[[element_in_list]\]")
- continue
- //We need to run both of these checks, since our object could be hiding in either of them
- //Check normal sublists
- if(islist(element_in_list))
- DoSearchVar(element_in_list, "[container_name] -> [element_in_list] (list)", recursive_limit - 1, search_time)
- //Check assoc sublists
- if(islist(assoc_val))
- DoSearchVar(potential_container[element_in_list], "[container_name]\[[element_in_list]\] -> [assoc_val] (list)", recursive_limit - 1, search_time)
-/proc/qdel_and_find_ref_if_fail(datum/thing_to_del, force = FALSE)
- thing_to_del.qdel_and_find_ref_if_fail(force)
+ // This is dumb as hell I'm sorry
+ // I don't want the garbage subsystem to count as a ref for the purposes of this number
+ // If we find all other refs before it I want to early exit, and if we don't I want to keep searching past it
+ var/ignore_ref = FALSE
+ var/list/queues = SSgarbage.queues
+ for(var/list/queue in queues)
+ if(potential_cache in queue)
+ ignore_ref = TRUE
+ break
+ if(ignore_ref)
+ log_reftracker("[container_name] does not count as a ref for our count")
+ else
+ references_to_clear -= 1
+ if(references_to_clear == 0)
+ log_reftracker("All references to [type] [text_ref(src)] found, exiting.")
+ return
+
+ if(!isnum(element_in_list) && !is_special_list)
+ // This exists to catch an error that throws when we access a special list
+ // is_special_list is a hint, it can be wrong
+ try
+ var/assoc_val = potential_cache[element_in_list]
+ //Check assoc sublists
+ if(islist(assoc_val))
+ if(length(assoc_val))
+ DoSearchVar(potential_container[element_in_list], "[container_name]\[[element_in_list]\] -> [assoc_val] (list)", search_time, recursion_count + 1)
+ //Check assoc entry
+ else if(assoc_val == src)
+ #ifdef REFERENCE_TRACKING_DEBUG
+ if(SSgarbage.should_save_refs)
+ if(!found_refs)
+ found_refs = list()
+ found_refs[potential_cache] = TRUE
+ continue
+ else
+ log_reftracker("Found [type] [text_ref(src)] in list [container_name]\[[element_in_list]\]")
+ #else
+ log_reftracker("Found [type] [text_ref(src)] in list [container_name]\[[element_in_list]\]")
+ #endif
+ references_to_clear -= 1
+ if(references_to_clear == 0)
+ log_reftracker("All references to [type] [text_ref(src)] found, exiting.")
+ return
+ catch
+ // So if it goes wrong we kill it
+ is_special_list = TRUE
+ log_reftracker("Curiosity: [container_name] lead to an error when acessing [element_in_list], what is it?")
+
+#undef REFSEARCH_RECURSE_LIMIT
+#endif
-/datum/proc/qdel_and_find_ref_if_fail(force = FALSE)
- SSgarbage.reference_find_on_fail[text_ref(src)] = TRUE
- qdel(src, force)
+// Kept outside the ifdef so overrides are easy to implement
-#endif
+/// Return info about us for reference searching purposes
+/// Will be logged as a representation of this datum if it's a part of a search chain
+/datum/proc/ref_search_details()
+ return text_ref(src)
+
+/datum/callback/ref_search_details()
+ return "[text_ref(src)] (obj: [object] proc: [delegate] args: [json_encode(arguments)] user: [user?.resolve() || "null"])"
diff --git a/code/modules/antagonists/borer/borer.dm b/code/modules/antagonists/borer/borer.dm
index 92a1e728dc8b..4a3f73da57c5 100644
--- a/code/modules/antagonists/borer/borer.dm
+++ b/code/modules/antagonists/borer/borer.dm
@@ -79,7 +79,7 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3)
mob_size = MOB_SIZE_SMALL
faction = list("creature")
ventcrawler = VENTCRAWLER_ALWAYS
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
@@ -683,10 +683,6 @@ GLOBAL_VAR_INIT(total_borer_hosts_needed, 3)
if(docile)
to_chat(src, "You are feeling far too docile to do that.")
return
- if(iscultist(victim) || HAS_TRAIT(victim, TRAIT_MINDSHIELD))
- to_chat(src, "[victim]'s mind seems to be blocked by some unknown force!")
- return
-
else
log_game("[src]/([src.ckey]) assumed control of [victim]/([victim.ckey] with borer powers.")
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index 7d9279f1390d..7953f3f7021a 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -539,17 +539,6 @@
newprofile.mob_overlay_icon_list = mob_overlay_icon_list.Copy()
newprofile.mob_overlay_state_list = mob_overlay_state_list.Copy() //WS EDIT - Mob Overlay State
-/datum/antagonist/changeling/xenobio
- name = "Xenobio Changeling"
- give_objectives = FALSE
- show_in_roundend = FALSE //These are here for admin tracking purposes only
- you_are_greet = FALSE
-
- chem_storage = 25
- geneticpoints = 2
- chem_recharge_rate = 0.5
- dna_max = 3
-
/datum/antagonist/changeling/roundend_report()
var/list/parts = list()
@@ -582,6 +571,3 @@
/datum/antagonist/changeling/antag_listing_name()
return ..() + "([changelingID])"
-
-/datum/antagonist/changeling/xenobio/antag_listing_name()
- return ..() + "(Xenobio)"
diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
index 5980993958b0..93905c9d6aed 100644
--- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
+++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
@@ -48,7 +48,7 @@
changelings[C] = (CHANGELING_PHEROMONE_MAX_DISTANCE ** 2) - (distance ** 2)
if(changelings.len)
- scan_target = pickweight(changelings) //Point at a 'random' changeling, biasing heavily towards closer ones.
+ scan_target = pick_weight(changelings) //Point at a 'random' changeling, biasing heavily towards closer ones.
else
scan_target = null
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
deleted file mode 100644
index b4bfb265386d..000000000000
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ /dev/null
@@ -1,803 +0,0 @@
-/datum/action/innate/cult/blood_magic //Blood magic handles the creation of blood spells (formerly talismans)
- name = "Prepare Blood Magic"
- button_icon_state = "carve"
- desc = "Prepare blood magic by carving runes into your flesh. This is easier with an empowering rune."
- var/list/spells = list()
- var/channeling = FALSE
-
-/datum/action/innate/cult/blood_magic/Grant()
- ..()
- button.screen_loc = DEFAULT_BLOODSPELLS
- button.moved = DEFAULT_BLOODSPELLS
- button.ordered = FALSE
-
-/datum/action/innate/cult/blood_magic/Remove()
- for(var/X in spells)
- qdel(X)
- ..()
-
-/datum/action/innate/cult/blood_magic/IsAvailable()
- if(!iscultist(owner))
- return FALSE
- return ..()
-
-/datum/action/innate/cult/blood_magic/proc/Positioning()
- var/list/screen_loc_split = splittext(button.screen_loc,",")
- var/list/screen_loc_X = splittext(screen_loc_split[1],":")
- var/list/screen_loc_Y = splittext(screen_loc_split[2],":")
- var/pix_X = text2num(screen_loc_X[2])
- for(var/datum/action/innate/cult/blood_spell/B in spells)
- if(B.button.locked)
- var/order = pix_X+spells.Find(B)*31
- B.button.screen_loc = "[screen_loc_X[1]]:[order],[screen_loc_Y[1]]:[screen_loc_Y[2]]"
- B.button.moved = B.button.screen_loc
-
-/datum/action/innate/cult/blood_magic/Activate()
- var/rune = FALSE
- var/limit = RUNELESS_MAX_BLOODCHARGE
- for(var/obj/effect/rune/empower/R in range(1, owner))
- rune = TRUE
- break
- if(rune)
- limit = MAX_BLOODCHARGE
- if(spells.len >= limit)
- if(rune)
- to_chat(owner, "You cannot store more than [MAX_BLOODCHARGE] spells. Pick a spell to remove.")
- else
- to_chat(owner, "You cannot store more than [RUNELESS_MAX_BLOODCHARGE] spells without an empowering rune! Pick a spell to remove.")
- var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells
- if(nullify_spell)
- qdel(nullify_spell)
- return
- var/entered_spell_name
- var/datum/action/innate/cult/blood_spell/BS
- var/list/possible_spells = list()
- for(var/I in subtypesof(/datum/action/innate/cult/blood_spell))
- var/datum/action/innate/cult/blood_spell/J = I
- var/cult_name = initial(J.name)
- possible_spells[cult_name] = J
- possible_spells += "(REMOVE SPELL)"
- entered_spell_name = input(owner, "Pick a blood spell to prepare...", "Spell Choices") as null|anything in possible_spells
- if(entered_spell_name == "(REMOVE SPELL)")
- var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells
- if(nullify_spell)
- qdel(nullify_spell)
- return
- BS = possible_spells[entered_spell_name]
- if(QDELETED(src) || owner.incapacitated() || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (spells.len >= limit))
- return
- to_chat(owner,"You begin to carve unnatural symbols into your flesh!")
- SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10))
- if(!channeling)
- channeling = TRUE
- else
- to_chat(owner, "You are already invoking blood magic!")
- return
- if(do_after(owner, 100 - rune*60, target = owner))
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.bleed(40 - rune*32)
- var/datum/action/innate/cult/blood_spell/new_spell = new BS(owner)
- new_spell.Grant(owner, src)
- spells += new_spell
- Positioning()
- to_chat(owner, "Your wounds glow with power, you have prepared a [new_spell.name] invocation!")
- channeling = FALSE
-
-/datum/action/innate/cult/blood_spell //The next generation of talismans, handles storage/creation of blood magic
- name = "Blood Magic"
- button_icon_state = "telerune"
- desc = "Fear the Old Blood."
- var/charges = 1
- var/magic_path = null
- var/obj/item/melee/blood_magic/hand_magic
- var/datum/action/innate/cult/blood_magic/all_magic
- var/base_desc //To allow for updating tooltips
- var/invocation
- var/health_cost = 0
-
-/datum/action/innate/cult/blood_spell/Grant(mob/living/owner, datum/action/innate/cult/blood_magic/BM)
- if(health_cost)
- desc += "
Deals [health_cost] damage to your arm per use."
- base_desc = desc
- desc += "
Has [charges] use\s remaining."
- all_magic = BM
- ..()
- button.locked = TRUE
- button.ordered = FALSE
-
-/datum/action/innate/cult/blood_spell/Remove()
- if(all_magic)
- all_magic.spells -= src
- if(hand_magic)
- qdel(hand_magic)
- hand_magic = null
- ..()
-
-/datum/action/innate/cult/blood_spell/IsAvailable()
- if(!iscultist(owner) || owner.incapacitated() || !charges)
- return FALSE
- return ..()
-
-/datum/action/innate/cult/blood_spell/Activate()
- if(magic_path) //If this spell flows from the hand
- if(!hand_magic)
- hand_magic = new magic_path(owner, src)
- if(!owner.put_in_hands(hand_magic))
- qdel(hand_magic)
- hand_magic = null
- to_chat(owner, "You have no empty hand for invoking blood magic!")
- return
- to_chat(owner, "Your wounds glow as you invoke the [name].")
- return
- if(hand_magic)
- qdel(hand_magic)
- hand_magic = null
- to_chat(owner, "You snuff out the spell, saving it for later.")
-
-
-//Cult Blood Spells
-/datum/action/innate/cult/blood_spell/stun
- name = "Stun"
- desc = "Empowers your hand to stun and mute a victim on contact."
- button_icon_state = "hand"
- 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"
- health_cost = 7
-
-/datum/action/innate/cult/blood_spell/emp
- name = "Electromagnetic Pulse"
- desc = "Emits a large electromagnetic pulse."
- button_icon_state = "emp"
- health_cost = 10
- invocation = "Ta'gh fara'qha fel d'amar det!"
-
-/datum/action/innate/cult/blood_spell/emp/Activate()
- owner.visible_message(
- "[owner]'s hand flashes a bright blue!", \
- "You speak the cursed words, emitting an EMP blast from your hand.")
- empulse(owner, 2, 5)
- owner.whisper(invocation, language = /datum/language/common)
- charges--
- if(charges<=0)
- qdel(src)
-
-/datum/action/innate/cult/blood_spell/shackles
- name = "Shadow Shackles"
- 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"
-
-/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
Airlocks into brittle runed airlocks after a delay (harm intent)"
- button_icon_state = "transmute"
- magic_path = "/obj/item/melee/blood_magic/construction"
- health_cost = 12
-
-/datum/action/innate/cult/blood_spell/horror
- name = "Hallucinations"
- desc = "Gives hallucinations to a target at range. A silent and invisible spell."
- button_icon_state = "horror"
- var/obj/effect/proc_holder/horror/PH
- charges = 4
-
-/datum/action/innate/cult/blood_spell/horror/New()
- PH = new()
- PH.attached_action = src
- ..()
-
-/datum/action/innate/cult/blood_spell/horror/Destroy()
- var/obj/effect/proc_holder/horror/destroy = PH
- . = ..()
- if(destroy && !QDELETED(destroy))
- QDEL_NULL(destroy)
-
-/datum/action/innate/cult/blood_spell/horror/Activate()
- PH.toggle(owner) //the important bit
- return TRUE
-
-/obj/effect/proc_holder/horror
- active = FALSE
- ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi'
- var/datum/action/innate/cult/blood_spell/attached_action
-
-/obj/effect/proc_holder/horror/Destroy()
- var/datum/action/innate/cult/blood_spell/AA = attached_action
- . = ..()
- if(AA && !QDELETED(AA))
- QDEL_NULL(AA)
-
-/obj/effect/proc_holder/horror/proc/toggle(mob/user)
- if(active)
- remove_ranged_ability("You dispel the magic...")
- else
- add_ranged_ability(user, "You prepare to horrify a target...")
-
-/obj/effect/proc_holder/horror/InterceptClickOn(mob/living/caller, params, atom/target)
- if(..())
- return
- if(ranged_ability_user.incapacitated() || !iscultist(caller))
- remove_ranged_ability()
- return
- var/turf/T = get_turf(ranged_ability_user)
- if(!isturf(T))
- return FALSE
- if(target in view(7, get_turf(ranged_ability_user)))
- if(!ishuman(target) || iscultist(target))
- return
- var/mob/living/carbon/human/H = target
- H.hallucination = max(H.hallucination, 120)
- SEND_SOUND(ranged_ability_user, sound('sound/effects/ghost.ogg',0,1,50))
- var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER)
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE)
- addtimer(CALLBACK(H, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE)
- to_chat(ranged_ability_user,"[H] has been cursed with living nightmares!")
- attached_action.charges--
- attached_action.desc = attached_action.base_desc
- attached_action.desc += "
Has [attached_action.charges] use\s remaining."
- attached_action.UpdateButtonIcon()
- if(attached_action.charges <= 0)
- remove_ranged_ability("You have exhausted the spell's power!")
- qdel(src)
-
-/datum/action/innate/cult/blood_spell/veiling
- name = "Conceal Presence"
- desc = "Alternates between hiding and revealing nearby cult structures and runes."
- invocation = "Kla'atu barada nikt'o!"
- button_icon_state = "gone"
- charges = 10
- var/revealing = FALSE //if it reveals or not
-
-/datum/action/innate/cult/blood_spell/veiling/Activate()
- if(!revealing)
- owner.visible_message("Thin grey dust falls from [owner]'s hand!", \
- "You invoke the veiling spell, hiding nearby runes.")
- charges--
- SEND_SOUND(owner, sound('sound/magic/smoke.ogg',0,1,25))
- owner.whisper(invocation, language = /datum/language/common)
- for(var/obj/effect/rune/R in range(5,owner))
- R.conceal()
- for(var/obj/structure/destructible/cult/S in range(5,owner))
- S.conceal()
- for(var/turf/open/floor/engine/cult/T in range(5,owner))
- T.realappearance.alpha = 0
- for(var/obj/machinery/door/airlock/cult/AL in range(5, owner))
- AL.conceal()
- revealing = TRUE
- name = "Reveal Runes"
- button_icon_state = "back"
- else
- owner.visible_message(
- "A flash of light shines from [owner]'s hand!", \
- "You invoke the counterspell, revealing nearby runes.")
- charges--
- owner.whisper(invocation, language = /datum/language/common)
- SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg',0,1,25))
- for(var/obj/effect/rune/R in range(7,owner)) //More range in case you weren't standing in exactly the same spot
- R.reveal()
- for(var/obj/structure/destructible/cult/S in range(6,owner))
- S.reveal()
- for(var/turf/open/floor/engine/cult/T in range(6,owner))
- T.realappearance.alpha = initial(T.realappearance.alpha)
- for(var/obj/machinery/door/airlock/cult/AL in range(6, owner))
- AL.reveal()
- revealing = FALSE
- name = "Conceal Runes"
- button_icon_state = "gone"
- if(charges<= 0)
- qdel(src)
- desc = base_desc
- desc += "
Has [charges] use\s remaining."
- UpdateButtonIcon()
-
-/datum/action/innate/cult/blood_spell/manipulation
- name = "Blood Rites"
- desc = "Empowers your hand to absorb blood to be used for advanced rites, or heal a cultist on contact. Use the spell in-hand to cast advanced rites."
- invocation = "Fel'th Dol Ab'orod!"
- button_icon_state = "manip"
- charges = 5
- magic_path = "/obj/item/melee/blood_magic/manipulator"
-
-
-// The "magic hand" items
-/obj/item/melee/blood_magic
- name = "\improper magical aura"
- desc = "A sinister looking aura that distorts the flow of reality around it."
- icon = 'icons/obj/items.dmi'
- lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi'
- icon_state = "disintegrate"
- item_state = "disintegrate"
- item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL
-
- w_class = WEIGHT_CLASS_HUGE
- throwforce = 0
- throw_range = 0
- throw_speed = 0
- var/invocation
- var/uses = 1
- var/health_cost = 0 //The amount of health taken from the user when invoking the spell
- var/datum/action/innate/cult/blood_spell/source
-
-/obj/item/melee/blood_magic/New(loc, spell)
- if(spell)
- source = spell
- uses = source.charges
- health_cost = source.health_cost
- ..()
-
-/obj/item/melee/blood_magic/Destroy()
- if(!QDELETED(source))
- if(uses <= 0)
- source.hand_magic = null
- qdel(source)
- source = null
- else
- source.hand_magic = null
- source.charges = uses
- source.desc = source.base_desc
- source.desc += "
Has [uses] use\s remaining."
- source.UpdateButtonIcon()
- return ..()
-
-/obj/item/melee/blood_magic/attack_self(mob/living/user)
- afterattack(user, user, TRUE)
-
-/obj/item/melee/blood_magic/attack(mob/living/M, mob/living/carbon/user)
- if(!iscarbon(user) || !iscultist(user))
- uses = 0
- qdel(src)
- return
- log_combat(user, M, "used a cult spell on", source.name, "")
- M.lastattacker = user.real_name
- M.lastattackerckey = user.ckey
-
-/obj/item/melee/blood_magic/afterattack(atom/target, mob/living/carbon/user, proximity)
- . = ..()
- if(invocation)
- user.whisper(invocation, language = /datum/language/common)
- if(health_cost)
- if(user.active_hand_index == 1)
- user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM)
- else
- user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM)
- if(uses <= 0)
- qdel(src)
- else if(source)
- source.desc = source.base_desc
- source.desc += "
Has [uses] use\s remaining."
- source.UpdateButtonIcon()
-
-//Stun
-/obj/item/melee/blood_magic/stun
- name = "Stunning Aura"
- desc = "Will stun and mute a weak-minded victim on contact."
- color = RUNE_COLOR_RED
- invocation = "Fuu ma'jin!"
-
-/obj/item/melee/blood_magic/stun/afterattack(atom/target, mob/living/carbon/user, proximity)
- if(!isliving(target) || !proximity)
- return
- var/mob/living/L = target
- if(iscultist(target))
- return
- if(iscultist(user))
- user.visible_message("[user] holds up [user.p_their()] hand, which explodes in a flash of red light!", \
- "You attempt to stun [L] with the spell!")
-
- user.mob_light(_range = 3, _color = LIGHT_COLOR_BLOOD_MAGIC, _duration = 0.2 SECONDS)
-
- var/anti_magic_source = L.anti_magic_check()
- if(anti_magic_source)
-
- L.mob_light(_range = 2, _color = LIGHT_COLOR_HOLY_MAGIC, _duration = 10 SECONDS)
- var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER)
- L.add_overlay(forbearance)
- addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100)
-
- if(istype(anti_magic_source, /obj/item))
- var/obj/item/ams_object = anti_magic_source
- target.visible_message(
- "[L] starts to glow in a halo of light!", \
- "Your [ams_object.name] begins to glow, emitting a blanket of holy light which surrounds you and protects you from the flash of light!")
- else
- target.visible_message(
- "[L] starts to glow in a halo of light!", \
- "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!")
-
- else
- if(HAS_TRAIT(target, TRAIT_MINDSHIELD))
- var/mob/living/carbon/C = L
- to_chat(user, "Their mind was stronger than expected, but you still managed to do some damage!")
- C.stuttering += 8
- C.dizziness += 30
- C.Jitter(8)
- C.drop_all_held_items()
- C.bleed(40)
- C.apply_damage(60, STAMINA, BODY_ZONE_CHEST)
- else
- to_chat(user, "In a brilliant flash of red, [L] falls to the ground!")
- L.Paralyze(160)
- L.flash_act(1,1)
- if(issilicon(target))
- var/mob/living/silicon/S = L
- S.emp_act(EMP_HEAVY)
- else if(iscarbon(target))
- var/mob/living/carbon/C = L
- C.silent += 6
- C.stuttering += 15
- C.cultslurring += 15
- C.Jitter(15)
- uses--
- ..()
-
-//Teleportation
-/obj/item/melee/blood_magic/teleport
- name = "Teleporting Aura"
- color = RUNE_COLOR_TELEPORT
- desc = "Will teleport a cultist to a teleport rune on contact."
- invocation = "Sas'so c'arta forbici!"
-
-/obj/item/melee/blood_magic/teleport/afterattack(atom/target, mob/living/carbon/user, proximity)
- if(!iscultist(target) || !proximity)
- to_chat(user, "You can only teleport adjacent cultists with this spell!")
- return
- if(iscultist(user))
- var/list/potential_runes = list()
- var/list/teleportnames = list()
- for(var/R in GLOB.teleport_runes)
- var/obj/effect/rune/teleport/T = R
- potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T
-
- if(!potential_runes.len)
- to_chat(user, "There are no valid runes to teleport to!")
- log_game("Teleport talisman failed - no other teleport runes")
- return
-
- var/turf/T = get_turf(src)
- if(is_away_level(T))
- to_chat(user, "You are not in the right dimension!")
- log_game("Teleport spell failed - user in away mission")
- return
-
- var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked
- 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 || !proximity)
- return
- var/turf/dest = get_turf(actual_selected_rune)
- if(dest.is_blocked_turf(TRUE))
- to_chat(user, "The target rune is blocked. You cannot teleport there.")
- return
- uses--
- var/turf/origin = get_turf(user)
- var/mob/living/L = target
- if(do_teleport(L, dest, channel = TELEPORT_CHANNEL_CULT))
- origin.visible_message("Dust flows from [user]'s hand, and [user.p_they()] disappear[user.p_s()] with a sharp crack!", \
- "You speak the words of the talisman and find yourself somewhere else!", "You hear a sharp crack.")
- dest.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.")
- ..()
-
-//Shackles
-/obj/item/melee/blood_magic/shackles
- name = "Shackling Aura"
- desc = "Will start handcuffing a victim on contact, and mute them if successful."
- invocation = "In'totum Lig'abis!"
- color = "#000000" // black
-
-/obj/item/melee/blood_magic/shackles/afterattack(atom/target, mob/living/carbon/user, proximity)
- if(iscultist(user) && iscarbon(target) && proximity)
- var/mob/living/carbon/C = target
- if(C.canBeHandcuffed())
- CuffAttack(C, user)
- else
- user.visible_message("This victim doesn't have enough arms to complete the restraint!")
- return
- ..()
-
-/obj/item/melee/blood_magic/shackles/proc/CuffAttack(mob/living/carbon/C, mob/living/user)
- if(!C.handcuffed)
- playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2)
- C.visible_message("[user] begins restraining [C] with dark magic!", \
- "[user] begins shaping dark magic shackles around your wrists!")
- if(do_after(user, 3 SECONDS, C))
- if(!C.handcuffed)
- C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult/used(C))
- C.update_handcuffed()
- C.silent += 5
- to_chat(user, "You shackle [C].")
- log_combat(user, C, "shackled")
- uses--
- else
- to_chat(user, "[C] is already bound.")
- else
- to_chat(user, "You fail to shackle [C].")
- else
- to_chat(user, "[C] is already bound.")
-
-
-/obj/item/restraints/handcuffs/energy/cult //For the shackling spell
- name = "shadow shackles"
- desc = "Shackles that bind the wrists with sinister magic."
- trashtype = /obj/item/restraints/handcuffs/energy/used
- item_flags = DROPDEL
-
-/obj/item/restraints/handcuffs/energy/cult/used/dropped(mob/user)
- user.visible_message("[user]'s shackles shatter in a discharge of dark magic!", \
- "Your [src] shatters in a discharge of dark magic!")
- . = ..()
-
-
-//Construction: Converts 50 metal to a construct shell, plasteel to runed metal, airlock to brittle runed airlock, a borg to a construct, or borg shell to a construct shell
-/obj/item/melee/blood_magic/construction
- name = "Twisting Aura"
- desc = "Corrupts certain metalic objects on contact."
- invocation = "Ethra p'ni dedol!"
- color = "#000000" // black
- var/channeling = FALSE
-
-/obj/item/melee/blood_magic/construction/examine(mob/user)
- . = ..()
- . += {"A sinister spell used to convert:\n
- Plasteel into runed metal\n
- [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal into a construct shell\n
- Living cyborgs into constructs after a delay\n
- Cyborg shells into construct shells\n
- Airlocks into brittle runed airlocks after a delay (harm intent)"}
-
-/obj/item/melee/blood_magic/construction/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
- if(proximity_flag && iscultist(user))
- if(channeling)
- to_chat(user, "You are already invoking twisted construction!")
- return
- var/turf/T = get_turf(target)
- if(istype(target, /obj/item/stack/sheet/metal))
- var/obj/item/stack/sheet/candidate = target
- if(candidate.use(METAL_TO_CONSTRUCT_SHELL_CONVERSION))
- uses--
- to_chat(user, "A dark cloud emanates from your hand and swirls around the metal, twisting it into a construct shell!")
- new /obj/structure/constructshell(T)
- SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
- else
- to_chat(user, "You need [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal to produce a construct shell!")
- return
- else if(istype(target, /obj/item/stack/sheet/plasteel))
- var/obj/item/stack/sheet/plasteel/candidate = target
- var/quantity = candidate.amount
- if(candidate.use(quantity))
- uses --
- new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity)
- to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!")
- SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
- else if(istype(target,/mob/living/silicon/robot))
- var/mob/living/silicon/robot/candidate = target
- if(candidate.mmi)
- channeling = TRUE
- user.visible_message("A dark cloud emanates from [user]'s hand and swirls around [candidate]!")
- playsound(T, 'sound/machines/creaking.ogg', 80, TRUE)
- var/prev_color = candidate.color
- candidate.color = "black"
- if(do_after(user, 90, target = candidate))
- candidate.emp_act(EMP_HEAVY)
- var/list/constructs = list(
- "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"),
- "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"),
- "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer")
- )
- var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
- if(!check_menu(user))
- return
- if(QDELETED(candidate))
- channeling = FALSE
- return
- user.visible_message("The dark cloud recedes from what was formerly [candidate], revealing a\n [construct_class]!")
- switch(construct_class)
- if("Juggernaut")
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, candidate, user, 0, T)
- if("Wraith")
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, candidate, user, 0, T)
- if("Artificer")
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, candidate, user, 0, T)
- else
- return
- uses--
- candidate.mmi = null
- qdel(candidate)
- channeling = FALSE
- else
- channeling = FALSE
- candidate.color = prev_color
- return
- else
- uses--
- to_chat(user, "A dark cloud emanates from you hand and swirls around [candidate] - twisting it into a construct shell!")
- new /obj/structure/constructshell(T)
- SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
- qdel(candidate)
- else if(istype(target,/obj/machinery/door/airlock))
- channeling = TRUE
- playsound(T, 'sound/machines/airlockforced.ogg', 50, TRUE)
- do_sparks(5, TRUE, target)
- if(do_after(user, 50, target = user))
- if(QDELETED(target))
- channeling = FALSE
- return
- target.narsie_act()
- uses--
- user.visible_message("Black ribbons suddenly emanate from [user]'s hand and cling to the airlock - twisting and corrupting it!")
- SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25))
- channeling = FALSE
- else
- channeling = FALSE
- return
- else
- to_chat(user, "The spell will not work on [target]!")
- return
- ..()
-
-/obj/item/melee/blood_magic/construction/proc/check_menu(mob/user)
- if(!istype(user))
- return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
- return FALSE
- return TRUE
-
-
-//Armor: Gives the target a basic cultist combat loadout
-/obj/item/melee/blood_magic/armor
- name = "Arming Aura"
- desc = "Will equipt cult combat gear onto a cultist on contact."
- color = "#33cc33" // green
-
-/obj/item/melee/blood_magic/armor/afterattack(atom/target, mob/living/carbon/user, proximity)
- if(iscarbon(target) && proximity)
- uses--
- var/mob/living/carbon/C = target
- C.visible_message("Otherworldly armor suddenly appears on [C]!")
- C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING)
- C.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), ITEM_SLOT_OCLOTHING)
- C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET)
- C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK)
- if(C == user)
- qdel(src) //Clears the hands
- C.put_in_hands(new /obj/item/restraints/legcuffs/bola/cult(user))
- ..()
-
-/obj/item/melee/blood_magic/manipulator
- name = "Blood Rite Aura"
- desc = "Absorbs blood from anything you touch. Touching cultists and constructs can heal them. Use in-hand to cast an advanced rite."
- color = "#7D1717"
-
-/obj/item/melee/blood_magic/manipulator/examine(mob/user)
- . = ..()
- . += "Blood spear, blood bolt barrage, and blood beam cost [BLOOD_SPEAR_COST], [BLOOD_BARRAGE_COST], and [BLOOD_BEAM_COST] charges respectively."
-
-/obj/item/melee/blood_magic/manipulator/afterattack(atom/target, mob/living/carbon/human/user, proximity)
- if(proximity)
- if(ishuman(target))
- var/mob/living/carbon/human/H = target
- if(NOBLOOD in H.dna.species.species_traits)
- to_chat(user,"Blood rites do not work on species with no blood!")
- return
- if(iscultist(H))
- if(H.stat == DEAD)
- to_chat(user,"Only a revive rune can bring back the dead!")
- return
- if(H.blood_volume < BLOOD_VOLUME_SAFE)
- var/restore_blood = BLOOD_VOLUME_SAFE - H.blood_volume
- if(uses*2 < restore_blood)
- H.blood_volume += uses*2
- to_chat(user,"You use the last of your blood rites to restore what blood you could!")
- uses = 0
- return ..()
- else
- H.blood_volume = BLOOD_VOLUME_SAFE
- uses -= round(restore_blood/2)
- to_chat(user,"Your blood rites have restored [H == user ? "your" : "[H.p_their()]"] blood to safe levels!")
- var/overall_damage = H.getBruteLoss() + H.getFireLoss() + H.getToxLoss() + H.getOxyLoss()
- if(overall_damage == 0)
- to_chat(user,"That cultist doesn't require healing!")
- else
- var/ratio = uses/overall_damage
- if(H == user)
- to_chat(user,"Your blood healing is far less efficient when used on yourself!")
- ratio *= 0.35 // Healing is half as effective if you can't perform a full heal
- uses -= round(overall_damage) // Healing is 65% more "expensive" even if you can still perform the full heal
- if(ratio>1)
- ratio = 1
- uses -= round(overall_damage)
- H.visible_message("[H] is fully healed by [H==user ? "[H.p_their()]":"[H]'s"]'s blood magic!")
- else
- H.visible_message("[H] is partially healed by [H==user ? "[H.p_their()]":"[H]'s"] blood magic.")
- uses = 0
- ratio *= -1
- H.adjustOxyLoss((overall_damage*ratio) * (H.getOxyLoss() / overall_damage), 0)
- H.adjustToxLoss((overall_damage*ratio) * (H.getToxLoss() / overall_damage), 0)
- H.adjustFireLoss((overall_damage*ratio) * (H.getFireLoss() / overall_damage), 0)
- H.adjustBruteLoss((overall_damage*ratio) * (H.getBruteLoss() / overall_damage), 0)
- H.updatehealth()
- playsound(get_turf(H), 'sound/magic/staff_healing.ogg', 25)
- new /obj/effect/temp_visual/cult/sparks(get_turf(H))
- user.Beam(H,icon_state="sendbeam",time=15)
- else
- if(H.stat == DEAD)
- to_chat(user,"[H.p_their(TRUE)] blood has stopped flowing, you'll have to find another way to extract it.")
- return
- if(H.cultslurring)
- to_chat(user,"[H.p_their(TRUE)] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!")
- return
- if(H.blood_volume > BLOOD_VOLUME_SAFE)
- H.blood_volume -= 100
- uses += 50
- user.Beam(H,icon_state="drainbeam",time=10)
- playsound(get_turf(H), 'sound/magic/enter_blood.ogg', 50)
- H.visible_message("[user] drains some of [H]'s blood!")
- to_chat(user,"Your blood rite gains 50 charges from draining [H]'s blood.")
- new /obj/effect/temp_visual/cult/sparks(get_turf(H))
- else
- to_chat(user,"[H.p_theyre(TRUE)] missing too much blood - you cannot drain [H.p_them()] further!")
- return
- if(isconstruct(target))
- var/mob/living/simple_animal/M = target
- var/missing = M.maxHealth - M.health
- if(missing)
- if(uses > missing)
- M.adjustHealth(-missing)
- M.visible_message("[M] is fully healed by [user]'s blood magic!")
- uses -= missing
- else
- M.adjustHealth(-uses)
- M.visible_message("[M] is partially healed by [user]'s blood magic!")
- uses = 0
- playsound(get_turf(M), 'sound/magic/staff_healing.ogg', 25)
- user.Beam(M,icon_state="sendbeam",time=10)
- if(istype(target, /obj/effect/decal/cleanable/blood))
- blood_draw(target, user)
- ..()
-
-/obj/item/melee/blood_magic/manipulator/proc/blood_draw(atom/target, mob/living/carbon/human/user)
- var/temp = 0
- var/turf/T = get_turf(target)
- if(T)
- for(var/obj/effect/decal/cleanable/blood/B in view(T, 2))
- if(B.blood_state == BLOOD_STATE_HUMAN)
- if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent cheese with footprint spam
- temp += 30
- else
- temp += max((B.bloodiness**2)/800,1)
- new /obj/effect/temp_visual/cult/turf/floor(get_turf(B))
- qdel(B)
- if(temp)
- user.Beam(T,icon_state="drainbeam",time=15)
- new /obj/effect/temp_visual/cult/sparks(get_turf(user))
- playsound(T, 'sound/magic/enter_blood.ogg', 50)
- to_chat(user, "Your blood rite has gained [round(temp)] charge\s from blood sources around you!")
- uses += max(1, round(temp))
-
-/obj/item/melee/blood_magic/manipulator/attack_self(mob/living/user)
- if(iscultist(user))
- var/list/options = list("Blood Beam (500)")
- var/choice = input(user, "Choose a greater blood rite...", "Greater Blood Rites") as null|anything in options
- if(!choice)
- to_chat(user, "You decide against conducting a greater blood rite.")
- return
- switch(choice)
- if("Blood Beam (500)")
- if(uses < BLOOD_BEAM_COST)
- to_chat(user, "You need [BLOOD_BEAM_COST] charges to perform this rite.")
- else
- var/obj/rite = new /obj/item/blood_beam()
- uses -= BLOOD_BEAM_COST
- qdel(src)
- if(user.put_in_hands(rite))
- to_chat(user, "Your hands glow with POWER OVERWHELMING!!!")
- else
- to_chat(user, "You need a free hand for this rite!")
- qdel(rite)
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
deleted file mode 100644
index d6330b386f29..000000000000
--- a/code/modules/antagonists/cult/cult.dm
+++ /dev/null
@@ -1,397 +0,0 @@
-#define SUMMON_POSSIBILITIES 3
-#define CULT_VICTORY 1
-#define CULT_LOSS 0
-#define CULT_NARSIE_KILLED -1
-
-/datum/antagonist/cult
- name = "Cultist"
- roundend_category = "cultists"
- antagpanel_category = "Cult"
- antag_moodlet = /datum/mood_event/cult
- var/datum/action/innate/cult/comm/communion = new
- var/datum/action/innate/cult/mastervote/vote = new
- var/datum/action/innate/cult/blood_magic/magic = new
- job_rank = ROLE_CULTIST
- antag_hud_type = ANTAG_HUD_CULT
- antag_hud_name = "cult"
- var/ignore_implant = FALSE
- var/give_equipment = FALSE
- var/datum/team/cult/cult_team
-
-
-/datum/antagonist/cult/get_team()
- return cult_team
-
-/datum/antagonist/cult/create_team(datum/team/cult/new_team)
- if(!new_team)
- //todo remove this and allow admin buttons to create more than one cult
- for(var/datum/antagonist/cult/H in GLOB.antagonists)
- if(!H.owner)
- continue
- if(H.cult_team)
- cult_team = H.cult_team
- return
- cult_team = new /datum/team/cult
- cult_team.setup_objectives()
- return
- if(!istype(new_team))
- stack_trace("Wrong team type passed to [type] initialization.")
- cult_team = new_team
-
-/datum/antagonist/cult/proc/add_objectives()
- objectives |= cult_team.objectives
-
-/datum/antagonist/cult/Destroy()
- QDEL_NULL(communion)
- QDEL_NULL(vote)
- return ..()
-
-/datum/antagonist/cult/can_be_owned(datum/mind/new_owner)
- . = ..()
- if(. && !ignore_implant)
- . = is_convertable_to_cult(new_owner.current,cult_team)
-
-/datum/antagonist/cult/greet()
- to_chat(owner, "You are a member of the cult!")
- owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/bloodcult.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)//subject to change
- owner.announce_objectives()
-
-/datum/antagonist/cult/on_gain()
- . = ..()
- var/mob/living/current = owner.current
- add_objectives()
- if(give_equipment)
- equip_cultist()
- SSticker.mode.cult += owner // Only add after they've been given objectives
- current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
-
- if(cult_team.blood_target && cult_team.blood_target_image && current.client)
- current.client.images += cult_team.blood_target_image
-
-
-/datum/antagonist/cult/proc/equip_cultist()
- var/mob/living/carbon/H = owner.current
- if(!istype(H))
- return
- to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.")
-
-
-/datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob)
- var/list/slots = list(
- "backpack" = ITEM_SLOT_BACKPACK,
- "left pocket" = ITEM_SLOT_LPOCKET,
- "right pocket" = ITEM_SLOT_RPOCKET
- )
-
- var/T = new item_path(mob)
- var/item_name = initial(item_path.name)
- var/where = mob.equip_in_one_of_slots(T, slots)
- if(!where)
- to_chat(mob, "Unfortunately, you weren't able to get a [item_name]. This is very bad and you should adminhelp immediately (press F1).")
- return 0
- else
- to_chat(mob, "You have a [item_name] in your [where].")
- if(where == "backpack")
- SEND_SIGNAL(mob.back, COMSIG_TRY_STORAGE_SHOW, mob)
- return TRUE
-
-/datum/antagonist/cult/apply_innate_effects(mob/living/mob_override)
- . = ..()
- var/mob/living/current = owner.current
- if(mob_override)
- current = mob_override
- add_antag_hud(antag_hud_type, antag_hud_name, current)
- handle_clown_mutation(current, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
- current.faction |= "cult"
- current.grant_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST)
- if(!cult_team.cult_master)
- vote.Grant(current)
- communion.Grant(current)
- if(ishuman(current))
- magic.Grant(current)
- current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense)
- if(cult_team.cult_risen)
- cult_team.rise(current)
- if(cult_team.cult_ascendent)
- cult_team.ascend(current)
-
-/datum/antagonist/cult/remove_innate_effects(mob/living/mob_override)
- . = ..()
- var/mob/living/current = owner.current
- if(mob_override)
- current = mob_override
- remove_antag_hud(antag_hud_type, current)
- handle_clown_mutation(current, removing = FALSE)
- current.faction -= "cult"
- current.remove_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST)
- vote.Remove(current)
- communion.Remove(current)
- magic.Remove(current)
- current.clear_alert("bloodsense")
- if(ishuman(current))
- var/mob/living/carbon/human/H = current
- H.eye_color = initial(H.eye_color)
- H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
- REMOVE_TRAIT(H, CULT_EYES, null)
- H.remove_overlay(HALO_LAYER)
- H.update_body()
-
-/datum/antagonist/cult/on_removal()
- SSticker.mode.cult -= owner
- if(!silent)
- owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!", null, null, null, owner.current)
- to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.")
- owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000")
- if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client)
- owner.current.client.images -= cult_team.blood_target_image
- . = ..()
-
-/datum/antagonist/cult/admin_add(datum/mind/new_owner,mob/admin)
- give_equipment = FALSE
- new_owner.add_antag_datum(src)
- message_admins("[key_name_admin(admin)] has cult'ed [key_name_admin(new_owner)].")
- log_admin("[key_name(admin)] has cult'ed [key_name(new_owner)].")
-
-/datum/antagonist/cult/admin_remove(mob/user)
- message_admins("[key_name_admin(user)] has decult'ed [key_name_admin(owner)].")
- log_admin("[key_name(user)] has decult'ed [key_name(owner)].")
- SSticker.mode.remove_cultist(owner,silent=TRUE) //disgusting
-
-/datum/antagonist/cult/get_admin_commands()
- . = ..()
- .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger))
- .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all))
-
-/datum/antagonist/cult/proc/admin_give_dagger(mob/admin)
- if(!equip_cultist())
- to_chat(admin, "Spawning dagger failed!")
-
-/datum/antagonist/cult/proc/admin_take_all(mob/admin)
- return
-
-/datum/antagonist/cult/master
- ignore_implant = TRUE
- show_in_antagpanel = FALSE //Feel free to add this later
- var/datum/action/innate/cult/master/finalreck/reckoning = new
- var/datum/action/innate/cult/master/cultmark/bloodmark = new
- var/datum/action/innate/cult/master/pulse/throwing = new
-
-/datum/antagonist/cult/master/Destroy()
- QDEL_NULL(reckoning)
- QDEL_NULL(bloodmark)
- QDEL_NULL(throwing)
- return ..()
-
-/datum/antagonist/cult/master/on_gain()
- . = ..()
- var/mob/living/current = owner.current
- set_antag_hud(current, "cultmaster")
-
-/datum/antagonist/cult/master/greet()
- to_chat(owner.current, "You are the cult's Master. As the cult's Master, you have a unique title and loud voice when communicating, are capable of marking \
- targets, such as a location or a noncultist, to direct the cult to them, and, finally, you are capable of summoning the entire living cult to your location once.")
- to_chat(owner.current, "Use these abilities to direct the cult to victory at any cost.")
-
-/datum/antagonist/cult/master/apply_innate_effects(mob/living/mob_override)
- . = ..()
- var/mob/living/current = owner.current
- if(mob_override)
- current = mob_override
- if(!cult_team.reckoning_complete)
- reckoning.Grant(current)
- bloodmark.Grant(current)
- throwing.Grant(current)
- current.update_action_buttons_icon()
- current.apply_status_effect(/datum/status_effect/cult_master)
- if(cult_team.cult_risen)
- cult_team.rise(current)
- if(cult_team.cult_ascendent)
- cult_team.ascend(current)
-
-/datum/antagonist/cult/master/remove_innate_effects(mob/living/mob_override)
- . = ..()
- var/mob/living/current = owner.current
- if(mob_override)
- current = mob_override
- reckoning.Remove(current)
- bloodmark.Remove(current)
- throwing.Remove(current)
- current.update_action_buttons_icon()
- current.remove_status_effect(/datum/status_effect/cult_master)
-
- if(ishuman(current))
- var/mob/living/carbon/human/H = current
- H.eye_color = initial(H.eye_color)
- H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
- REMOVE_TRAIT(H, CULT_EYES, null)
- H.remove_overlay(HALO_LAYER)
- H.update_body()
-
-/datum/team/cult
- name = "Cult"
-
- var/blood_target
- var/image/blood_target_image
- var/blood_target_reset_timer
-
- var/cult_vote_called = FALSE
- var/mob/living/cult_master
- var/reckoning_complete = FALSE
- var/cult_risen = FALSE
- var/cult_ascendent = FALSE
-
-/datum/team/cult/proc/check_size()
- if(cult_ascendent)
- return
- var/alive = 0
- var/cultplayers = 0
- for(var/I in GLOB.player_list)
- var/mob/M = I
- if(M.stat != DEAD)
- if(iscultist(M))
- ++cultplayers
- else
- ++alive
- var/ratio = cultplayers/alive
- if(ratio > CULT_RISEN && !cult_risen)
- for(var/datum/mind/B in members)
- if(B.current)
- SEND_SOUND(B.current, 'sound/hallucinations/i_see_you2.ogg')
- to_chat(B.current, "The veil weakens as your cult grows, your eyes begin to glow...")
- addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200)
- cult_risen = TRUE
-
- if(ratio > CULT_ASCENDENT && !cult_ascendent)
- for(var/datum/mind/B in members)
- if(B.current)
- SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg')
- to_chat(B.current, "Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!")
- addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200)
- cult_ascendent = TRUE
-
-
-/datum/team/cult/proc/rise(cultist)
- if(ishuman(cultist))
- var/mob/living/carbon/human/H = cultist
- H.eye_color = "f00"
- H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
- ADD_TRAIT(H, CULT_EYES, CULT_TRAIT)
- H.update_body()
-
-/datum/team/cult/proc/ascend(cultist)
- if(ishuman(cultist))
- var/mob/living/carbon/human/H = cultist
- new /obj/effect/temp_visual/cult/sparks(get_turf(H), H.dir)
- var/istate = pick("halo1","halo2","halo3","halo4","halo5","halo6")
- var/mutable_appearance/new_halo_overlay = mutable_appearance('icons/effects/32x64.dmi', istate, -HALO_LAYER)
- H.overlays_standing[HALO_LAYER] = new_halo_overlay
- H.apply_overlay(HALO_LAYER)
-
-/datum/objective/sacrifice/find_target(dupe_search_range)
- if(!istype(team, /datum/team/cult))
- return
- var/datum/team/cult/C = team
- var/list/target_candidates = list()
- for(var/mob/living/carbon/human/player in GLOB.player_list)
- if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD)
- target_candidates += player.mind
- if(target_candidates.len == 0)
- message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.")
- for(var/mob/living/carbon/human/player in GLOB.player_list)
- if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD)
- target_candidates += player.mind
- listclearnulls(target_candidates)
- if(LAZYLEN(target_candidates))
- target = pick(target_candidates)
- update_explanation_text()
- else
- message_admins("Cult Sacrifice: Could not find unconvertible or convertible target. WELP!")
- for(var/datum/mind/M in C.members)
- if(M.current)
- M.current.clear_alert("bloodsense")
- M.current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense)
-
-/datum/team/cult/proc/setup_objectives()
- var/datum/objective/sacrifice/sac_objective = new
- sac_objective.team = src
- sac_objective.find_target()
- objectives += sac_objective
-
- var/datum/objective/eldergod/summon_objective = new
- summon_objective.team = src
- objectives += summon_objective
-
-
-/datum/objective/sacrifice
- var/sacced = FALSE
- var/sac_image
-
-/datum/objective/sacrifice/check_completion()
- return sacced || completed
-
-/datum/objective/sacrifice/update_explanation_text()
- if(target)
- explanation_text = "Sacrifice [target], the [target.assigned_role] via invoking an Offer rune with [target.p_them()] on it and three acolytes around it."
- else
- explanation_text = "The veil has already been weakened here, proceed to the final objective."
-
-/datum/objective/eldergod
- var/summoned = FALSE
- var/killed = FALSE
- var/list/summon_spots = list()
-
-/datum/objective/eldergod/New()
- ..()
- var/sanity = 0
- while(summon_spots.len < SUMMON_POSSIBILITIES && sanity < 100)
- var/area/summon_area = pick(GLOB.sortedAreas - summon_spots)
- if(summon_area && (summon_area.area_flags & VALID_TERRITORY))
- summon_spots += summon_area
- sanity++
- update_explanation_text()
-
-/datum/objective/eldergod/update_explanation_text()
- explanation_text = "Summon Nar'Sie by invoking the rune 'Summon Nar'Sie'. The summoning can only be accomplished in [english_list(summon_spots)] - where the veil is weak enough for the ritual to begin."
-
-/datum/objective/eldergod/check_completion()
- if(killed)
- return CULT_NARSIE_KILLED // You failed so hard that even the code went backwards.
- return summoned || completed
-
-/datum/team/cult/proc/check_cult_victory()
- for(var/datum/objective/O in objectives)
- if(O.check_completion() == CULT_NARSIE_KILLED)
- return CULT_NARSIE_KILLED
- else if(!O.check_completion())
- return CULT_LOSS
- return CULT_VICTORY
-
-/datum/team/cult/roundend_report()
- var/list/parts = list()
- var/victory = check_cult_victory()
-
- if(victory == CULT_NARSIE_KILLED) // Epic failure, you summoned your god and then someone killed it.
- parts += "Nar'sie has been killed! The cult will haunt the universe no longer!"
- else if(victory)
- parts += "The cult has succeeded! Nar'Sie has snuffed out another torch in the void!"
- else
- parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!"
-
- if(objectives.len)
- parts += "The cultists' objectives were:"
- var/count = 1
- for(var/datum/objective/objective in objectives)
- if(objective.check_completion())
- parts += "Objective #[count]: [objective.explanation_text] Success!"
- else
- parts += "Objective #[count]: [objective.explanation_text] Fail."
- count++
-
- if(members.len)
- parts += ""
- parts += printplayerlist(members)
-
- return "[parts.Join("
")]
"
-
-/datum/team/cult/is_gamemode_hero()
- return SSticker.mode.name == "cult"
diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm
deleted file mode 100644
index 0c070e8e423f..000000000000
--- a/code/modules/antagonists/cult/cult_comms.dm
+++ /dev/null
@@ -1,461 +0,0 @@
-// Contains cult communion, guide, and cult master abilities
-
-/datum/action/innate/cult
- icon_icon = 'icons/mob/actions/actions_cult.dmi'
- background_icon_state = "bg_demon"
- buttontooltipstyle = "cult"
- check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS
-
-/datum/action/innate/cult/IsAvailable()
- if(!iscultist(owner))
- return FALSE
- return ..()
-
-/datum/action/innate/cult/comm
- name = "Communion"
- desc = "Whispered words that all cultists can hear.
Warning:Nearby non-cultists can still hear you."
- button_icon_state = "cult_comms"
-
-/datum/action/innate/cult/comm/Activate()
- var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "")
- if(!input || !IsAvailable())
- return
- if(CHAT_FILTER_CHECK(input))
- to_chat(usr, "You cannot send a message that contains a word prohibited in IC chat!")
- return
- cultist_commune(usr, input)
-
-/datum/action/innate/cult/comm/proc/cultist_commune(mob/living/user, message)
- var/my_message
- if(!message)
- return
- user.whisper("O bidai nabora se[pick("'","`")]sma!", language = /datum/language/common)
- user.whisper(html_decode(message))
- var/title = "Acolyte"
- var/span = "cult italic"
- if(user.mind && user.mind.has_antag_datum(/datum/antagonist/cult/master))
- span = "cultlarge"
- title = "Master"
- else if(!ishuman(user))
- title = "Construct"
- my_message = "[title] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]"
- for(var/i in GLOB.player_list)
- var/mob/M = i
- if(iscultist(M))
- to_chat(M, my_message)
- else if(M in GLOB.dead_mob_list)
- var/link = FOLLOW_LINK(M, user)
- to_chat(M, "[link] [my_message]")
-
- user.log_talk(message, LOG_SAY, tag="cult")
-
-/datum/action/innate/cult/comm/spirit
- name = "Spiritual Communion"
- desc = "Conveys a message from the spirit realm that all cultists can hear."
-
-/datum/action/innate/cult/comm/spirit/IsAvailable()
- if(iscultist(owner.mind.current))
- return TRUE
-
-/datum/action/innate/cult/comm/spirit/cultist_commune(mob/living/user, message)
- var/my_message
- if(!message)
- return
- my_message = "The [user.name]: [message]"
- for(var/i in GLOB.player_list)
- var/mob/M = i
- if(iscultist(M))
- to_chat(M, my_message)
- else if(M in GLOB.dead_mob_list)
- var/link = FOLLOW_LINK(M, user)
- to_chat(M, "[link] [my_message]")
-
-/datum/action/innate/cult/mastervote
- name = "Assert Leadership"
- button_icon_state = "cultvote"
-
-/datum/action/innate/cult/mastervote/IsAvailable()
- var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(!C || C.cult_team.cult_vote_called || !ishuman(owner))
- return FALSE
- return ..()
-
-/datum/action/innate/cult/mastervote/Activate()
- var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No")
- if(choice == "Yes" && IsAvailable())
- var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- pollCultists(owner,C.cult_team)
-
-/proc/pollCultists(mob/living/Nominee,datum/team/cult/team) //Cult Master Poll
- if(world.time < CULT_POLL_WAIT)
- to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].")
- return
- team.cult_vote_called = TRUE //somebody's trying to be a master, make sure we don't let anyone else try
- for(var/datum/mind/B in team.members)
- if(B.current)
- B.current.update_action_buttons_icon()
- if(!B.current.incapacitated())
- SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg')
- to_chat(B.current, "Acolyte [Nominee] has asserted that [Nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly.")
- sleep(100)
- var/list/asked_cultists = list()
- for(var/datum/mind/B in team.members)
- if(B.current && B.current != Nominee && !B.current.incapacitated())
- SEND_SOUND(B.current, 'sound/magic/exit_blood.ogg')
- asked_cultists += B.current
- var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 300, group = asked_cultists)
- if(QDELETED(Nominee) || Nominee.incapacitated())
- team.cult_vote_called = FALSE
- for(var/datum/mind/B in team.members)
- if(B.current)
- B.current.update_action_buttons_icon()
- if(!B.current.incapacitated())
- to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!")
- return FALSE
- if(!Nominee.mind)
- team.cult_vote_called = FALSE
- for(var/datum/mind/B in team.members)
- if(B.current)
- B.current.update_action_buttons_icon()
- if(!B.current.incapacitated())
- to_chat(B.current,"[Nominee] has gone catatonic in the process of attempting to win the cult's support!")
- return FALSE
- if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5)
- team.cult_vote_called = FALSE
- for(var/datum/mind/B in team.members)
- if(B.current)
- B.current.update_action_buttons_icon()
- if(!B.current.incapacitated())
- to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.")
- return FALSE
- team.cult_master = Nominee
- SSticker.mode.remove_cultist(Nominee.mind, TRUE)
- Nominee.mind.add_antag_datum(/datum/antagonist/cult/master)
- for(var/datum/mind/B in team.members)
- if(B.current)
- for(var/datum/action/innate/cult/mastervote/vote in B.current.actions)
- vote.Remove(B.current)
- if(!B.current.incapacitated())
- to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!")
- return TRUE
-
-/datum/action/innate/cult/master/IsAvailable()
- if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie)
- return 0
- return ..()
-
-/datum/action/innate/cult/master/finalreck
- name = "Final Reckoning"
- desc = "A single-use spell that brings the entire cult to the master's location."
- button_icon_state = "sintouch"
-
-/datum/action/innate/cult/master/finalreck/Activate()
- var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(!antag)
- return
- for(var/i in 1 to 4)
- chant(i)
- var/list/destinations = list()
- for(var/turf/T in orange(1, owner))
- if(!T.is_blocked_turf(TRUE))
- destinations += T
- if(!LAZYLEN(destinations))
- to_chat(owner, "You need more space to summon your cult!")
- return
- if(do_after(owner, 30, target = owner))
- for(var/datum/mind/B in antag.cult_team.members)
- if(B.current && B.current.stat != DEAD)
- var/turf/mobloc = get_turf(B.current)
- switch(i)
- if(1)
- new /obj/effect/temp_visual/cult/sparks(mobloc, B.current.dir)
- playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- if(2)
- new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, B.current.dir)
- playsound(mobloc, "sparks", 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- if(3)
- new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir)
- playsound(mobloc, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- if(4)
- playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE)
- if(B.current != owner)
- var/turf/final = pick(destinations)
- if(istype(B.current.loc, /obj/item/soulstone))
- var/obj/item/soulstone/S = B.current.loc
- S.release_shades(owner)
- B.current.setDir(SOUTH)
- new /obj/effect/temp_visual/cult/blood(final)
- addtimer(CALLBACK(B.current, TYPE_PROC_REF(/mob, reckon), final), 10)
- else
- return
- antag.cult_team.reckoning_complete = TRUE
- Remove(owner)
-
-/mob/proc/reckon(turf/final)
- new /obj/effect/temp_visual/cult/blood/out(get_turf(src))
- forceMove(final)
-
-/datum/action/innate/cult/master/finalreck/proc/chant(chant_number)
- switch(chant_number)
- if(1)
- owner.say("C'arta forbici!", language = /datum/language/common, forced = "cult invocation")
- if(2)
- owner.say("Pleggh e'ntrath!", language = /datum/language/common, forced = "cult invocation")
- playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE)
- if(3)
- owner.say("Barhah hra zar'garis!", language = /datum/language/common, forced = "cult invocation")
- playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 75, TRUE)
- if(4)
- owner.say("N'ath reth sh'yro eth d'rekkathnor!!!", language = /datum/language/common, forced = "cult invocation")
- playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 100, TRUE)
-
-/datum/action/innate/cult/master/cultmark
- name = "Mark Target"
- desc = "Marks a target for the cult."
- button_icon_state = "cult_mark"
- var/obj/effect/proc_holder/cultmark/CM
- var/cooldown = 0
- var/base_cooldown = 1200
-
-/datum/action/innate/cult/master/cultmark/New(Target)
- CM = new()
- CM.attached_action = src
- ..()
-
-/datum/action/innate/cult/master/cultmark/IsAvailable()
- if(cooldown > world.time)
- if(!CM.active)
- to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!")
- return FALSE
- return ..()
-
-/datum/action/innate/cult/master/cultmark/Destroy()
- QDEL_NULL(CM)
- return ..()
-
-/datum/action/innate/cult/master/cultmark/Activate()
- CM.toggle(owner) //the important bit
- return TRUE
-
-/obj/effect/proc_holder/cultmark
- active = FALSE
- ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi'
- var/datum/action/innate/cult/master/cultmark/attached_action
-
-/obj/effect/proc_holder/cultmark/Destroy()
- attached_action = null
- return ..()
-
-/obj/effect/proc_holder/cultmark/proc/toggle(mob/user)
- if(active)
- remove_ranged_ability("You cease the marking ritual.")
- else
- add_ranged_ability(user, "You prepare to mark a target for your cult...")
-
-/obj/effect/proc_holder/cultmark/InterceptClickOn(mob/living/caller, params, atom/target)
- if(..())
- return
- if(ranged_ability_user.incapacitated())
- remove_ranged_ability()
- return
- var/turf/T = get_turf(ranged_ability_user)
- if(!isturf(T))
- return FALSE
-
- var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
-
- if(target in view(7, get_turf(ranged_ability_user)))
- if(C.cult_team.blood_target)
- to_chat(ranged_ability_user, "The cult has already designated a target!")
- return FALSE
- C.cult_team.blood_target = target
- var/area/A = get_area(target)
- attached_action.cooldown = world.time + attached_action.base_cooldown
- addtimer(CALLBACK(attached_action.owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown)
- C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER)
- C.cult_team.blood_target_image.appearance_flags = RESET_COLOR
- C.cult_team.blood_target_image.pixel_x = -target.pixel_x
- C.cult_team.blood_target_image.pixel_y = -target.pixel_y
- for(var/datum/mind/B in SSticker.mode.cult)
- if(B.current && B.current.stat != DEAD && B.current.client)
- to_chat(B.current, "[ranged_ability_user] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!")
- SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75))
- B.current.client.images += C.cult_team.blood_target_image
- attached_action.owner.update_action_buttons_icon()
- remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.")
- C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE)
- return TRUE
- return FALSE
-
-/proc/reset_blood_target(datum/team/cult/team)
- for(var/datum/mind/B in team.members)
- if(B.current && B.current.stat != DEAD && B.current.client)
- if(team.blood_target)
- to_chat(B.current,"The blood mark has expired!")
- B.current.client.images -= team.blood_target_image
- QDEL_NULL(team.blood_target_image)
- team.blood_target = null
-
-
-/datum/action/innate/cult/master/cultmark/ghost
- name = "Mark a Blood Target for the Cult"
- desc = "Marks a target for the entire cult to track."
-
-/datum/action/innate/cult/master/cultmark/ghost/IsAvailable()
- if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current))
- return TRUE
- else
- qdel(src)
-
-/datum/action/innate/cult/ghostmark //Ghost version
- name = "Blood Mark your Target"
- desc = "Marks whatever you are orbitting - for the entire cult to track."
- button_icon_state = "cult_mark"
- var/tracking = FALSE
- var/cooldown = 0
- var/base_cooldown = 600
-
-/datum/action/innate/cult/ghostmark/IsAvailable()
- if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current))
- return TRUE
- else
- qdel(src)
-
-/datum/action/innate/cult/ghostmark/proc/reset_button()
- if(owner)
- name = "Blood Mark your Target"
- desc = "Marks whatever you are orbitting - for the entire cult to track."
- button_icon_state = "cult_mark"
- owner.update_action_buttons_icon()
- SEND_SOUND(owner, 'sound/magic/enter_blood.ogg')
- to_chat(owner,"Your previous mark is gone - you are now ready to create a new blood mark.")
-
-/datum/action/innate/cult/ghostmark/Activate()
- var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(C.cult_team.blood_target)
- if(cooldown>world.time)
- reset_blood_target(C.cult_team)
- to_chat(owner, "You have cleared the cult's blood target!")
- deltimer(C.cult_team.blood_target_reset_timer)
- return
- else
- to_chat(owner, "The cult has already designated a target!")
- return
- if(cooldown>world.time)
- to_chat(owner, "You aren't ready to place another blood mark yet!")
- return
- target = owner.orbiting?.parent || get_turf(owner)
- if(!target)
- return
- C.cult_team.blood_target = target
- var/area/A = get_area(target)
- cooldown = world.time + base_cooldown
- addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown)
- C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER)
- C.cult_team.blood_target_image.appearance_flags = RESET_COLOR
- C.cult_team.blood_target_image.pixel_x = -target.pixel_x
- C.cult_team.blood_target_image.pixel_y = -target.pixel_y
- SEND_SOUND(owner, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75))
- owner.client.images += C.cult_team.blood_target_image
- for(var/datum/mind/B in SSticker.mode.cult)
- if(B.current && B.current.stat != DEAD && B.current.client)
- to_chat(B.current, "[owner] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!")
- SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75))
- B.current.client.images += C.cult_team.blood_target_image
- to_chat(owner,"You have marked the [target] for the cult! It will last for [DisplayTimeText(base_cooldown)].")
- name = "Clear the Blood Mark"
- desc = "Remove the Blood Mark you previously set."
- button_icon_state = "emp"
- owner.update_action_buttons_icon()
- C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE)
- addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown)
-
-
-//////// ELDRITCH PULSE /////////
-
-
-
-/datum/action/innate/cult/master/pulse
- name = "Eldritch Pulse"
- desc = "Seize upon a fellow cultist or cult structure and teleport it to a nearby location."
- icon_icon = 'icons/mob/actions/actions_spells.dmi'
- button_icon_state = "arcane_barrage"
- var/obj/effect/proc_holder/pulse/PM
- var/cooldown = 0
- var/base_cooldown = 150
- var/throwing = FALSE
- var/mob/living/throwee
-
-/datum/action/innate/cult/master/pulse/New()
- PM = new()
- PM.attached_action = src
- ..()
-
-/datum/action/innate/cult/master/pulse/IsAvailable()
- if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master))
- return FALSE
- if(cooldown > world.time)
- if(!PM.active)
- to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!")
- return FALSE
- return ..()
-
-/datum/action/innate/cult/master/pulse/Destroy()
- PM.attached_action = null //What the fuck is even going on here.
- QDEL_NULL(PM)
- return ..()
-
-
-/datum/action/innate/cult/master/pulse/Activate()
- PM.toggle(owner) //the important bit
- return TRUE
-
-/obj/effect/proc_holder/pulse
- active = FALSE
- ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi'
- var/datum/action/innate/cult/master/pulse/attached_action
-
-/obj/effect/proc_holder/pulse/Destroy()
- attached_action = null
- return ..()
-
-
-/obj/effect/proc_holder/pulse/proc/toggle(mob/user)
- if(active)
- remove_ranged_ability("You cease your preparations...")
- attached_action.throwing = FALSE
- else
- add_ranged_ability(user, "You prepare to tear through the fabric of reality...")
-
-/obj/effect/proc_holder/pulse/InterceptClickOn(mob/living/caller, params, atom/target)
- if(..())
- return
- if(ranged_ability_user.incapacitated())
- remove_ranged_ability()
- return
- var/turf/T = get_turf(ranged_ability_user)
- if(!isturf(T))
- return FALSE
- if(target in view(7, get_turf(ranged_ability_user)))
- if((!(iscultist(target) || istype(target, /obj/structure/destructible/cult)) || target == caller) && !(attached_action.throwing))
- return
- if(!attached_action.throwing)
- attached_action.throwing = TRUE
- attached_action.throwee = target
- SEND_SOUND(ranged_ability_user, sound('sound/weapons/thudswoosh.ogg'))
- to_chat(ranged_ability_user,"You reach through the veil with your mind's eye and seize [target]!")
- return
- else
- new /obj/effect/temp_visual/cult/sparks(get_turf(attached_action.throwee), ranged_ability_user.dir)
- var/distance = get_dist(attached_action.throwee, target)
- if(distance >= 16)
- return
- playsound(target,'sound/magic/exit_blood.ogg')
- attached_action.throwee.Beam(target,icon_state="sendbeam",time=4)
- attached_action.throwee.forceMove(get_turf(target))
- new /obj/effect/temp_visual/cult/sparks(get_turf(target), ranged_ability_user.dir)
- attached_action.throwing = FALSE
- attached_action.cooldown = world.time + attached_action.base_cooldown
- remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.")
- caller.update_action_buttons_icon()
- addtimer(CALLBACK(caller, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown)
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
deleted file mode 100644
index 5dce420df1cf..000000000000
--- a/code/modules/antagonists/cult/cult_items.dm
+++ /dev/null
@@ -1,524 +0,0 @@
-/obj/item/tome
- name = "arcane tome"
- desc = "An old, dusty tome with frayed edges and a sinister-looking cover."
- icon_state ="tome"
- throw_speed = 2
- throw_range = 5
- w_class = WEIGHT_CLASS_SMALL
-
-/datum/action/innate/dash/cult
- name = "Rend the Veil"
- desc = "Use the sword to shear open the flimsy fabric of this reality and teleport to your target."
- icon_icon = 'icons/mob/actions/actions_cult.dmi'
- button_icon_state = "phaseshift"
- dash_sound = 'sound/magic/enter_blood.ogg'
- recharge_sound = 'sound/magic/exit_blood.ogg'
- beam_effect = "sendbeam"
- phasein = /obj/effect/temp_visual/dir_setting/cult/phase
- phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out
-
-/datum/action/innate/dash/cult/IsAvailable()
- if(iscultist(owner) && current_charges)
- return TRUE
- else
- return FALSE
-
-/obj/item/restraints/legcuffs/bola/cult
- name = "\improper Nar'Sien bola"
- desc = "A strong bola, bound with dark magic that allows it to pass harmlessly through Nar'Sien cultists. Throw it to trip and slow your victim."
- icon_state = "bola_cult"
- item_state = "bola_cult"
- breakouttime = 60
- knockdown = 30
-
-/obj/item/restraints/legcuffs/bola/cult/attack_hand(mob/living/user)
- . = ..()
- if(!iscultist(user))
- to_chat(user, "The bola seems to take on a life of its own!")
- ensnare(user)
-
-/obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- if(iscultist(hit_atom))
- return
- . = ..()
-
-/obj/item/clothing/head/hooded/cult_hoodie
- name = "ancient cultist hood"
- icon_state = "culthood"
- desc = "A torn, dust-caked hood. Strange letters line the inside."
- flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS
- flags_cover = HEADCOVERSEYES
- armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
- cold_protection = HEAD
- min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
- heat_protection = HEAD
- max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
-
-/obj/item/clothing/suit/hooded/cultrobes
- name = "ancient cultist robes"
- desc = "A ragged, dusty set of robes. Strange letters line the inside."
- icon_state = "cultrobes"
- item_state = "cultrobes"
- body_parts_covered = CHEST|GROIN|LEGS|ARMS
- allowed = list(/obj/item/tome, /obj/item/tank)
- armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10)
- flags_inv = HIDEJUMPSUIT
- cold_protection = CHEST|GROIN|LEGS|ARMS
- min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
- heat_protection = CHEST|GROIN|LEGS|ARMS
- max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
- hoodtype = /obj/item/clothing/head/hooded/cult_hoodie
-
-
-/obj/item/clothing/head/hooded/cult_hoodie/alt
- name = "cultist hood"
- desc = "An armored hood worn by the followers of Nar'Sie."
- icon_state = "cult_hoodalt"
- item_state = "cult_hoodalt"
-
-/obj/item/clothing/suit/hooded/cultrobes/alt
- name = "cultist robes"
- desc = "An armored set of robes worn by the followers of Nar'Sie."
- icon_state = "cultrobesalt"
- item_state = "cultrobesalt"
- hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/alt
-
-/obj/item/clothing/suit/hooded/cultrobes/alt/ghost
- item_flags = DROPDEL
-
-/obj/item/clothing/suit/hooded/cultrobes/alt/ghost/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
-
-/obj/item/clothing/head/helmet/space/hardsuit/cult
- name = "\improper Nar'Sien hardened helmet"
- desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum."
- icon_state = "cult_helmet"
- item_state = "cult_helmet"
- armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75)
- light_system = NO_LIGHT_SUPPORT
- light_range = 0
- actions_types = list()
-
-/obj/item/clothing/suit/space/hardsuit/cult
- name = "\improper Nar'Sien hardened armor"
- icon_state = "cult_armor"
- item_state = "cult_armor"
- desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum."
- w_class = WEIGHT_CLASS_BULKY
- allowed = list(/obj/item/tome, /obj/item/tank/internals/)
- armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult
-
-/obj/item/sharpener/cult
- name = "eldritch whetstone"
- desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone."
- icon_state = "cult_sharpener"
- used = 0
- increment = 5
- max = 40
- prefix = "darkened"
-
-/obj/item/sharpener/cult/update_icon_state()
- icon_state = "cult_sharpener[used ? "_used" : ""]"
- return ..()
-
-/obj/item/clothing/suit/hooded/cultrobes/cult_shield
- name = "empowered cultist armor"
- desc = "Empowered armor which creates a powerful shield around the user."
- icon_state = "cult_armor"
- item_state = "cult_armor"
- w_class = WEIGHT_CLASS_BULKY
- armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60)
- var/current_charges = 3
- hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/cult_shield
-
-/obj/item/clothing/head/hooded/cult_hoodie/cult_shield
- name = "empowered cultist helmet"
- desc = "Empowered helmet which creates a powerful shield around the user."
- icon_state = "cult_hoodalt"
- armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60)
-
-/obj/item/clothing/suit/hooded/cultrobes/cult_shield/equipped(mob/living/user, slot)
- ..()
- if(!iscultist(user))
- to_chat(user, "\"I wouldn't advise that.\"")
- to_chat(user, "An overwhelming sense of nausea overpowers you!")
- user.dropItemToGround(src, TRUE)
- user.Dizzy(30)
- user.Paralyze(100)
-
-/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- if(current_charges)
- owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!")
- current_charges--
- new /obj/effect/temp_visual/cult/sparks(get_turf(owner))
- if(!current_charges)
- owner.visible_message("The runed shield around [owner] suddenly disappears!")
- owner.update_inv_wear_suit()
- return 1
- return 0
-
-/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands)
- . = ..()
- if(!isinhands && current_charges)
- . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01)
-
-/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."
- allowed = list(/obj/item/tome)
- armor = list("melee" = -45, "bullet" = -45, "laser" = -45,"energy" = -55, "bomb" = -45, "bio" = -45, "rad" = -45, "fire" = 0, "acid" = 0)
- slowdown = -0.6
- hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
-
-/obj/item/clothing/head/hooded/cult_hoodie/berserkerhood
- name = "flagellant's hood"
- desc = "Blood-soaked hood infused with dark magic."
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
-
-/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot)
- ..()
- if(!iscultist(user))
- to_chat(user, "\"I wouldn't advise that.\"")
- to_chat(user, "An overwhelming sense of nausea overpowers you!")
- user.dropItemToGround(src, TRUE)
- user.Dizzy(30)
- user.Paralyze(100)
-
-/obj/item/clothing/glasses/hud/health/night/cultblind
- desc = "may Nar'Sie guide you through the darkness and shield you from the light."
- name = "zealot's blindfold"
- icon_state = "blindfold"
- item_state = "blindfold"
- flash_protect = FLASH_PROTECTION_FLASH
-
-/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot)
- ..()
- if(prob(30))
- to_chat(user, "\"You want to be blind, do you?\"")
- user.dropItemToGround(src, TRUE)
- user.Dizzy(30)
- user.Paralyze(100)
- user.blind_eyes(30)
- else
- return
-
-/obj/item/reagent_containers/glass/beaker/unholywater
- name = "flask of unholy water"
- desc = "Toxic to nonbelievers; reinvigorating to the faithful - this flask may be sipped or thrown."
- icon = 'icons/obj/drinks/drinks.dmi'
- icon_state = "holyflask"
- color = "#333333"
- list_reagents = list(/datum/reagent/fuel/unholywater = 50)
- can_have_cap = FALSE
- cap_icon_state = null
- cap_on = FALSE
-
-/obj/item/cult_shift
- name = "veil shifter"
- desc = "This relic instantly teleports you, and anything you're pulling, forward by a moderate distance."
- icon = 'icons/obj/cult.dmi'
- icon_state ="shifter"
- var/uses = 4
-
-/obj/item/cult_shift/examine(mob/user)
- . = ..()
- if(uses)
- . += "It has [uses] use\s remaining."
- else
- . += "It seems drained."
-
-/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user)
- var/mob/living/carbon/C = user
- if(C.pulling)
- var/atom/movable/pulled = C.pulling
- do_teleport(pulled, T, channel = TELEPORT_CHANNEL_CULT)
- . = pulled
-
-/obj/item/cult_shift/attack_self(mob/user)
- if(!uses || !iscarbon(user))
- to_chat(user, "\The [src] is dull and unmoving in your hands.")
- return
-
- var/mob/living/carbon/C = user
- var/turf/mobloc = get_turf(C)
- var/turf/destination = get_teleport_loc(mobloc,C,9,1,3,1,0,1)
-
- if(destination)
- uses--
- if(uses <= 0)
- icon_state ="shifter_drained"
- playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, C.dir)
-
- var/atom/movable/pulled = handle_teleport_grab(destination, C)
- if(do_teleport(C, destination, channel = TELEPORT_CHANNEL_CULT))
- if(pulled)
- C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull
- new /obj/effect/temp_visual/dir_setting/cult/phase(destination, C.dir)
- playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- playsound(destination, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
-
- else
- to_chat(C, "The veil cannot be torn here!")
-
-/obj/item/flashlight/flare/culttorch
- name = "void torch"
- desc = "Used by veteran cultists to instantly transport items to their needful brethren."
- w_class = WEIGHT_CLASS_SMALL
- light_range = 1
- icon_state = "torch"
- item_state = "torch"
- color = "#ff0000"
- on_damage = 15
- slot_flags = null
- on = TRUE
- var/charges = 5
-
-/obj/item/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity)
- if(!proximity)
- return
- if(!iscultist(user))
- to_chat(user, "That doesn't seem to do anything useful.")
- return
-
- if(istype(A, /obj/item))
-
- var/list/cultists = list()
- for(var/datum/mind/M in SSticker.mode.cult)
- if(M.current && M.current.stat != DEAD)
- cultists |= M.current
- var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in (cultists - user)
- if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated())
- return
- if(!cultist_to_receive)
- to_chat(user, "You require a destination!")
- log_game("Void torch failed - no target")
- return
- if(cultist_to_receive.stat == DEAD)
- to_chat(user, "[cultist_to_receive] has died!")
- log_game("Void torch failed - target died")
- return
- if(!iscultist(cultist_to_receive))
- to_chat(user, "[cultist_to_receive] is not a follower of the Geometer!")
- log_game("Void torch failed - target was deconverted")
- return
- if(A in user.GetAllContents())
- to_chat(user, "[A] must be on a surface in order to teleport it!")
- return
- to_chat(user, "You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!")
- cultist_to_receive.put_in_hands(A)
- charges--
- to_chat(user, "\The [src] now has [charges] charge\s.")
- if(charges == 0)
- qdel(src)
-
- else
- ..()
- to_chat(user, "\The [src] can only transport items!")
-
-/obj/item/blood_beam
- name = "\improper magical aura"
- desc = "Sinister looking aura that distorts the flow of reality around it."
- lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi'
- icon_state = "disintegrate"
- item_state = "disintegrate"
- item_flags = ABSTRACT | DROPDEL
- w_class = WEIGHT_CLASS_HUGE
- throwforce = 0
- throw_range = 0
- throw_speed = 0
- var/charging = FALSE
- var/firing = FALSE
- var/angle
-
-/obj/item/blood_beam/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
-
-
-/obj/item/blood_beam/afterattack(atom/A, mob/living/user, flag, params)
- . = ..()
- if(firing || charging)
- return
- var/C = user.client
- if(ishuman(user) && C)
- angle = mouse_angle_from_client(C)
- else
- qdel(src)
- return
- charging = TRUE
- INVOKE_ASYNC(src, PROC_REF(charge), user)
- if(do_after(user, 90, target = user))
- firing = TRUE
- INVOKE_ASYNC(src, PROC_REF(pewpew), user, params)
- var/obj/structure/emergency_shield/invoker/N = new(user.loc)
- if(do_after(user, 90, target = user))
- user.Paralyze(40)
- to_chat(user, "You have exhausted the power of this spell!")
- firing = FALSE
- if(N)
- qdel(N)
- qdel(src)
- charging = FALSE
-
-/obj/item/blood_beam/proc/charge(mob/user)
- var/obj/O
- playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, TRUE)
- for(var/i in 1 to 12)
- if(!charging)
- break
- if(i > 1)
- sleep(15)
- if(i < 4)
- O = new /obj/effect/temp_visual/cult/rune_spawn/rune1/inner(user.loc, 30, "#ff0000")
- else
- O = new /obj/effect/temp_visual/cult/rune_spawn/rune5(user.loc, 30, "#ff0000")
- new /obj/effect/temp_visual/dir_setting/cult/phase/out(user.loc, user.dir)
- if(O)
- qdel(O)
-
-/obj/item/blood_beam/proc/pewpew(mob/user, params)
- var/turf/targets_from = get_turf(src)
- var/spread = 40
- var/second = FALSE
- var/set_angle = angle
- for(var/i in 1 to 12)
- if(second)
- set_angle = angle - spread
- spread -= 8
- else
- sleep(15)
- set_angle = angle + spread
- second = !second //Handles beam firing in pairs
- if(!firing)
- break
- playsound(src, 'sound/magic/exit_blood.ogg', 75, TRUE)
- new /obj/effect/temp_visual/dir_setting/cult/phase(user.loc, user.dir)
- var/turf/temp_target = get_turf_in_angle(set_angle, targets_from, 40)
- for(var/turf/T in getline(targets_from,temp_target))
- if (locate(/obj/effect/blessing, T))
- temp_target = T
- playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 50, TRUE)
- new /obj/effect/temp_visual/at_shield(T, T)
- break
- T.narsie_act(TRUE, TRUE)
- for(var/mob/living/target in T.contents)
- if(iscultist(target))
- new /obj/effect/temp_visual/cult/sparks(T)
- if(ishuman(target))
- var/mob/living/carbon/human/H = target
- if(H.stat != DEAD)
- H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 7)
- if(isshade(target) || isconstruct(target))
- var/mob/living/simple_animal/M = target
- if(M.health+15 < M.maxHealth)
- M.adjustHealth(-15)
- else
- M.health = M.maxHealth
- else
- var/mob/living/L = target
- if(L.density)
- L.Paralyze(20)
- L.adjustBruteLoss(45)
- playsound(L, 'sound/hallucinations/wail.ogg', 50, TRUE)
- L.emote("scream")
- user.Beam(temp_target, icon_state="blood_beam", time = 7, beam_type = /obj/effect/ebeam/blood)
-
-
-/obj/effect/ebeam/blood
- name = "blood beam"
-
-/obj/item/shield/mirror
- name = "mirror shield"
- desc = "An infamous shield used by Nar'Sien sects to confuse and disorient their enemies. Its edges are weighted for use as a throwing weapon - capable of disabling multiple foes with preternatural accuracy."
- icon_state = "mirror_shield" // eshield1 for expanded
- lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi'
- force = 5
- throwforce = 15
- throw_speed = 1
- throw_range = 4
- w_class = WEIGHT_CLASS_BULKY
- attack_verb = list("bumped", "prodded")
- hitsound = 'sound/weapons/smash.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)
- if(iscultist(owner))
- if(istype(hitby, /obj/projectile))
- var/obj/projectile/P = hitby
- if(P.damage_type == BRUTE || P.damage_type == BURN)
- if(P.damage >= 30)
- var/turf/T = get_turf(owner)
- T.visible_message("The sheer force from [P] shatters the mirror shield!")
- new /obj/effect/temp_visual/cult/sparks(T)
- playsound(T, 'sound/effects/glassbr3.ogg', 100)
- owner.Paralyze(25)
- qdel(src)
- return FALSE
- if(P.reflectable & REFLECT_NORMAL)
- return FALSE //To avoid reflection chance double-dipping with block chance
- . = ..()
- if(.)
- playsound(src, 'sound/weapons/parry.ogg', 100, TRUE)
- if(illusions > 0)
- illusions--
- addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450)
- if(prob(60))
- var/mob/living/simple_animal/hostile/illusion/M = new(owner.loc)
- M.faction = list("cult")
- M.Copy_Parent(owner, 70, 10, 5)
- M.move_to_delay = owner.cached_multiplicative_slowdown
- else
- var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc)
- E.Copy_Parent(owner, 70, 10)
- E.GiveTarget(owner)
- E.Goto(owner, owner.cached_multiplicative_slowdown, E.minimum_distance)
- return TRUE
- else
- if(prob(50))
- var/mob/living/simple_animal/hostile/illusion/H = new(owner.loc)
- H.Copy_Parent(owner, 100, 20, 5)
- H.faction = list("cult")
- H.GiveTarget(owner)
- H.move_to_delay = owner.cached_multiplicative_slowdown
- to_chat(owner, "[src] betrays you!")
- return FALSE
-
-/obj/item/shield/mirror/proc/readd()
- illusions++
- if(illusions == initial(illusions) && isliving(loc))
- var/mob/living/holder = loc
- to_chat(holder, "The shield's illusions are back at full strength!")
-
-/obj/item/shield/mirror/IsReflect()
- if(prob(block_chance))
- return TRUE
- return FALSE
-
-/obj/item/shield/mirror/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- var/turf/T = get_turf(hit_atom)
- var/datum/thrownthing/D = throwingdatum
- if(isliving(hit_atom))
- var/mob/living/L = hit_atom
- if(iscultist(L))
- playsound(src, 'sound/weapons/throwtap.ogg', 50)
- if(L.put_in_active_hand(src))
- L.visible_message("[L] catches [src] out of the air!")
- else
- L.visible_message("[src] bounces off of [L], as if repelled by an unseen force!")
- else if(!..())
- if(!L.anti_magic_check())
- L.Paralyze(30)
- if(D?.thrower)
- for(var/mob/living/Next in orange(2, T))
- if(!Next.density || iscultist(Next))
- continue
- throw_at(Next, 3, 1, D.thrower)
- return
- throw_at(D.thrower, 7, 1, null)
- else
- ..()
diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm
deleted file mode 100644
index 6f8f2f6e7775..000000000000
--- a/code/modules/antagonists/cult/cult_structures.dm
+++ /dev/null
@@ -1,291 +0,0 @@
-/obj/structure/destructible/cult
- density = TRUE
- anchored = TRUE
- icon = 'icons/obj/cult.dmi'
- light_power = 2
- var/cooldowntime = 0
- break_sound = 'sound/hallucinations/veryfar_noise.ogg'
- debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1)
-
-/obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence
- density = FALSE
- visible_message("[src] fades away.")
- invisibility = INVISIBILITY_OBSERVER
- alpha = 100 //To help ghosts distinguish hidden runes
- light_range = 0
- light_power = 0
- update_light()
- STOP_PROCESSING(SSfastprocess, src)
-
-/obj/structure/destructible/cult/proc/reveal() //for spells that reveal cult presence
- density = initial(density)
- invisibility = 0
- visible_message("[src] suddenly appears!")
- alpha = initial(alpha)
- light_range = initial(light_range)
- light_power = initial(light_power)
- update_light()
- START_PROCESSING(SSfastprocess, src)
-
-
-/obj/structure/destructible/cult/examine(mob/user)
- . = ..()
- . += "\The [src] is [anchored ? "":"not "]secured to the floor."
- if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
- . += "The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)]."
-
-/obj/structure/destructible/cult/examine_status(mob/user)
- if(iscultist(user) || isobserver(user))
- var/t_It = p_they(TRUE)
- var/t_is = p_are()
- return "[t_It] [t_is] at [round(obj_integrity * 100 / max_integrity)]% stability."
- return ..()
-
-/obj/structure/destructible/cult/attack_animal(mob/living/simple_animal/M)
- if(istype(M, /mob/living/simple_animal/hostile/construct/artificer))
- if(obj_integrity < max_integrity)
- M.changeNext_move(CLICK_CD_MELEE)
- obj_integrity = min(max_integrity, obj_integrity + 5)
- Beam(M, icon_state="sendbeam", time=4)
- M.visible_message("[M] repairs \the [src].", \
- "You repair [src], leaving [p_they()] at [round(obj_integrity * 100 / max_integrity)]% stability.")
- else
- to_chat(M, "You cannot repair [src], as [p_theyre()] undamaged!")
- else
- ..()
-
-/obj/structure/destructible/cult/set_anchored(anchorvalue)
- . = ..()
- if(isnull(.))
- return
- update_appearance()
-
-/obj/structure/destructible/cult/update_icon_state()
- icon_state = "[initial(icon_state)][anchored ? null : "_off"]"
- return ..()
-
-/obj/structure/destructible/cult/proc/check_menu(mob/user)
- if(!istype(user))
- return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
- return FALSE
- return TRUE
-
-/obj/structure/destructible/cult/talisman
- name = "altar"
- desc = "A bloodstained altar dedicated to Nar'Sie."
- icon_state = "talismanaltar"
- break_message = "The altar shatters, leaving only the wailing of the damned!"
-
-/obj/structure/destructible/cult/talisman/attack_hand(mob/living/user)
- . = ..()
- if(.)
- return
- if(!iscultist(user))
- to_chat(user, "You're pretty sure you know exactly what this is used for and you can't seem to touch it.")
- return
- if(!anchored)
- to_chat(user, "You need to anchor [src] to the floor with your dagger first.")
- return
- if(cooldowntime > world.time)
- to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].")
- return
- var/list/items = list(
- "Eldritch Whetstone" = image(icon = 'icons/obj/kitchen.dmi', icon_state = "cult_sharpener"),
- "Construct Shell" = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct_cult"),
- "Flask of Unholy Water" = image(icon = 'icons/obj/drinks/drinks.dmi', icon_state = "holyflask")
- )
- var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
- var/list/pickedtype = list()
- switch(choice)
- if("Eldritch Whetstone")
- pickedtype += /obj/item/sharpener/cult
- if("Construct Shell")
- pickedtype += /obj/structure/constructshell
- if("Flask of Unholy Water")
- pickedtype += /obj/item/reagent_containers/glass/beaker/unholywater
- else
- return
- if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
- cooldowntime = world.time + 2400
- for(var/N in pickedtype)
- new N(get_turf(src))
- to_chat(user, "You kneel before the altar and your faith is rewarded with the [choice]!")
-
-/obj/structure/destructible/cult/forge
- name = "daemon forge"
- desc = "A forge used in crafting the unholy weapons used by the armies of Nar'Sie."
- icon_state = "forge"
- light_range = 2
- light_color = LIGHT_COLOR_LAVA
- break_message = "The force breaks apart into shards with a howling scream!"
-
-/obj/structure/destructible/cult/forge/attack_hand(mob/living/user)
- . = ..()
- if(.)
- return
- if(!iscultist(user))
- to_chat(user, "The heat radiating from [src] pushes you back.")
- return
- if(!anchored)
- to_chat(user, "You need to anchor [src] to the floor with your dagger first.")
- return
- if(cooldowntime > world.time)
- to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].")
- return
- var/list/items = list(
- "Shielded Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cult_armor"),
- "Flagellant's Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cultrobes"),
- "Mirror Shield" = image(icon = 'icons/obj/shields.dmi', icon_state = "mirror_shield")
- )
- var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
- var/list/pickedtype = list()
- switch(choice)
- if("Shielded Robe")
- pickedtype += /obj/item/clothing/suit/hooded/cultrobes/cult_shield
- if("Flagellant's Robe")
- pickedtype += /obj/item/clothing/suit/hooded/cultrobes/berserker
- if("Mirror Shield")
- pickedtype += /obj/item/shield/mirror
- else
- return
- if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
- cooldowntime = world.time + 2400
- for(var/N in pickedtype)
- new N(get_turf(src))
- to_chat(user, "You work the forge as dark knowledge guides your hands, creating the [choice]!")
-
-
-
-/obj/structure/destructible/cult/pylon
- name = "pylon"
- desc = "A floating crystal that slowly heals those faithful to Nar'Sie."
- icon_state = "pylon"
- light_range = 1.5
- light_color = COLOR_SOFT_RED
- break_sound = 'sound/effects/glassbr2.ogg'
- break_message = "The blood-red crystal falls to the floor and shatters!"
- var/heal_delay = 25
- var/last_heal = 0
- var/corrupt_delay = 50
- var/last_corrupt = 0
-
-/obj/structure/destructible/cult/pylon/New()
- START_PROCESSING(SSfastprocess, src)
- ..()
-
-/obj/structure/destructible/cult/pylon/Destroy()
- STOP_PROCESSING(SSfastprocess, src)
- return ..()
-
-/obj/structure/destructible/cult/pylon/process()
- if(!anchored)
- return
- if(last_heal <= world.time)
- last_heal = world.time + heal_delay
- for(var/mob/living/L in range(5, src))
- if(iscultist(L) || isshade(L) || isconstruct(L))
- if(L.health != L.maxHealth)
- new /obj/effect/temp_visual/heal(get_turf(src), "#960000")
- if(ishuman(L))
- L.adjustBruteLoss(-1, 0)
- L.adjustFireLoss(-1, 0)
- L.updatehealth()
- if(isshade(L) || isconstruct(L))
- var/mob/living/simple_animal/M = L
- if(M.health < M.maxHealth)
- M.adjustHealth(-3)
- if(ishuman(L) && L.blood_volume < BLOOD_VOLUME_NORMAL)
- L.blood_volume += 1.0
- CHECK_TICK
- if(last_corrupt <= world.time)
- var/list/validturfs = list()
- var/list/cultturfs = list()
- for(var/T in circleviewturfs(src, 5))
- if(istype(T, /turf/open/floor/engine/cult))
- cultturfs |= T
- continue
- var/static/list/blacklisted_pylon_turfs = typecacheof(list(
- /turf/closed,
- /turf/open/floor/engine/cult,
- /turf/open/space,
- /turf/open/lava,
- /turf/open/chasm))
- if(is_type_in_typecache(T, blacklisted_pylon_turfs))
- continue
- else
- validturfs |= T
-
- last_corrupt = world.time + corrupt_delay
-
- if(length(validturfs))
- var/turf/T = pick(validturfs)
- if(istype(T, /turf/open/floor/plating))
- T.PlaceOnTop(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
- else
- T.ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR)
- else if (length(cultturfs))
- var/turf/open/floor/engine/cult/F = pick(cultturfs)
- new /obj/effect/temp_visual/cult/turf/floor(F)
- else
- // Are we in space or something? No cult turfs or
- // convertable turfs?
- last_corrupt = world.time + corrupt_delay*2
-
-/obj/structure/destructible/cult/tome
- name = "archives"
- desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl."
- icon_state = "tomealtar"
- light_range = 1.5
- light_color = LIGHT_COLOR_FIRE
- break_message = "The books and tomes of the archives burn into ash as the desk shatters!"
-
-/obj/structure/destructible/cult/tome/attack_hand(mob/living/user)
- . = ..()
- if(.)
- return
- if(!iscultist(user))
- to_chat(user, "These books won't open and it hurts to even try and read the covers.")
- return
- if(!anchored)
- to_chat(user, "You need to anchor [src] to the floor with your dagger first.")
- return
- if(cooldowntime > world.time)
- to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].")
- return
- var/list/items = list(
- // [CELADON-EDIT] - CELADON_RETURN_CONTENT
- // "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/eyes/eyes.dmi', icon_state = "blindfold"), // CELADON-EDIT - ORIGINAL
- "Zealot's Blindfold" = image(icon = 'mod_celadon/_storge_icons/icons/clothing/obj/eyes.dmi', icon_state = "blindfold"),
- // [/CELADON-EDIT]
- "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter")
- )
- var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
- var/list/pickedtype = list()
- switch(choice)
- if("Zealot's Blindfold")
- pickedtype += /obj/item/clothing/glasses/hud/health/night/cultblind
- if("Veil Walker Set")
- pickedtype += /obj/item/cult_shift
- pickedtype += /obj/item/flashlight/flare/culttorch
- else
- return
- if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time)
- cooldowntime = world.time + 2400
- for(var/N in pickedtype)
- new N(get_turf(src))
- to_chat(user, "You summon the [choice] from the archives!")
-
-/obj/effect/gateway
- name = "gateway"
- desc = "You're pretty sure that abyss is staring back."
- icon = 'icons/obj/cult.dmi'
- icon_state = "hole"
- density = TRUE
- anchored = TRUE
-
-/obj/effect/gateway/singularity_act()
- return
-
-/obj/effect/gateway/singularity_pull()
- return
diff --git a/code/modules/antagonists/cult/cult_turf_overlay.dm b/code/modules/antagonists/cult/cult_turf_overlay.dm
deleted file mode 100644
index 2e950326bf8a..000000000000
--- a/code/modules/antagonists/cult/cult_turf_overlay.dm
+++ /dev/null
@@ -1,32 +0,0 @@
-//an "overlay" used by clockwork walls and floors to appear normal to mesons.
-/obj/effect/cult_turf/overlay
- mouse_opacity = MOUSE_OPACITY_TRANSPARENT
- var/atom/linked
-
-/obj/effect/cult_turf/overlay/examine(mob/user)
- if(linked)
- linked.examine(user)
-
-/obj/effect/cult_turf/overlay/ex_act()
- return FALSE
-
-/obj/effect/cult_turf/overlay/singularity_act()
- return
-/obj/effect/cult_turf/overlay/singularity_pull()
- return
-
-/obj/effect/cult_turf/overlay/singularity_pull(S, current_size)
- return
-
-/obj/effect/cult_turf/overlay/Destroy()
- if(linked)
- linked = null
- . = ..()
-
-/obj/effect/cult_turf/overlay/floor
- icon = 'icons/turf/floors.dmi'
- icon_state = "clockwork_floor"
- layer = TURF_LAYER
-
-/obj/effect/cult_turf/overlay/floor/bloodcult
- icon_state = "cult"
diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm
deleted file mode 100644
index 2829141405dd..000000000000
--- a/code/modules/antagonists/cult/rune_spawn_action.dm
+++ /dev/null
@@ -1,115 +0,0 @@
-//after a delay, creates a rune below you. for constructs creating runes.
-/datum/action/innate/cult/create_rune
- name = "Summon Rune"
- desc = "Summons a rune"
- background_icon_state = "bg_demon"
- var/obj/effect/rune/rune_type
- var/cooldown = 0
- var/base_cooldown = 1800
- var/scribe_time = 60
- var/damage_interrupt = TRUE
- var/action_interrupt = TRUE
- var/obj/effect/temp_visual/cult/rune_spawn/rune_word_type
- var/obj/effect/temp_visual/cult/rune_spawn/rune_innerring_type
- var/obj/effect/temp_visual/cult/rune_spawn/rune_center_type
- var/rune_color
-
-/datum/action/innate/cult/create_rune/IsAvailable()
- if(!rune_type || cooldown > world.time)
- return FALSE
- return ..()
-
-/datum/action/innate/cult/create_rune/proc/turf_check(turf/T)
- if(!T)
- return FALSE
- if(isspaceturf(T))
- to_chat(owner, "You cannot scribe runes in space!")
- return FALSE
- if(locate(/obj/effect/rune) in T)
- to_chat(owner, "There is already a rune here.")
- return FALSE
- return TRUE
-
-
-/datum/action/innate/cult/create_rune/Activate()
- var/turf/T = get_turf(owner)
- if(turf_check(T))
- var/chosen_keyword
- if(initial(rune_type.req_keyword))
- chosen_keyword = stripped_input(owner, "Enter a keyword for the new rune.", "Words of Power")
- if(!chosen_keyword)
- return
- //the outer ring is always the same across all runes
- var/obj/effect/temp_visual/cult/rune_spawn/R1 = new(T, scribe_time, rune_color)
- //the rest are not always the same, so we need types for em
- var/obj/effect/temp_visual/cult/rune_spawn/R2
- if(rune_word_type)
- R2 = new rune_word_type(T, scribe_time, rune_color)
- var/obj/effect/temp_visual/cult/rune_spawn/R3
- if(rune_innerring_type)
- R3 = new rune_innerring_type(T, scribe_time, rune_color)
- var/obj/effect/temp_visual/cult/rune_spawn/R4
- if(rune_center_type)
- R4 = new rune_center_type(T, scribe_time, rune_color)
-
- cooldown = base_cooldown + world.time
- owner.update_action_buttons_icon()
- addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown)
- var/list/health
- if(damage_interrupt && isliving(owner))
- var/mob/living/L = owner
- health = list("health" = L.health)
- var/scribe_mod = scribe_time
- if(istype(T, /turf/open/floor/engine/cult))
- scribe_mod *= 0.5
- playsound(T, 'sound/magic/enter_blood.ogg', 100, FALSE)
- if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt)))
- var/obj/effect/rune/new_rune = new rune_type(owner.loc)
- new_rune.keyword = chosen_keyword
- else
- qdel(R1)
- if(R2)
- qdel(R2)
- if(R3)
- qdel(R3)
- if(R4)
- qdel(R4)
- cooldown = 0
- owner.update_action_buttons_icon()
-
-//teleport rune
-/datum/action/innate/cult/create_rune/tele
- name = "Summon Teleport Rune"
- desc = "Summons a teleport rune to your location, as though it has been there all along..."
- button_icon_state = "telerune"
- rune_type = /obj/effect/rune/teleport
- rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune2
- rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/inner
- rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/center
- rune_color = RUNE_COLOR_TELEPORT
-
-/datum/action/innate/cult/create_rune/wall
- name = "Summon Barrier Rune"
- desc = "Summons an active barrier rune to your location, as though it has been there all along..."
- button_icon_state = "barrier"
- rune_type = /obj/effect/rune/wall
- rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune4
- rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/inner
- rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/center
- rune_color = RUNE_COLOR_DARKRED
-
-/datum/action/innate/cult/create_rune/wall/Activate()
- . = ..()
- var/obj/effect/rune/wall/W = locate(/obj/effect/rune/wall) in owner.loc
- if(W)
- W.spread_density()
-
-/datum/action/innate/cult/create_rune/revive
- name = "Summon Revive Rune"
- desc = "Summons a revive rune to your location, as though it has been there all along..."
- button_icon_state = "revive"
- rune_type = /obj/effect/rune/raise_dead
- rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune1
- rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/inner
- rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/center
- rune_color = RUNE_COLOR_MEDIUMRED
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
deleted file mode 100644
index 3382672071cc..000000000000
--- a/code/modules/antagonists/cult/runes.dm
+++ /dev/null
@@ -1,1029 +0,0 @@
-GLOBAL_LIST_EMPTY(sacrificed) //a mixed list of minds and mobs
-GLOBAL_LIST(rune_types) //Every rune that can be drawn by ritual daggers
-GLOBAL_LIST_EMPTY(teleport_runes)
-GLOBAL_LIST_EMPTY(wall_runes)
-/*
-
-This file contains runes.
-Runes are used by the cult to cause many different effects and are paramount to their success.
-They are drawn with a ritual dagger in blood, and are distinguishable to cultists and normal crew by examining.
-Fake runes can be drawn in crayon to fool people.
-Runes can either be invoked by one's self or with many different cultists. Each rune has a specific incantation that the cultists will say when invoking it.
-
-
-*/
-
-/obj/effect/rune
- name = "rune"
- var/cultist_name = "basic rune"
- desc = "An odd collection of symbols drawn in what seems to be blood."
- var/cultist_desc = "a basic rune with no function." //This is shown to cultists who examine the rune in order to determine its true purpose.
- anchored = TRUE
- icon = 'icons/obj/rune.dmi'
- icon_state = "1"
- resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- layer = SIGIL_LAYER
- color = RUNE_COLOR_RED
-
- var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked.
- var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it.
- var/req_cultists_text //if we have a description override for required cultists to invoke
- var/rune_in_use = FALSE // Used for some runes, this is for when you want a rune to not be usable when in use.
-
- var/scribe_delay = 40 //how long the rune takes to create
- var/scribe_damage = 0.1 //how much damage you take doing it
- var/invoke_damage = 0 //how much damage invokers take when invoking it
- var/construct_invoke = TRUE //if constructs can invoke it
-
- var/req_keyword = 0 //If the rune requires a keyword - go figure amirite
- var/keyword //The actual keyword for the rune
-
-/obj/effect/rune/Initialize(mapload, set_keyword)
- . = ..()
- if(set_keyword)
- keyword = set_keyword
- var/image/I = image(icon = 'icons/effects/blood.dmi', icon_state = null, loc = src)
- I.override = TRUE
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_runes", I)
-
-/obj/effect/rune/examine(mob/user)
- . = ..()
- if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects
- . += "Name: [cultist_name]\n"+\
- "Effects: [capitalize(cultist_desc)]\n"+\
- "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]"
- if(req_keyword && keyword)
- . += "Keyword: [keyword]"
-
-/obj/effect/rune/attack_hand(mob/living/user)
- . = ..()
- if(.)
- return
- if(!iscultist(user))
- to_chat(user, "You aren't able to understand the words of [src].")
- return
- var/list/invokers = can_invoke(user)
- if(invokers.len >= req_cultists)
- invoke(invokers)
- else
- to_chat(user, "You need [req_cultists - invokers.len] more adjacent cultists to use this rune in such a manner.")
- fail_invoke()
-
-/obj/effect/rune/attack_animal(mob/living/simple_animal/M)
- if(istype(M, /mob/living/simple_animal/shade) || istype(M, /mob/living/simple_animal/hostile/construct))
- if(istype(M, /mob/living/simple_animal/hostile/construct/wraith/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/juggernaut/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/artificer/angelic))
- to_chat(M, "You purge the rune!")
- qdel(src)
- else if(construct_invoke || !iscultist(M)) //if you're not a cult construct we want the normal fail message
- attack_hand(M)
- else
- to_chat(M, "You are unable to invoke the rune!")
-
-/obj/effect/rune/proc/conceal() //for talisman of revealing/hiding
- visible_message("[src] fades away.")
- invisibility = INVISIBILITY_OBSERVER
- alpha = 100 //To help ghosts distinguish hidden runes
-
-/obj/effect/rune/proc/reveal() //for talisman of revealing/hiding
- invisibility = 0
- visible_message("[src] suddenly appears!")
- alpha = initial(alpha)
-
-/*
-
-There are a few different procs each rune runs through when a cultist activates it.
-can_invoke() is called when a cultist activates the rune with an empty hand. If there are multiple cultists, this rune determines if the required amount is nearby.
-invoke() is the rune's actual effects.
-fail_invoke() is called when the rune fails, via not enough people around or otherwise. Typically this just has a generic 'fizzle' effect.
-structure_check() searches for nearby cultist structures required for the invocation. Proper structures are pylons, forges, archives, and altars.
-
-*/
-
-/obj/effect/rune/proc/can_invoke(mob/living/user=null)
- //This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists.
- var/list/invokers = list() //people eligible to invoke the rune
- if(user)
- invokers += user
- if(req_cultists > 1 || istype(src, /obj/effect/rune/convert))
- var/list/things_in_range = range(1, src)
- for(var/mob/living/L in things_in_range)
- if(iscultist(L))
- if(L == user)
- continue
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if((HAS_TRAIT(H, TRAIT_MUTE)) || H.silent)
- continue
- if(L.stat)
- continue
- invokers += L
- return invokers
-
-/obj/effect/rune/proc/invoke(list/invokers)
- //This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here.
- for(var/M in invokers)
- if(isliving(M))
- var/mob/living/L = M
- if(invocation)
- L.say(invocation, language = /datum/language/common, ignore_spam = TRUE, forced = "cult invocation")
- if(invoke_damage)
- L.apply_damage(invoke_damage, BRUTE)
- to_chat(L, "[src] saps your strength!")
- else if(istype(M, /obj/item/toy/plush/narplush))
- var/obj/item/toy/plush/narplush/P = M
- P.visible_message("[P] squeaks loudly!")
- do_invoke_glow()
-
-/obj/effect/rune/proc/do_invoke_glow()
- set waitfor = FALSE
- animate(src, transform = matrix()*2, alpha = 0, time = 5, flags = ANIMATION_END_NOW) //fade out
- sleep(5)
- animate(src, transform = matrix(), alpha = 255, time = 0, flags = ANIMATION_END_NOW)
-
-/obj/effect/rune/proc/fail_invoke()
- //This proc contains the effects of a rune if it is not invoked correctly, through either invalid wording or not enough cultists. By default, it's just a basic fizzle.
- visible_message("The markings pulse with a small flash of red light, then fall dark.")
- var/oldcolor = color
- color = rgb(255, 0, 0)
- animate(src, color = oldcolor, time = 5)
- addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5)
-
-//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user.
-/obj/effect/rune/malformed
- cultist_name = "malformed rune"
- cultist_desc = "a senseless rune written in gibberish. No good can come from invoking this."
- invocation = "Ra'sha yoka!"
- invoke_damage = 30
-
-/obj/effect/rune/malformed/Initialize(mapload, set_keyword)
- . = ..()
- icon_state = "[rand(1,7)]"
- color = rgb(rand(0,255), rand(0,255), rand(0,255))
-
-/obj/effect/rune/malformed/invoke(list/invokers)
- ..()
- qdel(src)
-
-//Rite of Offering: Converts or sacrifices a target.
-/obj/effect/rune/convert
- cultist_name = "Offer"
- cultist_desc = "offers a noncultist above it to Nar'Sie, either converting them or sacrificing them."
- req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets."
- invocation = "Mah'weyh pleggh at e'ntrath!"
- icon_state = "3"
- color = RUNE_COLOR_OFFER
- req_cultists = 1
- rune_in_use = FALSE
-
-/obj/effect/rune/convert/do_invoke_glow()
- return
-
-/obj/effect/rune/convert/invoke(list/invokers)
- if(rune_in_use)
- return
- var/list/myriad_targets = list()
- var/turf/T = get_turf(src)
- for(var/mob/living/M in T)
- if(!iscultist(M))
- myriad_targets |= M
- if(!myriad_targets.len)
- fail_invoke()
- log_game("Offer rune failed - no eligible targets")
- return
- rune_in_use = TRUE
- visible_message("[src] pulses blood red!")
- var/oldcolor = color
- color = RUNE_COLOR_DARKRED
- var/mob/living/L = pick(myriad_targets)
-
- var/mob/living/F = invokers[1]
- var/datum/antagonist/cult/C = F.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- var/datum/team/cult/Cult_team = C.cult_team
- var/is_convertable = is_convertable_to_cult(L,C.cult_team)
- if(L.stat != DEAD && is_convertable)
- invocation = "Mah'weyh pleggh at e'ntrath!"
- ..()
- if(is_convertable)
- do_convert(L, invokers)
- else
- invocation = "Barhah hra zar'garis!"
- ..()
- do_sacrifice(L, invokers)
- animate(src, color = oldcolor, time = 5)
- addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5)
- Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew
- rune_in_use = FALSE
-
-/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers)
- if(invokers.len < 2)
- for(var/M in invokers)
- to_chat(M, "You need at least two invokers to convert [convertee]!")
- log_game("Offer rune failed - tried conversion with one invoker")
- return 0
- if(convertee.anti_magic_check(TRUE, TRUE, FALSE, 0)) //Not chargecost because it can be spammed
- for(var/M in invokers)
- to_chat(M, "Something is shielding [convertee]'s mind!")
- log_game("Offer rune failed - convertee had anti-magic")
- return 0
- var/brutedamage = convertee.getBruteLoss()
- var/burndamage = convertee.getFireLoss()
- if(brutedamage || burndamage)
- convertee.adjustBruteLoss(-(brutedamage * 0.75))
- convertee.adjustFireLoss(-(burndamage * 0.75))
- convertee.visible_message(
- "[convertee] writhes in pain [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", // Hello there buddy! Come here often? I hope you were wondering wtf this string was
- "AAAAAAAAAAAAAA-")
- SSticker.mode.add_cultist(convertee.mind, 1)
- convertee.mind.special_role = ROLE_CULTIST
- to_chat(convertee, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \
- and something evil takes root.")
- to_chat(convertee, "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\
- ")
- if(ishuman(convertee))
- var/mob/living/carbon/human/H = convertee
- H.uncuff()
- H.stuttering = 0
- H.cultslurring = 0
- if(prob(1) || SSevents.holidays && SSevents.holidays[APRIL_FOOLS])
- H.say("You son of a bitch! I'm in.", forced = "That son of a bitch! They're in.")
- return 1
-
-/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers)
- var/mob/living/first_invoker = invokers[1]
- if(!first_invoker)
- return FALSE
- var/datum/antagonist/cult/C = first_invoker.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(!C)
- return
-
-
- var/big_sac = FALSE
- if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3)
- for(var/M in invokers)
- to_chat(M, "[sacrificial] is too greatly linked to the world! You need three acolytes!")
- log_game("Offer rune failed - not enough acolytes and target is living or sac target")
- return FALSE
- if(sacrificial.mind)
- GLOB.sacrificed += sacrificial.mind
- for(var/datum/objective/sacrifice/sac_objective in C.cult_team.objectives)
- if(sac_objective.target == sacrificial.mind)
- sac_objective.sacced = TRUE
- sac_objective.update_explanation_text()
- big_sac = TRUE
- else
- GLOB.sacrificed += sacrificial
-
- new /obj/effect/temp_visual/cult/sac(get_turf(src))
- for(var/M in invokers)
- if(big_sac)
- to_chat(M, "\"Yes! This is the one I desire! You have done well.\"")
- else
- if(ishuman(sacrificial) || iscyborg(sacrificial))
- to_chat(M, "\"I accept this sacrifice.\"")
- else
- to_chat(M, "\"I accept this meager sacrifice.\"")
-
- var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src))
- if(sacrificial.mind)
- stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul()
- stone.transfer_soul("FORCE", sacrificial, usr)
- stone.invisibility = 0
-
- if(sacrificial)
- if(iscyborg(sacrificial))
- playsound(sacrificial, 'sound/magic/disable_tech.ogg', 100, TRUE)
- sacrificial.dust() //To prevent the MMI from remaining
- else
- playsound(sacrificial, 'sound/magic/disintegrate.ogg', 100, TRUE)
- sacrificial.gib()
- return TRUE
-
-
-
-/obj/effect/rune/empower
- cultist_name = "Empower"
- cultist_desc = "allows cultists to prepare greater amounts of blood magic at far less of a cost."
- invocation = "H'drak v'loso, mir'kanas verbot!"
- icon_state = "3"
- color = RUNE_COLOR_TALISMAN
- construct_invoke = FALSE
-
-/obj/effect/rune/empower/invoke(list/invokers)
- . = ..()
- var/mob/living/user = invokers[1] //the first invoker is always the user
- for(var/datum/action/innate/cult/blood_magic/BM in user.actions)
- BM.Activate()
-
-/obj/effect/rune/teleport
- cultist_name = "Teleport"
- cultist_desc = "warps everything above it to another chosen teleport rune."
- invocation = "Sas'so c'arta forbici!"
- icon_state = "2"
- color = RUNE_COLOR_TELEPORT
- req_keyword = TRUE
- light_power = 4
- var/obj/effect/temp_visual/cult/portal/inner_portal //The portal "hint" for off-station teleportations
- var/obj/effect/temp_visual/cult/rune_spawn/rune2/outer_portal
- var/listkey
-
-
-/obj/effect/rune/teleport/Initialize(mapload, set_keyword)
- . = ..()
- var/area/A = get_area(src)
- var/locname = initial(A.name)
- listkey = set_keyword ? "[set_keyword] [locname]":"[locname]"
- GLOB.teleport_runes += src
-
-/obj/effect/rune/teleport/Destroy()
- GLOB.teleport_runes -= src
- return ..()
-
-/obj/effect/rune/teleport/invoke(list/invokers)
- var/mob/living/user = invokers[1] //the first invoker is always the user
- var/list/potential_runes = list()
- var/list/teleportnames = list()
- for(var/R in GLOB.teleport_runes)
- var/obj/effect/rune/teleport/T = R
- if(T != src && !is_away_level(T))
- potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T
-
- if(!potential_runes.len)
- to_chat(user, "There are no valid runes to teleport to!")
- log_game("Teleport rune failed - no other teleport runes")
- fail_invoke()
- return
-
- var/turf/T = get_turf(src)
- if(is_away_level(T))
- to_chat(user, "You are not in the right dimension!")
- log_game("Teleport rune failed - user in away mission")
- fail_invoke()
- return
-
- var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked
- var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to?
- if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated() || !actual_selected_rune)
- fail_invoke()
- return
-
- var/turf/target = get_turf(actual_selected_rune)
- if(target.is_blocked_turf(TRUE))
- to_chat(user, "The target rune is blocked. Attempting to teleport to it would be massively unwise.")
- fail_invoke()
- return
- var/movedsomething = FALSE
- var/moveuserlater = FALSE
- var/movesuccess = FALSE
- for(var/atom/movable/A in T)
- if(istype(A, /obj/effect/dummy/phased_mob))
- continue
- if(ismob(A))
- if(!isliving(A)) //Let's not teleport ghosts and AI eyes.
- continue
- if(ishuman(A))
- new /obj/effect/temp_visual/dir_setting/cult/phase/out(T, A.dir)
- new /obj/effect/temp_visual/dir_setting/cult/phase(target, A.dir)
- if(A == user)
- moveuserlater = TRUE
- movedsomething = TRUE
- continue
- if(!A.anchored)
- movedsomething = TRUE
- if(do_teleport(A, target, channel = TELEPORT_CHANNEL_CULT))
- movesuccess = TRUE
- if(movedsomething)
- ..()
- if(moveuserlater)
- if(do_teleport(user, target, channel = TELEPORT_CHANNEL_CULT))
- movesuccess = TRUE
- if(movesuccess)
- visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!", null, "You hear a sharp crack.")
- to_chat(user, "You[moveuserlater ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"].")
- else
- to_chat(user, "You[moveuserlater ? "r vision blurs briefly, but nothing happens":" try send everything above the rune away, but the teleportation fails"].")
- var/area/A = get_area(T)
- if(initial(A.name) == "Space")
- actual_selected_rune.handle_portal("space", T)
- if(movesuccess)
- target.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.")
- else
- fail_invoke()
-
-/obj/effect/rune/teleport/proc/handle_portal(portal_type, turf/origin)
- var/turf/T = get_turf(src)
- close_portal() // To avoid stacking descriptions/animations
- playsound(T, pick('sound/effects/sparks1.ogg', 'sound/effects/sparks2.ogg', 'sound/effects/sparks3.ogg', 'sound/effects/sparks4.ogg'), 100, TRUE, 14)
- inner_portal = new /obj/effect/temp_visual/cult/portal(T)
- if(portal_type == "space")
- set_light_color(color)
- desc += "
A tear in reality reveals a black void interspersed with dots of light... something recently teleported here from space.
The void feels like it's trying to pull you to the [dir2text(get_dir(T, origin))]!"
- else
- inner_portal.icon_state = "lava"
- set_light_color(LIGHT_COLOR_FIRE)
- desc += "
A tear in reality reveals a coursing river of lava... something recently teleported here from the Lavaland Mines!"
- outer_portal = new(T, 600, color)
- light_range = 4
- update_light()
- addtimer(CALLBACK(src, PROC_REF(close_portal)), 600, TIMER_UNIQUE)
-
-/obj/effect/rune/teleport/proc/close_portal()
- qdel(inner_portal)
- qdel(outer_portal)
- desc = initial(desc)
- light_range = 0
- update_light()
-
-//Ritual of Dimensional Rending: Calls forth the avatar of Nar'Sie upon the station.
-/obj/effect/rune/narsie
- cultist_name = "Nar'Sie"
- cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers."
- invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!"
- req_cultists = 9
- icon = 'icons/effects/96x96.dmi'
- color = RUNE_COLOR_DARKRED
- icon_state = "rune_large"
- pixel_x = -32 //So the big ol' 96x96 sprite shows up right
- pixel_y = -32
- scribe_delay = 500 //how long the rune takes to create
- scribe_damage = 40.1 //how much damage you take doing it
- var/used = FALSE
-
-/obj/effect/rune/narsie/Initialize(mapload, set_keyword)
- . = ..()
- SSpoints_of_interest.make_point_of_interest(src)
-
-/obj/effect/rune/narsie/Destroy()
- SSpoints_of_interest.remove_point_of_interest(src)
- . = ..()
-
-/obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to
- return
-
-/obj/effect/rune/narsie/invoke(list/invokers)
- if(used)
- return
- var/mob/living/user = invokers[1]
- var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives
- var/area/place = get_area(src)
- if(!(place in summon_objective.summon_spots))
- to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!")
- return
- if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest)
- for(var/M in invokers)
- to_chat(M, "Nar'Sie is already on this plane!")
- log_game("Nar'Sie rune failed - already summoned")
- return
- //BEGIN THE SUMMONING
- used = TRUE
- ..()
- sound_to_playing_players('sound/effects/dimensional_rend.ogg')
- var/turf/T = get_turf(src)
- sleep(40)
- if(src)
- color = RUNE_COLOR_RED
- new /obj/singularity/narsie/large/cult(T) //Causes Nar'Sie to spawn even if the rune has been removed
-
-//Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every three sacrifices your cult has carried out.
-/obj/effect/rune/raise_dead
- cultist_name = "Revive"
- cultist_desc = "requires a dead, mindless, or inactive cultist placed upon the rune. For each three bodies sacrificed to the dark patron, one body will be mended and their mind awoken"
- invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below
- icon_state = "1"
- color = RUNE_COLOR_MEDIUMRED
- var/static/sacrifices_used = -SOULS_TO_REVIVE // Cultists get one "free" revive
-
-/obj/effect/rune/raise_dead/examine(mob/user)
- . = ..()
- if(iscultist(user) || user.stat == DEAD)
- . += "Sacrifices unrewarded: [LAZYLEN(GLOB.sacrificed) - sacrifices_used]"
-
-/obj/effect/rune/raise_dead/invoke(list/invokers)
- var/turf/T = get_turf(src)
- var/mob/living/mob_to_revive
- var/list/potential_revive_mobs = list()
- var/mob/living/user = invokers[1]
- if(rune_in_use)
- return
- rune_in_use = TRUE
- for(var/mob/living/M in T.contents)
- if(iscultist(M) && (M.stat == DEAD || !M.client || M.client.is_afk()))
- potential_revive_mobs |= M
- if(!potential_revive_mobs.len)
- to_chat(user, "There are no dead cultists on the rune!")
- log_game("Raise Dead rune failed - no cultists to revive")
- fail_invoke()
- return
- if(potential_revive_mobs.len > 1)
- mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs
- else
- mob_to_revive = potential_revive_mobs[1]
- if(QDELETED(src) || !validness_checks(mob_to_revive, user))
- fail_invoke()
- return
- if(user.name == "Herbert West")
- invocation = "To life, to life, I bring them!"
- else
- invocation = initial(invocation)
- ..()
- if(mob_to_revive.stat == DEAD)
- var/diff = LAZYLEN(GLOB.sacrificed) - SOULS_TO_REVIVE - sacrifices_used
- if(diff < 0)
- to_chat(user, "Your cult must carry out [abs(diff)] more sacrifice\s before it can revive another cultist!")
- fail_invoke()
- return
- sacrifices_used += SOULS_TO_REVIVE
- mob_to_revive.revive(full_heal = TRUE, admin_revive = TRUE) //This does remove traits and such, but the rune might actually see some use because of it!
- mob_to_revive.grab_ghost()
- if(!mob_to_revive.client || mob_to_revive.client.is_afk())
- set waitfor = FALSE
- var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", ROLE_CULTIST, null, ROLE_CULTIST, 50, mob_to_revive)
- if(LAZYLEN(candidates))
- var/mob/dead/observer/C = pick(candidates)
- to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.")
- message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.")
- mob_to_revive.ghostize(0)
- mob_to_revive.key = C.key
- else
- fail_invoke()
- return
- SEND_SOUND(mob_to_revive, 'sound/ambience/antag/bloodcult.ogg')
- to_chat(mob_to_revive, "\"PASNAR SAVRAE YAM'TOTH. Arise.\"")
- mob_to_revive.visible_message(
- "[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.", \
- "You awaken suddenly from the void. You're alive!")
- rune_in_use = FALSE
-
-/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user)
- var/turf/T = get_turf(src)
- if(QDELETED(user))
- return FALSE
- if(!Adjacent(user) || user.incapacitated())
- return FALSE
- if(QDELETED(target_mob))
- return FALSE
- if(!(target_mob in T.contents))
- to_chat(user, "The cultist to revive has been moved!")
- log_game("Raise Dead rune failed - revival target moved")
- return FALSE
- return TRUE
-
-/obj/effect/rune/raise_dead/fail_invoke()
- ..()
- rune_in_use = FALSE
- for(var/mob/living/M in range(1,src))
- if(iscultist(M) && M.stat == DEAD)
- M.visible_message("[M] twitches.")
-
-//Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo.
-/obj/effect/rune/wall
- cultist_name = "Barrier"
- cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this."
- invocation = "Khari'd! Eske'te tannin!"
- icon_state = "4"
- color = RUNE_COLOR_DARKRED
- CanAtmosPass = ATMOS_PASS_DENSITY
- var/datum/timedevent/density_timer
- var/recharging = FALSE
-
-/obj/effect/rune/wall/Initialize(mapload, set_keyword)
- . = ..()
- GLOB.wall_runes += src
-
-/obj/effect/rune/wall/examine(mob/user)
- . = ..()
- if(density && iscultist(user))
- if(density_timer)
- . += "The air above this rune has hardened into a barrier that will last [DisplayTimeText(density_timer.timeToRun - world.time)]."
-
-/obj/effect/rune/wall/Destroy()
- GLOB.wall_runes -= src
- return ..()
-
-/obj/effect/rune/wall/BlockThermalConductivity()
- return density
-
-/obj/effect/rune/wall/invoke(list/invokers)
- if(recharging)
- return
- var/mob/living/user = invokers[1]
- ..()
- density = !density
- update_state()
- if(density)
- spread_density()
- var/carbon_user = iscarbon(user)
- user.visible_message(
- "[user] [carbon_user ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \
- "You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.")
- if(carbon_user)
- var/mob/living/carbon/C = user
- C.apply_damage(2, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
-
-/obj/effect/rune/wall/proc/spread_density()
- for(var/R in GLOB.wall_runes)
- var/obj/effect/rune/wall/W = R
- if(W.virtual_z() == virtual_z() && get_dist(src, W) <= 2 && !W.density && !W.recharging)
- W.density = TRUE
- W.update_state()
- W.spread_density()
- density_timer = addtimer(CALLBACK(src, PROC_REF(lose_density)), 3000, TIMER_STOPPABLE)
-
-/obj/effect/rune/wall/proc/lose_density()
- if(density)
- recharging = TRUE
- density = FALSE
- update_state()
- var/oldcolor = color
- add_atom_colour("#696969", FIXED_COLOUR_PRIORITY)
- animate(src, color = oldcolor, time = 50, easing = EASE_IN)
- addtimer(CALLBACK(src, PROC_REF(recharge)), 50)
-
-/obj/effect/rune/wall/proc/recharge()
- recharging = FALSE
- add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY)
-
-/obj/effect/rune/wall/proc/update_state()
- deltimer(density_timer)
- air_update_turf(TRUE)
- if(density)
- var/mutable_appearance/shimmer = mutable_appearance('icons/effects/effects.dmi', "barriershimmer", ABOVE_MOB_LAYER)
- shimmer.appearance_flags |= RESET_COLOR
- shimmer.alpha = 60
- shimmer.color = "#701414"
- add_overlay(shimmer)
- add_atom_colour(RUNE_COLOR_RED, FIXED_COLOUR_PRIORITY)
- else
- cut_overlays()
- add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY)
-
-//Rite of Joined Souls: Summons a single cultist.
-/obj/effect/rune/summon
- cultist_name = "Summon Cultist"
- cultist_desc = "summons a single cultist to the rune. Requires 2 invokers."
- invocation = "N'ath reth sh'yro eth d'rekkathnor!"
- req_cultists = 2
- invoke_damage = 10
- icon_state = "3"
- color = RUNE_COLOR_SUMMON
-
-/obj/effect/rune/summon/invoke(list/invokers)
- var/mob/living/user = invokers[1]
- var/list/cultists = list()
- for(var/datum/mind/M in SSticker.mode.cult)
- if(!(M.current in invokers) && M.current && M.current.stat != DEAD)
- cultists |= M.current
- var/mob/living/cultist_to_summon = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists
- if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated())
- return
- if(!cultist_to_summon)
- to_chat(user, "You require a summoning target!")
- fail_invoke()
- log_game("Summon Cultist rune failed - no target")
- return
- if(cultist_to_summon.stat == DEAD)
- to_chat(user, "[cultist_to_summon] has died!")
- fail_invoke()
- log_game("Summon Cultist rune failed - target died")
- return
- if(cultist_to_summon.pulledby || cultist_to_summon.buckled)
- to_chat(user, "[cultist_to_summon] is being held in place!")
- fail_invoke()
- log_game("Summon Cultist rune failed - target restrained")
- return
- if(!iscultist(cultist_to_summon))
- to_chat(user, "[cultist_to_summon] is not a follower of the Geometer!")
- fail_invoke()
- log_game("Summon Cultist rune failed - target was deconverted")
- return
- if(is_away_level(cultist_to_summon))
- to_chat(user, "[cultist_to_summon] is not in our dimension!")
- fail_invoke()
- log_game("Summon Cultist rune failed - target in away mission")
- return
- cultist_to_summon.visible_message(
- "[cultist_to_summon] suddenly disappears in a flash of red light!", \
- "Overwhelming vertigo consumes you as you are hurled through the air!")
- ..()
- visible_message("A foggy shape materializes atop [src] and solidifes into [cultist_to_summon]!")
- cultist_to_summon.forceMove(get_turf(src))
- qdel(src)
-
-//Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby
-/obj/effect/rune/blood_boil
- cultist_name = "Boil Blood"
- cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers."
- invocation = "Dedo ol'btoh!"
- icon_state = "4"
- color = RUNE_COLOR_BURNTORANGE
- light_color = LIGHT_COLOR_LAVA
- req_cultists = 3
- invoke_damage = 10
- construct_invoke = FALSE
- var/tick_damage = 25
- rune_in_use = FALSE
-
-/obj/effect/rune/blood_boil/do_invoke_glow()
- return
-
-/obj/effect/rune/blood_boil/invoke(list/invokers)
- if(rune_in_use)
- return
- ..()
- rune_in_use = TRUE
- var/turf/T = get_turf(src)
- visible_message("[src] turns a bright, glowing orange!")
- color = "#FC9B54"
- set_light(6, 1, color)
- for(var/mob/living/L in viewers(T))
- if(!iscultist(L) && L.blood_volume)
- var/atom/I = L.anti_magic_check(chargecost = 0)
- if(I)
- if(isitem(I))
- to_chat(L, "[I] suddenly burns hotly before returning to normal!")
- continue
- to_chat(L, "Your blood boils in your veins!")
- animate(src, color = "#FCB56D", time = 4)
- sleep(4)
- if(QDELETED(src))
- return
- do_area_burn(T, 0.5)
- animate(src, color = "#FFDF80", time = 5)
- sleep(5)
- if(QDELETED(src))
- return
- do_area_burn(T, 1)
- animate(src, color = "#FFFDF4", time = 6)
- sleep(6)
- if(QDELETED(src))
- return
- do_area_burn(T, 1.5)
- new /obj/effect/hotspot(T)
- qdel(src)
-
-/obj/effect/rune/blood_boil/proc/do_area_burn(turf/T, multiplier)
- set_light(6, 1, color)
- for(var/mob/living/L in viewers(T))
- if(!iscultist(L) && L.blood_volume)
- if(L.anti_magic_check(chargecost = 0))
- continue
- L.take_overall_damage(tick_damage*multiplier, tick_damage*multiplier)
-
-//Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost.
-/obj/effect/rune/manifest
- cultist_name = "Spirit Realm"
- cultist_desc = "manifests a spirit servant of the Geometer and allows you to ascend as a spirit yourself. The invoker must not move from atop the rune, and will take damage for each summoned spirit."
- invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this
- icon_state = "7"
- invoke_damage = 10
- construct_invoke = FALSE
- color = RUNE_COLOR_DARKRED
- var/mob/living/affecting = null
- var/ghost_limit = 3
- var/ghosts = 0
-
-/obj/effect/rune/manifest/Initialize()
- . = ..()
-
-
-/obj/effect/rune/manifest/can_invoke(mob/living/user)
- if(!(user in get_turf(src)))
- to_chat(user, "You must be standing on [src]!")
- fail_invoke()
- log_game("Manifest rune failed - user not standing on rune")
- return list()
- if(user.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST))
- to_chat(user, "Ghosts can't summon more ghosts!")
- fail_invoke()
- log_game("Manifest rune failed - user is a ghost")
- return list()
- return ..()
-
-/obj/effect/rune/manifest/invoke(list/invokers)
- . = ..()
- var/mob/living/user = invokers[1]
- var/turf/T = get_turf(src)
- var/choice = alert(user,"You tear open a connection to the spirit realm...",,"Summon a Cult Ghost","Ascend as a Dark Spirit","Cancel")
- if(choice == "Summon a Cult Ghost")
- if(ghosts >= ghost_limit)
- to_chat(user, "You are sustaining too many ghosts to summon more!")
- fail_invoke()
- log_game("Manifest rune failed - too many summoned ghosts")
- return list()
- notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src, header = "Manifest rune")
- var/list/ghosts_on_rune = list()
- for(var/mob/dead/observer/O in T)
- if(O.client && !is_banned_from(O.ckey, ROLE_CULTIST) && !QDELETED(src) && !(isAdminObserver(O) && (O.client.prefs.toggles & ADMIN_IGNORE_CULT_GHOST)) && !QDELETED(O))
- ghosts_on_rune += O
- if(!ghosts_on_rune.len)
- to_chat(user, "There are no spirits near [src]!")
- fail_invoke()
- log_game("Manifest rune failed - no nearby ghosts")
- return list()
- var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune)
- var/mob/living/carbon/human/cult_ghost/new_human = new(T)
- new_human.real_name = ghost_to_spawn.real_name
- new_human.alpha = 150 //Makes them translucent
- new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor
- new_human.apply_status_effect(STATUS_EFFECT_SUMMONEDGHOST) //ghosts can't summon more ghosts
- new_human.see_invisible = SEE_INVISIBLE_OBSERVER
- ghosts++
- playsound(src, 'sound/magic/exit_blood.ogg', 50, TRUE)
- visible_message("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.")
- to_chat(user, "Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...")
- var/obj/structure/emergency_shield/invoker/N = new(T)
- new_human.key = ghost_to_spawn.key
- SSticker.mode.add_cultist(new_human.mind, 0)
- to_chat(new_human, "You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar'Sie, and you are to serve them at all costs.")
-
- while(!QDELETED(src) && !QDELETED(user) && !QDELETED(new_human) && (user in T))
- if(user.stat != CONSCIOUS || HAS_TRAIT(new_human, TRAIT_CRITICAL_CONDITION))
- break
- user.apply_damage(0.1, BRUTE)
- sleep(1)
-
- qdel(N)
- ghosts--
- if(new_human)
- new_human.visible_message(
- "[new_human] suddenly dissolves into bones and ashes.", \
- "Your link to the world fades. Your form breaks apart.")
- for(var/obj/I in new_human)
- new_human.dropItemToGround(I, TRUE)
- new_human.dust()
- else if(choice == "Ascend as a Dark Spirit")
- affecting = user
- affecting.add_atom_colour(RUNE_COLOR_DARKRED, ADMIN_COLOUR_PRIORITY)
- affecting.visible_message(
- "[affecting] freezes statue-still, glowing an unearthly red.", \
- "You see what lies beyond. All is revealed. In this form you find that your voice booms louder and you can mark targets for the entire cult")
- var/mob/dead/observer/G = affecting.ghostize(1)
- var/datum/action/innate/cult/comm/spirit/CM = new
- var/datum/action/innate/cult/ghostmark/GM = new
- G.name = "Dark Spirit of [G.name]"
- G.color = "red"
- CM.Grant(G)
- GM.Grant(G)
- while(!QDELETED(affecting))
- if(!(affecting in T))
- user.visible_message("A spectral tendril wraps around [affecting] and pulls [affecting.p_them()] back to the rune!")
- Beam(affecting, icon_state="drainbeam", time=2)
- affecting.forceMove(get_turf(src)) //NO ESCAPE :^)
- if(affecting.key)
- affecting.visible_message(
- "[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.", \
- "You are re-united with your physical form. [src] releases its hold over you.")
- affecting.Paralyze(40)
- break
- if(affecting.health <= 10)
- to_chat(G, "Your body can no longer sustain the connection!")
- break
- sleep(5)
- CM.Remove(G)
- GM.Remove(G)
- affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED)
- affecting.grab_ghost()
- affecting = null
- rune_in_use = FALSE
-
-/mob/living/carbon/human/cult_ghost/spill_organs(no_brain, no_organs, no_bodyparts) //cult ghosts never drop a brain
- no_brain = TRUE
- . = ..()
-
-/mob/living/carbon/human/cult_ghost/getorganszone(zone, subzones = 0)
- . = ..()
- for(var/obj/item/organ/brain/B in .) //they're not that smart, really
- . -= B
-
-
-/obj/effect/rune/apocalypse
- cultist_name = "Apocalypse"
- cultist_desc = "a harbinger of the end times. Grows in strength with the cult's desperation - but at the risk of... side effects."
- invocation = "Ta'gh fara'qha fel d'amar det!"
- icon = 'icons/effects/96x96.dmi'
- icon_state = "apoc"
- pixel_x = -32
- pixel_y = -32
- color = RUNE_COLOR_DARKRED
- req_cultists = 3
- scribe_delay = 100
-
-/obj/effect/rune/apocalypse/invoke(list/invokers)
- if(rune_in_use)
- return
- . = ..()
- var/area/place = get_area(src)
- var/mob/living/user = invokers[1]
- var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives
- if(summon_objective.summon_spots.len <= 1)
- to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!")
- return
- if(!(place in summon_objective.summon_spots))
- to_chat(user, "The Apocalypse rune will remove a ritual site, where Nar'Sie can be summoned, it can only be scribed in [english_list(summon_objective.summon_spots)]!")
- return
- summon_objective.summon_spots -= place
- rune_in_use = TRUE
- var/turf/T = get_turf(src)
- new /obj/effect/temp_visual/dir_setting/curse/grasp_portal/fading(T)
- var/intensity = 0
- for(var/mob/living/M in GLOB.player_list)
- if(iscultist(M))
- intensity++
- intensity = max(60, 360 - (360*(intensity/GLOB.player_list.len + 0.3)**2)) //significantly lower intensity for "winning" cults
- var/duration = intensity*10
- playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE)
- visible_message("A colossal shockwave of energy bursts from the rune, disintegrating it in the process!")
- for(var/mob/living/L in range(src, 3))
- L.Paralyze(30)
- empulse(T, 0.42*(intensity), 1)
- var/list/images = list()
- var/zmatch = T.virtual_z()
- var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
- for(var/mob/living/M in GLOB.alive_mob_list)
- if(M.virtual_z() != zmatch)
- continue
- if(ishuman(M))
- if(!iscultist(M))
- AH.remove_hud_from(M)
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration)
- var/image/A = image('icons/mob/cult.dmi',M,"cultist", ABOVE_MOB_LAYER)
- A.override = 1
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE)
- addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration)
- images += A
- SEND_SOUND(M, pick(sound('sound/ambience/antag/bloodcult.ogg'),sound('sound/spookoween/ghost_whisper.ogg'),sound('sound/spookoween/ghosty_wind.ogg')))
- else
- var/construct = pick("floater","artificer","behemoth")
- var/image/B = image('icons/mob/mob.dmi',M,construct, ABOVE_MOB_LAYER)
- B.override = 1
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "mob_apoc", B, NONE)
- addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration)
- images += B
- if(!iscultist(M))
- if(M.client)
- var/image/C = image('icons/effects/cult_effects.dmi',M,"bloodsparkles", ABOVE_MOB_LAYER)
- add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE)
- addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration)
- images += C
- else
- to_chat(M, "An Apocalypse Rune was invoked in the [place.name], it is no longer available as a summoning site!")
- SEND_SOUND(M, 'sound/effects/pope_entry.ogg')
- image_handler(images, duration)
- if(intensity>=285) // Based on the prior formula, this means the cult makes up <15% of current players
- var/outcome = rand(1,80)
- switch(outcome)
- if(1 to 10)
- var/datum/round_event_control/disease_outbreak/D = new()
- // var/datum/round_event_control/mice_migration/M = new()
- D.runEvent()
- // M.runEvent()
- if(11 to 20)
- var/datum/round_event_control/radiation_storm/RS = new()
- RS.runEvent()
- if(21 to 30)
- var/datum/round_event_control/brand_intelligence/BI = new()
- BI.runEvent()
- if(31 to 40)
- var/datum/round_event_control/immovable_rod/R = new()
- R.runEvent()
- R.runEvent()
- R.runEvent()
- if(41 to 50)
- var/datum/round_event_control/meteor_wave/MW = new()
- MW.runEvent()
- if(51 to 60)
- var/datum/round_event_control/spider_infestation/SI = new()
- SI.runEvent()
- if(61 to 80)
- var/datum/round_event_control/spacevine/SV = new()
- var/datum/round_event_control/grey_tide/GT = new()
- SV.runEvent()
- GT.runEvent()
- qdel(src)
-
-/obj/effect/rune/apocalypse/proc/image_handler(list/images, duration)
- var/end = world.time + duration
- set waitfor = 0
- while(end>world.time)
- for(var/image/I in images)
- I.override = FALSE
- animate(I, alpha = 0, time = 25, flags = ANIMATION_PARALLEL)
- sleep(35)
- for(var/image/I in images)
- animate(I, alpha = 255, time = 25, flags = ANIMATION_PARALLEL)
- sleep(25)
- for(var/image/I in images)
- if(I.icon_state != "bloodsparkles")
- I.override = TRUE
- sleep(190)
-
-
-
-/proc/hudFix(mob/living/carbon/human/target)
- if(!target || !target.client)
- return
- var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES)
- if(istype(O, /obj/item/clothing/glasses/hud/security))
- var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED]
- AH.add_hud_to(target)
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
deleted file mode 100644
index db087e100e2f..000000000000
--- a/code/modules/antagonists/devil/devil.dm
+++ /dev/null
@@ -1,506 +0,0 @@
-#define BLOOD_THRESHOLD 3 //How many souls are needed per stage.
-#define TRUE_THRESHOLD 7
-#define ARCH_THRESHOLD 12
-
-#define BASIC_DEVIL 0
-#define BLOOD_lizard 1
-#define TRUE_DEVIL 2
-#define ARCH_DEVIL 3
-
-#define LOSS_PER_DEATH 2
-
-#define SOULVALUE soulsOwned.len-reviveNumber
-
-#define DEVILRESURRECTTIME 600
-
-GLOBAL_LIST_EMPTY(allDevils)
-GLOBAL_LIST_INIT(lawlorify, list (
- LORE = list(
- OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.",
- OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.",
- OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.",
- OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.",
- OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.",
- OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.",
- OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.",
- OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.",
- BAN_HURTWOMAN = "This devil seems to prefer hunting men.",
- BAN_CHAPEL = "This devil avoids holy ground.",
- BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.",
- BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.",
- BAN_STRIKEUNCONSCIOUS = "This devil only shows interest in those who are awake.",
- BAN_HURTlizard = "This devil will not strike a lizardman first.",
- BAN_HURTANIMAL = "This devil avoids hurting animals.",
- BANISH_WATER = "To banish the devil, you must infuse its body with holy water.",
- BANISH_COFFIN = "This devil will return to life if its remains are not placed within a coffin.",
- BANISH_FORMALDYHIDE = "To banish the devil, you must inject its lifeless body with embalming fluid.",
- BANISH_RUNES = "This devil will resurrect after death, unless its remains are within a rune.",
- BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.",
- BANISH_DESTRUCTION = "Its corpse must be utterly destroyed to prevent resurrection.",
- BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse."
- ),
- LAW = list(
- OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.",
- OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.",
- OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.",
- OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.",
- OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.",
- OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.",
- OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.",
- OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.",
- BAN_HURTWOMAN = "You must never harm a female outside of self defense.",
- BAN_CHAPEL = "You must never attempt to enter the chapel.",
- BAN_HURTPRIEST = "You must never attack a priest.",
- BAN_AVOIDWATER = "You must never willingly touch a wet surface.",
- BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.",
- BAN_HURTlizard = "You must never harm a lizardman outside of self defense.",
- BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.",
- BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.",
- BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.",
- BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.",
- BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.",
- BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.",
- BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.",
- BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect."
- )
- ))
-
-//These are also used in the codex gigas, so let's declare them globally.
-GLOBAL_LIST_INIT(devil_pre_title, list("Dark ", "Hellish ", "Fallen ", "Fiery ", "Sinful ", "Blood ", "Fluffy "))
-GLOBAL_LIST_INIT(devil_title, list("Lord ", "Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept "))
-GLOBAL_LIST_INIT(devil_syllable, list("hal", "ve", "odr", "neit", "ci", "quon", "mya", "folth", "wren", "geyr", "hil", "niet", "twou", "phi", "coa"))
-GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr."))
-/datum/antagonist/devil
- name = "Devil"
- roundend_category = "devils"
- antagpanel_category = "Devil"
- job_rank = ROLE_DEVIL
- antag_hud_type = ANTAG_HUD_DEVIL
- antag_hud_name = "devil"
- show_to_ghosts = TRUE
- var/obligation
- var/ban
- var/banish
- var/truename
- var/list/datum/mind/soulsOwned = new
- var/reviveNumber = 0
- var/form = BASIC_DEVIL
- var/static/list/devil_spells = typecacheof(list(
- /obj/effect/proc_holder/spell/aimed/fireball/hellish,
- /obj/effect/proc_holder/spell/targeted/infernal_jaunt,
- /obj/effect/proc_holder/spell/targeted/sintouch,
- /obj/effect/proc_holder/spell/targeted/sintouch/ascended,
- /obj/effect/proc_holder/spell/targeted/summon_contract,
- /obj/effect/proc_holder/spell/targeted/conjure_item/violin,
- /obj/effect/proc_holder/spell/targeted/summon_dancefloor))
- var/ascendable = FALSE
-
-/datum/antagonist/devil/can_be_owned(datum/mind/new_owner)
- . = ..()
- return . && (ishuman(new_owner.current) || iscyborg(new_owner.current))
-
-/datum/antagonist/devil/get_admin_commands()
- . = ..()
- .["Toggle ascendable"] = CALLBACK(src, PROC_REF(admin_toggle_ascendable))
-
-
-/datum/antagonist/devil/proc/admin_toggle_ascendable(mob/admin)
- ascendable = !ascendable
- message_admins("[key_name_admin(admin)] set [key_name_admin(owner)] devil ascendable to [ascendable]")
- log_admin("[key_name_admin(admin)] set [key_name(owner)] devil ascendable to [ascendable])")
-
-/datum/antagonist/devil/admin_add(datum/mind/new_owner,mob/admin)
- switch(alert(admin,"Should the devil be able to ascend",,"Yes","No","Cancel"))
- if("Yes")
- ascendable = TRUE
- if("No")
- ascendable = FALSE
- else
- return
- new_owner.add_antag_datum(src)
- message_admins("[key_name_admin(admin)] has devil'ed [key_name_admin(new_owner)]. [ascendable ? "(Ascendable)":""]")
- log_admin("[key_name(admin)] has devil'ed [key_name(new_owner)]. [ascendable ? "(Ascendable)":""]")
-
-/datum/antagonist/devil/antag_listing_name()
- return ..() + "([truename])"
-
-/proc/devilInfo(name)
- if(GLOB.allDevils[lowertext(name)])
- return GLOB.allDevils[lowertext(name)]
- else
- var/datum/fakeDevil/devil = new /datum/fakeDevil(name)
- GLOB.allDevils[lowertext(name)] = devil
- return devil
-
-/proc/randomDevilName()
- var/name = ""
- if(prob(65))
- if(prob(35))
- name = pick(GLOB.devil_pre_title)
- name += pick(GLOB.devil_title)
- var/probability = 100
- name += pick(GLOB.devil_syllable)
- while(prob(probability))
- name += pick(GLOB.devil_syllable)
- probability -= 20
- if(prob(40))
- name += pick(GLOB.devil_suffix)
- return name
-
-/proc/randomdevilobligation()
- return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME)
-
-/proc/randomdevilban()
- return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL)
-
-/proc/randomdevilbanish()
- return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB)
-
-/datum/antagonist/devil/proc/add_soul(datum/mind/soul)
- if(soulsOwned.Find(soul))
- return
- soulsOwned += soul
- owner.current.set_nutrition(NUTRITION_LEVEL_FULL)
- to_chat(owner.current, "You feel satiated as you received a new soul.")
- update_hud()
- switch(SOULVALUE)
- if(0)
- to_chat(owner.current, "Your hellish powers have been restored.")
- give_appropriate_spells()
- if(BLOOD_THRESHOLD)
- increase_blood_lizard()
- if(TRUE_THRESHOLD)
- increase_true_devil()
- if(ARCH_THRESHOLD)
- increase_arch_devil()
-
-/datum/antagonist/devil/proc/remove_soul(datum/mind/soul)
- if(soulsOwned.Remove(soul))
- check_regression()
- to_chat(owner.current, "You feel as though a soul has slipped from your grasp.")
- update_hud()
-
-/datum/antagonist/devil/proc/check_regression()
- if(form == ARCH_DEVIL)
- return //arch devil can't regress
- //Yes, fallthrough behavior is intended, so I can't use a switch statement.
- if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD)
- regress_blood_lizard()
- if(form == BLOOD_lizard && SOULVALUE < BLOOD_THRESHOLD)
- regress_humanoid()
- if(SOULVALUE < 0)
- give_appropriate_spells()
- to_chat(owner.current, "As punishment for your failures, all of your powers except contract creation have been revoked.")
-
-/datum/antagonist/devil/proc/regress_humanoid()
- to_chat(owner.current, "Your powers weaken, have more contracts be signed to regain power.")
- if(ishuman(owner.current))
- var/mob/living/carbon/human/H = owner.current
- H.set_species(/datum/species/human, 1)
- H.regenerate_icons()
- give_appropriate_spells()
- if(istype(owner.current.loc, /obj/effect/dummy/phased_mob/slaughter/))
- owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted.
- form = BASIC_DEVIL
-
-/datum/antagonist/devil/proc/regress_blood_lizard()
- var/mob/living/carbon/true_devil/D = owner.current
- to_chat(D, "Your powers weaken, have more contracts be signed to regain power.")
- D.oldform.forceMove(D.drop_location())
- owner.transfer_to(D.oldform)
- give_appropriate_spells()
- qdel(D)
- form = BLOOD_lizard
- update_hud()
-
-
-/datum/antagonist/devil/proc/increase_blood_lizard()
- to_chat(owner.current, "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.")
- sleep(50)
- if(ishuman(owner.current))
- var/mob/living/carbon/human/H = owner.current
- H.set_species(/datum/species/lizard, 1)
- H.underwear = "Nude"
- H.undershirt = "Nude"
- H.socks = "Nude"
- H.dna.features["mcolor"] = "511" //A deep red
- H.regenerate_icons()
- else //Did the devil get hit by a staff of transmutation?
- owner.current.color = "#501010"
- give_appropriate_spells()
- form = BLOOD_lizard
-
-
-
-/datum/antagonist/devil/proc/increase_true_devil()
- to_chat(owner.current, "You feel as though your current form is about to shed. You will soon turn into a true devil.")
- sleep(50)
- var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc)
- A.faction |= "hell"
- owner.current.forceMove(A)
- A.oldform = owner.current
- owner.transfer_to(A)
- A.set_devil_name()
- give_appropriate_spells()
- form = TRUE_DEVIL
- update_hud()
-
-/datum/antagonist/devil/proc/increase_arch_devil()
- if(!ascendable)
- return
- var/mob/living/carbon/true_devil/D = owner.current
- to_chat(D, "You feel as though your form is about to ascend.")
- sleep(50)
- if(!D)
- return
- D.visible_message("[D]'s skin begins to erupt with spikes.", \
- "Your flesh begins creating a shield around yourself.")
- sleep(100)
- if(!D)
- return
- D.visible_message("The horns on [D]'s head slowly grow and elongate.", \
- "Your body continues to mutate. Your telepathic abilities grow.")
- sleep(90)
- if(!D)
- return
- D.visible_message("[D]'s body begins to violently stretch and contort.", \
- "You begin to rend apart the final barriers to ultimate power.")
- sleep(40)
- if(!D)
- return
- to_chat(D, "Yes!")
- sleep(10)
- if(!D)
- return
- to_chat(D, "YES!!")
- sleep(10)
- if(!D)
- return
- to_chat(D, "YE--")
- sleep(1)
- if(!D)
- return
- send_to_playing_players("\"SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!\"")
- sound_to_playing_players('sound/hallucinations/veryfar_noise.ogg')
- give_appropriate_spells()
- D.convert_to_archdevil()
- if(istype(D.loc, /obj/effect/dummy/phased_mob/slaughter/))
- D.forceMove(get_turf(D))//Fixes dying while jaunted leaving you permajaunted.
- var/area/A = get_area(owner.current)
- if(A)
- notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK)
- sleep(50)
- form = ARCH_DEVIL
-
-/datum/antagonist/devil/proc/remove_spells()
- for(var/X in owner.spell_list)
- var/obj/effect/proc_holder/spell/S = X
- if(is_type_in_typecache(S, devil_spells))
- owner.RemoveSpell(S)
-
-/datum/antagonist/devil/proc/give_summon_contract()
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null))
- if(obligation == OBLIGATION_FIDDLE)
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null))
- else if(obligation == OBLIGATION_DANCEOFF)
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null))
-
-/datum/antagonist/devil/proc/give_appropriate_spells()
- remove_spells()
- give_summon_contract()
- if(SOULVALUE >= ARCH_THRESHOLD && ascendable)
- give_arch_spells()
- else if(SOULVALUE >= TRUE_THRESHOLD)
- give_true_spells()
- else if(SOULVALUE >= BLOOD_THRESHOLD)
- give_blood_spells()
- else if(SOULVALUE >= 0)
- give_base_spells()
-
-/datum/antagonist/devil/proc/give_base_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null))
-
-/datum/antagonist/devil/proc/give_blood_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null))
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
-
-/datum/antagonist/devil/proc/give_true_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null))
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null))
-
-/datum/antagonist/devil/proc/give_arch_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null))
-
-/datum/antagonist/devil/proc/beginResurrectionCheck(mob/living/body)
- if(SOULVALUE>0)
- to_chat(owner.current, "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon. Remain in your body.")
- sleep(DEVILRESURRECTTIME)
- if (!body || body.stat == DEAD)
- if(SOULVALUE>0)
- if(check_banishment(body))
- to_chat(owner.current, "Unfortunately, the mortals have finished a ritual that prevents your resurrection.")
- return -1
- else
- to_chat(owner.current, "WE LIVE AGAIN!")
- return hellish_resurrection(body)
- else
- to_chat(owner.current, "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.")
- return -1
- else
- to_chat(owner.current, "You seem to have resurrected without your hellish powers.")
- else
- to_chat(owner.current, "Your hellish powers are too weak to resurrect yourself.")
-
-/datum/antagonist/devil/proc/check_banishment(mob/living/body)
- switch(banish)
- if(BANISH_WATER)
- if(iscarbon(body))
- var/mob/living/carbon/H = body
- return H.reagents.has_reagent(/datum/reagent/water/holywater)
- return 0
- if(BANISH_COFFIN)
- return (body && istype(body.loc, /obj/structure/closet/crate/coffin))
- if(BANISH_FORMALDYHIDE)
- if(iscarbon(body))
- var/mob/living/carbon/H = body
- return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde)
- return 0
- if(BANISH_RUNES)
- if(body)
- for(var/obj/effect/decal/cleanable/crayon/R in range(0,body))
- if (R.name == "rune")
- return 1
- return 0
- if(BANISH_CANDLES)
- if(body)
- var/count = 0
- for(var/obj/item/candle/C in range(1,body))
- count += C.lit
- if(count>=4)
- return 1
- return 0
- if(BANISH_DESTRUCTION)
- if(body)
- return 0
- return 1
- if(BANISH_FUNERAL_GARB)
- if(ishuman(body))
- var/mob/living/carbon/human/H = body
- if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/suit/white_on_white))
- return 1
- return 0
- else
- for(var/obj/item/clothing/under/suit/white_on_white/B in range(0,body))
- if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something.
- return 1
- return 0
-
-/datum/antagonist/devil/proc/hellish_resurrection(mob/living/body)
- message_admins("[key_name_admin(owner)] (true name is: [truename]) is resurrecting using hellish energy.")
- if(SOULVALUE < ARCH_THRESHOLD || !ascendable) // once ascended, arch devils do not go down in power by any means.
- reviveNumber += LOSS_PER_DEATH
- update_hud()
- if(body)
- body.revive(full_heal = TRUE, admin_revive = TRUE) //Adminrevive also recovers organs, preventing someone from resurrecting without a heart.
- if(istype(body.loc, /obj/effect/dummy/phased_mob/slaughter/))
- body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted.
- if(istype(body, /mob/living/carbon/true_devil))
- var/mob/living/carbon/true_devil/D = body
- if(D.oldform)
- D.oldform.revive(full_heal = TRUE, admin_revive = FALSE) // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body.
- if(body.stat == DEAD)
- create_new_body()
- else
- create_new_body()
- check_regression()
-
-/datum/antagonist/devil/proc/create_new_body()
- CRASH("Unable to find a blobstart landmark for hellish resurrection")
-
-/datum/antagonist/devil/proc/update_hud()
- if(iscarbon(owner.current))
- var/mob/living/C = owner.current
- if(C.hud_used && C.hud_used.devilsouldisplay)
- C.hud_used.devilsouldisplay.update_counter(SOULVALUE)
-
-/datum/antagonist/devil/greet()
- to_chat(owner.current, "You remember your link to the infernal. You are [truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp.")
- to_chat(owner.current, "However, your infernal form is not without weaknesses.")
- to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.")
- to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.")
- to_chat(owner.current, GLOB.lawlorify[LAW][ban])
- to_chat(owner.current, GLOB.lawlorify[LAW][obligation])
- to_chat(owner.current, GLOB.lawlorify[LAW][banish])
- to_chat(owner.current, "Remember, the crew can research your weaknesses if they find out your devil name.
")
- .=..()
-
-/datum/antagonist/devil/on_gain()
- truename = randomDevilName()
- ban = randomdevilban()
- obligation = randomdevilobligation()
- banish = randomdevilbanish()
- GLOB.allDevils[lowertext(truename)] = src
-
- antag_memory += "Your devilic true name is [truename]
[GLOB.lawlorify[LAW][ban]]
You may not use violence to coerce someone into selling their soul.
You may not directly and knowingly physically harm a devil, other than yourself.
[GLOB.lawlorify[LAW][obligation]]
[GLOB.lawlorify[LAW][banish]]
"
- if(issilicon(owner.current))
- var/mob/living/silicon/robot_devil = owner.current
- var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.")
- robot_devil.set_law_sixsixsix(laws)
- sleep(10)
- .=..()
-
-/datum/antagonist/devil/on_removal()
- to_chat(owner.current, "Your infernal link has been severed! You are no longer a devil!")
- .=..()
-
-/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override)
- give_appropriate_spells()
- var/mob/living/M = mob_override || owner.current
- add_antag_hud(antag_hud_type, antag_hud_name, M)
- handle_clown_mutation(M, mob_override ? null : "Your infernal nature has allowed you to overcome your clownishness.")
- owner.current.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_DEVIL)
- update_hud()
- .=..()
-
-/datum/antagonist/devil/remove_innate_effects(mob/living/mob_override)
- for(var/X in owner.spell_list)
- var/obj/effect/proc_holder/spell/S = X
- if(is_type_in_typecache(S, devil_spells))
- owner.RemoveSpell(S)
- var/mob/living/M = mob_override || owner.current
- remove_antag_hud(antag_hud_type, M)
- handle_clown_mutation(M, removing = FALSE)
- owner.current.remove_all_languages(LANGUAGE_DEVIL)
- .=..()
-
-/datum/antagonist/devil/proc/printdevilinfo()
- var/list/parts = list()
- parts += "The devil's true name is: [truename]"
- parts += "The devil's bans were:"
- parts += "[FOURSPACES][GLOB.lawlorify[LORE][ban]]"
- parts += "[FOURSPACES][GLOB.lawlorify[LORE][obligation]]"
- parts += "[FOURSPACES][GLOB.lawlorify[LORE][banish]]"
- return parts.Join("
")
-
-/datum/antagonist/devil/roundend_report()
- var/list/parts = list()
- parts += printplayer(owner)
- parts += printdevilinfo()
- parts += printobjectives(objectives)
- return parts.Join("
")
-
-//A simple super light weight datum for the codex gigas.
-/datum/fakeDevil
- var/truename
- var/obligation
- var/ban
- var/banish
- var/ascendable
-
-/datum/fakeDevil/New(name = randomDevilName())
- truename = name
- obligation = randomdevilobligation()
- ban = randomdevilban()
- banish = randomdevilbanish()
- ascendable = prob(25)
diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm
deleted file mode 100644
index 21446d2661d8..000000000000
--- a/code/modules/antagonists/devil/imp/imp.dm
+++ /dev/null
@@ -1,68 +0,0 @@
-//////////////////The Monster
-
-/mob/living/simple_animal/imp
- name = "imp"
- real_name = "imp"
- unique_name = TRUE
- desc = "A large, menacing creature covered in armored black scales."
- speak_emote = list("cackles")
- emote_hear = list("cackles","screeches")
- response_help_continuous = "thinks better of touching"
- response_help_simple = "think better of touching"
- response_disarm_continuous = "flails at"
- response_disarm_simple = "flail at"
- response_harm_continuous = "punches"
- response_harm_simple = "punch"
- icon = 'icons/mob/mob.dmi'
- icon_state = "imp"
- icon_living = "imp"
- mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
- speed = 1
- a_intent = INTENT_HARM
- stop_automated_movement = 1
- status_flags = CANPUSH
- attack_sound = 'sound/magic/demon_attack1.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 250 //Weak to cold
- maxbodytemp = INFINITY
- faction = list("hell")
- attack_verb_continuous = "wildly tears into"
- attack_verb_simple = "wildly tear into"
- maxHealth = 200
- health = 200
- healable = 0
- environment_smash = ENVIRONMENT_SMASH_STRUCTURES
- obj_damage = 40
- melee_damage_lower = 10
- melee_damage_upper = 15
- see_in_dark = 8
- lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
- del_on_death = TRUE
- deathmessage = "screams in agony as it sublimates into a sulfurous smoke."
- deathsound = 'sound/magic/demon_dies.ogg'
- var/boost = 0
- var/list/consumed_mobs = list()
- var/playstyle_string = "You are an imp, a mischievous creature from hell. You are the lowest rank on the hellish totem pole \
- Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
- of intentionally harming a fellow devil."
-
-/mob/living/simple_animal/imp/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate")
- set_varspeed(1)
- addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living, set_varspeed), 0), 30)
-
-/datum/antagonist/imp
- name = "Imp"
- antagpanel_category = "Devil"
- show_in_roundend = FALSE
-
-/datum/antagonist/imp/on_gain()
- . = ..()
- give_objectives()
-
-/datum/antagonist/imp/proc/give_objectives()
- var/datum/objective/newobjective = new
- newobjective.explanation_text = "Try to get a promotion to a higher devilic rank."
- newobjective.owner = owner
- objectives += newobjective
diff --git a/code/modules/antagonists/devil/sintouched/objectives.dm b/code/modules/antagonists/devil/sintouched/objectives.dm
deleted file mode 100644
index fcbb8dcbb55d..000000000000
--- a/code/modules/antagonists/devil/sintouched/objectives.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-/datum/objective/sintouched
- completed = 1
-
-/datum/objective/sintouched/gluttony
- explanation_text = "Everything is so delicious. Go eat everything."
-
-/datum/objective/sintouched/greed
- explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it."
-
-/datum/objective/sintouched/sloth
- explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people."
-
-/datum/objective/sintouched/wrath
- explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked."
-
-/datum/objective/sintouched/envy
- explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training"
-
-/datum/objective/sintouched/pride
- explanation_text = "You are the BEST thing on the station. Make sure everyone knows it."
-
-/datum/objective/sintouched/acedia
- explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job."
diff --git a/code/modules/antagonists/devil/sintouched/sintouched.dm b/code/modules/antagonists/devil/sintouched/sintouched.dm
deleted file mode 100644
index 064e1fbaecd0..000000000000
--- a/code/modules/antagonists/devil/sintouched/sintouched.dm
+++ /dev/null
@@ -1,76 +0,0 @@
-#define SIN_ACEDIA "acedia"
-#define SIN_GLUTTONY "gluttony"
-#define SIN_GREED "greed"
-#define SIN_SLOTH "sloth"
-#define SIN_WRATH "wrath"
-#define SIN_ENVY "envy"
-#define SIN_PRIDE "pride"
-
-/datum/antagonist/sintouched
- name = "sintouched"
- roundend_category = "sintouched"
- antagpanel_category = "Devil"
- antag_hud_type = ANTAG_HUD_SINTOUCHED
- antag_hud_name = "sintouched"
- var/sin
-
- var/static/list/sins = list(SIN_ACEDIA,SIN_GLUTTONY,SIN_GREED,SIN_SLOTH,SIN_WRATH,SIN_ENVY,SIN_PRIDE)
-
-/datum/antagonist/sintouched/New()
- . = ..()
- sin = pick(sins)
-
-/datum/antagonist/sintouched/proc/forge_objectives()
- var/datum/objective/sintouched/O
- switch(sin)//traditional seven deadly sins... except lust.
- if(SIN_ACEDIA)
- O = new /datum/objective/sintouched/acedia
- if(SIN_GLUTTONY)
- O = new /datum/objective/sintouched/gluttony
- if(SIN_GREED)
- O = new /datum/objective/sintouched/greed
- if(SIN_SLOTH)
- O = new /datum/objective/sintouched/sloth
- if(SIN_WRATH)
- O = new /datum/objective/sintouched/wrath
- if(SIN_ENVY)
- O = new /datum/objective/sintouched/envy
- if(SIN_PRIDE)
- O = new /datum/objective/sintouched/pride
- objectives += O
-
-/datum/antagonist/sintouched/on_gain()
- forge_objectives()
- . = ..()
-
-/datum/antagonist/sintouched/greet()
- owner.announce_objectives()
-
-/datum/antagonist/sintouched/roundend_report()
- return printplayer(owner)
-
-/datum/antagonist/sintouched/admin_add(datum/mind/new_owner,mob/admin)
- var/choices = sins + "Random"
- var/chosen_sin = input(admin,"What kind ?","Sin kind") as null|anything in sortList(choices)
- if(!chosen_sin)
- return
- if(chosen_sin in sins)
- sin = chosen_sin
- . = ..()
-
-/datum/antagonist/sintouched/apply_innate_effects(mob/living/mob_override)
- var/mob/living/M = mob_override || owner.current
- add_antag_hud(antag_hud_type, antag_hud_name, M)
-
-/datum/antagonist/sintouched/remove_innate_effects(mob/living/mob_override)
- var/mob/living/M = mob_override || owner.current
- remove_antag_hud(antag_hud_type, M)
-
-
-#undef SIN_ACEDIA
-#undef SIN_ENVY
-#undef SIN_GLUTTONY
-#undef SIN_GREED
-#undef SIN_PRIDE
-#undef SIN_SLOTH
-#undef SIN_WRATH
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
deleted file mode 100644
index 4703f95263f7..000000000000
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ /dev/null
@@ -1,221 +0,0 @@
-#define DEVIL_HANDS_LAYER 1
-#define DEVIL_HEAD_LAYER 2
-#define DEVIL_TOTAL_LAYERS 2
-
-
-/mob/living/carbon/true_devil
- name = "True Devil"
- desc = "A pile of infernal energy, taking a vaguely humanoid form."
- icon = 'icons/mob/32x64.dmi'
- icon_state = "true_devil"
- gender = NEUTER
- health = 350
- maxHealth = 350
- ventcrawler = VENTCRAWLER_NONE
- density = TRUE
- pass_flags = 0
- sight = (SEE_TURFS | SEE_OBJS)
- status_flags = CANPUSH
- mob_size = MOB_SIZE_LARGE
- held_items = list(null, null)
- bodyparts = list(
- /obj/item/bodypart/chest/devil,
- /obj/item/bodypart/head/devil,
- /obj/item/bodypart/l_arm/devil,
- /obj/item/bodypart/r_arm/devil,
- /obj/item/bodypart/leg/right/devil,
- /obj/item/bodypart/leg/left/devil,
- )
- hud_type = /datum/hud/devil
- var/ascended = FALSE
- var/mob/living/oldform
- var/list/devil_overlays[DEVIL_TOTAL_LAYERS]
-
-/mob/living/carbon/true_devil/Initialize()
- create_bodyparts() //initialize bodyparts
- create_internal_organs()
- grant_all_languages()
- . = ..()
- ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
-
-/mob/living/carbon/true_devil/create_internal_organs()
- internal_organs += new /obj/item/organ/brain
- internal_organs += new /obj/item/organ/tongue
- internal_organs += new /obj/item/organ/eyes
- internal_organs += new /obj/item/organ/ears/invincible //Prevents hearing loss from poorly aimed fireballs.
- ..()
-
-/mob/living/carbon/true_devil/proc/convert_to_archdevil()
- maxHealth = 500 // not an IMPOSSIBLE amount, but still near impossible.
- ascended = TRUE
- health = maxHealth
- icon_state = "arch_devil"
-
-/mob/living/carbon/true_devil/proc/set_devil_name()
- var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil)
- name = devilinfo.truename
- real_name = name
-
-/mob/living/carbon/true_devil/Login()
- . = ..()
- if(!. || !client)
- return FALSE
- var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil)
- devilinfo.greet()
- mind.announce_objectives()
-
-/mob/living/carbon/true_devil/death(gibbed)
- set_stat(DEAD)
- ..(gibbed)
- drop_all_held_items()
- INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src)
-
-
-/mob/living/carbon/true_devil/examine(mob/user)
- . = list("This is [icon2html(src, user)] [src]!")
-
- //Left hand items
- for(var/obj/item/I in held_items)
- if(!(I.item_flags & ABSTRACT))
- . += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
-
- //Braindead
- if(!client && stat != DEAD)
- . += "The devil seems to be in deep contemplation."
-
- //Damaged
- if(stat == DEAD)
- . += "The hellfire seems to have been extinguished, for now at least."
- else if(health < (maxHealth/10))
- . += "You can see hellfire inside its gaping wounds."
- else if(health < (maxHealth/2))
- . += "You can see hellfire inside its wounds."
- . += ""
-
-/mob/living/carbon/true_devil/IsAdvancedToolUser()
- return 1
-
-/mob/living/carbon/true_devil/resist_buckle()
- if(buckled)
- buckled.user_unbuckle_mob(src,src)
- visible_message("[src] easily breaks out of [p_their()] handcuffs!", \
- "With just a thought your handcuffs fall off.")
-
-/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE)
- if(incapacitated())
- to_chat(src, "You can't do that right now!")
- return FALSE
- if(be_close && !in_range(M, src))
- to_chat(src, "You are too far away!")
- return FALSE
- return TRUE
-
-/mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null)
- return 666
-
-/mob/living/carbon/true_devil/soundbang_act()
- return 0
-
-/mob/living/carbon/true_devil/get_ear_protection()
- return 2
-
-
-/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone)
- apply_damage(I.force, I.damtype, def_zone)
- var/message_verb = ""
- if(I.attack_verb && I.attack_verb.len)
- message_verb = "[pick(I.attack_verb)]"
- else if(I.force)
- message_verb = "attacked"
-
- var/attack_message = "[src] has been [message_verb] with [I]."
- if(user)
- user.do_attack_animation(src)
- if(user in viewers(src, null))
- attack_message = "[user] has [message_verb] [src] with [I]!"
- if(message_verb)
- visible_message("[attack_message]",
- "[attack_message]", null, COMBAT_MESSAGE_RANGE)
- return TRUE
-
-/mob/living/carbon/true_devil/singularity_act()
- if(ascended)
- return 0
- return ..()
-
-//ATTACK GHOST IGNORING PARENT RETURN VALUE
-/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob)
- if(ascended || user.mind.soulOwner == src.mind)
- var/mob/living/simple_animal/imp/S = new(get_turf(loc))
- S.key = user.key
- var/datum/antagonist/imp/A = new()
- S.mind.add_antag_datum(A)
- to_chat(S, S.playstyle_string)
- else
- return ..()
-
-/mob/living/carbon/true_devil/can_be_revived()
- return 1
-
-/mob/living/carbon/true_devil/resist_fire()
- //They're immune to fire.
-
-/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M)
- . = ..()
- if(.)
- switch(M.a_intent)
- if ("harm")
- var/damage = rand(1, 5)
- playsound(loc, "punch", 25, TRUE, -1)
- visible_message("[M] punches [src]!", \
- "[M] punches you!")
- adjustBruteLoss(damage)
- log_combat(M, src, "attacked")
- updatehealth()
- if ("disarm")
- if (!(mobility_flags & MOBILITY_STAND) && !ascended) //No stealing the arch devil's pitchfork.
- if (prob(5))
- Unconscious(40)
- playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
- log_combat(M, src, "pushed")
- visible_message("[M] pushes [src] down!", \
- "[M] pushes you down!")
- else
- if (prob(25))
- dropItemToGround(get_active_held_item())
- playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
- visible_message("[M] disarms [src]!", \
- "[M] disarms you!")
- else
- playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1)
- visible_message("[M] fails to disarm [src]!", \
- "[M] fails to disarm you!")
-
-/mob/living/carbon/true_devil/handle_breathing()
- // devils do not need to breathe
-
-/mob/living/carbon/true_devil/is_literate()
- return TRUE
-
-/mob/living/carbon/true_devil/ex_act(severity, ex_target)
- if(!ascended)
- var/b_loss
- switch (severity)
- if (EXPLODE_DEVASTATE)
- b_loss = 500
- if (EXPLODE_HEAVY)
- b_loss = 150
- if (EXPLODE_LIGHT)
- b_loss = 30
- adjustBruteLoss(b_loss)
- return ..()
-
-
-/mob/living/carbon/true_devil/update_body() //we don't use the bodyparts layer for devils.
- return
-
-/mob/living/carbon/true_devil/update_body_parts()
- return
-
-/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays.
- return
diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm
deleted file mode 100644
index a3d0dbdf582b..000000000000
--- a/code/modules/antagonists/devil/true_devil/inventory.dm
+++ /dev/null
@@ -1,48 +0,0 @@
-/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, silent = FALSE)
- if(..())
- update_inv_hands()
- return 1
- return 0
-
-/mob/living/carbon/true_devil/update_inv_hands()
- //TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_overlay should use the down sprite when facing down, left, or right, and the up sprite when facing up.
- remove_overlay(DEVIL_HANDS_LAYER)
- var/list/hands_overlays = list()
- var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now.
- var/obj/item/r_hand = get_item_for_held_index(2)
-
- if(r_hand)
- var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
-
- hands_overlays += r_hand_overlay
-
- if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
- r_hand.layer = ABOVE_HUD_LAYER
- r_hand.plane = ABOVE_HUD_PLANE
- r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
- client.screen |= r_hand
-
- if(l_hand)
- var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
-
- hands_overlays += l_hand_overlay
-
- if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
- l_hand.layer = ABOVE_HUD_LAYER
- l_hand.plane = ABOVE_HUD_PLANE
- l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
- client.screen |= l_hand
- if(hands_overlays.len)
- devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays
- apply_overlay(DEVIL_HANDS_LAYER)
-
-/mob/living/carbon/true_devil/remove_overlay(cache_index)
- var/I = devil_overlays[cache_index]
- if(I)
- cut_overlay(I)
- devil_overlays[cache_index] = null
-
-
-/mob/living/carbon/true_devil/apply_overlay(cache_index)
- if((. = devil_overlays[cache_index]))
- add_overlay(.)
diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm
index cb0cc12be0b4..d96e39733efd 100644
--- a/code/modules/antagonists/disease/disease_datum.dm
+++ b/code/modules/antagonists/disease/disease_datum.dm
@@ -86,13 +86,3 @@
/datum/objective/disease_infect_centcom
explanation_text = "Ensure that at least one infected host escapes on the shuttle or an escape pod."
-
-/datum/objective/disease_infect_centcom/check_completion()
- var/mob/camera/disease/D = owner.current
- if(!istype(D))
- return FALSE
- for(var/V in D.hosts)
- var/mob/living/L = V
- if(L.onCentCom() || L.onSyndieBase())
- return TRUE
- return FALSE
diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm
index 25b0b4e1f8cc..9b06d144bafd 100644
--- a/code/modules/antagonists/ert/ert.dm
+++ b/code/modules/antagonists/ert/ert.dm
@@ -7,7 +7,7 @@
name = "Emergency Response Officer"
var/datum/team/ert/ert_team
var/leader = FALSE
- var/datum/outfit/outfit = /datum/outfit/centcom/ert/security
+ var/datum/outfit/outfit = /datum/outfit/job/independent/ert
var/role = "Security Officer"
var/list/name_source
var/random_names = TRUE
@@ -60,9 +60,9 @@
var/missiondesc = "Your team is being sent to [station_name()].
"
if(leader) //If Squad Leader
- missiondesc += " Lead your team to ensure the completion of your objectives."
+ missiondesc += "Lead your team to ensure the completion of your objectives."
else
- missiondesc += " Follow orders given to you by your squad leader."
+ missiondesc += "Follow orders given to you by your squad leader."
if(deathsquad)
missiondesc += "Leave no witnesses."
diff --git a/code/modules/antagonists/ert/frontiersmen.dm b/code/modules/antagonists/ert/frontiersmen.dm
index d6a1a5182cf0..da1cb0c6812c 100644
--- a/code/modules/antagonists/ert/frontiersmen.dm
+++ b/code/modules/antagonists/ert/frontiersmen.dm
@@ -18,31 +18,53 @@
missiondesc += "
Your Mission: [ert_team.mission.explanation_text]"
to_chat(owner,missiondesc)
+/datum/antagonist/ert/frontier/skm
+ outfit = /datum/outfit/job/frontiersmen/ert/skm
+
+/datum/antagonist/ert/frontier/unarmed
+ outfit = /datum/outfit/job/frontiersmen/ert/unarmed
+
/datum/antagonist/ert/frontier/random
outfit = /datum/outfit/job/frontiersmen/ert/random
+// officers
+
/datum/antagonist/ert/frontier/leader
name = "Frontiersmen Officer"
outfit = /datum/outfit/job/frontiersmen/ert/leader
role = "Officer"
-/datum/antagonist/ert/frontier/leader/unnarmed
- outfit = /datum/outfit/job/frontiersmen/ert/leader/unnarmed
+/datum/antagonist/ert/frontier/leader/heavy
+ outfit = /datum/outfit/job/frontiersmen/ert/leader/heavy
+
+/datum/antagonist/ert/frontier/leader/unarmed
+ outfit = /datum/outfit/job/frontiersmen/ert/leader/unarmed
+
+// doctors
/datum/antagonist/ert/frontier/medic
name = "Frontiersmen Medic"
outfit = /datum/outfit/job/frontiersmen/ert/medic
role = "Stretcher-Bearer"
+/datum/antagonist/ert/frontier/medic/heavy
+ outfit = /datum/outfit/job/frontiersmen/ert/medic/heavy
+
+// engineers
+
/datum/antagonist/ert/frontier/engineer
name = "Frontiersmen Engineer"
outfit = /datum/outfit/job/frontiersmen/ert/engineer
role = "Sapper"
-/datum/antagonist/ert/frontier/better
- name = "Frontiersmen Grunt"
- outfit = /datum/outfit/job/frontiersmen/ert/grunt/skm
+// heavy weapons guy
+
+/datum/antagonist/ert/frontier/flamer
+ name = "Frontiersmen Flametrooper"
+ outfit = /datum/outfit/job/frontiersmen/ert/flamer
+ role = "Flametrooper"
-/datum/antagonist/ert/frontier/unnarmed
- name = "Frontiersmen Grunt"
- outfit = /datum/outfit/job/frontiersmen/ert/grunt
+/datum/antagonist/ert/frontier/sentry
+ name = "Frontiersmen Sentry"
+ outfit = /datum/outfit/job/frontiersmen/ert/sentry
+ role = "Sentinel"
diff --git a/code/modules/antagonists/ert/gezena.dm b/code/modules/antagonists/ert/gezena.dm
new file mode 100644
index 000000000000..73ac1eb9ddba
--- /dev/null
+++ b/code/modules/antagonists/ert/gezena.dm
@@ -0,0 +1,29 @@
+/datum/antagonist/ert/gezena
+ name = "PGF Marine"
+ outfit = /datum/outfit/job/gezena/ert
+ role = "Rifleman"
+
+/datum/antagonist/ert/gezena/leader
+ name = "PGF Sergeant"
+ outfit = /datum/outfit/job/gezena/ert/leader
+ role = "Gunnery Sergeant"
+
+/datum/antagonist/ert/gezena/engineer
+ name = "PGF Combat Engineer"
+ outfit = /datum/outfit/job/gezena/ert/engineer
+ role = "Engineer"
+
+/datum/antagonist/ert/gezena/gunner
+ name = "PGF Gunner"
+ outfit = /datum/outfit/job/gezena/ert/gunner
+ role = "Machinegunner"
+
+/datum/antagonist/ert/gezena/medic
+ name = "PGF Corpsman"
+ outfit = /datum/outfit/job/gezena/ert/medic
+ role = "Corpsman"
+
+/datum/antagonist/ert/gezena/inspector
+ name = "PGF Naval Observer"
+ outfit = /datum/outfit/job/gezena/ert/inspector
+ role = "Observer"
diff --git a/code/modules/antagonists/ert/indie.dm b/code/modules/antagonists/ert/indie.dm
index 265af27bd2d4..d56a6ea84e78 100644
--- a/code/modules/antagonists/ert/indie.dm
+++ b/code/modules/antagonists/ert/indie.dm
@@ -8,7 +8,7 @@
role = "Security Officer"
/datum/antagonist/ert/independent/greet()
- to_chat(owner, "You are the [name].")
+ to_chat(owner, "You are \a [name].")
var/missiondesc = "You are one of the many Independent contractors, workers and students on [station_name()].
"
if(leader) //If Squad Leader
missiondesc += "Lead your team to complete your objectives."
@@ -23,6 +23,9 @@
outfit = /datum/outfit/job/independent/ert/emt
role = "Paramedic"
+/datum/antagonist/ert/independent/emt/eva
+ outfit = /datum/outfit/job/independent/ert/emt/eva
+
/datum/antagonist/ert/independent/firefighter
name = "Independent Firefighter"
outfit = /datum/outfit/job/independent/ert/firefighter
@@ -42,3 +45,18 @@
name = "Independent Technician"
outfit = /datum/outfit/job/independent/ert/technician
role = "Technician"
+
+/datum/antagonist/ert/independent/deathsquad
+ name = "Deathsquad Commando"
+ outfit = /datum/outfit/job/independent/ert/deathsquad
+ role = "Commando"
+
+/datum/antagonist/ert/independent/pizza
+ name = "Pizza Delivery Worker"
+ outfit = /datum/outfit/job/independent/ert/pizza
+ role = "Delivery Worker"
+
+/datum/antagonist/ert/independent/janitor
+ name = "Independent Sanitation Technician"
+ outfit = /datum/outfit/job/independent/ert/janitor
+ role = "Sanitation Technician"
diff --git a/code/modules/antagonists/ert/inteq.dm b/code/modules/antagonists/ert/inteq.dm
index f4636487da5f..6666c626c8c0 100644
--- a/code/modules/antagonists/ert/inteq.dm
+++ b/code/modules/antagonists/ert/inteq.dm
@@ -1,10 +1,9 @@
/datum/antagonist/ert/inteq
name = "Inteq Mercenary"
- outfit = /datum/outfit/job/inteq/security
+ outfit = /datum/outfit/job/inteq/ert
random_names = TRUE
role = "Enforcer"
-
/datum/antagonist/ert/inteq/greet()
to_chat(owner, "You are the [name].")
var/missiondesc = "You're one of the many mercenaries under the Inteq Risk Management Group sent to [station_name()].
"
@@ -18,7 +17,40 @@
missiondesc += "
Contract Terms: [ert_team.mission.explanation_text]"
to_chat(owner,missiondesc)
+/datum/antagonist/ert/inteq/eva
+ outfit = /datum/outfit/job/inteq/ert/eva
+
/datum/antagonist/ert/inteq/leader
name = "Inteq Mercenary Leader"
- outfit = /datum/outfit/job/inteq/captain/empty
+ outfit = /datum/outfit/job/inteq/ert/leader
role = "Vanguard"
+
+/datum/antagonist/ert/inteq/leader/eva
+ outfit = /datum/outfit/job/inteq/ert/leader/eva
+
+/datum/antagonist/ert/inteq/medic
+ name = "Inteq Corpsman"
+ outfit = /datum/outfit/job/inteq/ert/medic
+ role = "Corpsman"
+
+/datum/antagonist/ert/inteq/medic/eva
+ outfit = /datum/outfit/job/inteq/ert/medic/eva
+
+/datum/antagonist/ert/inteq/engineer
+ name = "Inteq Artificer"
+ outfit = /datum/outfit/job/inteq/ert/engineer
+ role = "Artificer"
+
+/datum/antagonist/ert/inteq/engineer/eva
+ outfit = /datum/outfit/job/inteq/ert/engineer/eva
+
+/datum/antagonist/ert/inteq/honor_guard
+ name = "Inteq Honor Guard"
+ outfit = /datum/outfit/job/inteq/ert/honor_guard
+ role = "Guardsman"
+
+/datum/antagonist/ert/inteq/inspector
+ name = "Mothership Investigator"
+ outfit = /datum/outfit/job/inteq/ert/inspector
+ random_names = FALSE
+ role = "Investigator"
diff --git a/code/modules/antagonists/ert/minutemen.dm b/code/modules/antagonists/ert/minutemen.dm
index 069ab6625c32..5e772227fd65 100644
--- a/code/modules/antagonists/ert/minutemen.dm
+++ b/code/modules/antagonists/ert/minutemen.dm
@@ -3,17 +3,20 @@
// ********************************************************************
/datum/antagonist/ert/minutemen
- name = "CLIP Minutemen"
+ name = "C-MM Minuteman"
outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/armed
role = "Minuteman"
+/datum/antagonist/ert/minutemen/eva
+ outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/hardsuit
+
/datum/antagonist/ert/minutemen/greet()
to_chat(owner, "You are \the [role].")
- var/missiondesc = "You serve in the armed forced of the Confederated League of Independent Planets (CLIP), an independent government. You are being deployed to the sector of [station_name()].
"
+ var/missiondesc = "You serve in the Colonial Minutemen, the armed forces of the Confederated League of Independent Planets. You are being deployed to the sector of [station_name()].
"
if(leader) //If Squad Leader
missiondesc += "Lead your squad to complete all objectives."
else
- missiondesc += "Follow orders given to you by your Leader, the Sergent."
+ missiondesc += "Follow orders given to you by your squadron leader."
if(deathsquad)
missiondesc += "You have been given the order to fire at will."
@@ -21,70 +24,82 @@
to_chat(owner,missiondesc)
/datum/antagonist/ert/minutemen/leader
- name = "CLIP Minutemen Field Sergeant"
+ name = "C-MM Sergeant"
leader = TRUE
outfit = /datum/outfit/job/clip/minutemen/grunt/lead
role = "Sergeant"
+/datum/antagonist/ert/minutemen/leader/eva
+ outfit = /datum/outfit/job/clip/minutemen/grunt/lead/armed/hardsuit
+
/datum/antagonist/ert/minutemen/corpsman
+ name = "C-MM Field Corpsman"
outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/med/armed
- role = "Field Corpsman"
+ role = "Corpsman"
/datum/antagonist/ert/minutemen/engi
+ name = "C-MM Field Engineer"
outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/engi/armed
- role = "Field Engineer"
+ role = "Engineer"
/datum/antagonist/ert/minutemen/gunner
+ name = "C-MM Machinegunner"
outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/gunner_armed
role = "Field Gunner"
/datum/antagonist/ert/minutemen/bard
- name = "BARD Infantry"
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/bard
- role = "Minuteman"
+ name = "BARD Field Agent"
+ outfit = /datum/outfit/job/clip/minutemen/bard
+ role = "Agent"
+
+/datum/antagonist/ert/minutemen/bard/emergency
+ name = "BARD Xenofauna Specialist"
+ outfit = /datum/outfit/job/clip/minutemen/bard/emergency
+ role = "Specialist"
/datum/antagonist/ert/minutemen/bard/flamer
- name = "BARD Flamethrower Infantry"
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/bard/flamer
+ name = "BARD Fire Control Specialist"
+ outfit = /datum/outfit/job/clip/minutemen/bard/emergency/flamer
+ role = "Fire Specialist"
/datum/antagonist/ert/minutemen/bard/medic
- name = "BARD Corpsman"
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/bard/medic
- role = "Corpsman"
+ name = "BARD Medical Aid Specialist"
+ outfit = /datum/outfit/job/clip/minutemen/bard/emergency/medic
+ role = "Medical Specialist"
-/datum/antagonist/ert/minutemen/bard/leader
- name = "BARD Sergeant"
+/datum/antagonist/ert/minutemen/bard/emergency/leader
+ name = "BARD Master Sergeant"
leader = TRUE
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/bard/leader
- role = "Sergeant"
+ outfit = /datum/outfit/job/clip/minutemen/bard/emergency/leader
+ role = "Master Sergeant"
-/datum/antagonist/ert/minutemen/riot
- name = "Riot Officer"
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/riot
- role = "Minuteman"
+/datum/antagonist/ert/minutemen/military_police
+ name = "C-MM Military Police"
+ outfit = /datum/outfit/job/clip/minutemen/military_police
+ role = "Officer"
-/datum/antagonist/ert/minutemen/riot/leader
- name = "Riot Sergeant"
+/datum/antagonist/ert/minutemen/military_police/riot
+ outfit = /datum/outfit/job/clip/minutemen/military_police/riot
+
+/datum/antagonist/ert/minutemen/military_police/leader
+ name = "C-MM Chief Military Police"
leader = TRUE
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/riot/leader
- role = "Sergeant"
+ outfit = /datum/outfit/job/clip/minutemen/military_police/leader
+ role = "Chief Officer"
+
+/datum/antagonist/ert/minutemen/military_police/leader/riot
+ outfit = /datum/outfit/job/clip/minutemen/military_police/leader/riot
-/datum/antagonist/ert/official/minutemen
+/datum/antagonist/ert/minutemen/inspector
name = "GOLD Inspector"
- outfit = /datum/outfit/job/clip/investigator
+ outfit = /datum/outfit/job/clip/investigator/cm5
role = "Lieutenant"
-/datum/antagonist/ert/official/minutemen/greet()
- to_chat(owner, "You are the GOLD Inspector.")
+/datum/antagonist/ert/minutemen/inspector/greet()
+ to_chat(owner, "You are a Labor Division Inspector.")
to_chat(owner, "You are part of The Galactic Optimum Labor Division, a division of the CLIP Government. Your task: [ert_team.mission.explanation_text]")
-/datum/antagonist/ert/minutemen/eva
- name = "CLIP Minutemen"
- outfit = /datum/outfit/job/clip/minutemen/grunt/dressed/hardsuit
- role = "Minuteman"
-
-/datum/antagonist/ert/minutemen/eva/leader
- name = "CLIP Minutemen Field Sergeant"
- leader = TRUE
- outfit = /datum/outfit/job/clip/minutemen/grunt/lead/armed/hardsuit
- role = "Sergeant"
+/datum/antagonist/ert/minutemen/correspondant
+ name = "C-MM War Correspondant"
+ outfit = /datum/outfit/job/clip/correspondant
+ role = "Correspondant"
diff --git a/code/modules/antagonists/ert/nanotrasen.dm b/code/modules/antagonists/ert/nanotrasen.dm
index 11537e4bcea9..9ea1aa422162 100644
--- a/code/modules/antagonists/ert/nanotrasen.dm
+++ b/code/modules/antagonists/ert/nanotrasen.dm
@@ -1,152 +1,39 @@
-// Official
-/datum/antagonist/ert/official
- name = "CentCom Official"
- show_name_in_check_antagonists = TRUE
- var/datum/objective/mission
- role = "Inspector"
- random_names = FALSE
- outfit = /datum/outfit/centcom/centcom_official
-
-/datum/antagonist/ert/official/greet()
- to_chat(owner, "You are a CentCom Official.")
- if (ert_team)
- to_chat(owner, "Central Command is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
- else
- to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission.explanation_text]")
-
-/datum/antagonist/ert/official/forge_objectives()
- if (ert_team)
- return ..()
- if(mission)
- return
- var/datum/objective/missionobj = new ()
- missionobj.owner = owner
- missionobj.explanation_text = "Conduct a routine performance review of [station_name()]'s vessels."
- missionobj.completed = TRUE
- mission = missionobj
- objectives |= mission
-
-// Standard ERT
-
-/datum/antagonist/ert/security // kinda handled by the base template but here for completion
-
-/datum/antagonist/ert/security/red
- outfit = /datum/outfit/centcom/ert/security/alert
-
-/datum/antagonist/ert/engineer
- role = "Engineer"
- outfit = /datum/outfit/centcom/ert/engineer
-
-/datum/antagonist/ert/engineer/red
- outfit = /datum/outfit/centcom/ert/engineer/alert
-
-/datum/antagonist/ert/medic
- role = "Medical Officer"
- outfit = /datum/outfit/centcom/ert/medic
-
-/datum/antagonist/ert/medic/red
- outfit = /datum/outfit/centcom/ert/medic/alert
-
-/datum/antagonist/ert/commander
- role = "Commander"
- outfit = /datum/outfit/centcom/ert/commander
-
-/datum/antagonist/ert/commander/red
- outfit = /datum/outfit/centcom/ert/commander/alert
-
-// Deathsquad
-
-/datum/antagonist/ert/deathsquad
- name = "Deathsquad Trooper"
- outfit = /datum/outfit/centcom/death_commando
- role = "Trooper"
- deathsquad = TRUE
-
-/datum/antagonist/ert/deathsquad/leader
- name = "Deathsquad Officer"
- outfit = /datum/outfit/centcom/death_commando
- role = "Officer"
-
-/datum/antagonist/ert/deathsquad/New()
- . = ..()
- name_source = GLOB.commando_names
-
-/datum/antagonist/ert/deathsquad/apply_innate_effects(mob/living/mob_override)
- ADD_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT)
-
-/datum/antagonist/ert/deathsquad/remove_innate_effects(mob/living/mob_override)
- REMOVE_TRAIT(owner, TRAIT_DISK_VERIFIER, DEATHSQUAD_TRAIT)
-
-// Janitor
-
-/datum/antagonist/ert/janitor
- role = "Janitor"
- outfit = /datum/outfit/centcom/ert/janitor
-
-/datum/antagonist/ert/janitor/heavy
- role = "Heavy Duty Janitor"
- outfit = /datum/outfit/centcom/ert/janitor/heavy
-
-// Intern
-
-/datum/antagonist/ert/intern
- name = "CentCom Intern"
- outfit = /datum/outfit/centcom/centcom_intern
- random_names = FALSE
- role = "Intern"
-
-/datum/antagonist/ert/intern/leader
- name = "CentCom Head Intern"
- outfit = /datum/outfit/centcom/centcom_intern/leader
- role = "Head Intern"
-
-/datum/antagonist/ert/intern/unarmed
- outfit = /datum/outfit/centcom/centcom_intern/unarmed
-
-/datum/antagonist/ert/intern/leader/unarmed
- outfit = /datum/outfit/centcom/centcom_intern/leader/unarmed
-
-// Marine
-
-/datum/antagonist/ert/marine
- name = "Marine Commander"
- outfit = /datum/outfit/centcom/ert/marine
- role = "Commander"
-
-/datum/antagonist/ert/marine/security
- name = "Marine Heavy"
- outfit = /datum/outfit/centcom/ert/marine/security
- role = "Trooper"
-
-/datum/antagonist/ert/marine/engineer
- name = "Marine Engineer"
- outfit = /datum/outfit/centcom/ert/marine/engineer
- role = "Engineer"
-
-/datum/antagonist/ert/marine/medic
- name = "Marine Medic"
- outfit = /datum/outfit/centcom/ert/marine/medic
- role = "Medical Officer"
-
-// Loss Prevention
-
-/datum/antagonist/ert/lp
- name = "Loss Prevention Security Specialist"
- outfit = /datum/outfit/job/nanotrasen/security/ert/lp
- role = "Security Specialist"
-
-/datum/antagonist/ert/lp/medic
- name = "Loss Prevention Medical Specialist"
- outfit = /datum/outfit/job/nanotrasen/security/ert/lp/medic
- role = "Medical Specialist"
-
-/datum/antagonist/ert/lp/engineer
- name = "Loss Prevention Engineering Specialist"
- outfit = /datum/outfit/job/nanotrasen/security/ert/lp/engineer
- role = "Engineering Specialist"
-
-/datum/antagonist/ert/lp/lieutenant
- name = "Loss Prevention Lieutenant"
- leader = TRUE
- outfit = /datum/outfit/job/nanotrasen/security/ert/lp/lieutenant
- role = "Lieutenant"
+/datum/antagonist/ert/nanotrasen
+ name = "Vigilitas Security Officer"
+ outfit = /datum/outfit/job/nanotrasen/ert
+ role = "Security Officer"
+
+/datum/antagonist/ert/nanotrasen/delivery
+ name = "N+S Cargo Technician"
+ outfit = /datum/outfit/job/nanotrasen/cargo_tech
+ role = "Cargo Technician"
+
+/datum/antagonist/ert/nanotrasen/inspector
+ name = "Nanotrasen Central Command Liaison"
+ outfit = /datum/outfit/job/nanotrasen/ert/inspector
+ role = "Liaison"
+
+// /datum/antagonist/ert/nanotrasen/emergency
+// name = "Vigilitas Response Officer"
+// outfit = /datum/outfit/job/nanotrasen/ert/emergency
+// role = "Response Officer"
+
+/datum/antagonist/ert/nanotrasen/leader
+ name = "Vigilitas Security Corporal"
+ outfit = /datum/outfit/job/nanotrasen/ert/leader
+ role = "Corporal"
+
+// /datum/antagonist/ert/nanotrasen/leader/emergency
+// name = "Vigilitas Response Lieutenant"
+// outfit = /datum/outfit/job/nanotrasen/ert/leader/emergency
+// role = "Lieutenant"
+
+// /datum/antagonist/ert/nanotrasen/medic/emergency
+// name = "Vigilitas Medical Response Officer"
+// outfit = /datum/outfit/job/nanotrasen/ert/medic/emergency
+// role = "Medic"
+
+// /datum/antagonist/ert/nanotrasen/emergency/engineer
+// name = "Vigilitas Engineering Response Officer"
+// outfit = /datum/outfit/job/nanotrasen/ert/emergency/engineer
+// role = "Engineer"
diff --git a/code/modules/antagonists/ert/roumain.dm b/code/modules/antagonists/ert/roumain.dm
new file mode 100644
index 000000000000..d27c8f39e5c4
--- /dev/null
+++ b/code/modules/antagonists/ert/roumain.dm
@@ -0,0 +1,50 @@
+/datum/antagonist/ert/roumain
+ name = "Saint-Roumain Hunter"
+ outfit = /datum/outfit/job/roumain/ert
+ role = "Hunter"
+
+/datum/antagonist/ert/roumain/greet()
+ to_chat(owner, "You are the [role].")
+ var/missiondesc = "You are one of the devoted members of the Saint-Roumain Militia. You are being directed to the sector of [station_name()].
"
+ if(leader) //If Squad Leader
+ missiondesc += "Lead your squad to complete all objectives."
+ else
+ missiondesc += "Follow orders given to you by your Leader, the Montage."
+ if(deathsquad)
+ missiondesc += "You have been given the order to fire at will."
+
+ missiondesc += "
Your Mission: [ert_team.mission.explanation_text]"
+ to_chat(owner,missiondesc)
+
+/datum/antagonist/ert/roumain/vickland
+ outfit = /datum/outfit/job/roumain/ert/vickland
+
+/datum/antagonist/ert/roumain/firestorm
+ outfit = /datum/outfit/job/roumain/ert/firestorm
+
+/datum/antagonist/ert/roumain/scout
+ outfit = /datum/outfit/job/roumain/ert/scout
+
+/datum/antagonist/ert/roumain/leader
+ name = "Saint-Roumain Hunter Montagne"
+ leader = TRUE
+ outfit = /datum/outfit/job/roumain/ert/leader
+ role = "Hunter Montagne"
+
+/datum/antagonist/ert/roumain/leader/colligne
+ name = "Saint-Roumain Hunter Colligne"
+ outfit = /datum/outfit/job/roumain/ert/leader/colligne
+ role = "Hunter clligne"
+
+/datum/antagonist/ert/roumain/leader/twobore
+ outfit = /datum/outfit/job/roumain/ert/leader/twobore
+
+/datum/antagonist/ert/roumain/medic
+ name = "Saint-Roumain Hunter Doctor"
+ outfit = /datum/outfit/job/roumain/ert/medic
+ role = "Doctor"
+
+/datum/antagonist/ert/roumain/engineer
+ name = "Saint-Roumain Machinist"
+ outfit = /datum/outfit/job/roumain/ert/engineer
+ role = "Hunter"
diff --git a/code/modules/antagonists/ert/solgov.dm b/code/modules/antagonists/ert/solgov.dm
index 6868fe9eb9bf..c01f88a00962 100644
--- a/code/modules/antagonists/ert/solgov.dm
+++ b/code/modules/antagonists/ert/solgov.dm
@@ -7,14 +7,11 @@
random_names = FALSE
role = "Sonnensöldner"
-/datum/antagonist/ert/official/solgov
+/datum/antagonist/ert/solgov/inspector
name = "SolGov Inspector"
outfit = /datum/outfit/job/solgov/ert/inspector
role = "Solarian Inspector"
-/datum/antagonist/ert/official/solgov/greet()
- to_chat(owner, "You are a Solarian Inspector.")
- if (ert_team)
- to_chat(owner, "The Department of Administrative Affairs is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
- else
- to_chat(owner, "The Department of Administrative Affairs is sending you to [station_name()] with the task: [mission.explanation_text]")
+/datum/antagonist/ert/solgov/inspector/greet()
+ to_chat(owner, "You are the Solarian Inspector.")
+ to_chat(owner, "The Department of Administrative Affairs is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
diff --git a/code/modules/antagonists/ert/syndicate.dm b/code/modules/antagonists/ert/syndicate.dm
index ab8fa4abc5f7..7f2de02571b7 100644
--- a/code/modules/antagonists/ert/syndicate.dm
+++ b/code/modules/antagonists/ert/syndicate.dm
@@ -22,14 +22,23 @@
outfit = /datum/outfit/job/syndicate/ert/leader
role = "Sergeant"
-/datum/antagonist/ert/syndicate/gorlex
- name = "2nd Battlegroup Trooper"
- outfit = /datum/outfit/job/syndicate/ert/gorlex
- role = "Trooper"
+/datum/antagonist/ert/syndicate/inspector
+ name = "ACLF Inspector"
+ outfit = /datum/outfit/job/syndicate/ert/inspector
+ role = "Inspector"
+
+/datum/antagonist/ert/official/syndicate/greet()
+ to_chat(owner, "You are a mid-rank official from the Liberation Front.")
+ to_chat(owner, "The Syndicate Coalition is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
-/datum/antagonist/ert/syndicate/gorlex/greet()
+/datum/antagonist/ert/syndicate/ngr
+ name = "Gorlex Republic Serviceman"
+ outfit = /datum/outfit/job/syndicate/ert/ngr
+ role = "Serviceman"
+
+/datum/antagonist/ert/syndicate/ngr/greet()
to_chat(owner, "You are the [name].")
- var/missiondesc = "You're a soldier of the New Gorlex Republic sent to [station_name()].
"
+ var/missiondesc = "You're an enlistee of the New Gorlex Republic sent to [station_name()].
"
if(leader) //If Squad Leader
missiondesc += "Lead your team to ensure the completion of your objectives."
else
@@ -38,26 +47,31 @@
missiondesc += "
Your Mission: [ert_team.mission.explanation_text]"
to_chat(owner,missiondesc)
-/datum/antagonist/ert/syndicate/gorlex/pointman
- name = "Gorlex Republic Shotgunner"
- outfit = /datum/outfit/job/syndicate/ert/gorlex/pointman
- role = "Pointman"
+/datum/antagonist/ert/syndicate/ngr/grenadier
+ name = "Gorlex Republic Grenadier"
+ outfit = /datum/outfit/job/syndicate/ert/ngr/grenadier
+ role = "Grenadier"
-/datum/antagonist/ert/syndicate/gorlex/medic
- name = "Gorlex Republic Medic"
- outfit = /datum/outfit/job/syndicate/ert/gorlex/medic
+/datum/antagonist/ert/syndicate/ngr/medic
+ name = "Gorlex Republic Field Medic"
+ outfit = /datum/outfit/job/syndicate/ert/ngr/medic
role = "Medic"
-/datum/antagonist/ert/syndicate/gorlex/sniper
- name = "Gorlex Republic Sniper"
- outfit = /datum/outfit/job/syndicate/ert/gorlex/sniper
+/datum/antagonist/ert/syndicate/ngr/sniper
+ name = "Gorlex Republic Marksman"
+ outfit = /datum/outfit/job/syndicate/ert/ngr/sniper
role = "Marksman"
-/datum/antagonist/ert/syndicate/gorlex/leader
+/datum/antagonist/ert/syndicate/ngr/leader
name = "Gorlex Republic Sergeant"
leader = TRUE
- outfit = /datum/outfit/job/syndicate/ert/gorlex/leader
- role = "Sergeant"
+ outfit = /datum/outfit/job/syndicate/ert/ngr/leader
+ role = "Officer"
+
+/datum/antagonist/ert/syndicate/ngr/inspector
+ name = "Gorlex Republic Official"
+ outfit = /datum/outfit/job/syndicate/ert/ngr/inspector
+ role = "Official"
// cybersun
@@ -73,7 +87,7 @@
missiondesc += "Lead your team to ensure the completion of your objectives."
else
missiondesc += "Follow orders given to you by your Sergeant."
- if(prob(50) && !leader)
+ if(prob(50) && !leader && random_names)
missiondesc += "
In addition to your contract with Cybersun, you are also a Gorlex Hardliner. You do not like Cybersun, but you work with them regardless."
missiondesc += "
Your Mission: [ert_team.mission.explanation_text]"
@@ -107,16 +121,50 @@
outfit = /datum/outfit/job/syndicate/ert/cybersun/medic/leader
role = "Lead Medical Technician"
-// inspector
+/datum/antagonist/ert/syndicate/cybersun/inspector
+ name = "Cybersun Representative"
+ outfit = /datum/outfit/job/syndicate/ert/cybersun/inspector
+ role = "Representative"
-/datum/antagonist/ert/official/syndicate
- name = "Syndicate Inspector"
- outfit = /datum/outfit/job/syndicate/ert/inspector
- role = "Syndicate Inspector"
+/datum/antagonist/ert/syndicate/hardliner
+ name = "Hardliner Mercenary"
+ outfit = /datum/outfit/job/syndicate/ert/hardliner
+ role = "Mercenary"
-/datum/antagonist/ert/official/syndicate/greet()
- to_chat(owner, "You are a Syndicate Inspector.")
- if (ert_team)
- to_chat(owner, "The Syndicate Coalition is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
- else
- to_chat(owner, "The Syndicate Coalition is sending you to [station_name()] with the task: [mission.explanation_text]")
+/datum/antagonist/ert/syndicate/hardliner/medic
+ name = "Hardliner Medic"
+ outfit = /datum/outfit/job/syndicate/ert/hardliner/medic
+ role = "Medic"
+
+/datum/antagonist/ert/syndicate/hardliner/engineer
+ name = "Hardliner Mechanic"
+ outfit = /datum/outfit/job/syndicate/ert/hardliner/engineer
+ role = "Mechanic"
+
+/datum/antagonist/ert/syndicate/hardliner/leader
+ name = "Hardliner Sergeant"
+ leader = TRUE
+ outfit = /datum/outfit/job/syndicate/ert/hardliner/leader
+ role = "Sergeant"
+
+// ramzi
+
+/datum/antagonist/ert/syndicate/ramzi
+ name = "Ramzi Clique Cell Member"
+ outfit = /datum/outfit/job/syndicate/ert/ramzi
+ role = "Cell Member"
+
+/datum/antagonist/ert/syndicate/ramzi/medic
+ name = "Ramzi Clique Medic"
+ outfit = /datum/outfit/job/syndicate/ert/ramzi/medic
+ role = "Cell Medic"
+
+/datum/antagonist/ert/syndicate/ramzi/demolitionist
+ name = "Ramzi Clique Demolitonist"
+ outfit = /datum/outfit/job/syndicate/ert/ramzi/demolitionist
+ role = "Cell Demolitonist"
+
+/datum/antagonist/ert/syndicate/ramzi/leader
+ name = "Ramzi Clique Cell Leader"
+ outfit = /datum/outfit/job/syndicate/ert/ramzi/leader
+ role = "Cell Leader"
diff --git a/code/modules/antagonists/gang/outfits.dm b/code/modules/antagonists/gang/outfits.dm
index 77c091d2126a..f76bf026e12c 100644
--- a/code/modules/antagonists/gang/outfits.dm
+++ b/code/modules/antagonists/gang/outfits.dm
@@ -30,10 +30,7 @@
backpack_contents = list(/obj/item/storage/box/handcuffs = 1,
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
- /obj/item/shield/riot/tele = 1,
- /obj/item/ammo_box/magazine/m45 = 3,
- /obj/item/ammo_box/c45 = 2)
-
+ /obj/item/shield/riot/tele = 1)
/datum/outfit/families_police/beatcop/armored
name = "Families: Armored Beat Cop"
@@ -53,8 +50,7 @@
backpack_contents = list(/obj/item/storage/box/handcuffs = 1,
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
- /obj/item/shield/riot/tele = 1,
- /obj/item/storage/box/lethalshot = 2)
+ /obj/item/shield/riot/tele = 1)
/datum/outfit/families_police/beatcop/fbi
name = "Families: Space FBI Officer"
@@ -65,8 +61,7 @@
/obj/item/storage/box/teargas = 1,
/obj/item/storage/box/flashbangs = 1,
/obj/item/shield/riot/tele = 1,
- /obj/item/ammo_box/magazine/smgm9mm = 3,
- /obj/item/ammo_box/c9mm = 2)
+ /obj/item/ammo_box/magazine/smgm9mm = 3)
/datum/outfit/families_police/beatcop/military
name = "Families: Space Military"
diff --git a/code/modules/antagonists/morph/morph.dm b/code/modules/antagonists/morph/morph.dm
index 19b0cc891523..9f9d4140cc68 100644
--- a/code/modules/antagonists/morph/morph.dm
+++ b/code/modules/antagonists/morph/morph.dm
@@ -16,7 +16,7 @@
status_flags = CANPUSH
pass_flags = PASSTABLE
ventcrawler = VENTCRAWLER_ALWAYS
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxHealth = 150
health = 150
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
index 4fcceb227a77..88a3b176a2f7 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
@@ -87,7 +87,6 @@
C.visible_message("[C] coughs up a half-digested telecrystal","You cough up a half-digested telecrystal!")
break
- CONFIG_SET(number/shuttle_refuel_delay, max(CONFIG_GET(number/shuttle_refuel_delay), CHALLENGE_SHUTTLE_DELAY))
SSblackbox.record_feedback("amount", "nuclear_challenge_mode", 1)
qdel(src)
@@ -99,9 +98,6 @@
if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS)
to_chat(user, "The enemy crew is too small to be worth declaring war on.")
return FALSE
- if(!user.onSyndieBase())
- to_chat(user, "You have to be at your base to use this.")
- return FALSE
if(world.time-SSticker.round_start_time > CHALLENGE_TIME_LIMIT)
to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.")
return FALSE
diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
index c073a7c3521c..e18f6ff922e2 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm
@@ -473,8 +473,6 @@
off_station = NUKE_NEAR_MISS
if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE)))
off_station = NUKE_NEAR_MISS
- else if(bomb_location.onSyndieBase())
- off_station = NUKE_SYNDICATE_BASE
else
off_station = NUKE_MISS_STATION
@@ -525,6 +523,10 @@
return TRUE
return ..()
+/obj/machinery/nuclearbomb/beer/empty/Initialize()
+ . = ..()
+ keg.reagent_id = null
+
/obj/machinery/nuclearbomb/beer/actually_explode()
//Unblock roundend, we're not actually exploding.
SSticker.roundend_check_paused = FALSE
diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm
index 81f8facd465a..d348531bfabe 100644
--- a/code/modules/antagonists/revenant/revenant.dm
+++ b/code/modules/antagonists/revenant/revenant.dm
@@ -36,7 +36,7 @@
response_harm_simple = "punch through"
unsuitable_atmos_damage = 0
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) //I don't know how you'd apply those, but revenants no-sell them anyway.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = INFINITY
harm_intent_damage = 0
diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm
index ca568bce6316..c623376dbdac 100644
--- a/code/modules/antagonists/revenant/revenant_abilities.dm
+++ b/code/modules/antagonists/revenant/revenant_abilities.dm
@@ -248,7 +248,7 @@
qdel(B)
new /obj/effect/temp_visual/revenant(T)
- if(!isplatingturf(T) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15))
+ if(!isplatingturf(T) && isfloorturf(T) && prob(15))
var/turf/open/floor/floor = T
if(floor.intact && floor.floor_tile)
new floor.floor_tile(floor)
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index 595fbb27f61a..56e5d76fb654 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -23,7 +23,7 @@
attack_sound = 'sound/magic/demon_attack1.ogg'
var/feast_sound = 'sound/magic/demon_consume.ogg'
deathsound = 'sound/magic/demon_dies.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = INFINITY
faction = list("slaughter")
diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm
deleted file mode 100644
index ea6fe83c8a07..000000000000
--- a/code/modules/antagonists/swarmer/swarmer.dm
+++ /dev/null
@@ -1,677 +0,0 @@
-////Deactivated swarmer shell////
-/obj/item/deactivated_swarmer
- name = "deactivated swarmer"
- desc = "A shell of swarmer that was completely powered down. It can no longer activate itself."
- icon = 'icons/mob/swarmer.dmi'
- icon_state = "swarmer_unactivated"
- custom_materials = list(/datum/material/iron=10000, /datum/material/glass=4000)
-
-/obj/effect/mob_spawn/swarmer
- name = "unactivated swarmer"
- desc = "A currently unactivated swarmer. Swarmers can self activate at any time, so it would be wise to immediately dispose of this."
- icon = 'icons/mob/swarmer.dmi'
- icon_state = "swarmer_unactivated"
- density = FALSE
- anchored = FALSE
-
- mob_type = /mob/living/simple_animal/hostile/swarmer
- mob_name = "a swarmer"
- death = FALSE
- roundstart = FALSE
- short_desc = "You are a swarmer, a weapon of a long dead civilization."
- flavour_text = {"
- You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate.
- Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful.
- Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage.
- Objectives:
- 1. Consume resources and replicate until there are no more resources left.
- 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable.
- 3. Biological resources will be harvested at a later date; do not harm them.
- "}
-
-/obj/effect/mob_spawn/swarmer/Initialize()
- . = ..()
- var/area/A = get_area(src)
- if(A)
- notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE)
-
-/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user)
- . = ..()
- if(.)
- return
- to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.")
-
-/obj/effect/mob_spawn/swarmer/attackby(obj/item/W, mob/user, params)
- if(W.tool_behaviour == TOOL_SCREWDRIVER && user.a_intent != INTENT_HARM)
- user.visible_message("[usr.name] deactivates [src].",
- "After some fiddling, you find a way to disable [src]'s power source.",
- "You hear clicking.")
- new /obj/item/deactivated_swarmer(get_turf(src))
- qdel(src)
- else
- ..()
-
-////The Mob itself////
-
-/mob/living/simple_animal/hostile/swarmer
- name = "Swarmer"
- unique_name = 1
- icon = 'icons/mob/swarmer.dmi'
- desc = "Robotic constructs of unknown design, swarmers seek only to consume materials and replicate themselves indefinitely."
- speak_emote = list("tones")
- initial_language_holder = /datum/language_holder/swarmer
- bubble_icon = "swarmer"
- mob_biotypes = MOB_ROBOTIC
- health = 40
- maxHealth = 40
- status_flags = CANPUSH
- icon_state = "swarmer"
- icon_living = "swarmer"
- icon_dead = "swarmer_unactivated"
- icon_gib = null
- wander = 0
- harm_intent_damage = 5
- minbodytemp = 0
- maxbodytemp = 500
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- unsuitable_atmos_damage = 0
- melee_damage_lower = 15
- melee_damage_upper = 15
- melee_damage_type = STAMINA
- damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
- hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD)
- obj_damage = 0
- environment_smash = ENVIRONMENT_SMASH_NONE
- attack_verb_continuous = "shocks"
- attack_verb_simple = "shock"
- attack_sound = 'sound/effects/empulse.ogg'
- friendly_verb_continuous = "pinches"
- friendly_verb_simple = "pinch"
- speed = 0
- faction = list("swarmer")
- AIStatus = AI_OFF
- pass_flags = PASSTABLE
- mob_size = MOB_SIZE_TINY
- ventcrawler = VENTCRAWLER_ALWAYS
- ranged = 1
- projectiletype = /obj/projectile/beam/disabler
- ranged_cooldown_time = 20
- projectilesound = 'sound/weapons/taser2.ogg'
- loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal)
- del_on_death = 1
- deathmessage = "explodes with a sharp pop!"
- light_color = LIGHT_COLOR_CYAN
- hud_type = /datum/hud/swarmer
- speech_span = SPAN_ROBOT
- var/resources = 0 //Resource points, generated by consuming metal/glass
- var/max_resources = 100
-
-/mob/living/simple_animal/hostile/swarmer/Initialize()
- . = ..()
- verbs -= /mob/living/verb/pulled
- for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds)
- diag_hud.add_to_hud(src)
-
-/mob/living/simple_animal/hostile/swarmer/med_hud_set_health()
- var/image/holder = hud_list[DIAG_HUD]
- var/icon/I = icon(icon, icon_state, dir)
- holder.pixel_y = I.Height() - world.icon_size
- holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]"
-
-/mob/living/simple_animal/hostile/swarmer/med_hud_set_status()
- var/image/holder = hud_list[DIAG_STAT_HUD]
- var/icon/I = icon(icon, icon_state, dir)
- holder.pixel_y = I.Height() - world.icon_size
- holder.icon_state = "hudstat"
-
-/mob/living/simple_animal/hostile/swarmer/Stat()
- ..()
- if(statpanel("Status"))
- stat("Resources:",resources)
-
-/mob/living/simple_animal/hostile/swarmer/emp_act()
- . = ..()
- if(. & EMP_PROTECT_SELF)
- return
- if(health > 1)
- adjustHealth(health-1)
- else
- death()
-
-/mob/living/simple_animal/hostile/swarmer/CanAllowThrough(atom/movable/O)
- . = ..()
- if(istype(O, /obj/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other
- return TRUE
- if(isswarmer(O))
- return TRUE
-
-////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S////
-/mob/living/simple_animal/hostile/swarmer/AttackingTarget()
- if(!isliving(target))
- return target.swarmer_act(src)
- else
- return ..()
-
-/mob/living/simple_animal/hostile/swarmer/CtrlClickOn(atom/A)
- face_atom(A)
- if(!isturf(loc))
- return
- if(next_move > world.time)
- return
- if(!A.Adjacent(src))
- return
- A.swarmer_act(src)
-
-/atom/proc/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE //return TRUE/FALSE whether or not an AI swarmer should try this swarmer_act() again, NOT whether it succeeded.
-
-/obj/effect/mob_spawn/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.Integrate(src)
- return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances.
-
-/obj/effect/mob_spawn/swarmer/IntegrateAmount()
- return 50
-
-/turf/closed/indestructible/swarmer_act()
- return FALSE
-
-/obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- if(resistance_flags & INDESTRUCTIBLE)
- return FALSE
- for(var/mob/living/L in contents)
- if(!issilicon(L) && !isbrain(L))
- to_chat(S, "An organism has been detected inside this object. Aborting.")
- return FALSE
- return ..()
-
-/obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- return S.Integrate(src)
-
-/atom/movable/proc/IntegrateAmount()
- return 0
-
-/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item
- if(custom_materials)
- if(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] || custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)])
- return 1
- return ..()
-
-/obj/item/gun/swarmer_act()//Stops you from eating the entire armory
- return FALSE
-
-/turf/open/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor
- return FALSE
-
-/obj/structure/lattice/catwalk/swarmer_catwalk/swarmer_act()
- return FALSE
-
-/obj/structure/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- if(S.AIStatus == AI_ON)
- return FALSE
- else
- return ..()
-
-/obj/effect/swarmer_act()
- return FALSE
-
-/obj/effect/decal/cleanable/robot_debris/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- qdel(src)
- return TRUE
-
-/obj/structure/flora/swarmer_act()
- return FALSE
-
-/turf/open/lava/swarmer_act()
- if(!is_safe())
- new /obj/structure/lattice/catwalk/swarmer_catwalk(src)
- return FALSE
-
-/obj/machinery/atmospherics/swarmer_act()
- return FALSE
-
-/obj/structure/disposalpipe/swarmer_act()
- return FALSE
-
-/obj/machinery/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DismantleMachine(src)
- return TRUE
-
-/obj/machinery/light/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/door/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- var/isonshuttle = istype(get_area(src), /area/shuttle)
- for(var/turf/T in range(1, src))
- var/area/A = get_area(T)
- if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle)))
- to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.")
- S.LoseTarget()
- return FALSE
- else if(istype(A, /area/ship/engineering/engine))
- to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.")
- S.LoseTarget()
- return FALSE
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- if(!QDELETED(S)) //If it got blown up no need to turn it off.
- toggle_cam(S, 0)
- return TRUE
-
-/obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/gravity_generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/vending/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//It's more visually interesting than dismantling the machine
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/turretid/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisIntegrate(src)
- return TRUE
-
-/obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "The volatile chemicals in this machine would destroy us. Aborting.")
- return FALSE
-
-/obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This device's destruction would result in the extermination of everything in the area. Aborting.")
- return FALSE
-
-/obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Searching... sensor malfunction! Target lost. Aborting.")
- return FALSE
-
-/obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Destroying this object would cause a chain reaction. Aborting.")
- return FALSE
-
-/obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
- return FALSE
-
-/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "An inhospitable area may be created as a result of destroying this object. Aborting.")
- return FALSE
-
-/obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.")
- return FALSE
-
-/obj/machinery/deepfryer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This kitchen appliance should be preserved, it will make delicious unhealthy snacks for our masters in the future. Aborting.")
- return FALSE
-
-/obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
- return FALSE
-
-/obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This bluespace source will be important to us later. Aborting.")
- return FALSE
-
-/turf/closed/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- var/isonshuttle = istype(loc, /area/shuttle)
- for(var/turf/T in range(1, src))
- var/area/A = get_area(T)
- if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle)))
- to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.")
- S.LoseTarget()
- return TRUE
- else if(istype(A, /area/ship/engineering/engine))
- to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.")
- S.LoseTarget()
- return TRUE
- return ..()
-
-/obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- var/isonshuttle = istype(get_area(src), /area/shuttle)
- for(var/turf/T in range(1, src))
- var/area/A = get_area(T)
- if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle)))
- to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.")
- S.LoseTarget()
- return TRUE
- else if(istype(A, /area/ship/engineering/engine))
- to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.")
- S.LoseTarget()
- return TRUE
- return ..()
-
-/obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource
- to_chat(S, "This object does not contain enough materials to work with.")
- return FALSE
-
-/obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.")
- return FALSE
-
-/obj/machinery/porta_turret_cover/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.")
- return FALSE
-
-/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- S.DisperseTarget(src)
- return TRUE
-
-/mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This biological resource is somehow resisting our bluespace transceiver. Aborting.")
- return FALSE
-
-/obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This object is receiving unactivated swarmer shells to help us. Aborting.")
- return FALSE
-
-/obj/structure/lattice/catwalk/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- . = ..()
- var/turf/here = get_turf(src)
- for(var/A in here.contents)
- var/obj/structure/cable/C = A
- if(istype(C))
- to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.")
- return FALSE
-
-/obj/item/deactivated_swarmer/IntegrateAmount()
- return 50
-
-/obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This object does not contain enough materials to work with.")
- return FALSE
-
-/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.")
- return FALSE
-
-/obj/machinery/field/containment/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This object does not contain solid matter. Aborting.")
- return FALSE
-
-/obj/machinery/power/shieldwallgen/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "Destroying this object would have an unpredictable effect on structure integrity. Aborting.")
- return FALSE
-
-/obj/machinery/shieldwall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)
- to_chat(S, "This object does not contain solid matter. Aborting.")
- return FALSE
-
-////END CTRL CLICK FOR SWARMERS////
-
-/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0)
- if(!isturf(loc))
- to_chat(src, "This is not a suitable location for fabrication. We need more space.")
- if(resources >= fabrication_cost)
- resources -= fabrication_cost
- else
- to_chat(src, "You do not have the necessary resources to fabricate this object.")
- return
- return new fabrication_object(loc)
-
-/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target)
- var/resource_gain = target.IntegrateAmount()
- if(resources + resource_gain > max_resources)
- to_chat(src, "We cannot hold more materials!")
- return TRUE
- if(resource_gain)
- resources += resource_gain
- do_attack_animation(target)
- changeNext_move(CLICK_CD_MELEE)
- var/obj/effect/temp_visual/swarmer/integrate/I = new /obj/effect/temp_visual/swarmer/integrate(get_turf(target))
- I.pixel_x = target.pixel_x
- I.pixel_y = target.pixel_y
- I.pixel_z = target.pixel_z
- if(istype(target, /obj/item/stack))
- var/obj/item/stack/S = target
- S.use(1)
- if(S.amount)
- return TRUE
- qdel(target)
- return TRUE
- else
- to_chat(src, "[target] is incompatible with our internal matter recycler.")
- return FALSE
-
-
-/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target)
- new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target))
- do_attack_animation(target)
- changeNext_move(CLICK_CD_MELEE)
- SSexplosions.lowobj += target
-
-/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target)
- if(target == src)
- return
-
- to_chat(src, "Attempting to remove this being from our presence.")
-
- if(!do_after(src, 3 SECONDS, target))
- return
-
- var/turf/open/floor/F
- F = find_safe_turf(zlevels = z, extended_safety_checks = TRUE)
-
- if(!F)
- return
- // If we're getting rid of a human, slap some energy cuffs on
- // them to keep them away from us a little longer
-
- var/mob/living/carbon/human/H = target
- if(ishuman(target) && (!H.handcuffed))
- H.handcuffed = new /obj/item/restraints/handcuffs/energy/used(H)
- H.update_handcuffed()
- log_combat(src, H, "handcuffed")
-
- var/datum/effect_system/spark_spread/S = new
- S.set_up(4,0,get_turf(target))
- S.start()
- playsound(src,'sound/effects/sparks4.ogg',50,TRUE)
- do_teleport(target, F, 0, channel = TELEPORT_CHANNEL_BLUESPACE)
-
-/mob/living/simple_animal/hostile/swarmer/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
- if(!(flags & SHOCK_TESLA))
- return FALSE
- return ..()
-
-/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(obj/machinery/target)
- do_attack_animation(target)
- to_chat(src, "We begin to dismantle this machine. We will need to be uninterrupted.")
- var/obj/effect/temp_visual/swarmer/dismantle/D = new /obj/effect/temp_visual/swarmer/dismantle(get_turf(target))
- D.pixel_x = target.pixel_x
- D.pixel_y = target.pixel_y
- D.pixel_z = target.pixel_z
- if(do_after(src, 10 SECONDS, target))
- to_chat(src, "Dismantling complete.")
- var/atom/Tsec = target.drop_location()
- new /obj/item/stack/sheet/metal(Tsec, 5)
- for(var/obj/item/I in target.component_parts)
- I.forceMove(Tsec)
- var/obj/effect/temp_visual/swarmer/disintegration/N = new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target))
- N.pixel_x = target.pixel_x
- N.pixel_y = target.pixel_y
- N.pixel_z = target.pixel_z
- target.dropContents()
- if(istype(target, /obj/machinery/computer))
- var/obj/machinery/computer/C = target
- if(C.circuit)
- C.circuit.forceMove(Tsec)
- qdel(target)
-
-
-/obj/effect/temp_visual/swarmer //temporary swarmer visual feedback objects
- icon = 'icons/mob/swarmer.dmi'
- layer = BELOW_MOB_LAYER
-
-/obj/effect/temp_visual/swarmer/disintegration
- icon_state = "disintegrate"
- duration = 10
-
-/obj/effect/temp_visual/swarmer/disintegration/Initialize()
- . = ..()
- playsound(loc, "sparks", 100, TRUE)
-
-/obj/effect/temp_visual/swarmer/dismantle
- icon_state = "dismantle"
- duration = 25
-
-/obj/effect/temp_visual/swarmer/integrate
- icon_state = "integrate"
- duration = 5
-
-/obj/structure/swarmer //Default swarmer effect object visual feedback
- name = "swarmer ui"
- desc = null
- gender = NEUTER
- icon = 'icons/mob/swarmer.dmi'
- icon_state = "ui_light"
- layer = MOB_LAYER
- resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF
- light_color = LIGHT_COLOR_CYAN
- max_integrity = 30
- anchored = TRUE
- var/lon_range = 1
-
-/obj/structure/swarmer/Initialize(mapload)
- . = ..()
- set_light(lon_range)
-
-/obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
- switch(damage_type)
- if(BRUTE)
- playsound(src, 'sound/weapons/egloves.ogg', 80, TRUE)
- if(BURN)
- playsound(src, 'sound/items/welder.ogg', 100, TRUE)
-
-/obj/structure/swarmer/emp_act()
- . = ..()
- if(. & EMP_PROTECT_SELF)
- return
- qdel(src)
-
-/obj/structure/swarmer/trap
- name = "swarmer trap"
- desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough."
- icon_state = "trap"
- max_integrity = 10
- density = FALSE
-
-/obj/structure/swarmer/trap/Initialize(mapload)
- . = ..()
- var/static/list/loc_connections = list(
- COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
- )
- AddElement(/datum/element/connect_loc, loc_connections)
-
-/obj/structure/swarmer/trap/proc/on_entered(datum/source, atom/movable/AM)
- SIGNAL_HANDLER
- if(isliving(AM))
- var/mob/living/L = AM
- if(!istype(L, /mob/living/simple_animal/hostile/swarmer))
- playsound(loc,'sound/effects/snap.ogg',50, TRUE, -1)
- L.electrocute_act(0, src, 1, flags = SHOCK_NOGLOVES|SHOCK_ILLUSION)
- if(iscyborg(L))
- L.Paralyze(100)
- qdel(src)
-
-/mob/living/simple_animal/hostile/swarmer/proc/CreateTrap()
- set name = "Create trap"
- set category = "Swarmer"
- set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources."
- if(locate(/obj/structure/swarmer/trap) in loc)
- to_chat(src, "There is already a trap here. Aborting.")
- return
- Fabricate(/obj/structure/swarmer/trap, 5)
-
-
-/mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade()
- set name = "Create barricade"
- set category = "Swarmer"
- set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through."
- if(locate(/obj/structure/swarmer/blockade) in loc)
- to_chat(src, "There is already a blockade here. Aborting.")
- return
- if(resources < 5)
- to_chat(src, "We do not have the resources for this!")
- return
- if(do_after(src, 1 SECONDS))
- Fabricate(/obj/structure/swarmer/blockade, 5)
-
-
-/obj/structure/swarmer/blockade
- name = "swarmer blockade"
- desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through."
- icon_state = "barricade"
- light_range = MINIMUM_USEFUL_LIGHT_RANGE
- max_integrity = 50
-
-/obj/structure/swarmer/blockade/CanAllowThrough(atom/movable/O)
- . = ..()
- if(isswarmer(O))
- return TRUE
- if(istype(O, /obj/projectile/beam/disabler))
- return TRUE
-
-/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer()
- set name = "Replicate"
- set category = "Swarmer"
- set desc = "Creates a shell for a new swarmer. Swarmers will self activate."
- to_chat(src, "We are attempting to replicate ourselves. We will need to stand still until the process is complete.")
- if(resources < 50)
- to_chat(src, "We do not have the resources for this!")
- return
- if(!isturf(loc))
- to_chat(src, "This is not a suitable location for replicating ourselves. We need more room.")
- return
- if(do_after(src, 10 SECONDS))
- var/createtype = SwarmerTypeToCreate()
- if(createtype && Fabricate(createtype, 50))
- playsound(loc,'sound/items/poster_being_created.ogg',50, TRUE, -1)
-
-
-/mob/living/simple_animal/hostile/swarmer/proc/SwarmerTypeToCreate()
- return /obj/effect/mob_spawn/swarmer
-
-
-/mob/living/simple_animal/hostile/swarmer/proc/RepairSelf()
- set name = "Self Repair"
- set category = "Swarmer"
- set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete."
- if(!isturf(loc))
- return
- to_chat(src, "Attempting to repair damage to our body, stand by...")
- if(do_after(src, 10 SECONDS))
- adjustHealth(-100)
- to_chat(src, "We successfully repaired ourselves.")
-
-/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight()
- if(!light_range)
- set_light(3)
- else
- set_light(0)
-
-/mob/living/simple_animal/hostile/swarmer/proc/swarmer_chat(msg)
- var/rendered = "Swarm communication - [src] [say_quote(msg)]"
- for(var/i in GLOB.mob_list)
- var/mob/M = i
- if(isswarmer(M))
- to_chat(M, rendered)
- if(isobserver(M))
- var/link = FOLLOW_LINK(M, src)
- to_chat(M, "[link] [rendered]")
-
-/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers()
- var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact")
- // TODO get swarmers their own colour rather than just boldtext
- if(message)
- swarmer_chat(message)
diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm
deleted file mode 100644
index e086485a49cf..000000000000
--- a/code/modules/antagonists/swarmer/swarmer_event.dm
+++ /dev/null
@@ -1,28 +0,0 @@
-/datum/round_event_control/spawn_swarmer
- name = "Spawn Swarmer Shell"
- typepath = /datum/round_event/spawn_swarmer
- weight = 7
- max_occurrences = 1 //Only once okay fam
- earliest_start = 30 MINUTES
- min_players = 15
-
-
-/datum/round_event/spawn_swarmer
-
-/datum/round_event/spawn_swarmer/start()
- if(find_swarmer())
- return 0
- if(!GLOB.the_gateway)
- return 0
- new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway))
- if(prob(25)) //25% chance to announce it to the crew
- var/swarmer_report = "[command_name()] High-Priority Update"
- swarmer_report += "
Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come through."
- print_command_report(swarmer_report, announce=TRUE)
-
-/datum/round_event/spawn_swarmer/proc/find_swarmer()
- for(var/i in GLOB.mob_living_list)
- var/mob/living/L = i
- if(istype(L, /mob/living/simple_animal/hostile/swarmer) && L.client) //If there is a swarmer with an active client, we've found our swarmer
- return 1
- return 0
diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
index ff7ddace1d4b..4f5e7bc161c9 100644
--- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
+++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
@@ -741,21 +741,6 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/AI_Module))
unlock_text = replacetext(unlock_text, "CAMSUPGRADED", "[upgraded_cameras]") //This works, since unlock text is called after upgrade()
-/// AI Turret Upgrade: Increases the health and damage of all turrets.
-/datum/AI_Module/upgrade/upgrade_turrets
- name = "AI Turret Upgrade"
- description = "Improves the power and health of all AI turrets. This effect is permanent. Upgrade is done immediately upon purchase."
- cost = 30
- upgrade = TRUE
- unlock_text = "You establish a power diversion to your turrets, upgrading their health and damage."
- unlock_sound = 'sound/items/rped.ogg'
-
-/datum/AI_Module/upgrade/upgrade_turrets/upgrade(mob/living/silicon/ai/AI)
- for(var/obj/machinery/porta_turret/ai/turret in GLOB.machines)
- turret.obj_integrity += 30
- turret.lethal_projectile = /obj/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR.
- turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
-
/// Enhanced Surveillance: Enables AI to hear conversations going on near its active vision.
/datum/AI_Module/upgrade/eavesdrop
name = "Enhanced Surveillance"
diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm
index d6bbba359303..f90d0fb72185 100644
--- a/code/modules/antagonists/traitor/syndicate_contract.dm
+++ b/code/modules/antagonists/traitor/syndicate_contract.dm
@@ -149,7 +149,7 @@
C = H.get_bankcard()
if(C && C.registered_account)
- C.registered_account.adjust_money(ransom * 0.35, "syndicate_contract")
+ C.registered_account.adjust_money(ransom * 0.35, CREDIT_LOG_SYNDICATE_CONTRACT)
C.registered_account.bank_card_talk("We've processed the ransom, agent. Here's your cut - your balance is now \
[C.registered_account.account_balance] cr.", TRUE)
diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm
index dad33ff03dfb..e47f7c97e010 100644
--- a/code/modules/antagonists/wizard/equipment/artefact.dm
+++ b/code/modules/antagonists/wizard/equipment/artefact.dm
@@ -285,7 +285,7 @@
if(target && cooldown < world.time)
if(I.get_temperature())
to_chat(target, "You suddenly feel very hot!")
- target.adjust_bodytemperature(50)
+ target.adjust_bodytemperature(10)
GiveHint(target)
else if(is_pointed(I))
to_chat(target, "You feel a stabbing pain in [parse_zone(user.zone_selected)]!")
diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm
deleted file mode 100644
index c426b953f725..000000000000
--- a/code/modules/antagonists/wizard/equipment/soulstone.dm
+++ /dev/null
@@ -1,354 +0,0 @@
-/obj/item/soulstone
- name = "soulstone shard"
- icon = 'icons/obj/wizard.dmi'
- icon_state = "soulstone"
- item_state = "electronic"
- lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- layer = HIGH_OBJ_LAYER
- desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power."
- w_class = WEIGHT_CLASS_TINY
- slot_flags = ITEM_SLOT_BELT
- var/usability = FALSE
-
- var/old_shard = FALSE
- var/spent = FALSE
- var/purified = FALSE
-
-/obj/item/soulstone/proc/was_used()
- if(old_shard)
- spent = TRUE
- name = "dull [name]"
- desc = "A fragment of the legendary treasure known simply as \
- the 'Soul Stone'. The shard lies still, dull and lifeless; \
- whatever spark it once held long extinguished."
-
-/obj/item/soulstone/anybody
- usability = TRUE
-
-/obj/item/soulstone/anybody/revolver
- old_shard = TRUE
-
-/obj/item/soulstone/anybody/purified
- icon = 'icons/obj/wizard.dmi'
- icon_state = "purified_soulstone"
- purified = TRUE
-
-/obj/item/soulstone/anybody/chaplain
- name = "mysterious old shard"
- old_shard = TRUE
-
-/obj/item/soulstone/pickup(mob/living/user)
- ..()
- if(!iscultist(user) && !iswizard(user) && !usability)
- to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.")
-
-/obj/item/soulstone/examine(mob/user)
- . = ..()
- if(usability || iscultist(user) || iswizard(user) || isobserver(user))
- if (old_shard)
- . += "A soulstone, used to capture a soul, either from dead humans or from freed shades."
- else
- . += "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades."
- . += "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade."
- if(spent)
- . += "This shard is spent; it is now just a creepy rock."
-
-/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle.
- for(var/mob/living/simple_animal/shade/A in src)
- A.death()
- return ..()
-
-/obj/item/soulstone/proc/hot_potato(mob/living/user)
- to_chat(user, "Holy magics residing in \the [src] burn your hand!")
- var/obj/item/bodypart/affecting = user.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm")
- affecting.receive_damage(0, 10) // 10 burn damage
- user.emote("scream")
- user.update_damage_overlays()
- user.dropItemToGround(src)
-
-//////////////////////////////Capturing////////////////////////////////////////////////////////
-
-/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user)
- if(!iscultist(user) && !iswizard(user) && !usability)
- user.Unconscious(100)
- to_chat(user, "Your body is wracked with debilitating pain!")
- return
- if(spent)
- to_chat(user, "There is no power left in the shard.")
- return
- if(!ishuman(M))//If target is not a human.
- return ..()
- if((M.mind && !M.mind.hasSoul) || is_devil(M))
- to_chat(user, "This... thing has no soul! It's filled with evil!")
- return
- if(iscultist(M))
- if(iscultist(user))
- to_chat(user, "\"Come now, do not capture your bretheren's soul.\"")
- return
- if(purified && iscultist(user))
- hot_potato(user)
- return
- log_combat(user, M, "captured [M.name]'s soul", src)
- transfer_soul("VICTIM", M, user)
-
-///////////////////Options for using captured souls///////////////////////////////////////
-
-/obj/item/soulstone/attack_self(mob/living/user)
- if(!in_range(src, user))
- return
- if(!iscultist(user) && !iswizard(user) && !usability)
- user.Unconscious(100)
- to_chat(user, "Your body is wracked with debilitating pain!")
- return
- if(purified && iscultist(user))
- hot_potato(user)
- return
- release_shades(user)
-
-/obj/item/soulstone/proc/release_shades(mob/user)
- for(var/mob/living/simple_animal/shade/A in src)
- A.forceMove(get_turf(user))
- A.cancel_camera()
- if(purified)
- icon_state = "purified_soulstone"
- A.icon_state = "shade_angelic"
- A.name = "Purified [initial(A.name)]"
- else
- icon_state = "soulstone"
- name = initial(name)
- if(iswizard(user) || usability)
- to_chat(A, "You have been released from your prison, but you are still bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.")
- else if(iscultist(user))
- to_chat(A, "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs.")
- was_used()
-
-///////////////////////////Transferring to constructs/////////////////////////////////////////////////////
-/obj/structure/constructshell
- name = "empty shell"
- icon = 'icons/obj/wizard.dmi'
- icon_state = "construct_cult"
- desc = "A wicked machine used by those skilled in magical arts. It is inactive."
-
-/obj/structure/constructshell/examine(mob/user)
- . = ..()
- if(iscultist(user) || iswizard(user) || user.stat == DEAD)
- . += {"A construct shell, used to house bound souls from a soulstone.\n
- Placing a soulstone with a soul into this shell allows you to produce your choice of the following:\n
- An Artificer, which can produce more shells and soulstones, as well as fortifications.\n
- A Wraith, which does high damage and can jaunt through walls, though it is quite fragile.\n
- A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow."}
-
-/obj/structure/constructshell/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/soulstone))
- var/obj/item/soulstone/SS = O
- if(!iscultist(user) && !iswizard(user) && !SS.purified)
- to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.")
- user.Dizzy(30)
- return
- if(SS.purified && iscultist(user))
- SS.hot_potato(user)
- return
- SS.transfer_soul("CONSTRUCT",src,user)
- SS.was_used()
- else
- return ..()
-
-////////////////////////////Proc for moving soul in and out off stone//////////////////////////////////////
-
-
-/obj/item/soulstone/proc/transfer_soul(choice as text, target, mob/user)
- switch(choice)
- if("FORCE")
- if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul
- return FALSE
- if(contents.len)
- return FALSE
- var/mob/living/carbon/T = target
- if(T.client != null)
- for(var/obj/item/W in T)
- T.dropItemToGround(W)
- init_shade(T, user)
- return TRUE
- else
- to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...")
- return getCultGhost(T,user)
-
- if("VICTIM")
- var/mob/living/carbon/human/T = target
- var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE)
- if(C && C.cult_team.is_sacrifice_target(T.mind))
- if(iscultist(user))
- to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"")
- else
- to_chat(user, "The soulstone seems to reject this soul.")
- return FALSE
- if(contents.len)
- to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.")
- else
- if((!old_shard && T.stat != CONSCIOUS) || (old_shard && T.stat == DEAD))
- if(T.client == null)
- to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...")
- getCultGhost(T,user)
- else
- for(var/obj/item/W in T)
- T.dropItemToGround(W)
- init_shade(T, user, message_user = 1)
- qdel(T)
- else
- to_chat(user, "Capture failed!: Kill or maim the victim first!")
-
- if("SHADE")
- var/mob/living/simple_animal/shade/T = target
- if(contents.len)
- to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.")
- else
- T.AddComponent(/datum/component/soulstoned, src)
- if(purified)
- icon_state = "purified_soulstone2"
- if(iscultist(T))
- SSticker.mode.remove_cultist(T.mind, FALSE, FALSE)
- else
- icon_state = "soulstone2"
- name = "soulstone: Shade of [T.real_name]"
- to_chat(T, "Your soul has been captured by the soulstone. Its arcane energies are reknitting your ethereal form.")
- if(user != T)
- to_chat(user, "Capture successful!: [T.real_name]'s soul has been captured and stored within the soulstone.")
-
- if("CONSTRUCT")
- var/obj/structure/constructshell/T = target
- var/mob/living/simple_animal/shade/A = locate() in src
- if(A)
- var/list/constructs = list(
- "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"),
- "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"),
- "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer")
- )
- var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
- if(!T || !T.loc)
- return
- switch(construct_class)
- if("Juggernaut")
- if(iscultist(user) || iswizard(user))
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, A, user, 0, T.loc)
- else
- if(purified)
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/angelic, A, user, 0, T.loc)
- else
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/noncult, A, user, 0, T.loc)
- if("Wraith")
- if(iscultist(user) || iswizard(user))
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, A, user, 0, T.loc)
- else
- if(purified)
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/angelic, A, user, 0, T.loc)
- else
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/noncult, A, user, 0, T.loc)
- if("Artificer")
- if(iscultist(user) || iswizard(user))
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, A, user, 0, T.loc)
- else
- if(purified)
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/angelic, A, user, 0, T.loc)
- else
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/noncult, A, user, 0, T.loc)
- else
- return
- for(var/datum/mind/B in SSticker.mode.cult)
- if(B == A.mind)
- SSticker.mode.remove_cultist(A.mind)
- qdel(T)
- qdel(src)
- else
- to_chat(user, "Creation failed!: The soul stone is empty! Go kill someone!")
-
-/obj/item/soulstone/proc/check_menu(mob/user)
- if(!istype(user))
- return FALSE
- if(user.incapacitated() || !user.Adjacent(src))
- return FALSE
- return TRUE
-
-/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null)
- if(QDELETED(target))
- return
- var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target)))
- var/makeicon = newstruct.icon_state
- var/holyness = newstruct.holy
- flick("make_[makeicon][holyness]", newstruct)
- playsound(newstruct, 'sound/effects/constructform.ogg', 50)
- if(stoner)
- newstruct.faction |= "[REF(stoner)]"
- newstruct.master = stoner
- var/datum/action/innate/seek_master/SM = new()
- SM.Grant(newstruct)
- newstruct.key = target.key
- var/atom/movable/screen/alert/bloodsense/BS
- if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && SSticker && SSticker.mode)
- SSticker.mode.add_cultist(newstruct.mind, 0)
- if(iscultist(stoner) || cultoverride)
- to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow [stoner ? stoner.p_their() : "their"] orders and help [stoner ? stoner.p_them() : "them"] complete [stoner ? stoner.p_their() : "their"] goals at all costs.")
- else if(stoner)
- to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.")
- newstruct.clear_alert("bloodsense")
- BS = newstruct.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense)
- if(BS)
- BS.Cviewer = newstruct
- newstruct.cancel_camera()
-
-
-/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/user, message_user = 0 , mob/shade_controller)
- if(!shade_controller)
- shade_controller = T
- new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton
- T.stop_sound_channel(CHANNEL_HEARTBEAT)
- T.invisibility = INVISIBILITY_ABSTRACT
- T.dust_animation()
- var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src)
- S.AddComponent(/datum/component/soulstoned, src)
- S.name = "Shade of [T.real_name]"
- S.real_name = "Shade of [T.real_name]"
- S.key = shade_controller.key
- S.copy_languages(T, LANGUAGE_MIND)//Copies the old mobs languages into the new mob holder.
- S.copy_languages(user, LANGUAGE_MASTER)
- S.update_atom_languages()
- grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue
- if(user)
- S.faction |= "[REF(user)]" //Add the master as a faction, allowing inter-mob cooperation
- if(user && iscultist(user))
- SSticker.mode.add_cultist(S.mind, 0)
- S.cancel_camera()
- name = "soulstone: Shade of [T.real_name]"
- if(purified)
- icon_state = "purified_soulstone2"
- else
- icon_state = "soulstone2"
- if(user && (iswizard(user) || usability))
- to_chat(S, "Your soul has been captured! You are now bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.")
- else if(user && iscultist(user))
- to_chat(S, "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs.")
- if(message_user && user)
- to_chat(user, "Capture successful!: [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.")
-
-
-/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/user)
- var/mob/dead/observer/chosen_ghost
-
- chosen_ghost = T.get_ghost(TRUE,TRUE) //Try to grab original owner's ghost first
-
- if(!chosen_ghost || !chosen_ghost.client) //Failing that, we grab a ghosts
- var/list/consenting_candidates = pollGhostCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, 50, POLL_IGNORE_SHADE)
- if(consenting_candidates.len)
- chosen_ghost = pick(consenting_candidates)
- if(!T)
- return FALSE
- if(!chosen_ghost || !chosen_ghost.client)
- to_chat(user, "There were no spirits willing to become a shade.")
- return FALSE
- if(contents.len) //If they used the soulstone on someone else in the meantime
- return FALSE
- for(var/obj/item/W in T)
- T.dropItemToGround(W)
- init_shade(T, user , shade_controller = chosen_ghost)
- qdel(T)
- return TRUE
diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 9f4349a2bbc8..378aa7dbe14a 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -281,18 +281,6 @@
item_path = /obj/item/scrying
category = "Defensive"
-/datum/spellbook_entry/item/soulstones
- name = "Six Soul Stone Shards and the spell Artificer"
- desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot."
- item_path = /obj/item/storage/belt/soulstone/full
- category = "Assistance"
-
-/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
- . =..()
- if(.)
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null))
- return .
-
/datum/spellbook_entry/item/necrostone
name = "A Necromantic Stone"
desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command."
@@ -318,18 +306,6 @@
item_path = /obj/item/antag_spawner/contract
category = "Assistance"
-/datum/spellbook_entry/item/guardian
- name = "Guardian Deck"
- desc = "A deck of guardian tarot cards, capable of binding a personal guardian to your body. There are multiple types of guardian available, but all of them will transfer some amount of damage to you. \
- It would be wise to avoid buying these with anything capable of causing you to swap bodies with others."
- item_path = /obj/item/guardiancreator/choose/wizard
- category = "Assistance"
-
-/datum/spellbook_entry/item/guardian/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
- . = ..()
- if(.)
- new /obj/item/paper/guides/antag/guardian/wizard(get_turf(user))
-
/datum/spellbook_entry/item/bloodbottle
name = "Bottle of Blood"
desc = "A bottle of magically infused blood, the smell of which will attract extradimensional beings when broken. Be careful though, the kinds of creatures summoned by blood magic are indiscriminate in their killing, and you yourself may become a victim."
diff --git a/code/modules/assembly/anomalies.dm b/code/modules/assembly/anomalies.dm
new file mode 100644
index 000000000000..9770370624b8
--- /dev/null
+++ b/code/modules/assembly/anomalies.dm
@@ -0,0 +1,282 @@
+///Base anomaly signaller
+// Embedded signaller used in anomalies.
+/obj/item/assembly/signaler/anomaly
+ name = "anomaly core"
+ desc = "The stabilized core of an anomaly. It'd probably be valuable for research."
+ icon_state = "anomaly core"
+ item_state = "electronic"
+ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
+ resistance_flags = FIRE_PROOF
+ //allows anomaly cores to recieve multiple signals
+ var/code_b = DEFAULT_SIGNALER_CODE
+ var/anomaly_type = /obj/effect/anomaly
+ var/research
+
+/obj/item/assembly/signaler/anomaly/Initialize()
+ . = ..()
+ set_frequency(frequency)
+
+/obj/item/assembly/signaler/anomaly/attack_self()
+ return
+
+/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
+ if(!signal)
+ return FALSE
+ if(signal.data["code"] == code)
+ for(var/obj/effect/anomaly/Anomaly in get_turf(src))
+ Anomaly.anomalyNeutralize()
+ return TRUE
+ if(signal.data["code"] == code_b )
+ for(var/obj/effect/anomaly/Anomaly in get_turf(src))
+ Anomaly.detonate()
+ anomaly_core_detonation()
+ return TRUE
+ return FALSE
+
+//extend this on a per anomaly basis.
+/obj/item/assembly/signaler/anomaly/proc/anomaly_core_detonation()
+ new /obj/effect/particle_effect/smoke/bad(loc)
+ qdel(src)
+
+/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
+ if(I.tool_behaviour == TOOL_ANALYZER)
+ to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code]. An unstable frequency is present at code [code_b].")
+ ..()
+
+///Bluespace Anomaly
+/obj/item/assembly/signaler/anomaly/bluespace
+ name = "\improper bluespace anomaly core"
+ desc = "The stabilized core of a bluespace anomaly. It keeps phasing in and out of view."
+ icon_state = "anomaly core"
+ grind_results = list(/datum/reagent/bluespace = 25)
+
+/obj/item/assembly/signaler/anomaly/bluespace/anomaly_core_detonation()
+ //just teleports people
+ visible_message(span_warning("[src] creates a bluespace fracture around itself!"))
+ for(var/mob/living/Mob in range(1,src))
+ do_teleport(Mob, locate(Mob.x, Mob.y, Mob.z), 8, channel = TELEPORT_CHANNEL_BLUESPACE)
+ ..()
+
+//Flux Anomaly
+/obj/item/assembly/signaler/anomaly/flux
+ name = "\improper flux anomaly core"
+ desc = "The stabilized core of a flux anomaly. Touching it makes your skin tingle."
+ icon_state = "flux core"
+ grind_results = list(/datum/reagent/teslium = 15)
+
+/obj/item/assembly/signaler/anomaly/flux/anomaly_core_detonation()
+ //zap
+ visible_message(span_warning("Electrical arcs flash off of [src] as it fizzles out!"))
+ tesla_zap(src, 5, 7000, ZAP_FUSION_FLAGS)
+ ..()
+
+///Gravity Anomaly
+/obj/item/assembly/signaler/anomaly/grav
+ name = "\improper gravitational anomaly core"
+ desc = "The stabilized core of a gravitational anomaly. It feels much heavier than it looks."
+ icon_state = "grav core"
+ grind_results = list(/datum/reagent/gravitum = 20, /datum/reagent/liquid_dark_matter = 10)
+
+/obj/item/assembly/signaler/anomaly/grav/anomaly_core_detonation()
+ //throngles u cutely
+ visible_message(span_warning("[src] implodes into itself, light itself bending for a split second!"))
+ for(var/mob/living/carbon/carbon in range(1,src))
+ if(carbon.run_armor_check(attack_flag = "melee") >= 20)
+ carbon.break_random_bone()
+ else if(carbon.run_armor_check(attack_flag = "melee") >= 40)
+ carbon.break_all_bones() //crunch
+ carbon.apply_damage(20, BRUTE)
+
+///Hallucination Anomaly
+/obj/item/assembly/signaler/anomaly/hallucination
+ name = "\improper hallucination anomaly core"
+ desc = "The stabilized core of a hallucination anomaly. It's never entirely there."
+ icon_state = "hallucination_core"
+ grind_results = list(/datum/reagent/toxin/mindbreaker = 20) //LSD orb
+
+///Heartbeat Anomaly
+/obj/item/assembly/signaler/anomaly/heartbeat
+ name = "\improper heartbeat anomaly core"
+ desc = "The stabilized core of a heartbeat anomaly. Pulses of heat run across its shell."
+ grind_results = list(/datum/reagent/uranium/radium = 30, /datum/reagent/uranium = 20)
+
+/obj/item/assembly/signaler/anomaly/heartbeat/anomaly_core_detonation()
+ visible_message(span_warning("[src] expands and throbs, before shattering into dozens of fragments!"))
+ radiation_pulse(src, 1000, 3)
+ new /obj/effect/decal/cleanable/glass/strange(src)
+ ..()
+
+///Melter Anomaly
+/obj/item/assembly/signaler/anomaly/melter
+ name = "\improper melter anomaly core"
+ desc = "The stabilized core of a melter anomaly. It sizzles and crackles."
+ icon_state = "pyro core"
+ grind_results = list(/datum/reagent/toxin/acid/nitracid = 10, /datum/reagent/toxin/acid/fluacid = 10, /datum/reagent/toxin/acid = 10) //soup
+
+/obj/item/assembly/signaler/anomaly/melter/anomaly_core_detonation()
+ visible_message(span_warning("[src] melts into a glowing residue!"))
+ new /obj/effect/decal/cleanable/greenglow(src.loc)
+ ..()
+
+///Phantom Anomaly
+/obj/item/assembly/signaler/anomaly/phantom
+ name = "\improper phantom anomaly core"
+ desc = "The stabilized core of a phantom anomaly. It quietly screams."
+ grind_results = list(/datum/reagent/blood = 20)
+
+/obj/item/assembly/signaler/anomaly/phantom/anomaly_core_detonation()
+ playsound(src,'sound/hallucinations/far_noise.ogg', 100, 0, 50, TRUE, TRUE)
+ visible_message(span_warning("[src] screams as it fades, trying to lash out!"))
+ for(var/mob/living/carbon/handsy in range(5, src))
+ if(handsy.stat != DEAD)
+ var/grab_dir = turn(handsy.dir, pick(-90, 90, 180, 180))
+ var/turf/spawn_turf = get_ranged_target_turf(handsy, grab_dir, 8)
+ if(!spawn_turf)
+ return
+ new /obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, handsy.dir)
+ playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1)
+ var/obj/projectile/curse_hand/phantom/hand = new (spawn_turf)
+ hand.preparePixelProjectile(handsy, spawn_turf)
+ if(QDELETED(hand))
+ return
+ hand.fire()
+ ..()
+
+///Plasmasoul Anomaly
+/obj/item/assembly/signaler/anomaly/plasmasoul
+ name = "\improper plasmasoul anomaly core"
+ desc = "The stabilized core of a plasmasoul anomaly. The air around it hisses."
+ grind_results = list(/datum/reagent/toxin/plasma = 50)
+
+/obj/item/assembly/signaler/anomaly/plasmasoul/anomaly_core_detonation()
+ visible_message(span_warning("[src] rapidly delaminates into plasma!"))
+ atmos_spawn_air("plasma=500;TEMP=[T20C]")
+ ..()
+
+///Pulsar Anomaly
+/obj/item/assembly/signaler/anomaly/pulsar
+ name = "\improper pulsar anomaly core"
+ desc = "The stabilized core of a pulsar anomaly. Electromagnetic crackles come off it."
+ grind_results = list(/datum/reagent/iron = 25, /datum/reagent/uranium = 25)
+
+/obj/item/assembly/signaler/anomaly/pulsar/anomaly_core_detonation()
+ visible_message(span_warning("[src] gives off one last pulse as it melts!"))
+ empulse(loc, 3, 1)
+ ..()
+
+///Pyroclastic Anomaly
+/obj/item/assembly/signaler/anomaly/pyro
+ name = "\improper plasmaball anomaly core"
+ desc = "The stabilized core of a plasmaball anomaly. It almost burns to touch."
+ icon_state = "pyro core"
+ grind_results = list(/datum/reagent/clf3 = 25, /datum/reagent/toxin/plasma = 15)
+
+//glorified molotov
+/obj/item/assembly/signaler/anomaly/pyro/anomaly_core_detonation()
+ //this is tg's ash heretic ash heretic ascenscion power tuned down a bit.
+ visible_message(span_warning("[src] loses coherence, bursting into brilliant flames!"))
+ for(var/i in 0 to 3)
+ for(var/turf/nearby_turf as anything in spiral_range_turfs(i + 1, src.loc))
+ var/obj/effect/hotspot/flame_tile = locate(nearby_turf) || new(nearby_turf)
+ flame_tile.alpha = 125
+ nearby_turf.hotspot_expose(750, 25, 1)
+ qdel(src)
+
+///Sparkler Anomaly
+/obj/item/assembly/signaler/anomaly/sparkler
+ name = "\improper sparkler anomaly core"
+ desc = "The stabilized core of a sparkler anomaly. Tiny electrical sparks arc off it."
+ grind_results = list(/datum/reagent/teslium = 10)
+
+/obj/item/assembly/signaler/anomaly/sparkler/anomaly_core_detonation()
+ visible_message(span_warning("[src] shoots out one last assortment of sparks!"))
+ tesla_zap(src, 2, 5000, ZAP_FUSION_FLAGS)
+ ..()
+
+///Static Anomaly
+/obj/item/assembly/signaler/anomaly/tvstatic
+ name = "\improper static anomaly core"
+ desc = "The stabilized core of a static anomaly. Your head hurts just staring at it"
+ grind_results = list(/datum/reagent/three_eye = 5)
+
+/obj/item/assembly/signaler/anomaly/tvstatic/anomaly_core_detonation()
+ visible_message(span_warning("[src] withdraws into itself, one last message escaping it!"))
+ say(pick(GLOB.tvstatic_sayings))
+ for(var/mob/living/carbon/human/looking in range(4, src))
+ if (!HAS_TRAIT(looking, TRAIT_MINDSHIELD) && looking.stat != DEAD)
+ looking.adjustOrganLoss(ORGAN_SLOT_BRAIN, 20, 40)
+ playsound(src, 'sound/effects/stall.ogg', 100)
+ ..()
+
+///Transfusion Anomaly
+/obj/item/assembly/signaler/anomaly/transfusion
+ name = "\improper transfusion anomaly core"
+ desc = "The stabilized core of a tranfusion anomaly. Crimson slowly seeps out of the containment unit."
+ icon_state = "pyro core"
+ grind_results = list(/datum/reagent/toxin/heparin = 15, /datum/reagent/blood = 35)
+ var/blood_stored
+ var/blood_max
+
+/obj/item/assembly/signaler/anomaly/transfusion/Initialize()
+ . = ..()
+ blood_max = rand(400, 1200)
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/set_blood_stored(int)
+ blood_stored += int
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/set_blood_max(int)
+ blood_max = int
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/get_blood_stored()
+ return blood_stored
+
+/obj/item/assembly/signaler/anomaly/transfusion/proc/get_blood_max()
+ return blood_max
+
+/obj/item/assembly/signaler/anomaly/transfusion/anomaly_core_detonation()
+ visible_message(span_warning("Ichor flies out of [src], trying to force itself into everything around!"))
+ while(blood_stored > 0)
+ for(var/mob/living/carbon/victim in range(2, src))
+ var/present_time
+ present_time = rand((blood_stored / 10), (blood_stored / 2))
+ visible_message(span_boldwarning("[victim] finds themselves transfused with the crimson ichor!"))
+ victim.blood_volume += present_time
+ blood_stored += -present_time
+ ..()
+
+///Veins Anomaly
+/obj/item/assembly/signaler/anomaly/veins
+ name = "\improper fountain anomaly core"
+ desc = "The stabilized core of a fountain anomaly. It's slippery, like an intestine."
+ grind_results = list(/datum/reagent/medicine/strange_reagent = 1)
+
+/obj/item/assembly/signaler/anomaly/veins/Initialize()
+ . = ..()
+ grind_results = list(/datum/reagent/medicine/strange_reagent = rand(10,20))
+
+/obj/item/assembly/signaler/anomaly/veins/anomaly_core_detonation()
+ //goreshit
+ var/obj/effect/gibspawner/mess = pick(list(
+ /obj/effect/gibspawner/human,
+ /obj/effect/gibspawner/xeno,
+ /obj/effect/gibspawner/generic/animal
+ ))
+ visible_message(span_warning("[src] erupts into a fountain of gore and viserca!"))
+ for(var/i in 1 to 4)
+ new mess(src.loc)
+ ..()
+
+///Vortex Anomaly
+/obj/item/assembly/signaler/anomaly/vortex
+ name = "\improper vortex anomaly core"
+ desc = "The stabilized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it."
+ icon_state = "vortex core"
+ grind_results = list(/datum/reagent/liquid_dark_matter = 30)
+
+/obj/item/assembly/signaler/anomaly/vortex/anomaly_core_detonation()
+ //disappears bigly
+ playsound(src,'sound/effects/phasein.ogg', 100, 0, 50, TRUE, TRUE)
+ new /obj/effect/particle_effect/sparks/quantum(loc)
+ visible_message(span_warning("[src] shakes violently and - hey, where'd it go?"))
+ ..()
diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm
index 8fe788f79ca7..47605eb63d5a 100644
--- a/code/modules/assembly/flash.dm
+++ b/code/modules/assembly/flash.dm
@@ -7,7 +7,7 @@
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
throwforce = 0
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/iron = 300, /datum/material/glass = 300)
light_system = MOVABLE_LIGHT //Used as a flash here.
light_range = FLASH_LIGHT_RANGE
diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm
index 8dbb1dc98b61..cdb2f8991406 100644
--- a/code/modules/assembly/holder.dm
+++ b/code/modules/assembly/holder.dm
@@ -11,6 +11,7 @@
throw_speed = 2
throw_range = 7
+ ///set both of these or neither.
var/obj/item/assembly/a_left = null
var/obj/item/assembly/a_right = null
@@ -21,6 +22,18 @@
)
AddElement(/datum/element/connect_loc, loc_connections)
+ //if we want to spawn an holder pre-configured.
+ if(a_left && a_right)
+ var/obj/item/assembly/left = new a_left(src)
+ var/obj/item/assembly/right = new a_right(src)
+ //i love byond
+ a_left = null
+ a_right = null
+ assemble(left, right, null)
+ a_left.secured = TRUE
+ a_right.secured = TRUE
+ update_appearance()
+
/obj/item/assembly_holder/ComponentInitialize()
. = ..()
var/static/rotation_flags = ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_FLIP | ROTATION_VERBS
@@ -29,7 +42,6 @@
/obj/item/assembly_holder/IsAssemblyHolder()
return TRUE
-
/obj/item/assembly_holder/proc/assemble(obj/item/assembly/A, obj/item/assembly/A2, mob/user)
attach(A,user)
attach(A2,user)
diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm
index 08b603058563..7368e05f1b44 100644
--- a/code/modules/assembly/proximity.dm
+++ b/code/modules/assembly/proximity.dm
@@ -7,7 +7,9 @@
drop_sound = 'sound/items/handling/component_drop.ogg'
pickup_sound = 'sound/items/handling/component_pickup.ogg'
var/scanning = FALSE
+ ///is the assembly arming itself?
var/timing = FALSE
+ ///seconds until the assembly arms itself
var/time = 10
var/sensitivity = 1
var/hearing_range = 3
@@ -16,11 +18,12 @@
/obj/item/assembly/prox_sensor/Initialize()
. = ..()
- proximity_monitor = new(src, 0)
+ proximity_monitor = new(src, 0, FALSE)
START_PROCESSING(SSobj, src)
/obj/item/assembly/prox_sensor/Destroy()
STOP_PROCESSING(SSobj, src)
+ QDEL_NULL(proximity_monitor)
. = ..()
/obj/item/assembly/prox_sensor/examine(mob/user)
@@ -37,6 +40,15 @@
update_appearance()
return TRUE
+/obj/item/assembly/prox_sensor/on_attach()
+ . = ..()
+ // Pick the first valid object in this list:
+ // Wiring datum's owner
+ // assembly holder's attached object
+ // assembly holder itself
+ // us
+ proximity_monitor.set_host(connected?.holder || holder?.master || holder || src, src)
+
/obj/item/assembly/prox_sensor/on_detach()
. = ..()
if(!.)
@@ -59,7 +71,7 @@
return secured
/obj/item/assembly/prox_sensor/HasProximity(atom/movable/AM as mob|obj)
- if (istype(AM, /obj/effect/beam))
+ if(istype(AM, /obj/effect/beam) || istype(AM, /obj/projectile) || istype(AM, /obj/effect/projectile))
return
sense()
@@ -153,3 +165,11 @@
value = round(time + value)
time = clamp(value, 0, 600)
. = TRUE
+
+/obj/item/assembly/prox_sensor/preset
+ sensitivity = 2
+ hearing_range = 3
+
+/obj/item/assembly/prox_sensor/preset/Initialize()
+ . = ..()
+ toggle_scan(!scanning)
diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm
index 0bfac86ee0df..f0898cc53b6a 100644
--- a/code/modules/assembly/signaler.dm
+++ b/code/modules/assembly/signaler.dm
@@ -82,12 +82,13 @@
update_appearance()
/obj/item/assembly/signaler/attackby(obj/item/W, mob/user, params)
- if(issignaler(W))
+ if(issignaler(W) && secured)
var/obj/item/assembly/signaler/signaler2 = W
- if(secured && signaler2.secured)
+ if(signaler2.secured)
code = signaler2.code
set_frequency(signaler2.frequency)
to_chat(user, "You transfer the frequency and code of \the [signaler2.name] to \the [name]")
+ return TRUE
..()
/obj/item/assembly/signaler/proc/signal()
@@ -144,126 +145,6 @@
return
return ..(signal)
-// Embedded signaller used in anomalies.
-/obj/item/assembly/signaler/anomaly
- name = "anomaly core"
- desc = "The neutralized core of an anomaly. It'd probably be valuable for research."
- icon_state = "anomaly core"
- item_state = "electronic"
- lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
- resistance_flags = FIRE_PROOF
- var/anomaly_type = /obj/effect/anomaly
- var/research
-
-/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
- if(!signal)
- return FALSE
- if(signal.data["code"] != code)
- return FALSE
- for(var/obj/effect/anomaly/Anomaly in get_turf(src))
- Anomaly.anomalyNeutralize()
- return TRUE
-
-/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
- if(I.tool_behaviour == TOOL_ANALYZER)
- to_chat(user, "Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code].")
- ..()
-
-/obj/item/assembly/signaler/anomaly/det_signal
- name = "anomaly field"
- research = null
- anomaly_type = null
-
-/obj/item/assembly/signaler/anomaly/det_signal/receive_signal(datum/signal/signal)
- if(!signal)
- return FALSE
- if(signal.data["code"] != code)
- return FALSE
- for(var/obj/effect/anomaly/Anomaly in get_turf(src))
- Anomaly.detonate()
- return TRUE
-
-
-//Anomaly cores
-
-/obj/item/assembly/signaler/anomaly/pyro
- name = "\improper pyroclastic anomaly core"
- desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research."
- icon_state = "pyro core"
- anomaly_type = /obj/effect/anomaly/pyro
-
-/obj/item/assembly/signaler/anomaly/grav
- name = "\improper gravitational anomaly core"
- desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research."
- icon_state = "grav core"
- anomaly_type = /obj/effect/anomaly/grav
-
-/obj/item/assembly/signaler/anomaly/flux
- name = "\improper flux anomaly core"
- desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research."
- icon_state = "flux core"
- anomaly_type = /obj/effect/anomaly/flux
-
-/obj/item/assembly/signaler/anomaly/bluespace
- name = "\improper bluespace anomaly core"
- desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research."
- icon_state = "anomaly core"
- anomaly_type = /obj/effect/anomaly/bluespace
-
-/obj/item/assembly/signaler/anomaly/vortex
- name = "\improper vortex anomaly core"
- desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research."
- icon_state = "vortex core"
- anomaly_type = /obj/effect/anomaly/vortex
-
-/obj/item/assembly/signaler/anomaly/hallucination
- name = "\improper hallucination anomaly core"
- desc = "The neutralized core of a hallucination anomaly. It seems to be moving, but it's probably your imagination. It'd probably be valuable for research."
- icon_state = "hallucination_core"
- anomaly_type = /obj/effect/anomaly/hallucination
-
-/obj/item/assembly/signaler/anomaly/sparkler
- name = "\improper sparkler anomaly core"
- desc = "The neutralized core of a sparkler anomaly. Tiny electrical sparks arc off it."
- anomaly_type = /obj/effect/anomaly/sparkler
-
-/obj/item/assembly/signaler/anomaly/veins
- name = "\improper fountain anomaly core"
- desc = "The neutralized core of a fountain anomaly. Blood drips off of it."
- anomaly_type = /obj/effect/anomaly/sparkler
-
-/obj/item/assembly/signaler/anomaly/phantom
- name = "\improper phantom anomaly core"
- desc = "The neutralized core of a phantom anomaly. It quietly screams."
- anomaly_type = /obj/effect/anomaly/phantom
-
-/obj/item/assembly/signaler/anomaly/pulsar
- name = "\improper pulsar anomaly core"
- desc = "The neutralized core of a pulsar anomaly. Electromagnetic crackles come off it."
-
-/obj/item/assembly/signaler/anomaly/plasmasoul
- name = "\improper plasmasoul anomaly core"
- desc = "The neutralized core of a plasmasoul anomaly. The air around it hisses."
-
-/obj/item/assembly/signaler/anomaly/heartbeat
- name = "\improper heartbeat anomaly core"
- desc = "The neutralized core of a heartbeat anomaly. It's concerningly warm to the touch."
-
-/obj/item/assembly/signaler/anomaly/tvstatic
- name = "\improper static anomaly core"
- desc = "The neutralized core of a static anomaly. Your head hurts just staring at it"
-
-/obj/item/assembly/signaler/anomaly/melter
- name = "\improper melter anomaly core"
- desc = "The neutralized core of a melter anomaly. It sizzles and crackles. It'd probably be valuable for research."
- icon_state = "pyro core"
-
-
-
-/obj/item/assembly/signaler/anomaly/attack_self()
- return
-
/obj/item/assembly/signaler/cyborg
/obj/item/assembly/signaler/cyborg/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/assembly/voice.dm b/code/modules/assembly/voice.dm
index 84f1a5040015..dfa77c24aebb 100644
--- a/code/modules/assembly/voice.dm
+++ b/code/modules/assembly/voice.dm
@@ -103,6 +103,10 @@
. = ..()
listening = FALSE
+/obj/item/assembly/voice/preset
+ mode = 1
+ recorded = "example phrase"
+
#undef INCLUSIVE_MODE
#undef EXCLUSIVE_MODE
#undef RECOGNIZER_MODE
diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm
index 221febbe14d4..84170c1b78ed 100644
--- a/code/modules/asset_cache/asset_list.dm
+++ b/code/modules/asset_cache/asset_list.dm
@@ -124,8 +124,6 @@ GLOBAL_LIST_EMPTY(asset_datums)
for(var/size_id in sizes)
.["[name]_[size_id].png"] = SSassets.transport.get_asset_url("[name]_[size_id].png")
-
-
/datum/asset/spritesheet/proc/ensure_stripped(sizes_to_strip = sizes)
for(var/size_id in sizes_to_strip)
var/size = sizes[size_id]
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
index 635e589ecd36..c68daed425d3 100644
--- a/code/modules/asset_cache/asset_list_items.dm
+++ b/code/modules/asset_cache/asset_list_items.dm
@@ -122,18 +122,38 @@
"stamp-law" = 'icons/stamp_icons/large_stamp-law.png',
"stamp-chap" = 'icons/stamp_icons/large_stamp-chap.png',
"stamp-mime" = 'icons/stamp_icons/large_stamp-mime.png',
- "stamp-centcom" = 'icons/stamp_icons/large_stamp-centcom.png',
"stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png',
"stamp-solgov" = 'icons/stamp_icons/large_stamp-solgov.png',
"stamp-inteq" = 'icons/stamp_icons/large_stamp-inteq.png',
- "stamp-vanguard" = 'icons/stamp_icons/large_stamp-vanguard.png',
- "stamp-maa" = 'icons/stamp_icons/large_stamp-maa.png',
- "stamp-artificer" = 'icons/stamp_icons/large_stamp-artificer.png',
+ "stamp-inteq_vanguard" = 'icons/stamp_icons/large_stamp-inteq_vanguard.png',
+ "stamp-inteq_maa" = 'icons/stamp_icons/large_stamp-inteq_maa.png',
+ "stamp-inteq_artificer" = 'icons/stamp_icons/large_stamp-inteq_artificer.png',
+ "stamp-inteq_corpsman" = 'icons/stamp_icons/large_stamp-inteq_corpsman.png',
"stamp-clip" = 'icons/stamp_icons/large_stamp-clip.png',
"stamp-bard" = 'icons/stamp_icons/large_stamp-bard.png',
"stamp-gold" = 'icons/stamp_icons/large_stamp-gold.png',
"stamp-cybersun" = 'icons/stamp_icons/large_stamp-cybersun.png',
- "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png'
+ "stamp-biodynamics" = 'icons/stamp_icons/large_stamp-biodynamics.png',
+ "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png',
+ "stamp-ngr" = 'icons/stamp_icons/large_stamp-ngr.png',
+ "stamp-ngr_cap" = 'icons/stamp_icons/large_stamp-ngr_captain.png',
+ "stamp-ngr_fore" = 'icons/stamp_icons/large_stamp-ngr_foreman.png',
+ "stamp-ngr_lieu" = 'icons/stamp_icons/large_stamp-ngr_lieutenant.png',
+ "stamp-ngr_ensign" = 'icons/stamp_icons/large_stamp-ngr_ensign.png',
+ "stamp-nt" = 'icons/stamp_icons/large_stamp-nt_generic.png',
+ "stamp-nt_cap" = 'icons/stamp_icons/large_stamp-nt_captain.png',
+ "stamp-nt_fo" = 'icons/stamp_icons/large_stamp-nt_officer.png',
+ "stamp-nt_engdir" = 'icons/stamp_icons/large_stamp-nt_eng_dir.png',
+ "stamp-nt_meddir" = 'icons/stamp_icons/large_stamp-nt_med_dir.png',
+ "stamp-nt_scidir" = 'icons/stamp_icons/large_stamp-nt_sci_dir.png',
+ "stamp-ns" = 'icons/stamp_icons/large_stamp-ns_generic.png',
+ "stamp-ns_cap" = 'icons/stamp_icons/large_stamp-ns_captain.png',
+ "stamp-ns_supdir" = 'icons/stamp_icons/large_stamp-ns_sup_dir.png',
+ "stamp-vi" = 'icons/stamp_icons/large_stamp-vi_generic.png',
+ "stamp-vi_cap" = 'icons/stamp_icons/large_stamp-vi_captain.png',
+ "stamp-vi_secdir" = 'icons/stamp_icons/large_stamp-vi_sec_dir.png',
+ "stamp-vi_lp" = 'icons/stamp_icons/large_stamp-vi_loss_prevention.png',
+ "stamp-nt_central" = 'icons/stamp_icons/large_stamp-nt_central.png'
)
/datum/asset/simple/fuckywucky
@@ -167,30 +187,15 @@
)
parents = list("font-awesome.css" = 'html/font-awesome/css/all.min.css')
-/datum/asset/simple/namespaced/tgfont
- assets = list(
- "tgfont.eot" = file("tgui/packages/tgfont/static/tgfont.eot"),
- "tgfont.woff2" = file("tgui/packages/tgfont/static/tgfont.woff2"),
- )
- parents = list(
- "tgfont.css" = file("tgui/packages/tgfont/static/tgfont.css"),
- )
-
/datum/asset/simple/fonts
assets = list(
"sga.ttf" = 'html/sga.ttf'
)
-/// Override this in order to start the creation of the spritehseet.
-/// This is where all your Insert, InsertAll, etc calls should be inside.
-/datum/asset/spritesheet/proc/create_spritesheets()
- SHOULD_CALL_PARENT(FALSE)
- CRASH("create_spritesheets() not implemented for [type]!")
-
/datum/asset/spritesheet/chat
name = "chat"
-/datum/asset/spritesheet/chat/create_spritesheets()
+/datum/asset/spritesheet/chat/register()
InsertAll("emoji", EMOJI_SET)
// pre-loading all lanugage icons also helps to avoid meta
InsertAll("language", 'icons/misc/language.dmi')
@@ -201,6 +206,7 @@
if (icon != 'icons/misc/language.dmi')
var/icon_state = initial(L.icon_state)
Insert("language-[icon_state]", icon, icon_state=icon_state)
+ ..()
/datum/asset/simple/lobby
assets = list(
@@ -253,7 +259,6 @@
"hierophant" = 'icons/UI_Icons/Achievements/Boss/hierophant.png',
"legion" = 'icons/UI_Icons/Achievements/Boss/legion.png',
"miner" = 'icons/UI_Icons/Achievements/Boss/miner.png',
- "swarmer" = 'icons/UI_Icons/Achievements/Boss/swarmer.png',
"tendril" = 'icons/UI_Icons/Achievements/Boss/tendril.png',
"featofstrength" = 'icons/UI_Icons/Achievements/Misc/featofstrength.png',
"helbital" = 'icons/UI_Icons/Achievements/Misc/helbital.png',
@@ -452,8 +457,8 @@
/datum/asset/spritesheet/fish
name = "fish"
-/datum/asset/spritesheet/fish/create_spritesheets()
- for (var/path in subtypesof(/obj/item/fish))
+/datum/asset/spritesheet/fish/register()
+ for(var/path in subtypesof(/obj/item/fish))
var/obj/item/fish/fish_type = path
var/fish_icon = initial(fish_type.icon)
var/fish_icon_state = initial(fish_type.icon_state)
diff --git a/code/modules/atmospherics/auxgm/breathing_classes.dm b/code/modules/atmospherics/auxgm/breathing_classes.dm
index cfc82adbffa1..10f76d19d528 100644
--- a/code/modules/atmospherics/auxgm/breathing_classes.dm
+++ b/code/modules/atmospherics/auxgm/breathing_classes.dm
@@ -23,8 +23,9 @@
/datum/breathing_class/oxygen
gases = list(
GAS_O2 = 1,
- GAS_PLUOXIUM = 8,
+ GAS_O3 = -0.7,
GAS_CO2 = -0.7, // CO2 isn't actually toxic, just an asphyxiant
+ GAS_ARGON = -1,
)
products = list(
GAS_CO2 = 1,
diff --git a/code/modules/atmospherics/auxgm/gas_types.dm b/code/modules/atmospherics/auxgm/gas_types.dm
index 662b88046956..c42c3981214b 100644
--- a/code/modules/atmospherics/auxgm/gas_types.dm
+++ b/code/modules/atmospherics/auxgm/gas_types.dm
@@ -1,6 +1,6 @@
/datum/gas/oxygen
id = GAS_O2
- specific_heat = 20
+ specific_heat = 30
name = "Oxygen"
oxidation_temperature = T0C - 100 // it checks max of this and fire temperature, so rarely will things spontaneously combust
breath_alert_info = list(
@@ -16,7 +16,7 @@
/datum/gas/nitrogen
id = GAS_N2
- specific_heat = 20
+ specific_heat = 30
name = "Nitrogen"
breath_alert_info = list(
not_enough_alert = list(
@@ -29,6 +29,14 @@
)
)
+/datum/gas/carbon_monoxide
+ id = GAS_CO
+ specific_heat = 30
+ name = "Carbon Monoxide"
+ breath_results = GAS_CO
+
+ flags = GAS_FLAG_DANGEROUS
+
/datum/gas/carbon_dioxide //what the fuck is this?
id = GAS_CO2
specific_heat = 30
@@ -64,29 +72,26 @@
alert_type = /atom/movable/screen/alert/too_much_tox
)
)
- fire_burn_rate = OXYGEN_BURN_RATE_BASE // named when plasma fires were the only fires, surely
+ fire_burn_rate = PLASMA_BURN_RATE_BASE // named when plasma fires were the only fires, surely
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
fire_products = FIRE_PRODUCT_PLASMA
enthalpy = FIRE_PLASMA_ENERGY_RELEASED // 3000000, 3 megajoules, 3000 kj
+ odor = GAS_ODOR_SMOG
+ odor_emotes = TRUE
+ odor_power = 10 //extremely toxic
+
/datum/gas/water_vapor
id = GAS_H2O
- specific_heat = 40
+ specific_heat = 75
name = "Water Vapor"
gas_overlay = "water_vapor"
moles_visible = MOLES_GAS_VISIBLE
flags = GAS_FLAG_DANGEROUS
fusion_power = 8
- enthalpy = -241800 // FIRE_HYDROGEN_ENERGY_RELEASED is actually what this was supposed to be
+ enthalpy = -285800 // FIRE_HYDROGEN_ENERGY_RELEASED is actually what this was supposed to be
breath_reagent = /datum/reagent/water
-/datum/gas/hypernoblium
- id = GAS_HYPERNOB
- specific_heat = 2000
- name = "Hyper-noblium"
- gas_overlay = "freon"
- moles_visible = MOLES_GAS_VISIBLE
-
/datum/gas/nitrous_oxide
id = GAS_NITROUS
specific_heat = 40
@@ -99,18 +104,6 @@
oxidation_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST + 100
enthalpy = 81600
-/datum/gas/nitryl
- id = GAS_NITRYL
- specific_heat = 20
- name = "Nitryl"
- color = "#963"
- moles_visible = MOLES_GAS_VISIBLE
- flags = GAS_FLAG_DANGEROUS
- fusion_power = 15
- fire_products = list(GAS_N2 = 0.5)
- enthalpy = 33200
- oxidation_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50
-
/datum/gas/tritium
id = GAS_TRITIUM
specific_heat = 10
@@ -125,7 +118,7 @@
fire_radiation_released = 50 // arbitrary number, basically 60 moles of trit burning will just barely start to harm you
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50
-/datum/gas/bz
+/datum/gas/bz //remove from atmospheres // https://en.wikipedia.org/wiki/3-Quinuclidinyl_benzilate not sure why we have this
id = GAS_BZ
specific_heat = 20
name = "BZ"
@@ -133,20 +126,29 @@
fusion_power = 8
enthalpy = FIRE_CARBON_ENERGY_RELEASED // it is a mystery
-/datum/gas/stimulum
- id = GAS_STIMULUM
- specific_heat = 5
- name = "Stimulum"
- fusion_power = 7
-
-/datum/gas/pluoxium
- id = GAS_PLUOXIUM
- specific_heat = 80
- name = "Pluoxium"
- fusion_power = 10
- oxidation_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST * 1000 // it is VERY stable
- oxidation_rate = 8 // when it can oxidize, it can oxidize a LOT
- enthalpy = -50000 // but it reduces the heat output a bit
+/datum/gas/ozone
+ id = GAS_O3
+ specific_heat = 30
+ name = "Ozone"
+ gas_overlay = "water_vapor"
+ moles_visible = MOLES_GAS_VISIBLE
+ color = "#a1a1e6"
+ oxidation_temperature = T0C - 100 // it checks max of this and fire temperature, so rarely will things spontaneously combust
+ oxidation_rate = 3
+ enthalpy = 142000
+
+ odor = GAS_ODOR_CHEMICAL
+ odor_emotes = TRUE
+ odor_power = 1
+
+
+/datum/gas/argon
+ id = GAS_ARGON
+ specific_heat = 20
+ name = "Argon"
+ gas_overlay = "water_vapor"
+ oxidation_rate = -1
+ //moles_visible = MOLES_GAS_VISIBLE
/datum/gas/freon
id = GAS_FREON
@@ -161,7 +163,7 @@
specific_heat = 10
name = "Hydrogen"
flags = GAS_FLAG_DANGEROUS
- moles_visible = MOLES_GAS_VISIBLE
+ //moles_visible = MOLES_GAS_VISIBLE
color = "#ffe"
fusion_power = 0
fire_products = list(GAS_H2O = 1)
@@ -171,10 +173,12 @@
/datum/gas/chlorine
id = GAS_CHLORINE
- specific_heat = 20
+ specific_heat = 30
name = "Chlorine"
flags = GAS_FLAG_DANGEROUS
moles_visible = MOLES_GAS_VISIBLE * 5
+ oxidation_temperature = T0C - 100
+ oxidation_rate = 0.5
gas_overlay = "nitrous_oxide"
color = "#FFFB89"
fusion_power = 0
@@ -192,3 +196,48 @@
enthalpy = 63000
fire_burn_rate = 1
fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
+
+/datum/gas/sulfur_dioxide
+ id = GAS_SO2
+ specific_heat = 22
+ name = "Sulfur Dioxide"
+ flags = GAS_FLAG_DANGEROUS
+ moles_visible = MOLES_GAS_VISIBLE * 40
+ gas_overlay = "generic"
+ color = "#d4cb28"
+ enthalpy = -296800
+
+ odor = GAS_ODOR_SULFUR
+ odor_emotes = TRUE
+ odor_power = 1
+
+/datum/gas/methane
+ id = GAS_METHANE
+ specific_heat = 35
+ name = "Methane"
+ flags = GAS_FLAG_DANGEROUS
+ //moles_visible = MOLES_GAS_VISIBLE
+ color = "#ffe"
+ fusion_power = 0
+ fire_products = list(GAS_H2O = 0.5, GAS_HYDROGEN = 1)
+ enthalpy = -74600
+ fire_burn_rate = 2
+ fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50
+
+/datum/gas/ammonia
+ id = GAS_AMMONIA
+
+ specific_heat = 100 //used as a coolant
+ name = "Ammonia"
+ flags = GAS_FLAG_DANGEROUS
+ moles_visible = MOLES_GAS_VISIBLE
+ color = "#ffe"
+ gas_overlay = "nitrous_oxide"
+ fusion_power = 0
+ fire_products = list(GAS_N2 = 0.2, GAS_H2O = 0.8)
+ enthalpy = -46000
+ fire_burn_rate = 0.2
+
+ odor = GAS_ODOR_CHEMICAL
+ odor_emotes = TRUE
+ odor_power = 3
diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
index 18b7b99a7310..d5c0a9fead1d 100644
--- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
+++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm
@@ -20,7 +20,7 @@
var/pressure_direction = 0
var/turf/pressure_specific_target
- var/datum/gas_mixture/turf/air
+ var/datum/gas_mixture/air
var/obj/effect/hotspot/active_hotspot
var/planetary_atmos = FALSE //air will revert to initial_gas_mix over time
@@ -184,14 +184,14 @@
/turf/proc/handle_decompression_floor_rip()
/turf/open/floor/handle_decompression_floor_rip(sum)
- if(sum > 20 && prob(clamp(sum / 10, 0, 30)) && !blocks_air)
+ if(!blocks_air && sum > 20 && prob(clamp(sum / 10, 0, 30)))
remove_tile()
/turf/open/process_cell(fire_count)
//////////////////////////SPACEWIND/////////////////////////////
-/turf/proc/consider_pressure_difference()
+/turf/proc/consider_pressure_difference(turf/T, difference)
return
/turf/open/consider_pressure_difference(turf/T, difference)
diff --git a/code/modules/atmospherics/gasmixtures/auxgm.dm b/code/modules/atmospherics/gasmixtures/auxgm.dm
index e774d1060ec3..e2f873c9dfd0 100644
--- a/code/modules/atmospherics/gasmixtures/auxgm.dm
+++ b/code/modules/atmospherics/gasmixtures/auxgm.dm
@@ -1,5 +1,5 @@
GLOBAL_LIST_INIT(hardcoded_gases, list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLASMA)) //the main four gases, which were at one time hardcoded
-GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_PLUOXIUM, GAS_STIMULUM, GAS_NITRYL, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE))) //unable to react amongst themselves
+GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE))) //unable to react amongst themselves
// Auxgm
// It's a send-up of XGM, like what baystation got.
@@ -38,25 +38,48 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(GAS_O2, GAS_N2, GAS_CO2, GA
/datum/gas
var/id = ""
+ /// heat capacity? thats the only explanation on what this var is
var/specific_heat = 0
var/name = ""
- var/gas_overlay = "generic" //icon_state in icons/effects/atmospherics.dmi
- var/color = "#ffff" // Tints the overlay by this color. Use instead of gas_overlay, usually (but not necessarily).
+ ///icon_state in icons/effects/atmospherics.dmi
+ var/gas_overlay = "generic"
+ /// Tints the overlay by this color. Use instead of gas_overlay, usually (but not necessarily).
+ var/color = "#ffff"
var/moles_visible = null
- var/flags = NONE //currently used by canisters
- var/group = null // groups for scrubber/filter listing
- var/fusion_power = 0 // How much the gas destabilizes a fusion reaction
- var/breath_results = GAS_CO2 // what breathing this breathes out
- var/datum/reagent/breath_reagent = null // what breathing this adds to your reagents
- var/datum/reagent/breath_reagent_dangerous = null // what breathing this adds to your reagents IF it's above a danger threshold
- var/list/breath_alert_info = null // list for alerts that pop up when you have too much/not enough of something
- var/oxidation_temperature = null // temperature above which this gas is an oxidizer; null for none
- var/oxidation_rate = 1 // how many moles of this can oxidize how many moles of material
- var/fire_temperature = null // temperature above which gas may catch fire; null for none
- var/list/fire_products = null // what results when this gas is burned (oxidizer or fuel); null for none
- var/enthalpy = 0 // Standard enthalpy of formation in joules, used for fires
- var/fire_burn_rate = 1 // how many moles are burned per product released
- var/fire_radiation_released = 0 // How much radiation is released when this gas burns
+ ///currently used by canisters
+ var/flags = NONE
+ /// groups for scrubber/filter listing
+ var/group = null
+ /// How much the gas destabilizes a fusion reaction
+ var/fusion_power = 0
+ /// what breathing this breathes out
+ var/breath_results = GAS_CO2
+ /// what breathing this adds to your reagents
+ var/datum/reagent/breath_reagent = null
+ /// what breathing this adds to your reagents IF it's above a danger threshold
+ var/datum/reagent/breath_reagent_dangerous = null
+ /// list for alerts that pop up when you have too much/not enough of something
+ var/list/breath_alert_info = null
+ /// temperature above which this gas is an oxidizer; null for none
+ var/oxidation_temperature = null
+ /// how much a single mole of this gas can oxidize another mole(s) of gas
+ var/oxidation_rate = 1
+ /// temperature above which gas may catch fire; null for none
+ var/fire_temperature = null
+ /// what results when this gas is burned (oxidizer or fuel); null for none
+ var/list/fire_products = null
+ /// Standard enthalpy of formation in joules, used for fires
+ var/enthalpy = 0
+ /// how many moles are burned per product released
+ var/fire_burn_rate = 1
+ /// How much radiation is released when this gas burns
+ var/fire_radiation_released = 0
+ ///a list of odor texts this gas gives, if null or odor_power is 0 this gas is smellless
+ var/list/odor
+ ///if the odor gives negative signs such as coughing on a high concentratation. if your gas doesn't have a noticeable scent, set this to false
+ var/odor_emotes = TRUE
+ ///the multiplier per of this gas's odor, if higher its easily detected in lower conentrations and much more unbearable at lower conentrations as well
+ var/odor_power = 0
/datum/gas/proc/breath(partial_pressure, light_threshold, heavy_threshold, moles, mob/living/carbon/C, obj/item/organ/lungs/lungs)
// This is only called on gases with the GAS_FLAG_BREATH_PROC flag. When possible, do NOT use this--
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index fa3ba14457d5..1aff4ddadb7f 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -210,8 +210,6 @@ get_true_breath_pressure(pp) --> gas_pp = pp/breath_pp*total_moles()
10 = 2.5/5*20
*/
-/datum/gas_mixture/turf
-
/// Releases gas from src to output air. This means that it can not transfer air to gas mixture with higher pressure.
/datum/gas_mixture/proc/release_gas_to(datum/gas_mixture/output_air, target_pressure)
var/output_starting_pressure = output_air.return_pressure()
diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm
index b824c1d78d61..10c4e9e417d0 100644
--- a/code/modules/atmospherics/gasmixtures/reactions.dm
+++ b/code/modules/atmospherics/gasmixtures/reactions.dm
@@ -45,15 +45,15 @@
/datum/gas_reaction/proc/test()
return list("success" = TRUE)
-/datum/gas_reaction/nobliumsupression
+/datum/gas_reaction/argon
priority = INFINITY
- name = "Hyper-Noblium Reaction Suppression"
+ name = "Noble Gas Reaction Suppression"
id = "nobstop"
-/datum/gas_reaction/nobliumsupression/init_reqs()
- min_requirements = list(GAS_HYPERNOB = REACTION_OPPRESSION_THRESHOLD)
+/datum/gas_reaction/argon/init_reqs()
+ min_requirements = list(GAS_ARGON = REACTION_OPPRESSION_THRESHOLD)
-/datum/gas_reaction/nobliumsupression/react()
+/datum/gas_reaction/argon/react()
return STOP_REACTIONS
//water vapor: puts out fires?
@@ -223,7 +223,7 @@
else
temperature_scale = (temperature-PLASMA_MINIMUM_BURN_TEMPERATURE)/(PLASMA_UPPER_TEMPERATURE-PLASMA_MINIMUM_BURN_TEMPERATURE)
if(temperature_scale > 0)
- oxygen_burn_rate = OXYGEN_BURN_RATE_BASE - temperature_scale
+ oxygen_burn_rate = PLASMA_BURN_RATE_BASE - temperature_scale
if(air.get_moles(GAS_O2) / air.get_moles(GAS_PLASMA) > SUPER_SATURATION_THRESHOLD) //supersaturation. Form Tritium.
super_saturation = TRUE
if(air.get_moles(GAS_O2) > air.get_moles(GAS_PLASMA)*PLASMA_OXYGEN_FULLBURN)
@@ -312,7 +312,7 @@
else
temperature_scale = (FREON_MAXIMUM_BURN_TEMPERATURE - temperature)/(FREON_MAXIMUM_BURN_TEMPERATURE - FREON_LOWER_TEMPERATURE) //calculate the scale based on the temperature
if(temperature_scale >= 0)
- oxygen_burn_rate = OXYGEN_BURN_RATE_BASE - temperature_scale
+ oxygen_burn_rate = PLASMA_BURN_RATE_BASE - temperature_scale
if(air.get_moles(GAS_O2) > air.get_moles(GAS_FREON)*FREON_OXYGEN_FULLBURN)
freon_burn_rate = (air.get_moles(GAS_FREON)*temperature_scale)/FREON_BURN_RATE_DELTA
else
@@ -521,33 +521,7 @@
air.set_temperature(clamp(thermal_energy/new_heat_capacity, TCMB, INFINITY)) //THIS SHOULD STAY OR FUSION WILL EAT YOUR FACE
return REACTING
-/datum/gas_reaction/fusion/test()
- var/datum/gas_mixture/G = new
- G.set_moles(GAS_CO2,300)
- G.set_moles(GAS_PLASMA,1000)
- G.set_moles(GAS_TRITIUM,100.61)
- G.set_moles(GAS_NITRYL,1)
- G.set_temperature(15000)
- G.set_volume(1000)
-
- var/result = G.react()
- if(result != REACTING)
- return list("success" = FALSE, "message" = "Reaction didn't go at all!")
-
- var/instability = G.analyzer_results["fusion"]
- var/plas = G.get_moles(GAS_PLASMA)
- var/co2 = G.get_moles(GAS_CO2)
- var/temp = G.return_temperature()
-
- if(abs(instability - 2.66) > 0.01)
- return list("success" = FALSE, "message" = "Fusion is not calculating analyzer results correctly, should be 2.66, is instead [instability]")
- if(abs(plas - 458.241) > 0.5)
- return list("success" = FALSE, "message" = "Fusion is not calculating plasma correctly, should be 458.241, is instead [plas]")
- if(abs(co2 - 505.369) > 0.5)
- return list("success" = FALSE, "message" = "Fusion is not calculating co2 correctly, should be 505.369, is instead [co2]")
- if(abs(temp - 112291) > 200) // I'm not calculating this at all just putting in the values I get when I do it now
- return list("success" = FALSE, "message" = "Fusion is not calculating temperature correctly, should be around 112291, is instead [temp]")
- return ..()
+//has fusion ever worked?
/datum/gas_reaction/nitrousformation //formationn of n2o, esothermic, requires bz as catalyst
priority = 3
@@ -581,51 +555,6 @@
air.set_temperature(max(((temperature * old_heat_capacity + energy_used) / new_heat_capacity),TCMB)) //the air heats up when reacting
return REACTING
-/datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst.
- priority = 4
- name = "Nitryl formation"
- id = "nitrylformation"
-
-/datum/gas_reaction/nitrylformation/init_reqs()
- min_requirements = list(
- GAS_O2 = 20,
- GAS_N2 = 20,
- GAS_NITROUS = 5,
- "TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST*25
- )
-
-/datum/gas_reaction/nitrylformation/react(datum/gas_mixture/air)
- var/temperature = air.return_temperature()
-
- var/old_heat_capacity = air.heat_capacity()
- var/heat_efficency = min(temperature/(FIRE_MINIMUM_TEMPERATURE_TO_EXIST*100),air.get_moles(GAS_O2),air.get_moles(GAS_N2))
- var/energy_used = heat_efficency*NITRYL_FORMATION_ENERGY
- if ((air.get_moles(GAS_O2) - heat_efficency < 0)|| (air.get_moles(GAS_N2) - heat_efficency < 0)) //Shouldn't produce gas from nothing.
- return NO_REACTION
- air.adjust_moles(GAS_O2, -heat_efficency)
- air.adjust_moles(GAS_N2, -heat_efficency)
- air.adjust_moles(GAS_NITRYL, heat_efficency*2)
-
- if(energy_used > 0)
- var/new_heat_capacity = air.heat_capacity()
- if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
- air.set_temperature(max(((temperature*old_heat_capacity - energy_used)/new_heat_capacity),TCMB))
- return REACTING
-
-/datum/gas_reaction/nitrylformation/test()
- var/datum/gas_mixture/G = new
- G.set_moles(GAS_O2,30)
- G.set_moles(GAS_N2,30)
- G.set_moles(GAS_NITROUS,10)
- G.set_volume(1000)
- G.set_temperature(150000)
- var/result = G.react()
- if(result != REACTING)
- return list("success" = FALSE, "message" = "Reaction didn't go at all!")
- if(G.get_moles(GAS_NITRYL) < 0.8)
- return list("success" = FALSE, "message" = "Nitryl isn't being generated correctly! Only [G.get_moles(GAS_BZ)] mols were produced, when there should be 0.8!")
- return ..()
-
/datum/gas_reaction/bzformation //Formation of BZ by combining plasma and tritium at low pressures. Exothermic.
priority = 5
name = "BZ Gas formation"
@@ -702,130 +631,6 @@
air.set_temperature(max(((temperature*old_heat_capacity - energy_used)/new_heat_capacity),TCMB))
return REACTING
-/datum/gas_reaction/stimformation //Stimulum formation follows a strange pattern of how effective it will be at a given temperature, having some multiple peaks and some large dropoffs. Exo and endo thermic.
- priority = 7
- name = "Stimulum formation"
- id = "stimformation"
-
-/datum/gas_reaction/stimformation/init_reqs()
- min_requirements = list(
- GAS_TRITIUM = 30,
- GAS_PLASMA = 10,
- GAS_BZ = 20,
- GAS_NITRYL = 30,
- "TEMP" = STIMULUM_HEAT_SCALE/2)
-
-/datum/gas_reaction/stimformation/react(datum/gas_mixture/air)
- var/old_heat_capacity = air.heat_capacity()
- var/heat_scale = min(air.return_temperature()/STIMULUM_HEAT_SCALE,air.get_moles(GAS_TRITIUM),air.get_moles(GAS_PLASMA),air.get_moles(GAS_NITRYL))
- var/stim_energy_change = heat_scale + STIMULUM_FIRST_RISE*(heat_scale**2) - STIMULUM_FIRST_DROP*(heat_scale**3) + STIMULUM_SECOND_RISE*(heat_scale**4) - STIMULUM_ABSOLUTE_DROP*(heat_scale**5)
-
- if ((air.get_moles(GAS_TRITIUM) - heat_scale < 0)|| (air.get_moles(GAS_PLASMA) - heat_scale < 0) || (air.get_moles(GAS_NITRYL) - heat_scale < 0)) //Shouldn't produce gas from nothing.
- return NO_REACTION
- air.adjust_moles(GAS_STIMULUM, heat_scale/10)
- air.adjust_moles(GAS_TRITIUM, -heat_scale)
- air.adjust_moles(GAS_PLASMA, -heat_scale)
- air.adjust_moles(GAS_NITRYL, -heat_scale)
-
- if(stim_energy_change)
- var/new_heat_capacity = air.heat_capacity()
- if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
- air.set_temperature(max(((air.return_temperature()*old_heat_capacity + stim_energy_change)/new_heat_capacity),TCMB))
- return REACTING
-
-/datum/gas_reaction/stimformation/test()
- //above mentioned "strange pattern" is a basic quintic polynomial, it's fine, can calculate it manually
- var/datum/gas_mixture/G = new
- G.set_moles(GAS_BZ,30)
- G.set_moles(GAS_PLASMA,1000)
- G.set_moles(GAS_TRITIUM,1000)
- G.set_moles(GAS_NITRYL,1000)
- G.set_volume(1000)
- G.set_temperature(12998000) // yeah, really
-
- var/result = G.react()
- if(result != REACTING)
- return list("success" = FALSE, "message" = "Reaction didn't go at all!")
- if(!G.get_moles(GAS_STIMULUM))
- return list("success" = FALSE, "message" = "Stimulum isn't being generated!")
- return ..()
-
-/datum/gas_reaction/nobliumformation //Hyper-Noblium formation is extrememly endothermic, but requires high temperatures to start. Due to its high mass, hyper-nobelium uses large amounts of nitrogen and tritium. BZ can be used as a catalyst to make it less endothermic.
- priority = 8
- name = "Hyper-Noblium condensation"
- id = "nobformation"
-
-/datum/gas_reaction/nobliumformation/init_reqs()
- min_requirements = list(
- GAS_N2 = 10,
- GAS_TRITIUM = 5,
- "ENER" = NOBLIUM_FORMATION_ENERGY)
-
-/datum/gas_reaction/nobliumformation/react(datum/gas_mixture/air)
- . = REACTING
- var/old_heat_capacity = air.heat_capacity()
- var/nob_formed = min((air.get_moles(GAS_N2)+air.get_moles(GAS_TRITIUM))/100,air.get_moles(GAS_TRITIUM)/10,air.get_moles(GAS_N2)/20)
- var/energy_taken = nob_formed*(NOBLIUM_FORMATION_ENERGY/(max(air.get_moles(GAS_BZ),1)))
- if ((air.get_moles(GAS_TRITIUM) - 10*nob_formed < 0) || (air.get_moles(GAS_N2) - 20*nob_formed < 0))
- return NO_REACTION
- air.adjust_moles(GAS_TRITIUM, -10*nob_formed)
- air.adjust_moles(GAS_N2, -20*nob_formed)
- air.adjust_moles(GAS_HYPERNOB,nob_formed)
-
- if (nob_formed)
- var/new_heat_capacity = air.heat_capacity()
- if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
- air.set_temperature(max(((air.return_temperature()*old_heat_capacity - energy_taken)/new_heat_capacity),TCMB))
-
-/datum/gas_reaction/nobliumformation/test()
- var/datum/gas_mixture/G = new
- G.set_moles(GAS_N2,100)
- G.set_moles(GAS_TRITIUM,500)
- G.set_volume(1000)
- G.set_temperature(5000000) // yeah, really
- var/result = G.react()
- if(result != REACTING)
- return list("success" = FALSE, "message" = "Reaction didn't go at all!")
- return ..()
-
-/datum/gas_reaction/stim_ball
- priority = 9
- name ="Stimulum Energy Ball"
- id = "stimball"
-
-/datum/gas_reaction/stim_ball/init_reqs()
- min_requirements = list(
- GAS_PLUOXIUM = STIM_BALL_GAS_AMOUNT,
- GAS_STIMULUM = STIM_BALL_GAS_AMOUNT,
- GAS_NITRYL = MINIMUM_MOLE_COUNT,
- GAS_PLASMA = MINIMUM_MOLE_COUNT,
- "TEMP" = FIRE_MINIMUM_TEMPERATURE_TO_EXIST
- )
-
-/datum/gas_reaction/stim_ball/react(datum/gas_mixture/air, datum/holder)
- var/turf/open/location
- var/old_heat_capacity = air.heat_capacity()
- if(istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet.
- var/datum/pipeline/pipenet = holder
- location = get_turf(pick(pipenet.members))
- else
- location = get_turf(holder)
- var/ball_shot_angle = 180*cos(air.get_moles(GAS_H2O)/air.get_moles(GAS_NITRYL))+180
- var/stim_used = min(STIM_BALL_GAS_AMOUNT/air.get_moles(GAS_PLASMA),air.get_moles(GAS_STIMULUM))
- var/pluox_used = min(STIM_BALL_GAS_AMOUNT/air.get_moles(GAS_PLASMA),air.get_moles(GAS_PLUOXIUM))
- var/energy_released = stim_used*STIMULUM_HEAT_SCALE//Stimulum has a lot of stored energy, and breaking it up releases some of it
- location.fire_nuclear_particle(ball_shot_angle)
- air.adjust_moles(GAS_CO2, 4*pluox_used)
- air.adjust_moles(GAS_N2, 8*stim_used)
- air.adjust_moles(GAS_PLUOXIUM, -pluox_used)
- air.adjust_moles(GAS_STIMULUM, -stim_used)
- air.adjust_moles(GAS_PLASMA, max(-air.get_moles(GAS_PLASMA)/2,-30))
- if(energy_released)
- var/new_heat_capacity = air.heat_capacity()
- if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
- air.set_temperature(clamp((air.return_temperature()*old_heat_capacity + energy_released)/new_heat_capacity,TCMB,INFINITY))
- return REACTING
-
/datum/gas_reaction/hydrogen_chloride_formation
priority = 11
name = "Hydrogen Chloride formation"
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index 236c7b040d99..bfd869247f8c 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -107,9 +107,9 @@
var/datum/radio_frequency/radio_connection
//anything outright hazardous (flammable, toxic, generally Weird)
- var/list/filter_basic = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE)
+ var/list/filter_basic = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE, GAS_CO, GAS_AMMONIA, GAS_METHANE, GAS_SO2, GAS_O3)
//anything that isn't o2 or n2.
- var/list/filter_extra = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_NITRYL, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE, GAS_H2O, GAS_HYPERNOB, GAS_STIMULUM, GAS_PLUOXIUM)
+ var/list/filter_extra = list(GAS_CO2, GAS_PLASMA, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_FREON, GAS_HYDROGEN, GAS_CHLORINE, GAS_HYDROGEN_CHLORIDE, GAS_H2O, GAS_CO, GAS_ARGON, GAS_AMMONIA, GAS_METHANE, GAS_SO2, GAS_O3)
var/list/TLV = list( // Breathable air.
"pressure" = new/datum/tlv(HAZARD_LOW_PRESSURE, WARNING_LOW_PRESSURE, WARNING_HIGH_PRESSURE, HAZARD_HIGH_PRESSURE), // kPa. Values are min2, min1, max1, max2
@@ -120,16 +120,18 @@
GAS_PLASMA = new/datum/tlv/dangerous,
GAS_NITROUS = new/datum/tlv/dangerous,
GAS_BZ = new/datum/tlv/dangerous,
- GAS_HYPERNOB = new/datum/tlv(-1, -1, 1000, 1000), // Hyper-Noblium is inert and nontoxic
GAS_H2O = new/datum/tlv/dangerous,
GAS_TRITIUM = new/datum/tlv/dangerous,
- GAS_STIMULUM = new/datum/tlv/dangerous,
- GAS_NITRYL = new/datum/tlv/dangerous,
- GAS_PLUOXIUM = new/datum/tlv(-1, -1, 5, 6), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
GAS_FREON = new/datum/tlv/dangerous,
GAS_HYDROGEN = new/datum/tlv/dangerous,
GAS_CHLORINE = new/datum/tlv/dangerous,
- GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
+ GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous,
+ GAS_CO = new/datum/tlv/dangerous,
+ GAS_ARGON = new/datum/tlv(-1, -1, 1000, 1000), //inert and nontoxic
+ GAS_AMMONIA = new/datum/tlv/dangerous,
+ GAS_METHANE = new/datum/tlv/dangerous,
+ GAS_SO2 = new/datum/tlv/dangerous,
+ GAS_O3 = new/datum/tlv/dangerous,
)
/obj/machinery/airalarm/server // No checks here.
@@ -142,16 +144,18 @@
GAS_PLASMA = new/datum/tlv/no_checks,
GAS_NITROUS = new/datum/tlv/no_checks,
GAS_BZ = new/datum/tlv/no_checks,
- GAS_HYPERNOB = new/datum/tlv/no_checks,
GAS_H2O = new/datum/tlv/no_checks,
GAS_TRITIUM = new/datum/tlv/no_checks,
- GAS_STIMULUM = new/datum/tlv/no_checks,
- GAS_NITRYL = new/datum/tlv/no_checks,
- GAS_PLUOXIUM = new/datum/tlv/no_checks,
GAS_FREON = new/datum/tlv/no_checks,
GAS_HYDROGEN = new/datum/tlv/no_checks,
GAS_CHLORINE = new/datum/tlv/dangerous,
- GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
+ GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous,
+ GAS_CO = new/datum/tlv/dangerous,
+ GAS_ARGON = new/datum/tlv/no_checks,
+ GAS_AMMONIA = new/datum/tlv/no_checks,
+ GAS_METHANE = new/datum/tlv/no_checks,
+ GAS_SO2 = new/datum/tlv/no_checks,
+ GAS_O3 = new/datum/tlv/no_checks,
)
heating_manage = FALSE
@@ -165,16 +169,18 @@
GAS_PLASMA = new/datum/tlv/dangerous,
GAS_NITROUS = new/datum/tlv/dangerous,
GAS_BZ = new/datum/tlv/dangerous,
- GAS_HYPERNOB = new/datum/tlv(-1, -1, 1000, 1000), // Hyper-Noblium is inert and nontoxic
GAS_H2O = new/datum/tlv/dangerous,
GAS_TRITIUM = new/datum/tlv/dangerous,
- GAS_STIMULUM = new/datum/tlv/dangerous,
- GAS_NITRYL = new/datum/tlv/dangerous,
- GAS_PLUOXIUM = new/datum/tlv(-1, -1, 1000, 1000), // Unlike oxygen, pluoxium does not fuel plasma/tritium fires
GAS_FREON = new/datum/tlv/dangerous,
GAS_HYDROGEN = new/datum/tlv/dangerous,
GAS_CHLORINE = new/datum/tlv/dangerous,
- GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous
+ GAS_HYDROGEN_CHLORIDE = new/datum/tlv/dangerous,
+ GAS_CO = new/datum/tlv/dangerous,
+ GAS_ARGON = new/datum/tlv(-1, -1, 1000, 1000), //inert and nontoxic
+ GAS_AMMONIA = new/datum/tlv/dangerous,
+ GAS_METHANE = new/datum/tlv/dangerous,
+ GAS_SO2 = new/datum/tlv/dangerous,
+ GAS_O3 = new/datum/tlv/dangerous,
)
heating_manage = FALSE
@@ -239,8 +245,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
/obj/machinery/airalarm/Destroy()
SSradio.remove_object(src, frequency)
- qdel(wires)
- wires = null
+ QDEL_NULL(wires)
var/area/ourarea = get_area(src)
ourarea.atmosalert(FALSE, src)
return ..()
@@ -273,6 +278,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27)
ui = new(user, src, "AirAlarm", name)
ui.open()
+/obj/machinery/airalarm/examine_more(mob/user)
+ ui_interact(user)
+ return ..()
+
/obj/machinery/airalarm/ui_data(mob/user)
var/data = list(
"locked" = locked,
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index 5ff6b2e396b5..6bd2308d929b 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -28,7 +28,7 @@
var/obj/item/radio/radio
var/radio_key = /obj/item/encryptionkey/headset_com
- var/radio_channel = RADIO_CHANNEL_COMMAND
+ var/radio_channel = RADIO_CHANNEL_EMERGENCY
var/running_anim = FALSE
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index dc8b278959f6..55e397652e48 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -20,7 +20,7 @@
var/id_tag = null
var/scrubbing = SCRUBBING //0 = siphoning, 1 = scrubbing
- var/filter_types = list(GAS_CO2, GAS_BZ)
+ var/filter_types = list(GAS_CO2, GAS_BZ, GAS_CO)
var/volume_rate = 200
var/widenet = 0 //is this scrubber acting on the 3x3 area around it.
var/list/turf/adjacent_turfs = list()
@@ -310,10 +310,10 @@
icon_state = "scrub_map_on-4"
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/lavaland
- filter_types = list(GAS_CO2, GAS_PLASMA, GAS_H2O, GAS_BZ)
+ filter_types = list(GAS_CO2, GAS_PLASMA, GAS_H2O, GAS_BZ, GAS_CO)
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3/lavaland
- filter_types = list(GAS_CO2, GAS_PLASMA, GAS_H2O, GAS_BZ)
+ filter_types = list(GAS_CO2, GAS_PLASMA, GAS_H2O, GAS_BZ, GAS_CO)
#undef SIPHONING
#undef SCRUBBING
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index cb6a1b9b0bb0..b8f023185217 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -43,14 +43,10 @@
"co2" = /obj/machinery/portable_atmospherics/canister/carbon_dioxide,
"plasma" = /obj/machinery/portable_atmospherics/canister/toxins,
"n2o" = /obj/machinery/portable_atmospherics/canister/nitrous_oxide,
- "no2" = /obj/machinery/portable_atmospherics/canister/nitryl,
"bz" = /obj/machinery/portable_atmospherics/canister/bz,
"air" = /obj/machinery/portable_atmospherics/canister/air,
"water vapor" = /obj/machinery/portable_atmospherics/canister/water_vapor,
"tritium" = /obj/machinery/portable_atmospherics/canister/tritium,
- "hyper-noblium" = /obj/machinery/portable_atmospherics/canister/nob,
- "stimulum" = /obj/machinery/portable_atmospherics/canister/stimulum,
- "pluoxium" = /obj/machinery/portable_atmospherics/canister/pluoxium,
"caution" = /obj/machinery/portable_atmospherics/canister,
"freon" = /obj/machinery/portable_atmospherics/canister/freon,
"hydrogen" = /obj/machinery/portable_atmospherics/canister/hydrogen,
@@ -78,12 +74,24 @@
icon_state = "blue"
gas_type = GAS_O2
+/obj/machinery/portable_atmospherics/canister/ozone
+ name = "ozone canister"
+ desc = "Ozone. Sometimes called as 'pure air', this is far from the truth; ozone is not good for your lungs nor heart."
+ icon_state = "darkblue"
+ gas_type = GAS_O3
+
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
name = "co2 canister"
desc = "Carbon dioxide. What the fuck is carbon dioxide?"
icon_state = "black"
gas_type = GAS_CO2
+/obj/machinery/portable_atmospherics/canister/carbon_monoxide
+ name = "co canister"
+ desc = "Carbon Monoxide. Highly dangerous and invisible to the naked eye."
+ icon_state = "black"
+ gas_type = GAS_CO
+
/obj/machinery/portable_atmospherics/canister/toxins
name = "plasma canister"
desc = "Plasma gas. The reason YOU are here. Highly toxic."
@@ -113,29 +121,11 @@
icon_state = "green"
gas_type = GAS_TRITIUM
-/obj/machinery/portable_atmospherics/canister/nob
- name = "hyper-noblium canister"
- desc = "Hyper-Noblium. More noble than all other gases."
- icon_state = "nob"
- gas_type = GAS_HYPERNOB
-
-/obj/machinery/portable_atmospherics/canister/nitryl
- name = "nitryl canister"
- desc = "Nitryl gas. Feels great 'til the acid eats your lungs."
- icon_state = "brown"
- gas_type = GAS_NITRYL
-
-/obj/machinery/portable_atmospherics/canister/stimulum
- name = "stimulum canister"
- desc = "Stimulum. High energy gas, high energy people."
- icon_state = "darkpurple"
- gas_type = GAS_STIMULUM
-
-/obj/machinery/portable_atmospherics/canister/pluoxium
- name = "pluoxium canister"
- desc = "Pluoxium. Like oxygen, but more bang for your buck."
- icon_state = "darkblue"
- gas_type = GAS_PLUOXIUM
+/obj/machinery/portable_atmospherics/canister/argon
+ name = "argon canister"
+ desc = "Argon. A noble gas that prevents other gases from reacting."
+ icon_state = "purple"
+ gas_type = GAS_ARGON
/obj/machinery/portable_atmospherics/canister/water_vapor
name = "water vapor canister"
@@ -157,6 +147,24 @@
icon_state = "orangews"
gas_type = GAS_HYDROGEN
+/obj/machinery/portable_atmospherics/canister/methane
+ name = "methane canister"
+ desc = "Methane. Used in thruster fuel along with kitchen stoves."
+ icon_state = "methane"
+ gas_type = GAS_METHANE
+
+/obj/machinery/portable_atmospherics/canister/ammonia
+ name = "ammonia canister"
+ desc = "Ammonia. Used in industrial processes."
+ icon_state = "brown"
+ gas_type = GAS_AMMONIA
+
+/obj/machinery/portable_atmospherics/canister/sulfur_dioxide
+ name = "sulfur dioxide canister"
+ desc = "Sulfur Dioxide. Produced naturally by volcanos."
+ icon_state = "sulfurdioxide"
+ gas_type = GAS_SO2
+
/obj/machinery/portable_atmospherics/canister/fuel
name = "fuel canister"
desc = "A highly volatile mix of hydrogen and oxygen."
@@ -194,7 +202,6 @@
air_contents.set_moles(GAS_CO2,300)
air_contents.set_moles(GAS_PLASMA,1000)
air_contents.set_moles(GAS_TRITIUM,100.61)
- air_contents.set_moles(GAS_NITRYL,1)
air_contents.set_temperature(15000)
/obj/machinery/portable_atmospherics/canister/proc/get_time_left()
diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm
index 7505d2b8789e..1f1f34782aca 100644
--- a/code/modules/atmospherics/machinery/portable/scrubber.dm
+++ b/code/modules/atmospherics/machinery/portable/scrubber.dm
@@ -8,7 +8,7 @@
var/volume_rate = 1000
var/overpressure_m = 80
var/use_overlays = TRUE
- var/list/scrubbing = list(GAS_PLASMA, GAS_CO2, GAS_NITROUS, GAS_BZ, GAS_NITRYL, GAS_TRITIUM, GAS_HYPERNOB, GAS_H2O, GAS_FREON, GAS_HYDROGEN)
+ var/list/scrubbing = list(GAS_PLASMA, GAS_CO2, GAS_NITROUS, GAS_BZ, GAS_TRITIUM, GAS_H2O, GAS_FREON, GAS_HYDROGEN, GAS_CO)
/obj/machinery/portable_atmospherics/scrubber/Destroy()
var/turf/T = get_turf(src)
diff --git a/code/modules/awaymissions/away_props.dm b/code/modules/awaymissions/away_props.dm
index a29d48657446..3b51ebb583d8 100644
--- a/code/modules/awaymissions/away_props.dm
+++ b/code/modules/awaymissions/away_props.dm
@@ -1,7 +1,7 @@
/obj/effect/oneway
name = "one way effect"
desc = "Only lets things in from it's dir."
- icon = 'icons/effects/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping/mapping_helpers.dmi'
icon_state = "field_dir"
invisibility = INVISIBILITY_MAXIMUM
anchored = TRUE
@@ -14,7 +14,7 @@
/obj/effect/wind
name = "wind effect"
desc = "Creates pressure effect in it's direction. Use sparingly."
- icon = 'icons/effects/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping/mapping_helpers.dmi'
icon_state = "field_dir"
invisibility = INVISIBILITY_MAXIMUM
var/strength = 30
@@ -32,7 +32,7 @@
/obj/effect/path_blocker
name = "magic barrier"
desc = "You shall not pass."
- icon = 'icons/effects/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping/mapping_helpers.dmi'
icon_state = "blocker" //todo make this actually look fine when visible
anchored = TRUE
var/list/blocked_types = list()
diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm
index 5fc667c4db4a..037ae0add3e6 100644
--- a/code/modules/awaymissions/capture_the_flag.dm
+++ b/code/modules/awaymissions/capture_the_flag.dm
@@ -406,7 +406,10 @@
/obj/item/gun/ballistic/automatic/pistol/deagle/ctf
desc = "This looks like it could really hurt in melee."
force = 75
- mag_type = /obj/item/ammo_box/magazine/m50/ctf
+ default_ammo_type = /obj/item/ammo_box/magazine/m50/ctf
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m50/ctf,
+ )
/obj/item/gun/ballistic/automatic/pistol/deagle/ctf/dropped()
. = ..()
@@ -432,7 +435,10 @@
. = ..()
/obj/item/gun/ballistic/automatic/laser/ctf
- mag_type = /obj/item/ammo_box/magazine/recharge/ctf
+ default_ammo_type = /obj/item/ammo_box/magazine/recharge/ctf
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/recharge/ctf,
+ )
desc = "This looks like it could really hurt in melee."
force = 50
@@ -480,7 +486,10 @@
// RED TEAM GUNS
/obj/item/gun/ballistic/automatic/laser/ctf/red
- mag_type = /obj/item/ammo_box/magazine/recharge/ctf/red
+ default_ammo_type = /obj/item/ammo_box/magazine/recharge/ctf/red
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/recharge/ctf/red,
+ )
/obj/item/ammo_box/magazine/recharge/ctf/red
ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/red
@@ -495,7 +504,10 @@
// BLUE TEAM GUNS
/obj/item/gun/ballistic/automatic/laser/ctf/blue
- mag_type = /obj/item/ammo_box/magazine/recharge/ctf/blue
+ default_ammo_type = /obj/item/ammo_box/magazine/recharge/ctf/blue
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/recharge/ctf/blue,
+ )
/obj/item/ammo_box/magazine/recharge/ctf/blue
ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/blue
@@ -578,7 +590,6 @@
/datum/outfit/ctf/red/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/radio/R = H.ears
- R.set_frequency(FREQ_CTF_RED)
R.freqlock = TRUE
R.independent = TRUE
H.dna.species.stunmod = 0
@@ -586,7 +597,6 @@
/datum/outfit/ctf/blue/post_equip(mob/living/carbon/human/H)
..()
var/obj/item/radio/R = H.ears
- R.set_frequency(FREQ_CTF_BLUE)
R.freqlock = TRUE
R.independent = TRUE
H.dna.species.stunmod = 0
diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm
index a1615ce58085..78fda9d9006e 100644
--- a/code/modules/awaymissions/corpse.dm
+++ b/code/modules/awaymissions/corpse.dm
@@ -6,7 +6,7 @@
name = "Mob Spawner"
density = TRUE
anchored = TRUE
- icon = 'icons/effects/mapping_helpers.dmi' // These aren't *really* mapping helpers but it fits the most with it's common usage (to help place corpses in maps)
+ icon = 'icons/effects/mapping/mapping_helpers.dmi' // These aren't *really* mapping helpers but it fits the most with it's common usage (to help place corpses in maps)
icon_state = "mobspawner" // So it shows up in the map editor
var/mob_type = null
var/mob_name = ""
@@ -152,6 +152,7 @@
// Base version - place these on maps/templates.
/obj/effect/mob_spawn/human
mob_type = /mob/living/carbon/human
+ icon_state = "corpsehuman"
//Human specific stuff.
var/mob_species = null //Set to make them a mutant race such as lizard or skeleton. Uses the datum typepath instead of the ID.
var/datum/outfit/outfit = /datum/outfit //If this is a path, it will be instanced in Initialize()
@@ -346,12 +347,10 @@
/obj/effect/mob_spawn/human/corpse/cargo_tech
name = "Cargo Tech"
outfit = /datum/outfit/job/cargo_tech
- icon_state = "corpsecargotech"
/obj/effect/mob_spawn/human/cook
name = "Cook"
outfit = /datum/outfit/job/cook
- icon_state = "corpsecook"
/obj/effect/mob_spawn/human/cook/husked
husk = TRUE
@@ -359,8 +358,6 @@
/obj/effect/mob_spawn/human/doctor
name = "Doctor"
outfit = /datum/outfit/job/doctor
- icon_state = "corpsedoctor"
-
/obj/effect/mob_spawn/human/doctor/alive
death = FALSE
@@ -383,22 +380,18 @@
/obj/effect/mob_spawn/human/engineer
name = "Engineer"
outfit = /datum/outfit/job/engineer
- icon_state = "corpseengineer"
/obj/effect/mob_spawn/human/clown
name = "Clown"
outfit = /datum/outfit/job/clown
- icon_state = "corpseclown"
/obj/effect/mob_spawn/human/scientist
name = "Scientist"
outfit = /datum/outfit/job/scientist
- icon_state = "corpsescientist"
/obj/effect/mob_spawn/human/miner
name = "Shaft Miner"
outfit = /datum/outfit/job/miner
- icon_state = "corpseminer"
/obj/effect/mob_spawn/human/plasmaman
mob_species = /datum/species/plasmaman
@@ -425,7 +418,6 @@
/obj/effect/mob_spawn/human/bartender
name = "Space Bartender"
- icon_state = "corpsebartender"
id_job = "Bartender"
id_access_list = list(ACCESS_BAR)
outfit = /datum/outfit/spacebartender
diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm
index 76c0b9f9886f..b1dc2319a0ec 100644
--- a/code/modules/awaymissions/mission_code/Academy.dm
+++ b/code/modules/awaymissions/mission_code/Academy.dm
@@ -1,66 +1,3 @@
-
-//Academy Areas
-
-/area/awaymission/academy
- name = "Academy Asteroids"
- icon_state = "away"
-
-/area/awaymission/academy/headmaster
- name = "Academy Fore Block"
- icon_state = "away1"
-
-/area/awaymission/academy/classrooms
- name = "Academy Classroom Block"
- icon_state = "away2"
-
-/area/awaymission/academy/academyaft
- name = "Academy Ship Aft Block"
- icon_state = "away3"
-
-/area/awaymission/academy/academygate
- name = "Academy Gateway"
- icon_state = "away4"
-
-/area/awaymission/academy/academycellar
- name = "Academy Cellar"
- icon_state = "away4"
-
-/area/awaymission/academy/academyengine
- name = "Academy Engine"
- icon_state = "away4"
-
-//Academy Items
-
-/obj/item/paper/fluff/awaymissions/academy/console_maint
- name = "Console Maintenance"
- default_raw_text = "We're upgrading to the latest mainframes for our consoles, the shipment should be in before spring break is over!"
-
-/obj/item/paper/fluff/awaymissions/academy/class/automotive
- name = "Automotive Repair 101"
-
-/obj/item/paper/fluff/awaymissions/academy/class/pyromancy
- name = "Pyromancy 250"
-
-/obj/item/paper/fluff/awaymissions/academy/class/biology
- name = "Biology Lab"
-
-/obj/item/paper/fluff/awaymissions/academy/grade/aplus
- name = "Summoning Midterm Exam"
- default_raw_text = "Grade: A+ Educator's Notes: Excellent form."
-
-/obj/item/paper/fluff/awaymissions/academy/grade/bminus
- name = "Summoning Midterm Exam"
- default_raw_text = "Grade: B- Educator's Notes: Keep applying yourself, you're showing improvement."
-
-/obj/item/paper/fluff/awaymissions/academy/grade/dminus
- name = "Summoning Midterm Exam"
- default_raw_text = "Grade: D- Educator's Notes: SEE ME AFTER CLASS."
-
-/obj/item/paper/fluff/awaymissions/academy/grade/failure
- name = "Pyromancy Evaluation"
- default_raw_text = "Current Grade: F. Educator's Notes: No improvement shown despite multiple private lessons. Suggest additional tutelage."
-
-
/obj/singularity/academy
dissipate = 0
move_self = 0
diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm
index bfbb8bbf52ea..2e289579be1a 100644
--- a/code/modules/awaymissions/mission_code/Cabin.dm
+++ b/code/modules/awaymissions/mission_code/Cabin.dm
@@ -1,40 +1,3 @@
-
-/*Cabin areas*/
-/area/awaymission/cabin
- name = "Cabin"
- icon_state = "away2"
- requires_power = TRUE
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
-
-/area/awaymission/cabin/snowforest
- name = "Snow Forest"
- icon_state = "away"
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
-
-/area/awaymission/cabin/snowforest/sovietsurface
- name = "Snow Forest"
- icon_state = "awaycontent29"
- requires_power = FALSE
-
-/area/awaymission/cabin/lumbermill
- name = "Lumbermill"
- icon_state = "away3"
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
-
-/area/awaymission/cabin/caves/sovietcave
- name = "Soviet Bunker"
- icon_state = "awaycontent4"
-
-/area/awaymission/cabin/caves
- name = "North Snowdin Caves"
- icon_state = "awaycontent15"
- dynamic_lighting = DYNAMIC_LIGHTING_FORCED
-
-/area/awaymission/cabin/caves/mountain
- name = "North Snowdin Mountains"
- icon_state = "awaycontent24"
-
/obj/structure/firepit
name = "firepit"
desc = "Warm and toasty."
diff --git a/code/modules/awaymissions/mission_code/caves.dm b/code/modules/awaymissions/mission_code/caves.dm
deleted file mode 100644
index abaaceefd604..000000000000
--- a/code/modules/awaymissions/mission_code/caves.dm
+++ /dev/null
@@ -1,61 +0,0 @@
-//Areas
-
-/area/awaymission/caves/BMP_asteroid
- name = "\improper BMP Asteroid Level 1"
- icon_state = "awaycontent1"
-
-/area/awaymission/caves/BMP_asteroid/level_two
- name = "\improper BMP Asteroid Level 2"
- icon_state = "awaycontent2"
-
-/area/awaymission/caves/BMP_asteroid/level_three
- name = "\improper BMP Asteroid Level 3"
- icon_state = "awaycontent3"
-
-/area/awaymission/caves/BMP_asteroid/level_four
- name = "\improper BMP Asteroid Level 4"
- icon_state = "awaycontent4"
-
-/area/awaymission/caves/research
- name = "Research Outpost"
- icon_state = "awaycontent5"
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
-
-/area/awaymission/caves/northblock //engineering, bridge (not really north but it doesnt really need its own APC)
-
-/area/awaymission/caves/listeningpost
- name = "Listening Post"
- icon_state = "awaycontent6"
- requires_power = FALSE
-
-//caves papers
-
-/obj/item/paper/crumpled/awaymissions/caves/unsafe_area
- default_raw_text = "WARNING
Majority of this area is considered 'unsafe' past this point. Theres an outpost directly south of here where you can get your bearing and travel further down if needed. Traveling in groups is HIGHLY advised, the shit out there can be extremely deadly if you're alone."
-
-/obj/item/paper/fluff/awaymissions/caves/omega
- name = "Subject Omega Notes"
- default_raw_text = "Testing Notes
Subject appears unresponsive to most interactions, refusing to move away from the corners or face any scientists. Subject appears to move between the two back corners every observation. A strange humming can be heard from inside the cell, appears to be originating from the subject itself, further testing is necessary to confirm or deny this."
-
-/obj/item/paper/fluff/awaymissions/caves/magma
- default_raw_text = " Mining is hell down here, you can feel the heat of the magma no matter how thick the suit is. Conditions are barely manageable as is, restless nights and horrid work conditions. The ore maybe rich down here, but we've already lost a few men to the faults shifting, god knows how much longer till it all just collapses down and consumes everyone with it."
-
-/obj/item/paper/fluff/awaymissions/caves/work_notice
- name = "work notice"
- default_raw_text = "Survival Info For Miners
The caves are an unforgiving place, the only thing you'll have to traverse is the supplies in your locker and your own wit. Travel in packs when mining and try to shut down the monster dens before they overwhelm you. The job is dangerous but the haul is good, so remember this information and hopefully we'll all go home alive."
-
-/obj/item/paper/fluff/awaymissions/caves/shipment_notice
- name = "shipment notice"
- default_raw_text = "We were supposed to get a shipment of these special laser rifles and a couple 'nades to help combat the wildlife down here, but it's been weeks since we last heard from the caravan carrying the shit down here. At this point we can only assume they fell victim to one of the monster nests or the dumbasses managed to trip into the lava. So much for that shipment, I guess."
-
-/obj/item/paper/fluff/awaymissions/caves/safety_notice
- name = "safety notice"
- default_raw_text = "Some of the miners have gone to laying some mine traps among the lower levels of the mine to keep the monsters at bay. This probably isn't the smartest idea in a cavern like this but the boys seem to get a chuckle out of every distant blast they hear go off, so I guess it works "
-
-/obj/item/paper/fluff/awaymissions/caves/shipment_receipt
- name = "Shipment Receipt"
- default_raw_text = "CARAVAN SERVICES
Quality service since 2205
SHIPMENT CONTENTS:
4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"
-
-/obj/item/paper/fluff/awaymissions/caves/mech_notice
- name = "NOTICE!! paper"
- default_raw_text = "NOTICE!!
Although you may seem indestructible in an exosuit, remember, THIS SHIT ISN'T LAVA PROOF!! The boys have already had to deal with loosing the last two to salvage because the dumbass thought he could just wade through the lower lakes like it was nothing. The fact he even managed to get back without being fused with what was left of the exosuit is a miracle in itself. They're built to be resistant against extreme heat, not heat PROOF!
Robotics Team"
diff --git a/code/modules/awaymissions/mission_code/centcomAway.dm b/code/modules/awaymissions/mission_code/centcomAway.dm
index 60741701b4d8..8c55a870263b 100644
--- a/code/modules/awaymissions/mission_code/centcomAway.dm
+++ b/code/modules/awaymissions/mission_code/centcomAway.dm
@@ -1,39 +1,3 @@
-//centcomAway areas
-
-/area/awaymission/centcomAway
- name = "XCC-P5831"
- icon_state = "away"
- requires_power = FALSE
-
-/area/awaymission/centcomAway/general
- name = "XCC-P5831"
- ambientsounds = list('sound/ambience/ambigen3.ogg')
-
-/area/awaymission/centcomAway/maint
- name = "XCC-P5831 Maintenance"
- icon_state = "away1"
- ambientsounds = list('sound/ambience/ambisin1.ogg')
-
-/area/awaymission/centcomAway/thunderdome
- name = "XCC-P5831 Thunderdome"
- icon_state = "away2"
- ambientsounds = list('sound/ambience/ambisin2.ogg')
-
-/area/awaymission/centcomAway/cafe
- name = "XCC-P5831 Kitchen Arena"
- icon_state = "away3"
- ambientsounds = list('sound/ambience/ambisin3.ogg')
-
-/area/awaymission/centcomAway/courtroom
- name = "XCC-P5831 Courtroom"
- icon_state = "away4"
- ambientsounds = list('sound/ambience/ambisin4.ogg')
-
-/area/awaymission/centcomAway/hangar
- name = "XCC-P5831 Hangars"
- icon_state = "away4"
- ambientsounds = list('sound/ambience/ambigen5.ogg')
-
//centcomAway items
/obj/item/paper/pamphlet/centcom/visitor_info
@@ -47,17 +11,3 @@
serving as a supply and repair depot, as well as being host to its most important legal proceedings\
and the thrilling pay-per-view broadcasts of PLASTEEL CHEF and THUNDERDOME LIVE.
\
We hope you enjoy your stay!"
-
-/obj/item/paper/fluff/awaymissions/centcom/gateway_memo
- name = "Memo to XCC-P5831 QM"
- default_raw_text = "From: XCC-P5831 Management Office
\
- To: Rolf Ingram, XCC-P5831 Quartermaster
\
- Hey, Rolf, once you pack that gateway into the ferry hangar, make absolutely sure \
- to deactivate it! As you may know, SS13 has recently got its network up and running, \
- which means that until we get this gate shipped off to the next colonization staging \
- area, they'll be able to hop straight in here if its hooked up on our end.
\
- Obviously, that's something I'd very much rather avoid. Our forensics and medical \
- teams never did figure out what happened that last time... and I can't wrap my head \
- around it myself. Why would a shuttle full of evacuees all snap and beat each other \
- to death the moment they reached safety?
\
- - D. Cereza"
diff --git a/code/modules/awaymissions/mission_code/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm
index 6f8bb473b77a..9e8abe6356b6 100644
--- a/code/modules/awaymissions/mission_code/challenge.dm
+++ b/code/modules/awaymissions/mission_code/challenge.dm
@@ -1,20 +1,3 @@
-//Challenge Areas
-
-/area/awaymission/challenge/start
- name = "Where Am I?"
- icon_state = "away"
-
-/area/awaymission/challenge/main
- name = "Danger Room"
- icon_state = "away1"
- requires_power = FALSE
-
-/area/awaymission/challenge/end
- name = "Administration"
- icon_state = "away2"
- requires_power = FALSE
-
-
/obj/machinery/power/emitter/energycannon
name = "Energy Cannon"
desc = "A heavy duty industrial laser."
diff --git a/code/modules/awaymissions/mission_code/moonoutpost19.dm b/code/modules/awaymissions/mission_code/moonoutpost19.dm
deleted file mode 100644
index 4f13e27001ec..000000000000
--- a/code/modules/awaymissions/mission_code/moonoutpost19.dm
+++ /dev/null
@@ -1,121 +0,0 @@
-// moonoutpost19
-
-//Areas
-/area/awaymission/moonoutpost19
- name = "space"
- icon_state = "awaycontent1"
-
-/area/awaymission/moonoutpost19/arrivals
- name = "MO19 Arrivals"
- icon_state = "awaycontent2"
-
-/area/awaymission/moonoutpost19/research
- name = "MO19 Research"
- icon_state = "awaycontent3"
-
-/area/awaymission/moonoutpost19/syndicate
- name = "Syndicate Outpost"
- icon_state = "awaycontent4"
-
-/area/awaymission/moonoutpost19/main
- name = "Khonsu 19"
- always_unpowered = TRUE
- power_environ = FALSE
- power_equip = FALSE
- power_light = FALSE
- poweralm = FALSE
- ambientsounds = list('sound/ambience/ambimine.ogg')
- icon_state = "awaycontent5"
-
-/area/awaymission/moonoutpost19/hive
- name = "The Hive"
- always_unpowered = TRUE
- power_environ = FALSE
- power_equip = FALSE
- power_light = FALSE
- poweralm = FALSE
- icon_state = "awaycontent6"
-
-//Papers
-
-/obj/item/paper/crumpled/awaymissions/moonoutpost19/hastey_note
- name = "Hastily Written Note"
- default_raw_text = "19 06 2554
I fucking knew it. There was a major breach, that idiotic force field failed and the xenomorphs rushed out and took out the scientists. I've managed to make it to my office and closed the blast doors. I can hear them trying to pry open the doors. Probably don't have long. I have no clue what has happened to the rest of the crew, for all I know they've been killed to produce more of the fucks."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_social
- name = "Larva Xenomorph Social Interactions & Capturing Procedure"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554
Report:
As expected, all that is left of the monkeys we sent in earlier is a group of xenomorph larvae. It is quite clear that the facehuggers are not selective in their hosts, and so far the gestation process has been shown to have a 100% success rate.
The larvae themselves have been behaving very differently from the lone larva we first observed, and despite shying away from humans they are clearly comfortable with others of their kind. Our previous suspicions on larvae have been confirmed with their demonstration of playfulness: they are not nearly as aggressive or violent when young, before molting to adulthood.
The majority of the play we observed involved a sort of hide-and-seek, and occasionally wrestling by tangling themselves and struggling out of it. While normally we would write these off as instinctual play for honing their skills when they molt, their growth period is so incredibly fast and they are still such adept killers that it would serve no practical purpose. The only explanation for this is perhaps to create bonds and friendships with each other, if that is even possible for such an incredibly hostile race. It may be that they are much more reasonable with each other than other life forms.
It had become clear that now was the best time to extract a xenomorph for dissecting, as these were all still larvae and the queen was still attached to its ovipositor and would be immobile. With the approval of the research director, we sent in our medical robot that had been dubbed 'Head Surgeon' into the containment pen, dropping the shields for only a fraction of a second to allow it entry. The larvae were cautious, but the curiosity of one had him within grabbing range of our robot. It was brought out and quickly euthanized through lethal injection, courtesy of our mechanical doctor."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_queen
- name = "Queen Xenomorph Physiology & Behavior Observation"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 04/06/2554
Report:
I have studied many interesting and diverse life-forms as a xenobiologist ranging from creatures as large as cows, to specimens too small see with the naked eye. This is by far the largest alien I have ever seen. The alien we were previously studying has molted and has become an absolutely enormous creature. Standing at over 15 feet tall and weighing in at likely two tons or more, the xenomorph queen is an absolutely breathtakingly large and cruel monster. Its behavior has changed drastically from when it was a drone, having become far more comfortable with sitting and staring at us, rather than smashing at the windows.
The queen, physiologically speaking, is fairly similar to the other xenomorphs, with a few key differences. Its enormous size demands large legs, while the back seems to be always hunched forward. The dorsal tubes on the back have changed to several large spikes, and we observed the alien now sports a second pair of smaller arms on its chest. The purpose of these secondary arms is still unknown. Finally, the queen's crown has become incredibly large, with what seems to be a retractable slot to hide its head in. The dome appears to be extremely thick near the front, and will likely be able to resist a lot of trauma. Despite the enormous size it has grown to, it is not that much slower than it used to be.
After two hours of doing relatively nothing but staring, the queen began to produce an unusually large amount of resin and weeds, quickly shaping up a large nest that it then hid behind. It then proceeded to smash out all the lights, leaving us with very little to see with our cameras. When we looked through the back cameras, we had discovered that it had grown a large ovipositor, and was releasing large eggs onto the ground. This had us all in agreement that this stage of the life cycle was the queen.
Over the next few hours, the eggs grew to their full sizes, and we provided the subject with new monkey hosts. When they approached the eggs, they opened to release more facehuggers. It seems that we have observed the full cycle of reproduction for this species. We can expect more larvae in the next few hours."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_adult
- name = "Adult Xenomorph Physiology & Behavior Observation"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554
Report:
The other scientists and I can hardly believe our eyes. The snake-like larva has molted into a 7 foot tall insectoid nightmare in just a few hours. It's obvious now as to why such heavy duty containment was needed. It immediately tried to escape however by flinging itself at the window in a flurry of swipes and stabs. It seems its behavior has returned to a state that is very similar to the facehugger, though I doubt with the same intent! Thankfully, our glass and shields have shown to be more than sturdy enough for such a violent creature, and so far, any attempts at the creature escaping have been in vain.
As for its physiology, the creature has an elongated head with what appears to be have an exoskeleton resembling an external rib-cage on the torso. The alien is also fairly skinny with a lean body. The little amount of meat on the alien appears to be entirely muscle. We assume this makes it deceptively strong, while remaining agile at the same time. One of the most interesting things we have seen is its pharyngeal jaw. It has some what of an inner mouth capable of being fired externally at extremely high speeds. It has already caused many dents in the walls and a few small cracks in the window with it. The alien also has a couple of dorsal tubes on its back, their purpose unknown. Finally, this monster sports a long ridged tail, complete with a large and extremely sharp blade at the tip.
Normally I would be absolutely terrified of something like this, but I'm putting my trust in Nanotrasen with the containment. After all, they wouldn't build a cell that could fail to contain its subject, would they?"
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_psych
- name = "Larva Xenomorph Physiology & Behavior Observation"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554
Report:
When the larva first emerged from the chest of the monkey, it seemed very curious. It would wander around aimlessly for awhile and then sit still. We are unable to determine the gender of the larva, or even determine if it has a gender. After some time had passed, it seemed to lose interest in its surroundings and sat mostly still while occasionally wagging its tail. We decided to throw in a live mouse to see if it would consume it. The larva quickly attacked and ate the mouse and seemed to get larger very suddenly, this suggests that the larvae are capable of metabolizing and directing all the energy towards growth at previously thought impossible speeds. It is a shame that we cannot observe the process more closely, as we do not currently know how dangerous or violent this creature is or will become as it matures fully.
It is tempting to imagine the possibilities of utilizing such a mechanism. The capability of skipping years of growth time for children, repairing bodily damage in a matter of moments, even its usage in existing cloning technology."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/facehugger
- name = "'Facehugger' Xenomorph Physiology & Behavior Observation"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 03/06/2554
Report:
The test subject we were provided with truly is alien. It is a small spider-like creature with bony legs leading to a smooth body. It has a long tail connected to it, and it has shown extremely aggressive behavior by flinging its entire body at the glass and shields to no avail. While doing so, we noticed there was a small pink hole in the middle of the body.
When we sent in a monkey through the crude but effective disposal tube, the alien immediately jumped at its face and latched on. The monkey was quickly suffocated by its constricting tail, unable to pry off the fingers. The monkey at first seemed to be dead, but was observed to be breathing. The recently named alien 'facehugger' fell off dead and curled its legs up like a spider moments after it had finished with the monkey's body.
While the monkey appeared to be unharmed, we kept it in the cell for a couple more hours until we were horrified to discover it screaming out in pain as a snake-like creature erupted from the monkey's chest! It appears that the 'facehugger' is only the start of this life cycle. The impregnation cycle involving the creatures growing inside the chests of their hosts seems to only be the beginning."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind
- name = "The Hivemind Hypothesis"
- default_raw_text = "Researcher: Dr. Mark Douglas
Date: 17/06/2554
Report:
Earlier today we have observed a new phenomenon with our subjects. While feeding them our last monkey subject and throwing out the box, the aliens merely looked at us instead of infecting the monkey right away. They looked to be collectively distressed as they would no longer be given hosts, where instead we would move to the next phase of the experiment. When I glanced at the gas tanks and piping leading to their cell, I looked back to see all of them were up against the glass, even the queen! It was as if they all understood what was going to happen, even though we knew only the queen had the cognitive capability to do so.
The only explanation for this is a form of communication between the aliens, but we have seen no such action take place anywhere in the cell until now. We also know that regular drone and hunter xenomorphs have no personality or instinct to survive by themselves. Perhaps the queen has a direct link to them? A form of a commander or overseer that controls their every move? A hivemind?"
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior
- name = "\improper A Preliminary Study of Alien Behavior"
- default_raw_text = "Researcher: Dr. Sakuma Sano
Date: 08/06/2554
Report:
The xenomorphs we have come to study here are a remarkable species. They are almost universally aggressive across all castes, showing no remorse or guilt or pause before or after acts of violence. They appear to be a species entirely designed to kill. Oddly enough, even their method of reproduction is a brutal two-for-one method of birthing a new xenomorph and killing its host.
The lone xenomorph we studied only five days ago showed little sign of intelligence. Only a simple drone that flung itself at the safety glass and shields repeatedly and thankfully without success. Once the drone molted into a queen, it became much more calm and calculating, merely looking at us and waiting while building its nest. As the hive grew in size and in numbers, so too did the intelligence of the common hunter and drone. We are still researching how they can communicate with one another and the relationship between the different castes and the queen. We will continue to update our research as we learn more about the species."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes
- name = "The Xenomorph 'Castes'"
- default_raw_text = "Researcher: Dr. Mark Douglas
Date: 06/06/2554
Report:
While observing the growing number of aliens in the containment cell, we began to notice subtle differences that were consistently repeating. Like ants, these creatures clearly have different specialized variations that determine their roles in the hive. We have dubbed the three currently observed castes as Hunters, Drones, and Sentinels.
Hunters have been observed to be by far the most aggressive and agile of the three, constantly running on every surface and frequently swiping at the windows. They are also remarkably good at camouflaging themselves in darkness and on their resin structures, appearing almost invisible to the unwary observer. They are always the first to reach the monkeys we send in leading us to believe that this caste is primarily used for finding and retrieving hosts.
Drones on the other hand are much more docile and seem more shy by comparison, though not any less aggressive than the other castes. They have been observed to have a much wider head and lack dorsal tubes. They have shown to be less agile and visibly more fragile than any other caste. The drone however has never been observed to interact with the monkeys directly and instead preferring maintenance of the hive by building walls of resin and moving eggs around the nest. As far as we know, we have only ever observed a drone become a queen, and we have no way of knowing if the other castes have that capability.
Lastly, we have the Sentinels, which appear at first glance to be the guards of the hive. They have so far been only observed to remain near the queen and the eggs, frequently curled up against the walls. We have only observed one instance where they have interacted with a monkey who strayed too closely to the queen, and was pounced and held down immediately until it was applied with a facehugger. Their lack of movement makes it difficult to determine their exact purpose as guards, sentries, or other role."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy
- name = "Larva Xenomorph Autopsy Report"
- default_raw_text = "Researcher: Dr. Mark Douglas
Date: 04/06/2554
Report:
After an extremely dangerous, time consuming and costly dissection, we have managed to record and identify several of the organs inside of the first stage of the xenomorph cycle: the larva. This procedure took an extensive amount of time because these creatures have incredibly, almost-comically acidic blood that can melt through almost anything in a few moments. We had to use over a dozen scalpels and retractors to complete the autopsy.
The larva seems to possess far fewer and quite different organs than that of a human. There is a stomach, with no digestive tract, a heart, which seems to lack any blood-oxygen circulation purpose, and an elongated brain, even though its as dumb as any large cat. It also lacks any liver, kidneys, or other basic organs.
We can't determine the exact nature of how these creatures grow, nor if they gain organs as they become adults. The larger breeds of xenomorph are too dangerous to kill and capture to give us an accurate answer to these questions. All that we can conclude is that being able to function with so little and yet be so deadly means that these creatures are highly evolved and likely to be extremely durable to various hazards that would otherwise be lethal to humans."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/research/evacuation
- name = "Evacuation Procedure"
- default_raw_text = "In The Event of Xenobiology Breach: Evacuate staff, Lock down Xenobiology, Notify on-site superiors and/or Central Command immediately.
Current Xenobiology Containment Level:Secure RUN
"
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/log/personal
- name = "Personal Log"
- default_raw_text = "Log 1:
We got our promised supply drop today. We were only meant to get it, what, a week ago? This bloody gateway keeps desyncing itself, and that means subsisting off recycled water and carb packs. No clue where the damn thing connects to on its off days, and HQ say we are 'not to touch it if it isn't linking to command.' We dumped off the assload of crates Jim filled, got our boxes of oxygen, food and drink, and closed the portal.
Log 2:
Damn thing is acting up again. Three days no contact this time. I thought I heard clanking noises from it yesterday. Jim is going on about the NT base or some shit. We've been over this before - They don't know we're here, that engineer was too drunk to recognize his suit, especially since I had it painted orange. He's starting to get annoying. We're safe.
Log 3:
Gateway synced itself up automatically today. I opened it for an instant to spy through it, got a glimpse of the inside of a transport container. Either HQ's redecorating or something, or there's more than two of these things."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/log/personal_2
- name = "Personal Log"
- default_raw_text = "Log 1:
While mining today I noticed the NT station was finished with its renovations. They placed some huge reinforced tumor on the station, looks so ugly. I wouldn't be surprised if those pigs decided to turn that little astronomy outpost into a prison with that thing, it'd be pretty typical of them.
Log 2:
Really dumb of me but I just waved at an engineer in the outpost, and he waved back. I hope to god he was too dumb or drunk to recognize the suit, because if he isn't then we might have to pull out before they come looking for us.
Log 3:
That huge reinforced tumor in their science section has been making a lot of noise lately. I've been hearing some banging and scratching from the other side and I'm kind of glad now that they reinforced this thing so much. I'll be sleeping with my gun under my pillow from now on."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/engineering
- name = "Engineering Instructions"
- default_raw_text = "Alright, listen up. If you're reading this, I'm either taking a shit or I've been recalled back to Command. Either way, you'll need to know how to restore power. We've stolen this stuff from Nanotrasen, so all the equipment is jury-rigged. We have generators that work on both plasma and uranium, about 50 sheets should power the outpost for quite a while. If the generators aren't working, which is very likely, take the power cell on the desk and put it into the APC in the hallway. That should get the place running, at least for a little while."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/log/kenneth
- name = "Personal Log - Kenneth Cunningham"
- default_raw_text = "Entry One - 27/05/2554:
I just arrived, and already I hate my job. I'm stuck on this shithole of an outpost, trying to avoid these damn eggheads running all over the place preparing for god knows what. There's no crimes to stop, no syndies to kill, and I'm not even allowed to beat the fuckin' assistant senseless! They said I was transferred from Space Station 13 for 'good behavior', but this feels more like a punishment than a reward. All I know is that if I don't get some action soon, I'm going to go insane.
Entry Two - 03/06/2554:
Okay, so get this: we got a fuckin' deathsquad coming in today! I thought the day I saw one of them would be the day my employment was 'terminated', if you get my drift. They're escorting some sort of weird alien creature for the eggheads to study. I heard one of the docs telling the chef that this thing killed a whole security force before it was captured. I sure as hell hope that I don't have to fight it.
Entry Three - 08/06/2554:
My first real bit of 'action' today, if you could call it that. Crazy Ivan got in a fight with Kuester today about his Booze-O-Mat. Apparently one of the crewmembers had stolen a couple bottles of booze from the machine after Ivan disabled the ID lock. Tell you the truth, I don't blame the thief. Everyone is going a little stir-crazy in here, and the bartender is being damn stingy with the alcohol. Either way, once they started to pick a fight, I had to take them down. It's a damn shame that we don't have a brig, though. I had to lock Ivan in a fuckin' freezer, for god's sake. Let's hope that we can keep our sanity together, at least for a while.
Entry Four - 10/06/2554:
Jesus fucking Christ riding on a motorbike. These things the scientists are studying are terrifying! Fucking great huge purple bug things as tall as the ceiling, with blades for arms and drooling at the mouth. I don't think my taser will do jack shit against these damn things, but the eggheads say that they're safely contained. If they do, I have a feeling that it's only a matter of time before we're all screwed. These bastards look like walking death.
Entry Five - 18/06/2554:
Finally caught who stole the booze from Kuester. It was that fuckin' loser assistant Steve! He was in the dorms, chugging his worries away. I took one of the bottles back to the barkeep, but no one has to know about this second one. I think I'm gonna enjoy this while watching tomorrow's Thunderdome match.
Entry Six - 19/06/2554:
Oh, great. The chef is still sleeping, so we get Ivan's gruel for breakfast today. I overheard Sano and Douglas saying something about the aliens being restless, so we might get some action today. As long as it happens after the big game, I'm fine with it. I still got one beer to drink before I'm ready to die."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/log/ivan
- name = "Personal Log - Ivan Volodin"
- default_raw_text = "Ivan Volodin Stories:
Entry Won - 28/05/2554:
Hello. I am Crazy Ivan. Boss say I must write. I do good job fixing outpost. Is very good job. Much better than mines. Many nice people. I cause no trouble.
Entry Too - 05/06/2554:
I am finding problem with Booze-O-Mat. Is not problem. I solve very easy. Use yellow tool to make purple light go off. I am good engineer! Bartender will be very happy.
Entry Tree - 08/06/2554:
Bartender is not happy. Security man is not happy. Cannot feel legs, is very cold in freezer. Is not good. Table is jammed into door, have no tools. Is very not good. But, on bright side, found meat! Shall chew to keep spirits up.
Entry Fore - 12/06/2554:
Big nasty purple bug looked at me today. Make nervous. Blue wall wire can be broken, then bad thing happens. Very very bad thing. Man in orange spacesuit wave at me today too. He seem nice. Wonder who was?
Entry Fiv - 15/06/2554:
I eat cornflakes today. Is good day. Sun shine for a while. Was nice. I also take ride on disposals chute. Was fun, but tiny. Get clog out of pipes, was vodka bottle. Is empty. This make many sads.
Entry Sex: 19/06/2554:
Purple bugs jumpy today. When waved, get hiss. Maybe very bad. Maybe just ill. Do not know. Is science problem, is not engineer problem. I eat sandwich. Is glorious job. Wish to never end."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/log/gerald
- name = "Personal Log - Gerald Rosswell"
- default_raw_text = "Personal Log for Research Director Gerald Rosswell
Entry One - 17/05/2554:
You know, I can't believe I took this position so suddenly. I saw that corporate needed a research director for one of it's outposts and thought it would be a cakewalk, there isn't going to be a lot of research to be done on a tiny outpost. Mainly just running scans on the gas giant we are orbiting or some basic RnD. However, they conveniently forgot to tell me that me and my science staff would have to pull double duty as medical staff and that there is no one higher up on the chain of command here, so I get to pull triple duty as acting captain as well! This shit is probably allowed in some 3 point fine print buried underneath the literally thousands of pages of contracts. Well, at least the research will be easy work.
Entry Two - 25/05/2554:
Well, we all expected it at the outpost, CentCom has decided to completely change what research we are doing. They've decided that we should be research the species known as 'xenomporphs'. They announced this change 4 days ago and along with it, sadly, the termination of our current science staff barring me. Not to mention the constant noise made by the construction detail they sent to staple on an xenobiology lab ensuring no one has been able to sleep decently ever since they announced the shift. To make matters worse our current security guard actually died of a heart attack today. Just goes to show that 75 year old men shouldn't be security guards. Still can't believe that they decided to do this major change less than a month after the outpost was established.
Entry Three - 27/05/2554:
The new security guard arrived today. Apparently transferred here from the research station that also is orbiting the gas giant. He seems to be rather angry about his transfer. Considering the rumors I've heard about the research station he's probably caught off guard by the fact that Steve hasn't tried to force an IED down his throat.
Entry Four - 06/06/2554:
My requests for additional security and containment measures for the 'xenomorph' has been denied. Does Central Command not notice how dangerous these creatures are? The only thing keeping them in is a force field, a minor problem with the power grid and the entire hive is loose. What would stop them then, the lone security guard with a dinky little taser? Kenneth can barely handle a short-tempered engineer. We are under equipped and under staffed, we are inevitably going to be destroyed unless we get the equipment and staff we need.
Entry Five - 10/06/2554:
Cunningham got a good look at the xenomorph in containment. He was frightened for the rest of the day, rather amusing if it wasn't for the fact that we are all trapped on this scrap heap with naught but a force field keeping those xenomorphs in.
Entry Six - 17/06/2554:
The reactions from the specimens today has shown that they possess strange mental properties. Mark hypothesizes that they possibly have a sort of hive mind, while nothing is certain this would explain how xenomorphs seem to have vastly increased intellect when a 'queen' is present. Of course, to test this hypothesis would require many complicated procedures which we will not be able to undertake. But we do not know the full extend of the xenomorph mind, it may or may not be able to find a way to circumvent our containment system. I will resend my request for additional security measures along with this new found information."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/food_specials
- name = "Specials This Week"
- default_raw_text = "I Can't Believe It's Not Pasta: Half off on Wednesdays
Burger night every Friday 6PM-10PM, free drinks with purchase of meal!
Premiering Tonight: The comedy stylings of Shoe Snatching Willy! 11AM-7PM
"
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/welcome
- name = "Welcome Notice"
- default_raw_text = "Welcome to Moon Outpost 19! Property of Nanotrasen Inc.
Staff Roster:
-Dr. Gerald Rosswell: Research Director & Acting Captain
-Dr. Sakuma Sano: Xenobiologist
-Dr. Mark Douglas: Xenobiologist
-Kenneth Cunningham: Security Officer-Ivan Volodin: Engineer
-Mathias Kuester: Bartender
-Sven Edling: Chef
-Steve: Assistant
Please enjoy your stay, and report any abnormalities to an officer."
-
-/obj/item/paper/fluff/awaymissions/moonoutpost19/goodbye_note
- name = "Note"
- default_raw_text = "Bugs break out. I run to here and lock door. I hear door next to me break open and screams. All nice people here dead now. I no want to be eaten, and bottle always said to be coward way out, but person who say that is stupid. Mira, there is no escape for me, tell Alexis and Elena that father will never come home, and that I love you all."
-
-
diff --git a/code/modules/awaymissions/mission_code/murderdome.dm b/code/modules/awaymissions/mission_code/murderdome.dm
index 914a1f2828c7..10bb96c12baa 100644
--- a/code/modules/awaymissions/mission_code/murderdome.dm
+++ b/code/modules/awaymissions/mission_code/murderdome.dm
@@ -1,8 +1,3 @@
-/area/awaymission/vr/murderdome
- name = "Murderdome"
- icon_state = "awaycontent8"
- pacifist = FALSE
-
/obj/structure/window/reinforced/fulltile/indestructable
name = "robust window"
flags_1 = PREVENT_CLICK_UNDER_1 | NODECONSTRUCT_1
diff --git a/code/modules/awaymissions/mission_code/research.dm b/code/modules/awaymissions/mission_code/research.dm
deleted file mode 100644
index b3e4ff8b863b..000000000000
--- a/code/modules/awaymissions/mission_code/research.dm
+++ /dev/null
@@ -1,69 +0,0 @@
-//Research Base Areas//--
-
-/area/awaymission/research
- name = "Research Outpost"
- icon_state = "away"
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
-
-/area/awaymission/research/interior
- name = "Research Inside"
- requires_power = TRUE
- icon_state = "away2"
-
-/area/awaymission/research/interior/cryo
- name = "Research Cryostasis Room"
- icon_state = "medbay"
-
-/area/awaymission/research/interior/clonestorage
- name = "Research Clone Storage"
- icon_state = "cloning"
-
-/area/awaymission/research/interior/genetics
- name = "Research Genetics Research"
- icon_state = "genetics"
-
-/area/awaymission/research/interior/engineering
- name = "Research Engineering"
- icon_state = "engine"
-
-/area/awaymission/research/interior/security
- name = "Research Security"
- icon_state = "security"
-
-/area/awaymission/research/interior/secure
- name = "Research Secure Vault"
-
-/area/awaymission/research/interior/maint
- name = "Research Maintenance"
- icon_state = "maintcentral"
-
-/area/awaymission/research/interior/dorm
- name = "Research Dorms"
- icon_state = "Sleep"
-
-/area/awaymission/research/interior/escapepods
- name = "Research Escape Wing"
- icon_state = "exit"
-
-/area/awaymission/research/interior/gateway
- name = "Research Gateway"
- icon_state = "start"
-
-/area/awaymission/research/interior/bathroom
- name = "Research Bathrooms"
- icon_state = "restrooms"
-
-/area/awaymission/research/interior/medbay
- name = "Research Medbay"
- icon_state = "medbay"
-
-/area/awaymission/research/exterior
- name = "Research Exterior"
- icon_state = "unknown"
-
-
-//research papers
-
-/obj/item/paper/crumpled/awaymissions/research/sensitive_info
- default_raw_text = "Theres a lot of sensitive info on these disks, try and keep them secure! If these backup copies get into the wrong hands, god knows what they could do with the genetic research on these disk.."
-
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index 0f76623f617c..c205746b16f3 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -1,140 +1,3 @@
-//Snow Valley Areas//--
-
-/area/awaymission/snowdin
- name = "Snowdin"
- icon_state = "awaycontent1"
- requires_power = FALSE
- dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
-
-/area/awaymission/snowdin/outside
- name = "Snowdin Tundra Plains"
- icon_state = "awaycontent25"
-
-/area/awaymission/snowdin/post
- name = "Snowdin Outpost"
- icon_state = "awaycontent2"
- requires_power = TRUE
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
-
-/area/awaymission/snowdin/post/medbay
- name = "Snowdin Outpost - Medbay"
- icon_state = "awaycontent3"
-
-/area/awaymission/snowdin/post/secpost
- name = "Snowdin Outpost - Security Checkpoint"
- icon_state = "awaycontent4"
-
-/area/awaymission/snowdin/post/hydro
- name = "Snowdin Outpost - Hydroponics"
- icon_state = "awaycontent5"
-
-/area/awaymission/snowdin/post/messhall
- name = "Snowdin Outpost - Mess Hall"
- icon_state = "awaycontent6"
-
-/area/awaymission/snowdin/post/gateway
- name = "Snowdin Outpost - Gateway"
- icon_state = "awaycontent7"
-
-/area/awaymission/snowdin/post/dorm
- name = "Snowdin Outpost - Dorms"
- icon_state = "awaycontent8"
-
-/area/awaymission/snowdin/post/kitchen
- name = "Snowdin Outpost - Kitchen"
- icon_state = "awaycontent9"
-
-/area/awaymission/snowdin/post/engineering
- name = "Snowdin Outpost - Engineering"
- icon_state = "awaycontent10"
-
-/area/awaymission/snowdin/post/custodials
- name = "Snowdin Outpost - Custodials"
- icon_state = "awaycontent11"
-
-/area/awaymission/snowdin/post/research
- name = "Snowdin Outpost - Research Area"
- icon_state = "awaycontent12"
-
-/area/awaymission/snowdin/post/garage
- name = "Snowdin Outpost - Garage"
- icon_state = "awaycontent13"
-
-/area/awaymission/snowdin/post/minipost
- name = "Snowdin Outpost - Recon Post"
- icon_state = "awaycontent19"
-
-/area/awaymission/snowdin/post/mining_main
- name = "Snowdin Outpost - Mining Post"
- icon_state = "awaycontent21"
-
-/area/awaymission/snowdin/post/mining_main/mechbay
- name = "Snowdin Outpost - Mining Post Mechbay"
- icon_state = "awaycontent25"
-
-/area/awaymission/snowdin/post/mining_main/robotics
- name = "Snowdin Outpost - Mining Post Robotics"
- icon_state = "awaycontent26"
-
-/area/awaymission/snowdin/post/cavern1
- name = "Snowdin Outpost - Cavern Outpost 1"
- icon_state = "awaycontent27"
-
-/area/awaymission/snowdin/post/cavern2
- name = "Snowdin Outpost - Cavern Outpost 2"
- icon_state = "awaycontent28"
-
-/area/awaymission/snowdin/post/mining_dock
- name = "Snowdin Outpost - Underground Mine Post"
- icon_state = "awaycontent22"
-
-/area/awaymission/snowdin/post/broken_shuttle
- name = "Snowdin Outpost - Broken Transit Shuttle"
- icon_state = "awaycontent20"
- requires_power = FALSE
-
-/area/awaymission/snowdin/igloo
- name = "Snowdin Igloos"
- icon_state = "awaycontent14"
- dynamic_lighting = DYNAMIC_LIGHTING_FORCED
-
-/area/awaymission/snowdin/cave
- name = "Snowdin Caves"
- icon_state = "awaycontent15"
- dynamic_lighting = DYNAMIC_LIGHTING_FORCED
-
-/area/awaymission/snowdin/cave/cavern
- name = "Snowdin Depths"
- icon_state = "awaycontent23"
-
-/area/awaymission/snowdin/cave/mountain
- name = "Snowdin Mountains"
- icon_state = "awaycontent24"
-
-
-/area/awaymission/snowdin/base
- name = "Snowdin Main Base"
- icon_state = "awaycontent16"
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
- requires_power = TRUE
-
-/area/awaymission/snowdin/dungeon1
- name = "Snowdin Depths"
- icon_state = "awaycontent17"
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
-
-/area/awaymission/snowdin/sekret
- name = "Snowdin Operations"
- icon_state = "awaycontent18"
- dynamic_lighting = DYNAMIC_LIGHTING_ENABLED
- requires_power = TRUE
-
-/area/shuttle/snowdin/elevator1
- name = "Excavation Elevator"
-
-/area/shuttle/snowdin/elevator2
- name = "Mining Elevator"
-
//liquid plasma!!!!!!//
/turf/open/floor/plasteel/dark/snowdin
@@ -203,7 +66,7 @@
L.adjustFireLoss(2)
if(L)
L.adjust_fire_stacks(20) //dipping into a stream of plasma would probably make you more flammable than usual
- L.adjust_bodytemperature(-rand(50,65)) //its cold, man
+ L.adjust_bodytemperature(-rand(10,20)) //its cold, man
if(ishuman(L))//are they a carbon?
var/list/plasma_parts = list()//a list of the organic parts to be turned into plasma limbs
var/list/robo_parts = list()//keep a reference of robotic parts so we know if we can turn them into a plasmaman
@@ -224,14 +87,19 @@
PP.adjustFireLoss(25)
if(plasma_parts.len)
var/obj/item/bodypart/NB = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs for dismember() to use
- PP.emote("scream")
NB.limb_id = "plasmaman" //change the species_id of the limb to that of a plasmaman
NB.static_icon = 'icons/mob/species/plasmaman/bodyparts.dmi'
NB.no_update = TRUE
NB.change_bodypart_status()
- PP.visible_message(
- "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!",
- "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
+ PP.force_scream()
+ if(!HAS_TRAIT(PP, TRAIT_ANALGESIA))
+ PP.visible_message(
+ "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!",
+ "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
+ else
+ PP.visible_message(
+ "[L] lets out panicked gasps as [L.p_their()] [NB] melts down to the bone!",
+ "You gasp in shock as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!")
if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman
PP.IgniteMob()
PP.set_species(/datum/species/plasmaman)
@@ -266,61 +134,6 @@
keeping the rest of us on lockdown and I swear to god I keep hearing strange noises outside the walls at night. The gateway link has gone dead and without a supply of resources from Central, we're left
for dead here. We haven't heard anything back from the mining squad either, so I can only assume whatever the fuck they unearthed got them first before coming for us. I don't want to die here..."}
-/obj/item/paper/fluff/awaymissions/snowdin/saw_usage
- name = "SAW Usage"
- default_raw_text = "YOU SEEN IVAN, WHEN YOU HOLD SAAW LIKE PEESTOL, YOU STRONGER THAN RECOIL FOR FEAR OF HITTING FACE!"
-
-/obj/item/paper/fluff/awaymissions/snowdin/research_feed
- name = "Research Feed"
- default_raw_text = {"A page full of graphs and other detailed information on the seismic activity of the surrounding area."}
-
-//profile of each of the old crewmembers for the outpost
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/overseer
- name = "Personnel Record AOP#01"
- default_raw_text = {"Personnel Log
Name:Caleb Reed
Age:38
Gender:Male
On-Site Profession:Outpost Overseer
Information
Caleb Reed lead several expeditions
- among uncharted planets in search of plasma for Nanotrasen, scouring from hot savanas to freezing arctics. Track record is fairly clean with only incidient including the loss of two researchers during the
- expedition of _______, where mis-used of explosive ordinance for tunneling causes a cave-in."}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/sec1
- name = "Personnel Record AOP#02"
- default_raw_text = {"Personnel Log
Name:James Reed
Age:43
Gender:Male
On-Site Profession:Outpost Security
Information
James Reed has been a part
- of Nanotrasen's security force for over 20 years, first joining in 22XX. A clean record and unwavering loyalty to the corperation through numerous deployments to various sites makes him a valuable asset to Natotrasen
- when it comes to keeping the peace while prioritizing Nanotrasen privacy matters. "}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/hydro1
- name = "Personnel Record AOP#03"
- default_raw_text = {"Personnel Log
Name:Katherine Esterdeen
Age:27
Gender:Female
On-Site Profession:Outpost Botanist
Information
Katherine Esterdeen is a recent
- graduate with a major in Botany and a PH.D in Ecology. Having a clean record and eager to work, Esterdeen seems to be the right fit for maintaining plants in the middle of nowhere."}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/engi1
- name = "Personnel Record AOP#04"
- default_raw_text = {"Personnel Log
Name:Rachel Migro
Age:35
Gender:Female
On-Site Profession:Outpost Engineer
Information
Recently certified to be a full-time Journeyman, Rachel has
- been assigned various construction projects in the past 5 years. Competent and has no past infractions, should be of little concern."}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/research1
- name = "Personnel Record AOP#05"
- default_raw_text = {"Personnel Log
Name:Jacob Ullman
Age:27
Gender:Male
On-Site Profession:Outpost Researcher
Information
"}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/research2
- name = "Personnel Record AOP#06"
- default_raw_text = {"Personnel Log
Name:Elizabeth Queef
Age:28
Gender:Female
On-Site Profession:Outpost Researcher
Information
"}
-
-/obj/item/paper/fluff/awaymissions/snowdin/profile/research3
- name = "Personnel Record AOP#07"
- default_raw_text = {"Personnel Log
Name:Jouslen McGee
Age:38
Gender:Male
On-Site Profession:Outpost Researcher
Information
"}
-
-/obj/item/paper/fluff/awaymissions/snowdin/secnotice
- name = "Security Notice"
- default_raw_text = {"YOu have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked
- staff for this post have been pre-screened with no prior incidients on record, but incase of an issue you have been given a single holding cell and instructions to contact Central to terminate the
- offending crewmember."}
-
-/obj/item/paper/fluff/awaymissions/snowdin/mining
- name = "Assignment Notice"
- default_raw_text = {"This cold-ass planet is the new-age equivalent of striking gold. Huge deposits of plasma and literal streams of plasma run through the caverns under all this ice and we're here to mine it all.\
- Nanotrasen pays by the pound, so get minin' boys!"}
-
/obj/item/paper/crumpled/ruins/snowdin/lootstructures
name = "scribbled note"
default_raw_text = {"There's some ruins scattered along the cavern, their walls seem to be made of some sort of super-condensed mixture of ice and snow. We've already barricaded up the ones we've found so far,
@@ -454,83 +267,6 @@
SAY AAAAAAAAAAAAAAAA FUCK THAT
DELAY 15;"}
-//lootspawners//--
-
-/obj/effect/spawner/lootdrop/snowdin
- name = "why are you using this dummy"
- lootdoubles = 0
- lootcount = 1
- loot = list(/obj/item/bikehorn = 100)
-
-/obj/effect/spawner/lootdrop/snowdin/dungeonlite
- name = "dungeon lite"
- loot = list(/obj/item/melee/classic_baton = 11,
- /obj/item/melee/classic_baton/telescopic = 12,
- /obj/item/book/granter/spell/smoke = 10,
- /obj/item/book/granter/spell/blind = 10,
- /obj/item/storage/firstaid/regular = 45,
- /obj/item/storage/firstaid/toxin = 35,
- /obj/item/storage/firstaid/brute = 27,
- /obj/item/storage/firstaid/fire = 27,
- /obj/item/storage/toolbox/syndicate = 12,
- /obj/item/grenade/c4 = 7,
- /obj/item/grenade/clusterbuster/smoke = 15,
- /obj/item/clothing/under/chameleon = 13,
- /obj/item/clothing/shoes/chameleon/noslip = 10,
- /obj/item/borg/upgrade/ddrill = 3,
- /obj/item/borg/upgrade/soh = 3)
-
-/obj/effect/spawner/lootdrop/snowdin/dungeonmid
- name = "dungeon mid"
- loot = list(/obj/item/defibrillator/compact = 6,
- /obj/item/storage/firstaid/tactical = 35,
- /obj/item/shield/energy = 6,
- /obj/item/shield/riot/tele = 12,
- /obj/item/dnainjector/lasereyesmut = 7,
- /obj/item/pneumatic_cannon = 15,
- /obj/item/melee/transforming/energy/sword = 7,
- /obj/item/book/granter/spell/knock = 15,
- /obj/item/book/granter/spell/summonitem = 20,
- /obj/item/book/granter/spell/forcewall = 17,
- /obj/item/storage/backpack/holding = 12,
- /obj/item/grenade/spawnergrenade/manhacks = 6,
- /obj/item/grenade/spawnergrenade/spesscarp = 7,
- /obj/item/grenade/clusterbuster/inferno = 3,
- /obj/item/stack/sheet/mineral/diamond{amount = 15} = 10,
- /obj/item/stack/sheet/mineral/uranium{amount = 15} = 10,
- /obj/item/stack/sheet/mineral/plasma{amount = 15} = 10,
- /obj/item/stack/sheet/mineral/gold{amount = 15} = 10,
- /obj/item/book/granter/spell/barnyard = 4,
- /obj/item/pickaxe/drill/diamonddrill = 6,
- /obj/item/borg/upgrade/disablercooler = 7)
-
-
-/obj/effect/spawner/lootdrop/snowdin/dungeonheavy
- name = "dungeon heavy"
- loot = list(/obj/item/melee/axe/fire = 25,
- /obj/item/organ/brain/alien = 17,
- /obj/item/dualsaber = 15,
- /obj/item/organ/heart/demon = 7,
- /obj/item/gun/ballistic/automatic/smg/cobra = 16,
- /obj/item/uplink/old = 2,
- /obj/item/book/granter/spell/charge = 12,
- /obj/item/grenade/clusterbuster/spawner_manhacks = 15,
- /obj/item/book/granter/spell/fireball = 10,
- /obj/item/pickaxe/drill/jackhammer = 30,
- /obj/item/borg/upgrade/syndicate = 13,
- /obj/item/borg/upgrade/selfrepair = 17)
-
-/obj/effect/spawner/lootdrop/snowdin/dungeonmisc
- name = "dungeon misc"
- lootdoubles = 2
- lootcount = 1
-
- loot = list(/obj/item/stack/sheet/mineral/snow{amount = 25} = 10,
- /obj/item/toy/snowball = 15,
- /obj/item/shovel = 10,
- /obj/item/melee/spear = 8,
- )
-
//special items//--
/obj/structure/barricade/wooden/snowed
diff --git a/code/modules/awaymissions/mission_code/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm
index f0131d830cd0..9a63a6fdbfa9 100644
--- a/code/modules/awaymissions/mission_code/spacebattle.dm
+++ b/code/modules/awaymissions/mission_code/spacebattle.dm
@@ -1,46 +1,3 @@
-//Spacebattle Areas
-
-/area/awaymission/spacebattle
- name = "Space Battle"
- icon_state = "awaycontent1"
- requires_power = FALSE
-
-/area/awaymission/spacebattle/cruiser
- name = "\improper Nanotrasen Cruiser"
- icon_state = "awaycontent2"
-
-/area/awaymission/spacebattle/syndicate1
- name = "Syndicate Assault Ship 1"
- icon_state = "awaycontent3"
-
-/area/awaymission/spacebattle/syndicate2
- name = "Syndicate Assault Ship 2"
- icon_state = "awaycontent4"
-
-/area/awaymission/spacebattle/syndicate3
- name = "Syndicate Assault Ship 3"
- icon_state = "awaycontent5"
-
-/area/awaymission/spacebattle/syndicate4
- name = "Syndicate War Sphere 1"
- icon_state = "awaycontent6"
-
-/area/awaymission/spacebattle/syndicate5
- name = "Syndicate War Sphere 2"
- icon_state = "awaycontent7"
-
-/area/awaymission/spacebattle/syndicate6
- name = "Syndicate War Sphere 3"
- icon_state = "awaycontent8"
-
-/area/awaymission/spacebattle/syndicate7
- name = "Syndicate Fighter"
- icon_state = "awaycontent9"
-
-/area/awaymission/spacebattle/secret
- name = "Hidden Chamber"
- icon_state = "awaycontent10"
-
/mob/living/simple_animal/hostile/human/syndicate/ranged/spacebattle
loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier,
/obj/item/gun/ballistic/automatic/smg/cobra,
diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm
deleted file mode 100644
index 52c2a964cec4..000000000000
--- a/code/modules/awaymissions/mission_code/stationCollision.dm
+++ /dev/null
@@ -1,155 +0,0 @@
-/* Station-Collision(sc) away mission map specific stuff
- *
- * Notes:
- * Feel free to use parts of this map, or even all of it for your own project. Just include me in the credits :)
- *
- * Some of this code unnecessary, but the intent is to add a little bit of everything to serve as examples
- * for anyone who wants to make their own stuff.
- *
- * Contains:
- * Landmarks
- * Guns
- * Safe code hints
- * Captain's safe
- * Modified Nar'Sie
- */
-
-
-
-/*
- * Landmarks - Instead of spawning a new object type, I'll spawn the bible using a landmark!
- */
-/obj/effect/landmark/sc_bible_spawner
- name = "Safecode hint spawner"
-
-/obj/effect/landmark/sc_bible_spawner/Initialize()
- ..()
- var/obj/item/storage/book/bible/B = new /obj/item/storage/book/bible/booze(loc)
- B.name = "The Holy book of the Geometer"
- B.deity_name = "Narsie"
- B.icon_state = "melted"
- B.item_state = "melted"
- B.lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
- B.righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi'
- new /obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible(B)
- new /obj/item/pen(B)
- return INITIALIZE_HINT_QDEL
-
-/*
- * Guns - I'm making these specifically so that I dont spawn a pile of fully loaded weapons on the map.
- */
-//Captain's retro laser - Fires practice laser shots instead.
-/obj/item/gun/energy/laser/retro/sc_retro
- name ="retro laser"
- icon_state = "retro"
- desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces."
-// projectile_type = "/obj/projectile/practice"
-
-//Syndicate sub-machine guns.
-/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r
-
-/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r/Initialize()
- . = ..()
- for(var/ammo in magazine.stored_ammo)
- if(prob(95)) //95% chance
- magazine.stored_ammo -= ammo
-
-//Barman's shotgun
-/obj/item/gun/ballistic/shotgun/sc_pump
-
-/obj/item/gun/ballistic/shotgun/sc_pump/Initialize()
- . = ..()
- for(var/ammo in magazine.stored_ammo)
- if(prob(95)) //95% chance
- magazine.stored_ammo -= ammo
-
-//Lasers
-/obj/item/gun/energy/laser/practice/sc_laser
- name = "Old laser"
- desc = "A once potent weapon, years of dust have collected in the chamber and lens of this weapon, weakening the beam significantly."
-
-/*
- * Safe code hints
- */
-
-//These vars hold the code itself, they'll be generated at round-start
-GLOBAL_VAR_INIT(sc_safecode1, "[rand(0,9)]")
-GLOBAL_VAR_INIT(sc_safecode2, "[rand(0,9)]")
-GLOBAL_VAR_INIT(sc_safecode3, "[rand(0,9)]")
-GLOBAL_VAR_INIT(sc_safecode4, "[rand(0,9)]")
-GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]")
-
-//Pieces of paper actually containing the hints
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison
- name = "smudged paper"
-
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison/Initialize()
- . = ..()
- default_raw_text = "The ink is smudged, you can only make out a couple numbers: '[GLOB.sc_safecode1]**[GLOB.sc_safecode4]*'"
-
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro
- name = "shredded paper"
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro/Initialize()
- . = ..()
- default_raw_text = "Although the paper is shredded, you can clearly see the number: '[GLOB.sc_safecode2]'"
-
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_caf
- name = "blood-soaked paper"
- //This does not have to be in New() because it is a constant. There are no variables in it i.e. [sc_safcode]
- default_raw_text = "This paper is soaked in blood, it is impossible to read any text."
-
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible
- name = "hidden paper"
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible/Initialize()
- . = ..()
- default_raw_text = {"It would appear that the pen hidden with the paper had leaked ink over the paper.
- However you can make out the last three digits:'[GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]'
- "}
-
-/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_shuttle
- default_raw_text = {"Target: Research-station Epsilon
- Objective: Prototype weaponry. The captain likely keeps them locked in her safe.
-
- Our on-board spy has learned the code and has hidden away a few copies of the code around the station. Unfortunatly he has been captured by security
- Your objective is to split up, locate any of the papers containing the captain's safe code, open the safe and
- secure anything found inside. If possible, recover the imprisioned syndicate operative and receive the code from him.
-
- As always, eliminate anyone who gets in the way.
-
- Your assigned ship is designed specifically for penetrating the hull of another station or ship with minimal damage to operatives.
- It is completely fly-by-wire meaning you have just have to enjoy the ride and when the red light comes on... find something to hold onto!
- "}
-/*
- * Captain's safe
- */
-/obj/item/storage/secure/safe/sc_ssafe
- name = "Captain's secure safe"
-
-/obj/item/storage/secure/safe/sc_ssafe/Initialize()
- . = ..()
- l_code = "[GLOB.sc_safecode1][GLOB.sc_safecode2][GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]"
- l_set = 1
- new /obj/item/gun/energy/mindflayer(src)
- new /obj/item/soulstone(src)
- new /obj/item/clothing/suit/space/hardsuit/cult(src)
- //new /obj/item/teleportation_scroll(src)
- new /obj/item/stack/ore/diamond(src)
-
-/*
- * Modified Nar'Sie
- */
-/obj/singularity/narsie/mini
- desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible."
- move_self = 0 //Contianed narsie does not move!
- grav_pull = 0 //Contained narsie does not pull stuff in!
-//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment
-/obj/singularity/narsie/mini/admin_investigate_setup()
- return
-
-/obj/singularity/narsie/mini/process()
- eat()
- if(prob(25))
- mezzer()
-
-/obj/singularity/narsie/mini/ex_act()
- return
diff --git a/code/modules/awaymissions/mission_code/undergroundoutpost45.dm b/code/modules/awaymissions/mission_code/undergroundoutpost45.dm
deleted file mode 100644
index 415303202430..000000000000
--- a/code/modules/awaymissions/mission_code/undergroundoutpost45.dm
+++ /dev/null
@@ -1,39 +0,0 @@
-// undergroundoutpost45
-
-//Areas
-/area/awaymission/undergroundoutpost45
- name = "space"
- icon_state = "awaycontent1"
-
-/area/awaymission/undergroundoutpost45/central
- name = "UO45 Central Hall"
- icon_state = "awaycontent2"
-
-/area/awaymission/undergroundoutpost45/crew_quarters
- name = "UO45 Crew Quarters"
- icon_state = "awaycontent3"
-
-/area/awaymission/undergroundoutpost45/engineering
- name = "UO45 Engineering"
- icon_state = "awaycontent4"
-
-/area/awaymission/undergroundoutpost45/mining
- name = "UO45 Mining"
- icon_state = "awaycontent5"
-
-/area/awaymission/undergroundoutpost45/research
- name = "UO45 Research"
- icon_state = "awaycontent6"
-
-/area/awaymission/undergroundoutpost45/gateway
- name = "UO45 Gateway"
- icon_state = "awaycontent7"
-
-/area/awaymission/undergroundoutpost45/caves
- name = "UO45 Caves"
- icon_state = "awaycontent8"
- always_unpowered = TRUE
- power_environ = FALSE
- power_equip = FALSE
- power_light = FALSE
- poweralm = FALSE
diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm
index dae36500093f..0a127891b1b8 100644
--- a/code/modules/awaymissions/zlevel.dm
+++ b/code/modules/awaymissions/zlevel.dm
@@ -23,8 +23,6 @@ GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.con
if(!current)
current = new
current.id = id
- if(delay)
- current.wait = CONFIG_GET(number/gateway_delay)
GLOB.gateway_destinations += current
current.target_turfs += get_turf(src)
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
index d5489edeb3e0..24a39c848ff1 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm
@@ -25,21 +25,10 @@
stock_max = 10
availability_prob = 0
-/datum/blackmarket_item/ammo/himehabu_box
- name = ".22 LR Ammo Box"
- desc = "A 75 round ammo box of .22 LR. Trust me, you'll need every shot."
- item = /obj/item/ammo_box/c22lr_box
-
- price_min = 100
- price_max = 300
- stock_min = 6
- stock_max = 10
- availability_prob = 0
-
/datum/blackmarket_item/ammo/a357_box
name = ".357 Ammo Box"
desc = "A 50 round ammo box of .357."
- item = /obj/item/ammo_box/a357_box
+ item = /obj/item/storage/box/ammo/a357
price_min = 150
price_max = 500
@@ -57,17 +46,39 @@
stock = 6
availability_prob = 0
-/datum/blackmarket_item/ammo/c299
- name = "Eoehoma .299 Caseless Ammo Box"
- desc = "This ammunition for the E-40 Hybrid Rifle is probably worth more than the people you're shooting it at."
- item = /obj/item/ammo_box/c299
+/datum/blackmarket_item/ammo/cm23_mag
+ name = "CM-23 Magazines"
+ desc = "10 round 10mm magazines for use in the CM-23 pistol."
+ item = /obj/item/ammo_box/magazine/cm23
- price_min = 300
- price_max = 700
+ price_min = 150
+ price_max = 300
+ stock_min = 6
+ stock_max = 10
+ availability_prob = 0
+
+/datum/blackmarket_item/ammo/cm70_mag
+ name = "CM-70 Magazines"
+ desc = "18 round 9mm magazines for use in the CM-70 pistol."
+ item = /obj/item/ammo_box/magazine/m9mm_cm70
+
+ price_min = 200
+ price_max = 300
stock_min = 4
stock_max = 8
availability_prob = 0
+/datum/blackmarket_item/ammo/cm5_mag
+ name = "CM-5 Magazines"
+ desc = "30 round 9mm magazines for use in the CM-5 SMG."
+ item = /obj/item/ammo_box/magazine/cm5_9mm
+
+ price_min = 300
+ price_max = 600
+ stock_min = 2
+ stock_max = 6
+ availability_prob = 0
+
/datum/blackmarket_item/ammo/saber_mag
name = "Saber 9mm SMG Magazines"
desc = "Magazines for use in the Saber 9mm SMG. No, they don't work as swords."
@@ -135,7 +146,7 @@
/datum/blackmarket_item/ammo/carbine_mag
name = "SKM-24v Magazine"
desc = "A 30 round magazine of 4.6x30mm for the SKM-24v. A hermit classic."
- item = /obj/item/ammo_box/magazine/skm_545_39
+ item = /obj/item/ammo_box/magazine/skm_46_30
price_min = 500
price_max = 1000
@@ -253,7 +264,7 @@
/datum/blackmarket_item/ammo/a4570hp
name = ".45-70 Hollow Point Ammo Box"
desc = "Put the hollow in hollow point by blowing a crater in some random sod with this devastating .45-70 cartridge."
- item = /obj/item/ammo_box/a4570/hp
+ item = /obj/item/storage/box/ammo/a4570_hp
price_min = 600
price_max = 1000
@@ -274,7 +285,7 @@
/datum/blackmarket_item/ammo/c38hotshot
name = ".38 Hearth Ammo Box"
- desc = "We got our ship cook to marinade some .38 in some hearthwine we pocketed off some hunters. It'll cook your targets to a nice well done."
+ desc = "We got our ship cook to marinade some .38 in some hearthflame we pocketed off some hunters. It'll cook your targets to a nice well done."
item = /obj/item/ammo_box/c38/hotshot
price_min = 300
@@ -285,7 +296,7 @@
/datum/blackmarket_item/ammo/c38iceblox
name = ".38 Chilled Ammo Box"
- desc = "One of our runners accidentally spilled some .38 into a fucking pristine icewine shipment. It'll freeze your targets faster than our runner froze solid outside for making a mess."
+ desc = "One of our runners accidentally spilled some .38 into a fucking pristine wine of ice shipment. It'll freeze your targets faster than our runner froze solid outside for making a mess."
item = /obj/item/ammo_box/c38/iceblox
price_min = 300
@@ -293,3 +304,32 @@
stock_min = 3
stock_max = 8
availability_prob = 50
+
+/datum/blackmarket_item/ammo/a8x50match
+ name = "8x50mm Match Box"
+ desc = "We found this dead guy with a recording of him going \"Watch this!\", and richoetting something before crumbling over. This is the ammo he had!"
+ item = /obj/item/storage/box/ammo/a8_50r/match
+ price_min = 500
+ price_max = 1000
+ stock_min = 1
+ stock_max = 4
+ availability_prob = 30
+
+/datum/blackmarket_item/ammo/c22rub
+ name = ".22lr Rubbers"
+ desc = "A 100 round box of .22 rubbershot from some godsforsaken frontier world. We're pretty sure the use-case is making someone think that they just pissed off a beehive"
+ item = /obj/item/storage/box/ammo/c22lr/rubber
+ price_min = 400
+ price_max = 800
+ stock_min = 1
+ stock_max = 4
+ availability_prob = 40
+
+/datum/blackmarket_item/ammo/a8x58trac
+ name = "8x58mm Tracker"
+ desc = "We hot glued a GPS onto the inside of this 8x58mm shell! For the low low price of. Whatever the price is. You can have it!"
+ item = /obj/item/ammo_casing/caseless/a858/trac
+ price_min = 50
+ price_max = 500
+ stock_min = 4
+ stock_max = 8
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm
index 677b82624bae..1beb0a0de7d2 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm
@@ -92,20 +92,20 @@
return B
/datum/blackmarket_item/clothing/frontiersmen_armor_set
- name = "X-11 Bulletproof Armor Set"
- desc = "We got a good deal on some extra bulletproof armor from a Frontiersmen Quartermaster, and we're passing those savings onto you!"
+ name = "X-11 Armor Set"
+ desc = "We got a good deal on some extra armor from a Frontiersmen Quartermaster, and we're passing those savings onto you!"
item = /obj/item/storage/box
- price_min = 1000
- price_max = 1750
+ price_min = 500
+ price_max = 1250
stock_max = 3
availability_prob = 50
/datum/blackmarket_item/clothing/frontiersmen_armor_set/spawn_item(loc)
var/obj/item/storage/box/B = ..()
- B.name = "Bulletproof Armor Set Box"
+ B.name = "Armor Set Box"
B.desc = "A beat up looking box with some armor inside."
- new /obj/item/clothing/suit/armor/vest/bulletproof/frontier(B)
+ new /obj/item/clothing/suit/armor/vest/frontier(B)
new /obj/item/clothing/head/helmet/bulletproof/x11/frontier(B)
return B
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
index 2d9f3af83c06..871b103af05d 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/consumables.dm
@@ -4,7 +4,7 @@
/datum/blackmarket_item/consumable/donk_pocket_box
name = "Box of Donk Pockets"
desc = "A well packaged box containing the favourite snack of every spacefarer."
- item = /obj/effect/spawner/lootdrop/donkpockets
+ item = /obj/effect/spawner/random/food_or_drink/donkpockets
stock_min = 2
stock_max = 5
@@ -79,9 +79,7 @@
var/trickwine = pick(list(/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine,
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine,
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine,
- /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine))
+ /obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine,))
return new trickwine(loc)
/datum/blackmarket_item/consumable/stimpack
@@ -186,7 +184,7 @@
/datum/blackmarket_item/consumable/ration
name = "Ration Pack"
desc = "PGF military surplus rations. What's in them? Who knows. Surprise is the spice of life after all."
- item = /obj/effect/spawner/lootdrop/ration
+ item = /obj/effect/spawner/random/food_or_drink/ration
price_min = 150
price_max = 300
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
index 8f51514de804..a9221fb95ecb 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/misc.dm
@@ -11,15 +11,15 @@
stock_max = 6
availability_prob = 80
-/datum/blackmarket_item/misc/shoulder_holster
- name = "Shoulder holster"
- desc = "Yeehaw, hardboiled friends! This holster is the first step in your dream of becoming a detective and being allowed to shoot real guns!"
+/datum/blackmarket_item/misc/cham_holster
+ name = "Chameleon Shoulder holster"
+ desc = "Looking to pack some heat without attracting attention? This adapative chameleon shoulder holster can disguise itself and your piece!"
item = /obj/item/clothing/accessory/holster
price_min = 200
price_max = 800
- stock_max = 8
- availability_prob = 60
+ stock_max = 4
+ availability_prob = 40
/datum/blackmarket_item/misc/strange_seed
name = "Strange Seeds"
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm
index 412ba303b977..fabde1d0dfcf 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/tools.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/tools.dm
@@ -11,17 +11,6 @@
stock = 1
availability_prob = 20
-/datum/blackmarket_item/tool/syndi_toolbox
- name = "Syndicate Toolbox"
- desc = "A set of specialized tools, built to precision perfection and certified by the GEC."
- item = /obj/item/storage/toolbox/syndicate
-
- price_min = 500
- price_max = 2000
- stock_min = 1
- stock_max = 3
- availability_prob = 40
-
/datum/blackmarket_item/tool/surgery_duffel
name = "Cybersun Advanced Surgical Kit"
desc = "You might say it's morally wrong to steal. I say it's justified when it's Cybersun."
@@ -173,28 +162,19 @@
desc = "A lovingly handcrafted jetpack built by our salvage techs. For the frugal space explorer."
item = /obj/item/tank/jetpack/improvised
- price_min = 500
- price_max = 1000
+ price_min = 100
+ price_max = 500
stock_min = 3
stock_max = 6
availability_prob = 70
-/datum/blackmarket_item/tool/jet_harness
- name = "Jet Harness"
- desc = "A compact oxygen filled jet harness for tactical EVA insertions and extractions."
- item = /obj/item/tank/jetpack/oxygen/harness
-
- price_min = 1250
- price_max = 3500
- stock_max = 3
- availability_prob = 30
-
/datum/blackmarket_item/tool/jetpack_upgrade
name = "Hardsuit Jetpack Upgrade"
desc = "A modular jetpack compatible with most hardsuits. If the screws feel a bit loose, it's because the last suit it was attached to was beyond recovery."
item = /obj/item/tank/jetpack/suit
- price_min = 1750
+ price_min = 1250
price_max = 3000
- stock = 1
+ stock_min = 1
+ stock_max = 3
availability_prob = 25
diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm
index 740ee2c5341b..6eae1c1a1484 100644
--- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm
+++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm
@@ -32,6 +32,26 @@
stock_max = 3
availability_prob = 50
+/datum/blackmarket_item/weapon/fireaxe
+ name = "Fire Axe"
+ desc = "An incredibly sharp axe of reputable make, used by various engineers to settle arguments while hammered. Sold to us by a very friendly man in a suit."
+ item = /obj/item/melee/axe/fire
+
+ price_min = 1200
+ price_max = 2300
+ stock_max = 3
+ availability_prob = 40
+
+/datum/blackmarket_item/weapon/sledgehammer
+ name = "Breaching Sledgehammer"
+ desc = "A Clique outfit had to ditch a lot of equipment to evade a Gezenan assault. This little piece breaks legs and walls like no other. You want in?"
+ item = /obj/item/melee/axe/sledgehammer
+
+ price_min = 2000
+ price_max = 3000
+ stock_max = 3
+ availability_prob = 30
+
/datum/blackmarket_item/weapon/powerfist
name = "Powerfist"
desc = "Need a bit more... omph in your right hook? This gas operated powerfist will put you in the heavyweight."
@@ -98,7 +118,7 @@
name = "Himehabu Pistol"
desc = "Great things come in small packages. The Himehabu is perfect for all your espionage needs. Chambered in .22lr."
item = /obj/item/gun/ballistic/automatic/pistol/himehabu
- pair_item = list(/datum/blackmarket_item/ammo/himehabu_mag, /datum/blackmarket_item/ammo/himehabu_box)
+ pair_item = list(/datum/blackmarket_item/ammo/himehabu_mag)
price_min = 100
price_max = 600
@@ -129,7 +149,7 @@
name = "E-40 Hybrid Assault Rifle"
desc = "A dual mode hybrid assault rifle made by the now defunct Eoehoma Firearms. Capable of firing both bullets AND lasers, for the discerning dealer in death. Chambered in Eoehoma .299 Caseless."
item = /obj/item/gun/ballistic/automatic/assault/e40
- pair_item = list(/datum/blackmarket_item/ammo/e40_mag, /datum/blackmarket_item/ammo/c299)
+ pair_item = list(/datum/blackmarket_item/ammo/e40_mag)
price_min = 7000
price_max = 10000
@@ -159,10 +179,43 @@
stock_max = 3
availability_prob = 40
+/datum/blackmarket_item/weapon/cm23
+ name = "CM-23 pistol"
+ desc = "The service pistol of the Confederated League. Chambered in 10mm and fresh off a crashed clipper. We made sure to scratch the ID off this time."
+
+ item = /obj/item/gun/ballistic/automatic/pistol/cm23
+ pair_item = list(/datum/blackmarket_item/ammo/cm23_mag)
+ price_min = 500
+ price_max = 1500
+ stock_max = 4
+ availability_prob = 50
+
+/datum/blackmarket_item/weapon/cm70
+ name = "CM-70 Machine Pistol"
+ desc = "One slick piece from the Confederated League. Chambered in 9mm. That officer wasn't happy to lose this but you should be safe."
+
+ item = /obj/item/gun/ballistic/automatic/pistol/cm70
+ pair_item = list(/datum/blackmarket_item/ammo/cm70_mag)
+ price_min = 900
+ price_max = 2100
+ stock_max = 2
+ availability_prob = 50
+
+/datum/blackmarket_item/weapon/cm5
+ name = "CM-5 SMG"
+ desc = "Now isn't this a good find. A whole League sub-machinegun, chambered in 9mm. We're pretty sure no one is gonna notice the pallet of these missing."
+
+ item = /obj/item/gun/ballistic/automatic/smg/cm5
+ pair_item = list(/datum/blackmarket_item/ammo/cm5_mag)
+ price_min = 1750
+ price_max = 3500
+ stock_max = 2
+ availability_prob = 30
+
/datum/blackmarket_item/weapon/saber_smg
name = "Saber 9mm SMG"
desc = "A prototype 9mm submachine gun. Most of these never got past the RND phase and into distribution. But we happen know a guy."
- item = /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto
+ item = /obj/item/gun/ballistic/automatic/smg/skm_carbine/saber
pair_item = list(/datum/blackmarket_item/ammo/saber_mag)
price_min = 2250
@@ -180,6 +233,17 @@
stock = 2
availability_prob = 20
+/datum/blackmarket_item/weapon/larker
+ name = "Model 13 \"Larker\""
+ desc = "Gotta deal for you broski. We got this mod of those shoddy Sporter Rifles an' you can buy one, or two, orreven three if yer int' that."
+ item = /obj/item/storage/guncase/m13
+
+ price_min = 500
+ price_max = 1200
+ stock_min = 3
+ stock_max = 5
+ availability_prob = 40
+
/datum/blackmarket_item/weapon/sawn_illestren
name = "Sawn off Illestren Rifle"
desc = "We had to saw down the barrels on these to fit them in the smuggling compartment. They don't aim too good, but it still packs a good punch."
@@ -191,16 +255,6 @@
stock_max = 5
availability_prob = 60
-/datum/blackmarket_item/weapon/combat_shotgun
- name = "Combat Shotgun"
- desc = "Are your arms tired from pumping Hunter's Pride shotguns? This semi-automatic combat shotgun will make killing a breeze."
- item = /obj/item/gun/ballistic/shotgun/automatic/combat
-
- price_min = 1750
- price_max = 3500
- stock_max = 3
- availability_prob = 40
-
/datum/blackmarket_item/weapon/mecha_weapon_bay
name = "Concealed Weapons Bay"
desc = "Ripley with a laser cannon? Odysseus with a missile rack? Sky's the limit with this omni-compatible weapons bay! (Missiles and lasers not included)"
@@ -320,7 +374,7 @@
name = "Pounder Submachine Gun"
desc = "There's a certain quality to quantity. With a massive 50 round capacity, this .22lr submachine is capable of laying down an jawdropping amount of fire."
item = /obj/item/gun/ballistic/automatic/smg/pounder
- pair_item = list(/datum/blackmarket_item/ammo/pounder_mag,/datum/blackmarket_item/ammo/himehabu_box)
+ pair_item = list(/datum/blackmarket_item/ammo/pounder_mag)
price_min = 1500
price_max = 2000
@@ -350,19 +404,9 @@
stock_max = 2
availability_prob = 20
-/datum/blackmarket_item/weapon/fireaxe
- name = "Fire Axe"
- desc = "An incredibly sharp axe of dubious make used by various engineers throughout the years to settle arguments while hammered. Sold to us by a very friendly man in a suit."
- item = /obj/item/melee/axe/fire
-
- price_min = 2500
- price_max = 3500
- stock = 2
- availability_prob = 40
-
/datum/blackmarket_item/weapon/oneshot
name = "Hammer Launcher"
- desc = "A one-shot solution to a myriad amount of problems, ranging from Exosuits to obnoxious neighbors. Contains one ready-to-fire 84mm HEDP rocket. "
+ desc = "A one-shot solution to a myriad amount of problems, ranging from Exosuits to obnoxious neighbors. Contains one ready-to-fire 84mm HE rocket. "
item = /obj/item/gun/ballistic/rocketlauncher/oneshot
price_min = 3000
@@ -370,3 +414,25 @@
stock_min = 1
stock_max = 5
availability_prob = 25
+
+/datum/blackmarket_item/weapon/oneshot/hedp
+ name = "Hammer-DP Launcher"
+ desc = "A one-shot solution to a myriad amount of problems, ranging from Exosuits to obnoxious neighbors. Contains one ready-to-fire 84mm HEDP rocket. "
+ item = /obj/item/gun/ballistic/rocketlauncher/oneshot/hedp
+
+ price_min = 4000
+ price_max = 6000
+ stock_min = 1
+ stock_max = 5
+ availability_prob = 10
+
+/datum/blackmarket_item/weapon/skm_lmg
+ name = "SKM-24u Light Machinegun"
+ desc = "Your regular rifles not have enough oomph for you? This SKM-24 was converted with help from a 'liberated' CM-40 parts shipment into a light machinegun, ready to blow away whatever you point it at. Increased firerate makes it buck like a mule, so keep that bipod on the ground. Drums sold separately!"
+ item = /obj/item/gun/ballistic/automatic/hmg/skm_lmg
+
+ price_min = 5000
+ price_max = 7000
+ stock_max = 2
+ availability_prob = 15
+ spawn_weighting = FALSE
diff --git a/code/modules/cargo/bounties/engineering.dm b/code/modules/cargo/bounties/engineering.dm
index d4832a460fbc..4c42d312ecec 100644
--- a/code/modules/cargo/bounties/engineering.dm
+++ b/code/modules/cargo/bounties/engineering.dm
@@ -4,7 +4,7 @@
reward = 7500
wanted_types = list(/obj/item/tank)
var/moles_required = 20 // A full tank is 28 moles, but CentCom ignores that fact.
- var/gas_type = GAS_PLUOXIUM
+ var/gas_type = GAS_O3
/datum/bounty/item/engineering/gas/applies_to(obj/O)
if(!..())
@@ -12,11 +12,6 @@
var/obj/item/tank/T = O
return T.air_contents.get_moles(gas_type) >= moles_required
-/datum/bounty/item/engineering/gas/nitryl_tank
- name = "Full Tank of Nitryl"
- description = "The non-human staff of Station 88 has been volunteered to test performance enhancing drugs. Ship them a tank full of Nitryl so they can get started."
- gas_type = GAS_NITRYL
-
/datum/bounty/item/engineering/gas/freon_tank
name = "Full Tank of Freon"
description = "The Supermatter of station 33 has started the delamination process. Deliver a tank of Freon gas to help them stop it!"
diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm
index 0849efb6ede4..18fc501da945 100644
--- a/code/modules/cargo/bounties/science.dm
+++ b/code/modules/cargo/bounties/science.dm
@@ -28,13 +28,6 @@
reward = 10000
wanted_types = list(/obj/item/clothing/glasses/night, /obj/item/clothing/glasses/meson/night, /obj/item/clothing/glasses/hud/health/night, /obj/item/clothing/glasses/hud/security/night, /obj/item/clothing/glasses/hud/diagnostic/night)
-/datum/bounty/item/science/experimental_welding_tool
- name = "Experimental Welding Tool"
- description = "A recent accident has left most of CentCom's welding tools exploded. Ship replacements to be rewarded."
- reward = 10000
- required_count = 3
- wanted_types = list(/obj/item/weldingtool/experimental)
-
/datum/bounty/item/science/cryostasis_beaker
name = "Cryostasis Beaker"
description = "Chemists at Central Command have discovered a new chemical that can only be held in cryostasis beakers. The only problem is they don't have any! Rectify this to receive payment."
diff --git a/code/modules/cargo/bounties/slime.dm b/code/modules/cargo/bounties/slime.dm
deleted file mode 100644
index 4aa0797c7002..000000000000
--- a/code/modules/cargo/bounties/slime.dm
+++ /dev/null
@@ -1,39 +0,0 @@
-/datum/bounty/item/slime
- reward = 3000
-
-/datum/bounty/item/slime/New()
- ..()
- description = "Nanotrasen's science lead is hunting for the rare and exotic [name]. A bounty has been offered for finding it."
- reward += rand(0, 4) * 500
-
-/datum/bounty/item/slime/green
- name = "Green Slime Extract"
- wanted_types = list(/obj/item/slime_extract/green)
-
-/datum/bounty/item/slime/pink
- name = "Pink Slime Extract"
- wanted_types = list(/obj/item/slime_extract/pink)
-
-/datum/bounty/item/slime/gold
- name = "Gold Slime Extract"
- wanted_types = list(/obj/item/slime_extract/gold)
-
-/datum/bounty/item/slime/oil
- name = "Oil Slime Extract"
- wanted_types = list(/obj/item/slime_extract/oil)
-
-/datum/bounty/item/slime/black
- name = "Black Slime Extract"
- wanted_types = list(/obj/item/slime_extract/black)
-
-/datum/bounty/item/slime/lightpink
- name = "Light Pink Slime Extract"
- wanted_types = list(/obj/item/slime_extract/lightpink)
-
-/datum/bounty/item/slime/adamantine
- name = "Adamantine Slime Extract"
- wanted_types = list(/obj/item/slime_extract/adamantine)
-
-/datum/bounty/item/slime/rainbow
- name = "Rainbow Slime Extract"
- wanted_types = list(/obj/item/slime_extract/rainbow)
diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm
index 3807e9bd6984..ddc07ddab611 100644
--- a/code/modules/cargo/bounty.dm
+++ b/code/modules/cargo/bounty.dm
@@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(bounties_list)
// Called when the claim button is clicked. Override to provide fancy rewards.
/datum/bounty/proc/claim(datum/bank_account/claimer_account)
if(can_claim() && claimer_account)
- claimer_account.adjust_money(reward, "bounty")
+ claimer_account.adjust_money(reward, CREDIT_LOG_BOUNTY)
claimed = TRUE
// If an item sent in the cargo shuttle can satisfy the bounty.
@@ -75,7 +75,7 @@ GLOBAL_LIST_EMPTY(bounties_list)
// Returns a new bounty of random type, but does not add it to GLOB.bounties_list.
/proc/random_bounty()
- switch(rand(1, 13))
+ switch(rand(1, 12))
if(1)
var/subtype = pick(subtypesof(/datum/bounty/item/assistant))
return new subtype
@@ -103,18 +103,15 @@ GLOBAL_LIST_EMPTY(bounties_list)
var/subtype = pick(subtypesof(/datum/bounty/item/science))
return new subtype
if(9)
- var/subtype = pick(subtypesof(/datum/bounty/item/slime))
- return new subtype
- if(10)
var/subtype = pick(subtypesof(/datum/bounty/item/engineering))
return new subtype
- if(11)
+ if(10)
var/subtype = pick(subtypesof(/datum/bounty/item/mining))
return new subtype
- if(12)
+ if(11)
var/subtype = pick(subtypesof(/datum/bounty/item/medical))
return new subtype
- if(13)
+ if(12)
var/subtype = pick(subtypesof(/datum/bounty/item/botany))
return new subtype
@@ -153,10 +150,7 @@ GLOBAL_LIST_EMPTY(bounties_list)
/********************************Dynamic Gens********************************/
for(var/i in 0 to 1)
- if(prob(50))
- pick = pick(subtypesof(/datum/bounty/item/slime))
- else
- pick = pick(subtypesof(/datum/bounty/item/science))
+ pick = pick(subtypesof(/datum/bounty/item/science))
try_add_bounty(new pick)
/********************************Cutoff for Non-Low Priority Bounties********************************/
diff --git a/code/modules/cargo/console.dm b/code/modules/cargo/console.dm
index 246d98da6636..c7b1d0987bed 100644
--- a/code/modules/cargo/console.dm
+++ b/code/modules/cargo/console.dm
@@ -13,6 +13,8 @@
circuit = /obj/item/circuitboard/computer/cargo
light_color = COLOR_BRIGHT_ORANGE
+ /// The ship we reside on for ease of access
+ var/datum/overmap/ship/controlled/current_ship
var/contraband = FALSE
var/self_paid = FALSE
var/safety_warning = "For safety reasons, the automated supply shuttle \
@@ -47,7 +49,6 @@
obj_flags |= EMAGGED
else
obj_flags &= ~EMAGGED
- generate_pack_data()
/obj/machinery/computer/cargo/Destroy()
if(beacon)
@@ -77,6 +78,9 @@
board.obj_flags |= EMAGGED
update_static_data(user)
+/obj/machinery/computer/cargo/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock)
+ current_ship = port.current_ship
+
/obj/machinery/computer/cargo/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
@@ -85,21 +89,23 @@
if(!charge_account)
reconnect()
+/obj/machinery/computer/cargo/ui_static_data(mob/user)
+ . = ..()
+ var/outpost_docked = istype(current_ship.docked_to, /datum/overmap/outpost)
+ if(outpost_docked)
+ generate_pack_data()
+ else
+ supply_pack_data = list()
+
/obj/machinery/computer/cargo/ui_data(mob/user)
var/canBeacon = beacon && (isturf(beacon.loc) || ismob(beacon.loc))//is the beacon in a valid location?
var/list/data = list()
- // not a big fan of get_containing_shuttle
- var/obj/docking_port/mobile/D = SSshuttle.get_containing_shuttle(src)
- var/datum/overmap/ship/controlled/ship
- var/outpost_docked = FALSE
- if(D)
- ship = D.current_ship
- outpost_docked = istype(ship.docked_to, /datum/overmap/outpost)
-
- data["onShip"] = !isnull(ship)
- data["numMissions"] = ship ? LAZYLEN(ship.missions) : 0
- data["maxMissions"] = ship ? ship.max_missions : 0
+ var/outpost_docked = istype(current_ship.docked_to, /datum/overmap/outpost)
+
+ data["onShip"] = !isnull(current_ship)
+ data["numMissions"] = current_ship ? LAZYLEN(current_ship.missions) : 0
+ data["maxMissions"] = current_ship ? current_ship.max_missions : 0
data["outpostDocked"] = outpost_docked
data["points"] = charge_account ? charge_account.account_balance : 0
data["siliconUser"] = user.has_unlimited_silicon_privilege && check_ship_ai_access(user)
@@ -120,9 +126,7 @@
else if (use_beacon && !canBeacon)
message = "BEACON ERROR: MUST BE EXPOSED"//beacon's loc/user's loc must be a turf
data["message"] = message
- if(!supply_pack_data)
- generate_pack_data()
- stack_trace("You didn't give the cargo tech good advice, and he ripped the manifest. As a result, there was no pack data for [src]")
+
data["supplies"] = supply_pack_data
if (cooldown > 0)//cooldown used for printing beacons
cooldown--
@@ -130,11 +134,11 @@
data["shipMissions"] = list()
data["outpostMissions"] = list()
- if(ship)
- for(var/datum/mission/M as anything in ship.missions)
+ if(current_ship)
+ for(var/datum/mission/M as anything in current_ship.missions)
data["shipMissions"] += list(M.get_tgui_info())
if(outpost_docked)
- var/datum/overmap/outpost/out = ship.docked_to
+ var/datum/overmap/outpost/out = current_ship.docked_to
for(var/datum/mission/M as anything in out.missions)
data["outpostMissions"] += list(M.get_tgui_info())
@@ -180,7 +184,7 @@
// no giving yourself money
if(!charge_account || !val || val <= 0)
return
- if(charge_account.adjust_money(-val))
+ if(charge_account.adjust_money(-val, CREDIT_LOG_WITHDRAW))
var/obj/item/holochip/cash_chip = new /obj/item/holochip(drop_location(), val)
if(ishuman(usr))
var/mob/living/carbon/human/user = usr
@@ -215,56 +219,56 @@
if (beacon)
beacon.update_status(SP_READY) //turns on the beacon's ready light
if("printBeacon")
- if(charge_account?.adjust_money(-BEACON_COST))
+ if(charge_account?.adjust_money(-BEACON_COST, "cargo_beacon"))
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)
printed_beacons++//printed_beacons starts at 0, so the first one out will be called beacon # 1
beacon.name = "Supply Pod Beacon #[printed_beacons]"
if("add")
- var/area/ship/current_area = get_area(src)
- var/datum/supply_pack/pack = SSshuttle.supply_packs[text2path(params["id"])]
- if( \
- !pack || !charge_account?.has_money(pack.cost) || !istype(current_area) || \
- !istype(current_area.mobile_port.current_ship.docked_to, /datum/overmap/outpost) \
- )
- return
+ var/datum/overmap/outpost/current_outpost = current_ship.docked_to
+ if(istype(current_ship.docked_to))
+ var/datum/supply_pack/current_pack = locate(params["ref"]) in current_outpost.supply_packs
+ var/same_faction = current_pack.faction ? current_pack.faction.allowed_faction(current_ship.faction_datum) : FALSE
+ var/total_cost = (same_faction && current_pack.faction_discount) ? current_pack.cost - (current_pack.cost * (current_pack.faction_discount * 0.01)) : current_pack.cost
+ if(!current_pack || !charge_account?.has_money(total_cost))
+ return
- var/turf/landing_turf
- if(!isnull(beacon) && use_beacon) // prioritize beacons over landing in cargobay
- landing_turf = get_turf(beacon)
- beacon.update_status(SP_LAUNCH)
- else if(!use_beacon)// find a suitable supplypod landing zone in cargobay
- var/list/empty_turfs = list()
- if(!landingzone)
- reconnect()
+ var/turf/landing_turf
+ if(!isnull(beacon) && use_beacon) // prioritize beacons over landing in cargobay
+ landing_turf = get_turf(beacon)
+ beacon.update_status(SP_LAUNCH)
+ else if(!use_beacon)// find a suitable supplypod landing zone in cargobay
+ var/list/empty_turfs = list()
if(!landingzone)
- WARNING("[src] couldnt find a Ship/Cargo (aka cargobay) area on a ship, and as such it has set the supplypod landingzone to the area it resides in.")
- landingzone = get_area(src)
- for(var/turf/open/floor/T in landingzone.contents)//uses default landing zone
- if(T.is_blocked_turf())
- continue
- empty_turfs += T
- CHECK_TICK
- landing_turf = pick(empty_turfs)
-
- // note that, because of CHECK_TICK above, we aren't sure if we can
- // afford the pack, even though we checked earlier. luckily adjust_money
- // returns false if the account can't afford the price
- if(landing_turf && charge_account.adjust_money(-pack.cost))
- var/name = "*None Provided*"
- var/rank = "*None Provided*"
- if(ishuman(usr))
- var/mob/living/carbon/human/H = usr
- name = H.get_authentification_name()
- rank = H.get_assignment(hand_first = TRUE)
- else if(issilicon(usr))
- name = usr.real_name
- rank = "Silicon"
- var/datum/supply_order/SO = new(pack, name, rank, usr.ckey, "")
- new /obj/effect/pod_landingzone(landing_turf, podType, SO)
- update_appearance() // ??????????????????
- return TRUE
+ reconnect()
+ if(!landingzone)
+ WARNING("[src] couldnt find a Ship/Cargo (aka cargobay) area on a ship, and as such it has set the supplypod landingzone to the area it resides in.")
+ landingzone = get_area(src)
+ for(var/turf/open/floor/T in landingzone.contents)//uses default landing zone
+ if(T.is_blocked_turf())
+ continue
+ empty_turfs += T
+ CHECK_TICK
+ landing_turf = pick(empty_turfs)
+
+ // note that, because of CHECK_TICK above, we aren't sure if we can
+ // afford the pack, even though we checked earlier. luckily adjust_money
+ // returns false if the account can't afford the price
+ if(landing_turf && charge_account.adjust_money(-total_cost, CREDIT_LOG_CARGO))
+ var/name = "*None Provided*"
+ var/rank = "*None Provided*"
+ if(ishuman(usr))
+ var/mob/living/carbon/human/H = usr
+ name = H.get_authentification_name()
+ rank = H.get_assignment(hand_first = TRUE)
+ else if(issilicon(usr))
+ name = usr.real_name
+ rank = "Silicon"
+ var/datum/supply_order/SO = new(current_pack, name, rank, usr.ckey, "", ordering_outpost = current_ship.docked_to)
+ new /obj/effect/pod_landingzone(landing_turf, podType, SO)
+ update_appearance() // ??????????????????
+ return TRUE
if("mission-act")
var/datum/mission/mission = locate(params["ref"])
@@ -282,8 +286,8 @@
if(mission.can_complete())
mission.turn_in()
//[CELADON-EDIT] - CELADON_FIXES - фиксим ролл миссий
- //else
- // mission.give_up()
+ //else if(tgui_alert(usr, "Give up on [mission]?", src, list("Yes", "No")) == "Yes")
+ // mission.give_up()
ship.given_up_missions = 0
ship.giveup_timer = world.time-15 MINUTES
ship.giveup_timeout = FALSE
@@ -324,7 +328,7 @@
/obj/machinery/computer/cargo/attackby(obj/item/W, mob/living/user, params)
var/value = W.get_item_credit_value()
if(value && charge_account)
- charge_account.adjust_money(value)
+ charge_account.adjust_money(value, CREDIT_LOG_DEPOSIT)
to_chat(user, "You deposit [W]. The Vessel Budget is now [charge_account.account_balance] cr.")
qdel(W)
return TRUE
@@ -339,20 +343,35 @@
/obj/machinery/computer/cargo/proc/generate_pack_data()
supply_pack_data = list()
- for(var/pack in SSshuttle.supply_packs)
- var/datum/supply_pack/P = SSshuttle.supply_packs[pack]
- if(!supply_pack_data[P.group])
- supply_pack_data[P.group] = list(
- "name" = P.group,
+
+ if(!current_ship.docked_to)
+ return supply_pack_data
+
+ var/datum/overmap/outpost/outpost_docked = current_ship.docked_to
+
+ if(!istype(outpost_docked))
+ return supply_pack_data
+
+ for(var/datum/supply_pack/current_pack as anything in outpost_docked.supply_packs)
+ if(!supply_pack_data[current_pack.group])
+ supply_pack_data[current_pack.group] = list(
+ "name" = current_pack.group,
"packs" = list()
)
- if((P.hidden))
+ if((current_pack.hidden))
continue
- supply_pack_data[P.group]["packs"] += list(list(
- "name" = P.name,
- "cost" = P.cost,
- "id" = pack,
- "desc" = P.desc || P.name // If there is a description, use it. Otherwise use the pack's name.
+ var/same_faction = current_pack.faction ? current_pack.faction.allowed_faction(current_ship.faction_datum) : FALSE
+ var/discountedcost = (same_faction && current_pack.faction_discount) ? current_pack.cost - (current_pack.cost * (current_pack.faction_discount * 0.01)) : null
+ if(current_pack.faction_locked && !same_faction)
+ continue
+ supply_pack_data[current_pack.group]["packs"] += list(list(
+ "name" = current_pack.name,
+ "cost" = current_pack.cost,
+ "discountedcost" = discountedcost ? discountedcost : null,
+ "discountpercent" = current_pack.faction_discount,
+ "faction_locked" = current_pack.faction_locked, //this will only show if you are same faction, so no issue
+ "ref" = REF(current_pack),
+ "desc" = (current_pack.desc || current_pack.name) + (discountedcost ? "\n-[current_pack.faction_discount]% off due to your faction affiliation.\nWas [current_pack.cost]" : "") + (current_pack.faction_locked ? "\nYou are able to purchase this item due to your faction affiliation." : "") // If there is a description, use it. Otherwise use the pack's name.
))
/obj/machinery/computer/cargo/retro
diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm
index be3ec7a26599..165cfb6c1196 100644
--- a/code/modules/cargo/exports.dm
+++ b/code/modules/cargo/exports.dm
@@ -59,7 +59,8 @@ then the player gets the profit from selling his own wasted time.
if(!dry_run && (sold || delete_unsold))
if(ismob(thing))
thing.investigate_log("deleted through cargo export",INVESTIGATE_CARGO)
- qdel(thing)
+ if(!dry_run)
+ qdel(AM)
return report
diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm
index 030e51cf24f8..bb556dc78613 100644
--- a/code/modules/cargo/exports/large_objects.dm
+++ b/code/modules/cargo/exports/large_objects.dm
@@ -98,8 +98,5 @@
var/worth = 10
worth += C.air_contents.get_moles(GAS_BZ)*2
- worth += C.air_contents.get_moles(GAS_STIMULUM)*100
- worth += C.air_contents.get_moles(GAS_HYPERNOB)*1000
worth += C.air_contents.get_moles(GAS_TRITIUM)*4
- worth += C.air_contents.get_moles(GAS_PLUOXIUM)*5
return worth
diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm
index e098e0623725..520d19f41ddd 100644
--- a/code/modules/cargo/exports/lavaland.dm
+++ b/code/modules/cargo/exports/lavaland.dm
@@ -9,10 +9,6 @@
/obj/item/book_of_babel,
/obj/item/wisp_lantern,
/obj/item/reagent_containers/glass/bottle/potion/flight,
- // [CELADON-ADD] - CELADON_RETURN_CONTENT
- /obj/item/clothing/glasses/godeye,
- // [/CELADON-ADD]
- /obj/item/clothing/suit/space/hardsuit/cult,
/obj/item/voodoo,
/obj/item/grenade/clusterbuster/inferno,
/obj/item/clothing/neck/memento_mori,
@@ -30,8 +26,7 @@
/datum/export/lavaland/major //valuable chest/ruin loot and staff of storms
cost = 10000
unit_name = "lava planet artifact"
- export_types = list(/obj/item/guardiancreator,
- /obj/item/rod_of_asclepius,
+ export_types = list(/obj/item/rod_of_asclepius,
/obj/item/clothing/suit/space/hardsuit/ert/paranormal,
/obj/item/prisoncube,
/obj/item/staff/storm,
@@ -47,12 +42,11 @@
cost = 40000
unit_name = "major lava planet artifact"
export_types = list(/obj/item/hierophant_club,
- /obj/item/melee/transforming/cleaving_saw,
+ /obj/item/melee/cleaving_saw,
/obj/item/organ/vocal_cords/colossus,
/obj/machinery/anomalous_crystal,
/obj/item/mayhem,
/obj/item/blood_contract,
- /obj/item/guardiancreator/miner/choose//this is basically the most valulable mining loot so good luck getting a miner to part ways
)
/*
/datum/export/lavaland/trophycommon
diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm
index ca9666a42108..ef50108b97e8 100644
--- a/code/modules/cargo/exports/parts.dm
+++ b/code/modules/cargo/exports/parts.dm
@@ -15,13 +15,6 @@
unit_name = "solar panel control board"
export_types = list(/obj/item/circuitboard/computer/solar_control)
-/datum/export/swarmer
- cost = 2000
- unit_name = "deactivated alien deconstruction drone"
- export_types = list(/obj/item/deactivated_swarmer)
-
-//[CELADON-REMOVE] - CELADON_FIXES - говорят экономику ломают
-/*
//Computer Tablets and Parts
/datum/export/modular_part
cost = 15
@@ -103,5 +96,4 @@
unit_name = "computer intellicard slot"
export_types = list(/obj/item/computer_hardware/ai_slot)
include_subtypes = TRUE
-*/
-//[/CELADON-REMOVE]
+
diff --git a/code/modules/cargo/exports/tools.dm b/code/modules/cargo/exports/tools.dm
index 287fba69aaa0..efb0cfdb4a57 100644
--- a/code/modules/cargo/exports/tools.dm
+++ b/code/modules/cargo/exports/tools.dm
@@ -96,10 +96,6 @@
exclude_types = list(/obj/item/radio/mech)
//Advanced/Power Tools.
-/datum/export/weldingtool/experimental
- cost = 90
- unit_name = "experimental welding tool"
- export_types = list(/obj/item/weldingtool/experimental)
/datum/export/jawsoflife
cost = 100
diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm
index c6ee67ed091e..118cfa8a69e2 100644
--- a/code/modules/cargo/exports/weapons.dm
+++ b/code/modules/cargo/exports/weapons.dm
@@ -41,12 +41,6 @@
unit_name = "WT-550 automatic rifle"
export_types = list(/obj/item/gun/ballistic/automatic/smg/wt550)
-/datum/export/weapon/shotgun
- cost = 300
- unit_name = "combat shotgun"
- export_types = list(/obj/item/gun/ballistic/shotgun/automatic/combat)
-
-
/datum/export/weapon/flashbang
cost = 5
unit_name = "flashbang grenade"
diff --git a/code/modules/cargo/gondolapod.dm b/code/modules/cargo/gondolapod.dm
index 560fc46668de..2a05796e67fc 100644
--- a/code/modules/cargo/gondolapod.dm
+++ b/code/modules/cargo/gondolapod.dm
@@ -20,7 +20,7 @@
layer = TABLE_LAYER//so that deliveries dont appear underneath it
loot = list(/obj/effect/decal/cleanable/blood/gibs, /obj/item/stack/sheet/animalhide/gondola = 2, /obj/item/reagent_containers/food/snacks/meat/slab/gondola = 2)
//Gondolas aren't affected by cold.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
maxHealth = 200
diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm
index e802bf1aa274..010e4e3d0ef7 100644
--- a/code/modules/cargo/order.dm
+++ b/code/modules/cargo/order.dm
@@ -15,15 +15,21 @@
var/reason
var/datum/supply_pack/pack
var/datum/bank_account/paying_account
+ var/datum/overmap/outpost/ordering_outpost
-/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account)
- id = SSshuttle.ordernum++
+/datum/supply_order/New(datum/supply_pack/pack, orderer, orderer_rank, orderer_ckey, reason, paying_account, ordering_outpost)
src.pack = pack
src.orderer = orderer
src.orderer_rank = orderer_rank
src.orderer_ckey = orderer_ckey
src.reason = reason
src.paying_account = paying_account
+ src.ordering_outpost = ordering_outpost
+ if(src.ordering_outpost)
+ id = src.ordering_outpost.ordernum++
+ if(pack)
+ SSblackbox.record_feedback("nested tally", "crate_ordered", 1, list(pack.name, "amount"))
+ SSblackbox.record_feedback("nested tally", "crate_ordered", pack.cost, list(pack.name, "cost"))
/datum/supply_order/proc/generateRequisition(turf/T)
var/obj/item/paper/requisition_paper = new(T)
diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm
index e6555fc58b6e..4e26a713a6b2 100644
--- a/code/modules/cargo/packs.dm
+++ b/code/modules/cargo/packs.dm
@@ -10,11 +10,9 @@
var/admin_spawned = FALSE
var/small_item = FALSE //Small items can be grouped into a single crate.
- var/faction
- /* to be implmented
+ var/datum/faction/faction
var/faction_discount = 15
var/faction_locked = FALSE
- */
/datum/supply_pack/proc/generate(atom/A, datum/bank_account/paying_account)
var/obj/structure/closet/crate/C
diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm
index f8b335af1dd9..d3b87bb2aed9 100644
--- a/code/modules/cargo/packs/ammo.dm
+++ b/code/modules/cargo/packs/ammo.dm
@@ -1,427 +1,441 @@
/datum/supply_pack/ammo
- group = "Ammunition"
+ group = "Bulk Ammunition"
crate_type = /obj/structure/closet/crate/secure/gear
+ crate_name = "ammo crate"
-/*
- Pistol ammo
-*/
-
-/datum/supply_pack/ammo/co9mm_mag
- name = "9mm Commander Magazine Crate"
- desc = "Contains a 9mm magazine for the standard-issue Commander pistol, containing ten rounds."
- contains = list(/obj/item/ammo_box/magazine/co9mm)
- cost = 500
+/* Misc */
-/datum/supply_pack/ammo/m45_mag
- name = ".45 ACP Candor Magazine Crate"
- desc = "Contains a .45 ACP magazine for the Candor pistol, containing eight rounds."
- contains = list(/obj/item/ammo_box/magazine/m45)
- cost = 500
+/datum/supply_pack/ammo/blank_ammo_disk
+ name = "Blank Ammo Design Disk Crate"
+ desc = "Run your own training drills!"
+ cost = 1000
+ contains = list(/obj/item/disk/design_disk/blanks)
-/datum/supply_pack/ammo/a44roum_speedloader
- name = ".44 Roumain Speedloader Crate"
- desc = "Contains a .44 Roumain speedloader for the HP Montagne, containing six rounds."
- contains = list(/obj/item/ammo_box/a44roum_speedloader)
- cost = 400
+/* .22lr */
-/datum/supply_pack/ammo/c38_mag
- name = ".38 Speedloader Crate"
- desc = "Contains a .38 speedloader for revolvers, containing six rounds."
- contains = list(/obj/item/ammo_box/c38)
+/datum/supply_pack/ammo/c22lr
+ name = ".22 LR Ammo Box Crate"
+ desc = "Contains a 100-round ammo box for refilling .22 LR weapons."
+ contains = list(/obj/item/storage/box/ammo/c22lr)
cost = 250
-/datum/supply_pack/ammo/m10mm_mag
- name = "10mm ringneck Magazine Crate"
- desc = "Contains a 10mm magazine for the ringneck pistol, containing ten rounds."
- contains = list(/obj/item/ammo_box/magazine/m10mm_ringneck)
- cost = 500
+/datum/supply_pack/ammo/c22lr_hp
+ name = ".22 LR HP Ammo Box Crate"
+ desc = "Contains a 100-round hollow point ammo box for refilling .22 LR weapons."
+ contains = list(/obj/item/storage/box/ammo/c22lr/hp)
+ cost = 600
-/datum/supply_pack/ammo/a357_mag
- name = ".357 Speedloader Crate"
- desc = "Contains a .357 speedloader for revolvers, containing seven rounds."
- contains = list(/obj/item/ammo_box/a357)
- cost = 750
-
-/datum/supply_pack/ammo/mag_556mm
- name = "5.56 Pistole C Magazine Crate"
- desc = "Contains a 5.56mm magazine for the Pistole C, containing twelve rounds."
- contains = list(/obj/item/ammo_box/magazine/pistol556mm)
- cost = 750
- faction = FACTION_SOLGOV
-
-/datum/supply_pack/ammo/fms_mag
- name = "Ferromagnetic Slug Magazine Crate"
- desc = "Contains a ferromagnetic slug magazine for the Model H pistol, containing ten rounds."
- contains = list(/obj/item/ammo_box/magazine/modelh)
- cost = 750
- faction = FACTION_SOLGOV
-
-/*
- Shotgun ammo
-*/
+/datum/supply_pack/ammo/c22lr_ap
+ name = ".22 LR AP Ammo Box Crate"
+ desc = "Contains a 100-round armour piercing ammo box for refilling .22 LR weapons."
+ contains = list(/obj/item/storage/box/ammo/c22lr/ap)
+ cost = 600
-/datum/supply_pack/ammo/buckshot
- name = "Buckshot Crate"
- desc = "Contains a box of twenty-five buckshot shells for use in lethal persuasion."
- cost = 500
- contains = list(/obj/item/ammo_box/a12g)
-/datum/supply_pack/ammo/slugs
- name = "Shotgun Slug Crate"
- desc = "Contains a box of twenty-five slug shells for use in lethal persuasion."
- cost = 500
- contains = list(/obj/item/ammo_box/a12g/slug)
+/* 9mm */
-/datum/supply_pack/ammo/blank_shells
- name = "Blank Shell Crate"
- desc = "Contains a box of blank shells."
- cost = 500
- contains = list(/obj/item/ammo_box/a12g/blanks)
+/datum/supply_pack/ammo/c9mm_ammo_box
+ name = "9mm Ammo Box Crate"
+ desc = "Contains a 60-round 9mm box for pistols and SMGs such as the Commander or Saber."
+ contains = list(/obj/item/storage/box/ammo/c9mm)
+ cost = 200
-/datum/supply_pack/ammo/blank_ammo_disk
- name = "Blank Ammo Design Disk Crate"
- desc = "Run your own training drills!"
- cost = 1000
- contains = list(/obj/item/disk/design_disk/blanks)
+/datum/supply_pack/ammo/c9mmap_ammo_box
+ name = "9mm AP Ammo Box Crate"
+ desc = "Contains a 60-round 9mm box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c9mm_ap)
+ cost = 400
-/datum/supply_pack/ammo/techshells
- name = "Unloaded Shotgun Technological Shells Crate"
- desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required."
- cost = 210
- contains = list(/obj/item/storage/box/techshot)
+/datum/supply_pack/ammo/c9mmhp_ammo_box
+ name = "9mm HP Ammo Box Crate"
+ desc = "Contains a 60-round 9mm box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c9mm_hp)
+ cost = 400
-/datum/supply_pack/ammo/rubbershot
- name = "Rubbershot Crate"
- desc = "Contains a box of twenty-five rubbershot shells for use in crowd control or training."
- cost = 500
- contains = list(/obj/item/ammo_box/a12g/rubbershot)
+/datum/supply_pack/ammo/c9mmrubber_ammo_box
+ name = "9mm Rubber Ammo Box Crate"
+ desc = "Contains a 60-round 9mm box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c9mm_rubber)
+ cost = 200
-/*
- .38 ammo
-*/
+/* .38 */
-/datum/supply_pack/ammo/winchester_ammo
+/datum/supply_pack/ammo/c38
name = ".38 Ammo Boxes Crate"
desc = "Contains two 50 round ammo boxes for refilling .38 weapons."
cost = 250
- contains = list(/obj/item/ammo_box/c38_box,
- /obj/item/ammo_box/c38_box)
+ contains = list(/obj/item/storage/box/ammo/c38,
+ /obj/item/storage/box/ammo/c38)
crate_name = "ammo crate"
-/datum/supply_pack/ammo/match
- name = ".38 Match Grade Speedloader"
- desc = "Contains one speedloader of match grade .38 ammunition, perfect for showing off trickshots."
- cost = 200
- small_item = TRUE
- contains = list(/obj/item/ammo_box/c38/match)
- crate_name = ".38 match crate"
+/* 10mm */
-/datum/supply_pack/ammo/dumdum
- name = ".38 DumDum Speedloader"
- desc = "Contains one speedloader of .38 DumDum ammunition, good for embedding in soft targets."
- cost = 200
- small_item = TRUE
- contains = list(/obj/item/ammo_box/c38/dumdum)
- crate_name = ".38 match crate"
-
-/*
- WT-550 ammo
-*/
-
-/datum/supply_pack/ammo/wt550_ammo
- name = "WT-550 Auto Rifle Ammo Crate"
- desc = "Contains a 20-round magazine for the WT-550 Auto Rifle. Each magazine is designed to facilitate rapid tactical reloads."
- cost = 750
- contains = list(/obj/item/ammo_box/magazine/wt550m9)
-
-/datum/supply_pack/ammo/cool_wt550_ammo
- name = "WT-550 Auto Rifle Exotic Ammo Crate"
- desc = "Contains one magazine of armor-piercing and one magazine of incendiary ammunition for the WT-550 Auto Rifle. Sadly, our manufacturer discontinued the uranium-tipped bullets."
- cost = 2500
- contains = list(/obj/item/ammo_box/magazine/wt550m9/ap,
- /obj/item/ammo_box/magazine/wt550m9/inc)
-
-/datum/supply_pack/ammo/smgm45ammo
- name = ".45 Cobra Ammo Crate"
- desc = "Contains a .45 magazine for the Cobra-20, containing 24 rounds."
- cost = 750
- contains = list(/obj/item/ammo_box/magazine/m45_cobra)
-
-/*
- Rifle ammo
-*/
-
-/datum/supply_pack/ammo/gal308_ammo
- name = "CM-GAL .308 Magazine Crate"
- desc = "Contains a .308 CM-GAL magazine for the CM-GAL rifle, containing ten rounds."
- contains = list(/obj/item/ammo_box/magazine/f4_308)
- cost = 1000
+/datum/supply_pack/ammo/c10mm_ammo_box
+ name = "10mm Ammo Box Crate"
+ desc = "Contains a 48-round 10mm box for pistols and SMGs like the Ringneck or the SkM-44(k)."
+ contains = list(/obj/item/storage/box/ammo/c10mm)
+ cost = 250
-/datum/supply_pack/ammo/gar_ammo
- name = "GAR Ferromagnetic Lance Magazine Crate"
- desc = "Contains a ferromagnetic lance magazine for the GAR rifle, containing thirty two rounds."
- contains = list(/obj/item/ammo_box/magazine/gar)
- cost = 1000
+/datum/supply_pack/ammo/c10mmap_ammo_box
+ name = "10mm AP Ammo Box Crate"
+ desc = "Contains a 48-round 10mm box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c10mm_ap)
+ cost = 500
-/datum/supply_pack/ammo/claris_ammo
- name = "Claris Ferromagnetic Pellet Speedloader Crate"
- desc = "Contains a ferromagnetic pellet speedloader for the Claris rifle, containing twenty two rounds."
- contains = list(/obj/item/ammo_box/amagpellet_claris)
- cost = 1000
+/datum/supply_pack/ammo/c10mmhp_ammo_box
+ name = "10mm HP Ammo Box Crate"
+ desc = "Contains a 48-round 10mm box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c10mm_hp)
+ cost = 500
-/datum/supply_pack/ammo/ebr_ammo
- name = "M514 EBR .308 Magazine Crate"
- desc = "Contains a .308 magazine for the M514 EBR rifle, containing ten rounds."
- contains = list(/obj/item/ammo_box/magazine/m556_42_hydra/small)
- cost = 1000
+/datum/supply_pack/ammo/c10mmrubber_ammo_box
+ name = "10mm Rubber Ammo Box Crate"
+ desc = "Contains a 48-round 10mm box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c10mm_rubber)
+ cost = 250
-/datum/supply_pack/ammo/skm_ammo
- name = "SKM 7.62x40mm CLIP Magazine Crate"
- desc = "Contains a 7.62x40mm magazine for the SKM rifles, containing twenty rounds."
- contains = list(/obj/item/ammo_box/magazine/skm_762_40)
- cost = 1000
+/* .45 */
-/datum/supply_pack/ammo/p16_ammo
- name = "P-16 5.56mm Magazine Crate"
- desc = "Contains a 5.56mm magazine for the P-16 rifle, containing thirty rounds. Notably, these are also compatable with the CM-82 rifle."
- contains = list(/obj/item/ammo_box/magazine/p16)
- cost = 1000
+/datum/supply_pack/ammo/c45_ammo_box
+ name = ".45 Ammo Box Crate"
+ desc = "Contains a 48-round .45 box for pistols and SMGs like the Candor or the C-20r."
+ contains = list(/obj/item/storage/box/ammo/c45)
+ cost = 250
-/datum/supply_pack/ammo/boomslang_ammo
- name = "Boomslang-90 Magazine Crate"
- desc = "Contains a 6.5 CLIP magazine for the Boomslang-90 rifle, containing five rounds."
- contains = list(/obj/item/ammo_box/magazine/boomslang/short)
- cost = 1000
+/datum/supply_pack/ammo/c45ap_ammo_box
+ name = ".45 AP Ammo Box Crate"
+ desc = "Contains a 48-round .45 box loaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c45_ap)
+ cost = 500
-/datum/supply_pack/ammo/a762_ammo_box
- name = "7.62x40mm CLIP Ammo Box Crate"
- desc = "Contains a one hundred and twenty-round 7.62x40mm CLIP box for the SKM rifles."
- contains = list(/obj/item/ammo_box/a762_40)
+/datum/supply_pack/ammo/c45hp_ammo_box
+ name = ".45 HP Ammo Box Crate"
+ desc = "Contains a 48-round .45 box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c45_hp)
cost = 500
-/datum/supply_pack/ammo/a556_ammo_box
- name = "5.56x42mm CLIP Ammo Box Crate"
- desc = "Contains a one hundred and twenty-round 5.56x42mm CLIP box for most newer rifles."
- contains = list(/obj/item/ammo_box/a556_42)
- cost = 450
+/datum/supply_pack/ammo/c45mmrubber_ammo_box
+ name = ".45 Rubber Ammo Box Crate"
+ desc = "Contains a 48-round .45 box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c45_rubber)
+ cost = 250
+
+/* .357 */
/datum/supply_pack/ammo/a357_ammo_box
name = ".357 Ammo Box Crate"
- desc = "Contains a fifty-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand."
- contains = list(/obj/item/ammo_box/a357_box)
+ desc = "Contains a 48-round .357 box for revolvers such as the Scarborough Revolver and the HP Firebrand."
+ contains = list(/obj/item/storage/box/ammo/a357)
cost = 250
-/datum/supply_pack/ammo/c556mmHITP_ammo_box
- name = "5.56 Caseless Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless box for SolGov sidearms like the Pistole C."
- contains = list(/obj/item/ammo_box/c556mmHITP)
+/datum/supply_pack/ammo/a357hp_ammo_box
+ name = ".357 HP Ammo Box Crate"
+ desc = "Contains a 48-round .357 box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a357_hp)
+ cost = 500
+
+/datum/supply_pack/ammo/a357match_ammo_box
+ name = ".357 Match Ammo Box Crate"
+ desc = "Contains a 48-round .357 match box for better performance against armor."
+ contains = list(/obj/item/storage/box/ammo/a357_match)
+ cost = 500
+
+/* .44 */
+
+/datum/supply_pack/ammo/a44roum
+ name = ".44 Roumain Ammo Box Crate"
+ desc = "Contains a 48-round box of .44 roumain ammo for revolvers such as the Shadow and Montagne."
+ contains = list(/obj/item/storage/box/ammo/a44roum)
cost = 250
-/datum/supply_pack/ammo/c45_ammo_box
- name = ".45 Ammo Box Crate"
- desc = "Contains a fifty-round .45 box for pistols and SMGs like the Candor or the C-20r."
- contains = list(/obj/item/ammo_box/c45)
+/datum/supply_pack/ammo/a44roum_rubber
+ name = ".44 Roumain Rubber Ammo Box Crate"
+ desc = "Contains a 48-round box of .44 roumain ammo loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/a44roum_rubber)
cost = 250
-/datum/supply_pack/ammo/c10mm_ammo_box
- name = "10mm Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box for pistols and SMGs like the Ringneck or the SkM-44(k)."
- contains = list(/obj/item/ammo_box/c10mm)
+/datum/supply_pack/ammo/a44roum_hp
+ name = ".44 Roumain Hollow Point Ammo Box Crate"
+ desc = "Contains a 48-round box of .44 roumain hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a44roum_hp)
+ cost = 500
+
+/* 4.6x30 */
+
+/datum/supply_pack/ammo/c46x30mm_boxcrate
+ name = "4.6x30mm Ammo Box Crate"
+ desc = "Contains an 80-round 4.6x30mm box for PDWs such as the WT-550."
+ contains = list(/obj/item/storage/box/ammo/c46x30mm)
cost = 250
-/datum/supply_pack/ammo/c9mm_ammo_box
- name = "9mm Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box for pistols and SMGs such as the Commander or Saber."
- contains = list(/obj/item/ammo_box/c9mm)
- cost = 200
+/datum/supply_pack/ammo/c46x30mm_ap
+ name = "4.6x30mm Armour Piercing Ammo Box Crate"
+ desc = "Contains a 80-round 4.6x30mm armour piercing box for PDWs such as the WT-550."
+ contains = list(/obj/item/storage/box/ammo/c46x30mm/ap)
+ cost = 500
-//[СELADON-REMOVE] - CELADON_WEAPONS - хватит это терпеть! Хрен я эти патроны дам продавать по 500 кредитов - mod_celadon/weapons/code/ammo.dm
-/*
-/datum/supply_pack/ammo/a308_ammo_box
- name = "308 Ammo Box Crate"
- desc = "Contains a thirty-round .308 box for DMRs such as the SsG-04 and CM-GAL-S."
- contains = list(/obj/item/ammo_box/a308)
+/datum/supply_pack/ammo/c46x30mm_hp
+ name = "4.6x30mm Hollow Point Ammo Box Crate"
+ desc = "Contains a 80-round 4.6x30mm hollow point box for PDWs such as the WT-550."
+ contains = list(/obj/item/storage/box/ammo/c46x30mm/hp)
cost = 500
-*/
-//[/СELADON-REMOVE]
-/datum/supply_pack/ammo/c9mmap_ammo_box
- name = "9mm AP Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c9mm/ap)
- cost = 400
-/datum/supply_pack/ammo/a357match_ammo_box
- name = ".357 Match Ammo Box Crate"
- desc = "Contains a fifty-round .357 match box for better performance against armor."
- contains = list(/obj/item/ammo_box/a357_box/match)
+/* 5.7x39 */
+
+/datum/supply_pack/ammo/c57x39mm_boxcrate
+ name = "5.7x39mm Ammo Box Crate"
+ desc = "Contains two 48-round 5.7x39mm box for PDWs such as the Sidewinder."
+ contains = list(
+ /obj/item/storage/box/ammo/c57x39,
+ /obj/item/storage/box/ammo/c57x39,
+ )
+ cost = 350
+
+/datum/supply_pack/ammo/c57x39mm_ap
+ name = "5.7x39mm Armour Piercing Ammo Box Crate"
+ desc = "Contains two 48-round 5.7x39mm box for PDWs such as the Sidewinder."
+ contains = list(
+ /obj/item/storage/box/ammo/c57x39/ap,
+ /obj/item/storage/box/ammo/c57x39/ap,
+ )
+ cost = 700
+
+/datum/supply_pack/ammo/c57x39mm_hp
+ name = "5.7x39mm Hollow Point Ammo Box Crate"
+ desc = "Contains two 48-round 5.7x39mm Hollow Point boxes for PDWs such as the Sidewinder."
+ contains = list(
+ /obj/item/storage/box/ammo/c57x39/hp,
+ /obj/item/storage/box/ammo/c57x39/hp,
+ )
+ cost = 700
+
+/* 12 Gauge */
+
+/datum/supply_pack/ammo/buckshot
+ name = "Buckshot Crate"
+ desc = "Contains a box of 32 buckshot shells for use in lethal persuasion."
cost = 500
+ contains = list(/obj/item/storage/box/ammo/a12g_buckshot)
-/datum/supply_pack/ammo/c556mmHITPap_ammo_box
- name = "5.56 caseless AP Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless boxloaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c556mmHITP/ap)
+/datum/supply_pack/ammo/slugs
+ name = "Shotgun Slug Crate"
+ desc = "Contains a box of 32 slug shells for use in lethal persuasion."
cost = 500
+ contains = list(/obj/item/storage/box/ammo/a12g_slug)
-/datum/supply_pack/ammo/c45ap_ammo_box
- name = ".45 AP Ammo Box Crate"
- desc = "Contains a fifty-round .45 box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c45/ap)
+/datum/supply_pack/ammo/blank_shells
+ name = "Blank Shell Crate"
+ desc = "Contains a box of blank shells."
cost = 500
+ contains = list(/obj/item/storage/box/ammo/a12g_blank)
-/datum/supply_pack/ammo/c10mmap_ammo_box
- name = "10mm AP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with armor piercing ammo."
- contains = list(/obj/item/ammo_box/c10mm/ap)
+/datum/supply_pack/ammo/rubbershot
+ name = "Rubbershot Crate"
+ desc = "Contains a box of 32 12 gauge rubbershot shells. Perfect for crowd control and training."
cost = 500
+ contains = list(/obj/item/storage/box/ammo/a12g_rubbershot)
-/datum/supply_pack/ammo/c9mmhp_ammo_box
- name = "9mm HP Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c9mm/hp)
+/datum/supply_pack/ammo/techshells
+ name = "Unloaded Shotgun Technological Shells Crate"
+ desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required."
+ cost = 210
+ contains = list(/obj/item/storage/box/techshot)
+
+/* .45-70 */
+
+/datum/supply_pack/ammo/a4570_box
+ name = ".45-70 Ammo Box Crate"
+ desc = "Contains a 20-round box containing devastatingly powerful .45-70 caliber ammunition."
+ contains = list(/obj/item/storage/box/ammo/a4570)
cost = 400
-/datum/supply_pack/ammo/a357hp_ammo_box
- name = ".357 HP Ammo Box Crate"
- desc = "Contains a fifty-round .357 box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/a357_box/hp)
- cost = 500
+/datum/supply_pack/ammo/a4570_box/match
+ name = ".45-70 Match Crate"
+ desc = "Contains a 20-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets."
+ contains = list(/obj/item/storage/box/ammo/a4570_match)
+ cost = 800
-/datum/supply_pack/ammo/c10mmhp_ammo_box
- name = "10mm HP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c10mm/hp)
- cost = 500
-/datum/supply_pack/ammo/c45hp_ammo_box
- name = ".45 HP Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c45/hp)
- cost = 500
+/* 7.62 */
-/datum/supply_pack/ammo/c556mmhitphp_ammo_box
- name = "5.56 Caseless HP Ammo Box Crate"
- desc = "Contains a fifty-round 5.56mm caseless box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c556mmHITP/hp)
+/datum/supply_pack/ammo/a762_ammo_box
+ name = "7.62x40mm CLIP Ammo Box Crate"
+ desc = "Contains two 60-round 7.62x40mm CLIP boxes for the SKM rifles."
+ contains = list(/obj/item/storage/box/ammo/a762_40,
+ /obj/item/storage/box/ammo/a762_40)
cost = 500
-/datum/supply_pack/ammo/c9mmrubber_ammo_box
- name = "9mm Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 9mm box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c9mm/rubbershot)
- cost = 200
+/datum/supply_pack/ammo/a762_ap
+ name = "7.62x40mm CLIP Armour Piercing Ammo Box Crate"
+ desc = "Contains two 60-round 7.62x40mm CLIP Armour Piercing boxes for the SKM rifles."
+ contains = list(/obj/item/storage/box/ammo/a762_40/ap,
+ /obj/item/storage/box/ammo/a762_40/ap)
+ cost = 1000
-/datum/supply_pack/ammo/c10mmrubber_ammo_box
- name = "10mm Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 10mm box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c10mm/rubbershot)
- cost = 250
+/datum/supply_pack/ammo/a762_hp
+ name = "7.62x40mm CLIP Hollow Point Ammo Box Crate"
+ desc = "Contains two 60-round 7.62x40mm CLIP Hollow Point boxes for the SKM rifles."
+ contains = list(/obj/item/storage/box/ammo/a762_40/hp,
+ /obj/item/storage/box/ammo/a762_40/hp)
+ cost = 1000
-/datum/supply_pack/ammo/c45mmrubber_ammo_box
- name = ".45 Rubber Ammo Box Crate"
- desc = "Contains a fifty-round .45 box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c45/rubbershot)
- cost = 250
+/* 5.56 */
+/datum/supply_pack/ammo/a556_ammo_box
+ name = "5.56x42mm CLIP Ammo Box Crate"
+ desc = "Contains two 60-round 5.56x42mm CLIP boxes for most newer rifles."
+ contains = list(/obj/item/storage/box/ammo/a556_42,
+ /obj/item/storage/box/ammo/a556_42)
+ cost = 450
-/datum/supply_pack/ammo/c556HITPrubber_ammo_box
- name = "5.56 Caseless Rubber Ammo Box Crate"
- desc = "Contains a fifty-round 5.56 caseless box loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/c556mmHITP/rubbershot)
+/datum/supply_pack/ammo/a556_ap
+ name = "5.56x42mm CLIP Armour Piercing Ammo Box Crate"
+ desc = "Contains two 60-round 5.56x42mm CLIP Armour Piercing boxes for most newer rifles."
+ contains = list(/obj/item/storage/box/ammo/a556_42/ap,
+ /obj/item/storage/box/ammo/a556_42/ap)
+ cost = 900
+
+/datum/supply_pack/ammo/a556_hp
+ name = "5.56x42mm CLIP Hollow Point Ammo Box Crate"
+ desc = "Contains two 60-round 5.56x42mm CLIP Hollow Point boxes for most newer rifles."
+ contains = list(/obj/item/storage/box/ammo/a556_42/hp,
+ /obj/item/storage/box/ammo/a556_42/hp)
+ cost = 900
+
+/* 5.56 caseless */
+
+/datum/supply_pack/ammo/c556mmHITP_ammo_box
+ name = "5.56 Caseless Ammo Box Crate"
+ desc = "Contains a 48-round 5.56mm caseless box for SolGov sidearms like the Pistole C."
+ contains = list(/obj/item/storage/box/ammo/c556mm)
cost = 250
-/datum/supply_pack/ammo/guncell
- name = "Weapon Cell Crate"
- desc = "Contains a weapon cell, compatible with laser guns."
- contains = list(/obj/item/stock_parts/cell/gun)
+/datum/supply_pack/ammo/c556mmHITPap_ammo_box
+ name = "5.56 caseless AP Ammo Box Crate"
+ desc = "Contains a 48-round 5.56mm caseless boxloaded with armor piercing ammo."
+ contains = list(/obj/item/storage/box/ammo/c556mm_ap)
cost = 500
-/datum/supply_pack/ammo/guncell/kalix
- name = "Etherbor Cell Crate"
- desc = "Contains an Etherbor weapon cell, compatible with Etherbor armaments with a slightly higher capacity."
- contains = list(/obj/item/stock_parts/cell/gun/kalix)
- cost = 600
+/datum/supply_pack/ammo/c556mmhitphp_ammo_box
+ name = "5.56 Caseless HP Ammo Box Crate"
+ desc = "Contains a 48-round 5.56mm caseless box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/c556mm_hp)
+ cost = 500
-/datum/supply_pack/ammo/c57x39mm_boxcrate
- name = "5.7x39mm Ammo Box Crate"
- desc = "Contains a fifty-round 5.7x39mm box for PDWs such as the Sidewinder."
- contains = list(/obj/item/ammo_box/c57x39mm_box)
+/datum/supply_pack/ammo/c556HITPrubber_ammo_box
+ name = "5.56 Caseless Rubber Ammo Box Crate"
+ desc = "Contains a 48-round 5.56 caseless box loaded with less-than-lethal rubber rounds."
+ contains = list(/obj/item/storage/box/ammo/c556mm_rubber)
cost = 250
-/datum/supply_pack/ammo/c46x30mm_boxcrate
- name = "4.6x30mm Ammo Box Crate"
- desc = "Contains a fifty-round 4.6x30mm box for PDWs such as the WT-550."
- contains = list(/obj/item/ammo_box/c46x30mm_box)
- cost = 250
+/* .299 */
+
+/datum/supply_pack/ammo/c299
+ name = ".299 Eoehoma Caseless Ammo Box Crate"
+ desc = "Contains two 60-round boxes of .299 Caseless ammo from the defunct Eoehoma. Used for the E-40 Hybrid Rifle."
+ contains = list(/obj/item/storage/box/ammo/c299,
+ /obj/item/storage/box/ammo/c299)
+ cost = 400
+
+/* 8x50 */
/datum/supply_pack/ammo/c8x50mm_boxcrate
name = "8x50mm Ammo Box Crate"
- desc = "Contains a twenty-round 8x50mm ammo box for rifles such as the Illestren."
- contains = list(/obj/item/ammo_box/c8x50mm_box)
+ desc = "Contains a 40-round 8x50mm ammo box for rifles such as the Illestren."
+ contains = list(/obj/item/storage/box/ammo/a8_50r)
cost = 250
/datum/supply_pack/ammo/c8x50mm_boxhp_boxcrate
name = "8x50mm Hollow Point Crate"
- desc = "Contains a twenty-round 8x50mm ammo box loaded with hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/c8x50mmhp_box)
+ desc = "Contains a 40-round 8x50mm ammo box loaded with hollow point ammo, great against unarmored targets."
+ contains = list(/obj/item/storage/box/ammo/a8_50r/hp)
cost = 500
+/datum/supply_pack/ammo/c8x50mm_tracbox
+ name = "8x50mm Tracker Crate"
+ desc = "Contains a 30-round 8x50mm ammo box loaded with tracker ammo, great for sustained hunts."
+ contains = list(/obj/item/storage/box/ammo/a8_50r/trac)
+ cost = 500
+
+
+/* .300 */
+
/datum/supply_pack/ammo/a300_box
name = ".300 Ammo Box Crate"
desc = "Contains a twenty-round .300 Magnum ammo box for sniper rifles such as the HP Scout."
- contains = list(/obj/item/ammo_box/a300_box)
+ contains = list(/obj/item/storage/box/ammo/a300)
cost = 400
+/datum/supply_pack/ammo/a300_trac
+ name = ".300 Trac Ammo Box Crate"
+ desc = "Contains a ten-round .300 TRAC ammo box for sniper rifles such as the HP Scout."
+ contains = list(/obj/item/storage/box/ammo/a300/trac)
+ cost = 600
+
+
+/* .308 */
+
+/datum/supply_pack/ammo/a308_ammo_box
+ name = "308 Ammo Box Crate"
+ desc = "Contains a thirty-round .308 box for DMRs such as the SsG-04 and CM-GAL-S."
+ contains = list(/obj/item/storage/box/ammo/a308)
+ cost = 500
+
+/datum/supply_pack/ammo/a308_ap
+ name = "308 Armour Piercing Ammo Box Crate"
+ desc = "Contains a thirty-round .308 armour piercing box for DMRs such as the SsG-04 and CM-GAL-S."
+ contains = list(/obj/item/storage/box/ammo/a308/ap)
+ cost = 500
+
+/datum/supply_pack/ammo/a308_hp
+ name = "308 Hollow Point Ammo Box Crate"
+ desc = "Contains a thirty-round .308 hollow point box for DMRs such as the SsG-04 and CM-GAL-S."
+ contains = list(/obj/item/storage/box/ammo/a308/hp)
+ cost = 500
+
+/* 6.5 */
+
/datum/supply_pack/ammo/a65clip_box
name = "6.5x57mm CLIP Ammo Box Crate"
desc = "Contains a twenty-round 6.5x57mm CLIP ammo box for various sniper rifles such as the CM-F90 and the Boomslang series."
- contains = list(/obj/item/ammo_box/a65clip_box)
+ contains = list(/obj/item/storage/box/ammo/a65clip)
cost = 400
+/datum/supply_pack/ammo/a65clip_trackers
+ name = "6.5x57mm CLIP Tracker Shell Crate"
+ desc = "Contains a 10-round 6.5x57mm CLIP tracker box for various sniper rifles such as the CM-F90 and the Boomslang series."
+ contains = list(/obj/item/storage/box/ammo/a65clip/trac)
+ cost = 600
-/datum/supply_pack/ammo/a4570_box
- name = ".45-70 Ammo Box Crate"
- desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition."
- contains = list(/obj/item/ammo_box/a4570)
- cost = 500
+/* 8x58 */
+
+/datum/supply_pack/ammo/a858
+ name = "8x58mm Ammo Box Crate"
+ desc = "Contains a twenty-round 8x58 ammo box for Solarian-manufactured sniper rifles, such as the SSG-69."
+ contains = list(/obj/item/storage/box/ammo/a858)
+ cost = 400
-/datum/supply_pack/ammo/a4570_box/match
- name = ".45-70 Match Crate"
- desc = "Contains a twelve-round box containing devastatingly powerful .45-70 caliber ammunition, that travels faster, pierces armour better, and ricochets off targets."
- contains = list(/obj/item/ammo_box/a4570/match)
- cost = 750
+
+/* ferro pellets */
/datum/supply_pack/ammo/ferropelletboxcrate
name = "Ferromagnetic Pellet Box Crate"
- desc = "Contains a fifty-round ferromagnetic pellet ammo box for gauss guns such as the Claris."
- contains = list(/obj/item/ammo_box/ferropelletbox)
+ desc = "Contains a 48-round ferromagnetic pellet ammo box for gauss guns such as the Claris."
+ contains = list(/obj/item/storage/box/ammo/ferropellet)
cost = 250
+/* ferroslugs */
+
/datum/supply_pack/ammo/ferroslugboxcrate
name = "Ferromagnetic Slug Box Crate"
desc = "Contains a twenty-round ferromagnetic slug for gauss guns such as the Model-H."
- contains = list(/obj/item/ammo_box/ferroslugbox)
+ contains = list(/obj/item/storage/box/ammo/ferroslug)
cost = 250
+/* ferro lances */
+
/datum/supply_pack/ammo/ferrolanceboxcrate
name = "Ferromagnetic Lance Box Crate"
- desc = "Contains a fifty-round box for high-powered gauss guns such as the GAR assault rifle."
- contains = list(/obj/item/ammo_box/ferrolancebox)
- cost = 250
-
-/datum/supply_pack/ammo/a44roum
- name = ".44 Roumain Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain ammo for revolvers such as the Shadow and Montagne."
- contains = list(/obj/item/ammo_box/a44roum)
+ desc = "Contains a 48-round box for high-powered gauss guns such as the GAR assault rifle."
+ contains = list(/obj/item/storage/box/ammo/ferrolance)
cost = 250
-
-/datum/supply_pack/ammo/a44roum_rubber
- name = ".44 Roumain Rubber Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain ammo loaded with less-than-lethal rubber rounds."
- contains = list(/obj/item/ammo_box/a44roum/rubber)
- cost = 250
-
-/datum/supply_pack/ammo/a44roum_hp
- name = ".44 Roumain Hollow Point Ammo Box Crate"
- desc = "Contains a fifty-round box of .44 roumain hollow point ammo, great against unarmored targets."
- contains = list(/obj/item/ammo_box/a44roum/hp)
- cost = 500
diff --git a/code/modules/cargo/packs/animal.dm b/code/modules/cargo/packs/animal.dm
index 621d376035d6..50a9d607b285 100644
--- a/code/modules/cargo/packs/animal.dm
+++ b/code/modules/cargo/packs/animal.dm
@@ -105,7 +105,7 @@
/datum/supply_pack/animal/fox
name = "Fox Crate"
- desc = "The fox goes...? Comes with a collar!"//what does the fox say // awful
+ desc = "The fox goes...? Comes with a collar!"//what does the fox say // awful //yip
cost = 5000
contains = list(/mob/living/simple_animal/pet/fox,
/obj/item/clothing/neck/petcollar)
diff --git a/code/modules/cargo/packs/canister.dm b/code/modules/cargo/packs/canister.dm
index c63a4f3e2a51..00fed0ff679f 100644
--- a/code/modules/cargo/packs/canister.dm
+++ b/code/modules/cargo/packs/canister.dm
@@ -43,7 +43,7 @@
/datum/supply_pack/canister/nitrous_oxide
name = "Nitrous Oxide Canister"
- desc = "Contains a canister of nitrous oxide. Clowns love it!"
+ desc = "Contains a canister of nitrous oxide. Guaranted to make someone giggle!"
cost = 2500
contains = list(/obj/machinery/portable_atmospherics/canister/nitrous_oxide)
crate_name = "nitrous oxide canister crate"
diff --git a/code/modules/cargo/packs/chemistry.dm b/code/modules/cargo/packs/chemistry.dm
index 5c7ae4a20ab9..236706f7b6c0 100644
--- a/code/modules/cargo/packs/chemistry.dm
+++ b/code/modules/cargo/packs/chemistry.dm
@@ -10,19 +10,26 @@
name = "Chemical Starter Kit Crate"
desc = "Contains thirteen different chemicals, for all the fun experiments you can make."
cost = 1250 // This is intentionally underpriced; the hope is that people will start using ghettochem, upon which time the price can be raised.
- contains = list(/obj/item/reagent_containers/glass/bottle/hydrogen,
+ contains = list(/obj/item/reagent_containers/glass/bottle/aluminium,
+ /obj/item/reagent_containers/glass/bottle/bromine,
/obj/item/reagent_containers/glass/bottle/carbon,
+ /obj/item/reagent_containers/glass/bottle/chlorine,
+ /obj/item/reagent_containers/glass/bottle/copper,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/fluorine,
+ /obj/item/reagent_containers/glass/bottle/hydrogen,
+ /obj/item/reagent_containers/glass/bottle/iodine,
+ /obj/item/reagent_containers/glass/bottle/lithium,
+ /obj/item/reagent_containers/glass/bottle/mercury,
/obj/item/reagent_containers/glass/bottle/nitrogen,
/obj/item/reagent_containers/glass/bottle/oxygen,
- /obj/item/reagent_containers/glass/bottle/fluorine,
/obj/item/reagent_containers/glass/bottle/phosphorus,
- /obj/item/reagent_containers/glass/bottle/silicon,
- /obj/item/reagent_containers/glass/bottle/chlorine,
- /obj/item/reagent_containers/glass/bottle/radium,
- /obj/item/reagent_containers/glass/bottle/sacid,
- /obj/item/reagent_containers/glass/bottle/ethanol,
/obj/item/reagent_containers/glass/bottle/potassium,
+ /obj/item/reagent_containers/glass/bottle/radium,
/obj/item/reagent_containers/glass/bottle/sugar,
+ /obj/item/reagent_containers/glass/bottle/sodium,
+ /obj/item/reagent_containers/glass/bottle/sulfur,
+ /obj/item/reagent_containers/glass/bottle/silicon,
/obj/item/reagent_scanner,
/obj/item/reagent_containers/dropper,
/obj/item/storage/box/beakers)
@@ -53,61 +60,96 @@
Bulk materials
*/
+/datum/supply_pack/chemistry/aluminium
+ name = "Bulk Aluminium Crate"
+ desc = "Contains a jug filled with 150u of aluminium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium)
+ crate_name = "bulk aluminium crate"
+
+/datum/supply_pack/chemistry/bromine
+ name = "Bulk Bromine Crate"
+ desc = "Contains a jug filled with 150u of bromine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine)
+ crate_name = "bulk bromine crate"
+
/datum/supply_pack/chemistry/carbon
name = "Bulk Carbon Crate"
desc = "Contains a jug filled with 150u of carbon."
- cost = 500
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/carbon)
crate_name = "bulk carbon crate"
-/datum/supply_pack/chemistry/oxygen
- name = "Bulk Oxygen Crate"
- desc = "Contains a jug filled with 150u of oxygen."
- cost = 500
- contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen)
- crate_name = "bulk oxygen crate"
+/datum/supply_pack/chemistry/chlorine
+ name = "Bulk Chlorine Crate"
+ desc = "Contains a jug filled with 150u of chlorine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine)
+ crate_name = "bulk chlorine crate"
+
+/datum/supply_pack/chemistry/copper
+ name = "Bulk Copper Crate"
+ desc = "Contains a jug filled with 150u of copper."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/copper)
+ crate_name = "bulk copper crate"
+
+/datum/supply_pack/chemistry/fluorine
+ name = "Bulk Fluorine Crate"
+ desc = "Contains a jug filled with 150u of fluorine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/fluorine)
+ crate_name = "bulk fluorine crate"
/datum/supply_pack/chemistry/hydrogen
name = "Bulk Hydrogen Crate"
desc = "Contains a jug filled with 150u of Hydrogen."
- cost = 500
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/hydrogen)
crate_name = "bulk hydrogen crate"
+/datum/supply_pack/chemistry/iodine
+ name = "Bulk Iodine Crate"
+ desc = "Contains a jug filled with 150u of iodine."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine)
+ crate_name = "bulk iodine crate"
+
+/datum/supply_pack/chemistry/lithium
+ name = "Bulk Lithium Crate"
+ desc = "Contains a jug filled with 150u of lithium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/lithium)
+ crate_name = "bulk lithium crate"
+
+/datum/supply_pack/chemistry/mercury
+ name = "Bulk Mercury Crate"
+ desc = "Contains a jug filled with 150u of mercury."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/mercury)
+ crate_name = "bulk mercury crate"
+
/datum/supply_pack/chemistry/nitrogen
name = "Bulk Nitrogen Crate"
desc = "Contains a jug filled with 150u of nitrogen."
- cost = 625
+ cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/nitrogen)
crate_name = "bulk nitrogen crate"
-/datum/supply_pack/chemistry/aluminium
- name = "Bulk Aluminium Crate"
- desc = "Contains a jug filled with 150u of aluminium."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium)
- crate_name = "bulk aluminium crate"
-
-/datum/supply_pack/chemistry/copper
- name = "Bulk Copper Crate"
- desc = "Contains a jug filled with 150u of copper."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/copper)
- crate_name = "bulk copper crate"
-
-/datum/supply_pack/chemistry/bromine
- name = "Bulk Bromine Crate"
- desc = "Contains a jug filled with 150u of bromine."
- cost = 625
- contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine)
- crate_name = "bulk bromine crate"
+/datum/supply_pack/chemistry/oxygen
+ name = "Bulk Oxygen Crate"
+ desc = "Contains a jug filled with 150u of oxygen."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen)
+ crate_name = "bulk oxygen crate"
-/datum/supply_pack/chemistry/iodine
- name = "Bulk Iodine Crate"
- desc = "Contains a jug filled with 150u of iodine."
+/datum/supply_pack/chemistry/phosphorus
+ name = "Bulk Phosphorus Crate"
+ desc = "Contains a jug filled with 150u of phosphorus."
cost = 750
- contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine)
- crate_name = "bulk iodine crate"
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/phosphorus)
+ crate_name = "bulk phosphorus crate"
/datum/supply_pack/chemistry/potassium
name = "Bulk Potassium Crate"
@@ -116,23 +158,23 @@
contains = list(/obj/item/reagent_containers/glass/chem_jug/potassium)
crate_name = "bulk potassium crate"
+/datum/supply_pack/chemistry/radium
+ name = "Bulk Radium Crate"
+ desc = "Contains a jug filled with 150u of radium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/radium)
+ crate_name = "bulk radium crate"
+
+/datum/supply_pack/chemistry/sodium
+ name = "Bulk Sodium Crate"
+ desc = "Contains a jug filled with 150u of sodium."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/chem_jug/sodium)
+ crate_name = "bulk sodium crate"
+
/datum/supply_pack/chemistry/sulfur
name = "Bulk Sulfur Crate"
desc = "Contains a jug filled with 150u of sulfur."
cost = 750
contains = list(/obj/item/reagent_containers/glass/chem_jug/sulfur)
crate_name = "bulk sulfur crate"
-
-/datum/supply_pack/chemistry/chlorine
- name = "Bulk Chlorine Crate"
- desc = "Contains a jug filled with 150u of chlorine."
- cost = 750
- contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine)
- crate_name = "bulk chlorine crate"
-
-/datum/supply_pack/chemistry/radium
- name = "Bulk Radium Crate"
- desc = "Contains a jug filled with 150u of radium."
- cost = 1000
- contains = list(/obj/item/reagent_containers/glass/chem_jug/radium)
- crate_name = "bulk radium crate"
diff --git a/code/modules/cargo/packs/civilian.dm b/code/modules/cargo/packs/civilian.dm
index 0b1d7303ca44..9e0e8c7af6f7 100644
--- a/code/modules/cargo/packs/civilian.dm
+++ b/code/modules/cargo/packs/civilian.dm
@@ -41,14 +41,6 @@
crate_name = "janitorial cart crate"
crate_type = /obj/structure/closet/crate/large
-/datum/supply_pack/civilian/lawnmower
- name = "Lawnmower"
- desc = "Removing plant from your backyard now made easy with the brand new Donk! Co. TM Deluxe Lawnmower 3003."
- cost = 800
- contains = list(/obj/vehicle/ridden/lawnmower)
- crate_name = "Donk! Co. TM Deluxe Lawnmower 3003"
- crate_type = /obj/structure/closet/crate/large
-
/*
Bundles
*/
@@ -86,11 +78,11 @@
contains = list(/obj/item/storage/box/fountainpens)
crate_name = "calligraphy crate"
crate_type = /obj/structure/closet/crate/wooden
- faction = FACTION_SOLGOV
+ faction = /datum/faction/solgov
/datum/supply_pack/civilian/wrapping_paper
name = "Festive Wrapping Paper Crate"
- desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, the Clown's severed head? You can do all that, with this crate full of wrapping paper."
+ desc = "Want to mail your loved ones gift-wrapped chocolates, stuffed animals, flattened flowers? You can do all that, with this crate full of wrapping paper."
cost = 1000
contains = list(/obj/item/stack/wrapping_paper)
crate_name = "festive wrapping paper crate"
@@ -98,7 +90,7 @@
/datum/supply_pack/civilian/paper
name = "Bureaucracy Crate"
- desc = "High stacks of papers on your desk Are a big problem - make it Pea-sized with these bureaucratic supplies! Contains six pens, some camera film, hand labeler supplies, a paper bin, a carbon paper bin, three folders, a laser pointer, two clipboards and two stamps."//that was too forced
+ desc = "High stacks of papers on your desk are a big problem - make it Pea-sized with these bureaucratic supplies! Contains six pens, some camera film, hand labeler supplies, a paper bin, a carbon paper bin, three folders, a laser pointer, two clipboards and two stamps."//that was too forced
cost = 1000
contains = list(/obj/structure/filingcabinet/chestdrawer/wheeled,
/obj/item/camera_film,
@@ -248,67 +240,3 @@
contains = list(/obj/machinery/jukebox)
crate_name = "Jukebox"
-/datum/supply_pack/civilian/fishingkit
- name = "Fishing Starter Kit"
- desc = "The bare necessities to get out there and catch some fish, all in one convenient box!"
- cost = 500
- contains = list(/obj/item/storage/toolbox/fishing,
- /obj/item/book/fish_catalog,
- /obj/item/reagent_containers/food/drinks/beer,
- /obj/item/reagent_containers/food/drinks/beer)
- crate_name = "fishing starter crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/civilian/fishstasis
- name = "Fish Stasis Kit Supply Crate"
- desc = "Contains four stasis cases meant to keep fish alive during transportation."
- cost = 1000
- contains = list(/obj/item/storage/fish_case,
- /obj/item/storage/fish_case,
- /obj/item/storage/fish_case,
- /obj/item/storage/fish_case)
- crate_name = "stasis case crate"
-
-/datum/supply_pack/civilian/premiumworms
- name = "High Quality Worm Pack"
- desc = "A selection of the system's finest worms, guaranteed to lure in only the largest of fish."
- cost = 1000
- contains = list(/obj/item/bait_can/worm/premium,
- /obj/item/bait_can/worm/premium,
- /obj/item/bait_can/worm/premium,
- /obj/item/bait_can/worm/premium)
- crate_name = "premium worm crate"
-
-/datum/supply_pack/civilian/masterworkpole
- name = "Custom Made Masterwork Fishing Rod"
- desc = "Fishing rod forged after grueling hours of labor by a master rodsmith, truly a work of fishing art. Required to catch size 2 fish."
- cost = 5000
- contains = list(/obj/item/fishing_rod/master)
- crate_name = "masterwork fishing rod case"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/civilian/fishinghooks
- name = "Fishing Hook Variety Pack"
- desc = "A variety of fishing hooks to allow for more specialized fishing."
- cost = 1000
- contains = list(/obj/item/storage/box/fishing_hooks)
- crate_name = "fishing hook crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/civilian/fishinglines
- name = "Fishing Line Pack"
- desc = "Contains the necessary fishing lines for catching more exotic fish."
- cost = 1000
- contains = list(/obj/item/storage/box/fishing_lines,
- /obj/item/storage/box/fishing_lines) //Comes with two boxes on account of these being more necessary than the hooks
- crate_name = "fishing line crate"
- crate_type = /obj/structure/closet/crate/wooden
-
-/datum/supply_pack/civilian/aquarium
- name = "Aquarium Construction Kit"
- desc = "Why seek rare fish if not to show them off? This all-in-one aquarium kit's all you'll ever need to keep a stable population of fish onboard your ship! (Building materials not included, Aquatech Ltd. is a limited liability company and not responsible for any fish related mishaps)"
- cost = 2000
- contains = list(/obj/item/aquarium_kit,
- /obj/item/storage/box/aquarium_props,
- /obj/item/fish_feed)
- crate_name = "aquarium kit crate"
diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm
index cab2ac8563af..03d8cffd0368 100644
--- a/code/modules/cargo/packs/costumes_toys.dm
+++ b/code/modules/cargo/packs/costumes_toys.dm
@@ -73,7 +73,7 @@
var/the_toy
for(var/i in 1 to 5)
if(prob(50))
- the_toy = pickweight(GLOB.arcade_prize_pool)
+ the_toy = pick_weight(GLOB.arcade_prize_pool)
else
the_toy = pick(subtypesof(/obj/item/toy/plush))
new the_toy(C)
@@ -84,7 +84,7 @@
/datum/supply_pack/costumes_toys/costume_original
name = "Original Costume Crate"
- desc = "Reenact Shakespearean plays with this assortment of outfits. Contains eight different costumes!"
+ desc = "Reenact Solarian plays with this assortment of outfits. Contains eight different costumes!"
cost = 1000
contains = list(/obj/item/clothing/head/snowman,
/obj/item/clothing/suit/snowman,
@@ -103,7 +103,7 @@
/datum/supply_pack/costumes_toys/mafia/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 4)
- new /obj/effect/spawner/lootdrop/mafia_outfit(C)
+ new /obj/effect/spawner/random/clothing/mafia_outfit(C)
new /obj/item/virgin_mary(C)
if(prob(30)) //Not all mafioso have mustaches, some people also find this item annoying.
new /obj/item/clothing/mask/fakemoustache/italian(C)
@@ -151,7 +151,7 @@
/obj/item/lipstick/random)
crate_name = "formalwear crate"
crate_type = /obj/structure/closet/crate/wooden
- faction = FACTION_SOLGOV
+ faction = /datum/faction/solgov
// this is technically armor but you aren't buying it for that. it's a joke pack so it goes here
/datum/supply_pack/costumes_toys/justiceinbound
@@ -159,7 +159,7 @@
desc = "This is it. The Bee's Knees. The Creme of the Crop. The Pick of the Litter. The best of the best of the best. The Crown Jewel of Nanotrasen. The Alpha and the Omega of security headwear. Guaranteed to strike fear into the hearts of each and every criminal unfortunate enough to hear its screeching wail bore into their soul. Also comes with a security gasmask."
cost = 6000 //justice comes at a price. An expensive, noisy price.
contains = list(/obj/item/clothing/head/helmet/justice,
- /obj/item/clothing/mask/gas/sechailer)
+ /obj/item/clothing/mask/gas)
crate_name = "security clothing crate"
/datum/supply_pack/costumes_toys/collectable_hats
diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm
index 3759dc6d8d11..41401dbce477 100644
--- a/code/modules/cargo/packs/emergency.dm
+++ b/code/modules/cargo/packs/emergency.dm
@@ -24,8 +24,8 @@
name = "Plasmaman Internals Crate"
desc = "Contains two plasmaman belt tanks, for when you just can't bear to refill a normal tank with plasma. Plasma canisters sold separately."
cost = 100
- contains = list(/obj/item/tank/internals/plasmaman/belt,
- /obj/item/tank/internals/plasmaman/belt)
+ contains = list(/obj/item/tank/internals/plasmaman/belt/full,
+ /obj/item/tank/internals/plasmaman/belt/full)
crate_name = "plasmaman internals crate"
/datum/supply_pack/emergency/plasmaman_suit
diff --git a/code/modules/cargo/packs/exploration.dm b/code/modules/cargo/packs/exploration.dm
index 5f70f2b9c2a1..3a02f59c9b7a 100644
--- a/code/modules/cargo/packs/exploration.dm
+++ b/code/modules/cargo/packs/exploration.dm
@@ -2,17 +2,13 @@
group = "Exploration"
crate_type = /obj/structure/closet/crate/wooden
-/*
- Basic survival kits for worlds.
-*/
+/* Exploration Gear */
/datum/supply_pack/exploration/lava
name = "Lava Exploration Kit"
- desc = "Contains two pickaxes, 60 lavaproof rods, two pocket extinguishers and goggles to protect yourself from the heat."
+ desc = "Contains 60 lavaproof rods, two pocket extinguishers and goggles to protect yourself from the heat."
cost = 500
contains = list(
- /obj/item/pickaxe/mini,
- /obj/item/pickaxe/mini,
/obj/item/extinguisher/mini,
/obj/item/extinguisher/mini,
/obj/item/clothing/glasses/heat,
@@ -22,23 +18,11 @@
)
crate_name = "Lava Exploration Kit"
-/datum/supply_pack/exploration/lavaproof_ords
- name ="Lavaproof Rods Crate"
- desc = "Contains 60 lavaproof rods for safely traversing molten pits."
- cost = 200
- contains = list(
- /obj/item/stack/rods/lava/thirty,
- /obj/item/stack/rods/lava/thirty,
- )
- crate_name = "Lavaproof Rod Crate"
-
/datum/supply_pack/exploration/ice
name = "Ice Exploration Kit"
- desc = "Contains two pickaxes, 2 sets of winter clothes and ice hiking boots, along with goggles to protect eyes from the cold."
+ desc = "Contains 2 sets of winter clothes and ice hiking boots, along with goggles to protect eyes from the cold."
cost = 500
contains = list(
- /obj/item/pickaxe/mini,
- /obj/item/pickaxe/mini,
/obj/item/clothing/glasses/cold,
/obj/item/clothing/glasses/cold,
/obj/item/clothing/suit/hooded/wintercoat,
@@ -48,48 +32,21 @@
)
crate_name = "Ice Exploration Kit"
-/datum/supply_pack/exploration/jungle
- name = "Jungle Exploration Kit"
- desc = "Contains a hatchets, two picks and lanterns, plus antivenom pills, great for dense jungles!"
- cost = 500
- contains = list(
- /obj/item/pickaxe/mini,
- /obj/item/pickaxe/mini,
- /obj/item/flashlight/lantern,
- /obj/item/flashlight/lantern,
- /obj/item/storage/pill_bottle/charcoal,
- /obj/item/storage/pill_bottle/charcoal,
- /obj/item/hatchet,
- /obj/item/hatchet,
- )
- crate_name = "Jungle Exploration Kit"
-
-/datum/supply_pack/exploration/beach
- name = "Beach Kit"
- desc = "Shorts, picks, and (low quality) sunglasses, perfect for the beach!"
- cost = 500
- contains = list(
- /obj/item/pickaxe/mini,
- /obj/item/pickaxe/mini,
- /obj/item/clothing/under/shorts/black,
- /obj/item/clothing/under/shorts/blue,
- /obj/item/clothing/under/shorts/green,
- /obj/item/clothing/under/shorts/grey,
- /obj/item/clothing/under/shorts/purple,
- /obj/item/clothing/under/shorts/red,
- /obj/item/clothing/glasses/cheapsuns,
- /obj/item/clothing/glasses/cheapsuns,
- /obj/item/clothing/glasses/cheapsuns,
- /obj/item/clothing/glasses/cheapsuns,
- /obj/item/clothing/glasses/cheapsuns,
- /obj/item/clothing/glasses/cheapsuns,
- )
- crate_name = "Beach Kit"
/*
General Exploration Gear
*/
+/datum/supply_pack/exploration/lavaproof_rods
+ name ="Lavaproof Rods Crate"
+ desc = "Contains 60 lavaproof rods for safely traversing molten pits."
+ cost = 200
+ contains = list(
+ /obj/item/stack/rods/lava/thirty,
+ /obj/item/stack/rods/lava/thirty,
+ )
+ crate_name = "Lavaproof Rod Crate"
+
/datum/supply_pack/exploration/capsules
name = "Bluespace Shelter Capsule"
desc = "Contains a Bluespace Shelter Capsule, for instant shelter in rough situations."
@@ -100,7 +57,7 @@
/datum/supply_pack/exploration/binocular
name = "Binoculars"
- desc = "One pair of binoculars for surveying terrain."
+ desc = "Contains one pair of binoculars for surveying terrain."
cost = 200
contains = list(
/obj/item/binoculars
@@ -108,7 +65,7 @@
/datum/supply_pack/exploration/anom_neutralizer
name = "Anomaly Neutralizer"
- desc = "A single use anomaly neutralizer for stabalizing hazardous anomalies."
+ desc = "Contains a single use anomaly neutralizer for stabilizing hazardous anomalies."
cost = 250
contains = list(
/obj/item/anomaly_neutralizer
@@ -124,7 +81,7 @@
/datum/supply_pack/exploration/gps
name = "GPS"
- desc = "Contains a GPS device, useful for finding lost things and not getting lost yourself."
+ desc = "Contains a GPS device, useful for keeping track of yourself and others."
cost = 100
contains = list(
/obj/item/gps
@@ -140,3 +97,11 @@
/obj/item/storage/box/flares,
/obj/item/storage/box/flares,
)
+
+/datum/supply_pack/exploration/nvg
+ name = "Night Vision Goggles"
+ desc = "Contains a singular pair of Night Vision Goggles, for all your spelunking and military LARP occasions."
+ cost = 1000
+ contains = list(
+ /obj/item/clothing/glasses/night
+ )
diff --git a/code/modules/cargo/packs/fishing.dm b/code/modules/cargo/packs/fishing.dm
new file mode 100644
index 000000000000..7f1a8c279bc1
--- /dev/null
+++ b/code/modules/cargo/packs/fishing.dm
@@ -0,0 +1,68 @@
+/datum/supply_pack/fish
+ group = "Fishing Essentials"
+
+
+/datum/supply_pack/fish/fishingkit
+ name = "Fishing Starter Kit"
+ desc = "The bare necessities to get out there and catch some fish, all in one convenient box!"
+ cost = 500
+ contains = list(/obj/item/storage/toolbox/fishing,
+ /obj/item/book/fish_catalog,
+ /obj/item/reagent_containers/food/drinks/beer,
+ /obj/item/reagent_containers/food/drinks/beer)
+ crate_name = "fishing starter crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/fish/fishstasis
+ name = "Fish Stasis Kit Supply Crate"
+ desc = "Contains four stasis cases meant to keep fish alive during transportation."
+ cost = 1000
+ contains = list(/obj/item/storage/fish_case,
+ /obj/item/storage/fish_case,
+ /obj/item/storage/fish_case,
+ /obj/item/storage/fish_case)
+ crate_name = "stasis case crate"
+
+/datum/supply_pack/fish/premiumworms
+ name = "High Quality Worm Pack"
+ desc = "A selection of the system's finest worms, guaranteed to lure in only the largest of fish."
+ cost = 1000
+ contains = list(/obj/item/bait_can/worm/premium,
+ /obj/item/bait_can/worm/premium,
+ /obj/item/bait_can/worm/premium,
+ /obj/item/bait_can/worm/premium)
+ crate_name = "premium worm crate"
+
+/datum/supply_pack/fish/masterworkpole
+ name = "Custom Made Masterwork Fishing Rod"
+ desc = "Fishing rod forged after grueling hours of labor by a master rodsmith, truly a work of fishing art. Required to catch size 2 fish."
+ cost = 5000
+ contains = list(/obj/item/fishing_rod/master)
+ crate_name = "masterwork fishing rod case"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/fish/fishinghooks
+ name = "Fishing Hook Variety Pack"
+ desc = "A variety of fishing hooks to allow for more specialized fishing."
+ cost = 1000
+ contains = list(/obj/item/storage/box/fishing_hooks)
+ crate_name = "fishing hook crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/fish/fishinglines
+ name = "Fishing Line Pack"
+ desc = "Contains the necessary fishing lines for catching more exotic fish."
+ cost = 1000
+ contains = list(/obj/item/storage/box/fishing_lines,
+ /obj/item/storage/box/fishing_lines) //Comes with two boxes on account of these being more necessary than the hooks
+ crate_name = "fishing line crate"
+ crate_type = /obj/structure/closet/crate/wooden
+
+/datum/supply_pack/fish/aquarium
+ name = "Aquarium Construction Kit"
+ desc = "Why seek rare fish if not to show them off? This all-in-one aquarium kit's all you'll ever need to keep a stable population of fish onboard your ship! (Building materials not included, Aquatech Ltd. is a limited liability company and not responsible for any fish related mishaps)"
+ cost = 2000
+ contains = list(/obj/item/aquarium_kit,
+ /obj/item/storage/box/aquarium_props,
+ /obj/item/fish_feed)
+ crate_name = "aquarium kit crate"
diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm
index 3db603dd6965..1f2de63601dd 100644
--- a/code/modules/cargo/packs/food.dm
+++ b/code/modules/cargo/packs/food.dm
@@ -20,7 +20,7 @@
/obj/item/storage/box/donkpockets/donkpockethonk)
crate_name = "donk pocket crate"
crate_type = /obj/structure/closet/crate/freezer
- faction = FACTION_SYNDICATE
+ faction = /datum/faction/syndicate
/datum/supply_pack/food/donkpockets/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 3)
@@ -53,14 +53,14 @@
/datum/supply_pack/food/ration
name = "Ration Crate"
- desc = "6 standerd issue rations."
+ desc = "6 standard issue rations. For your inner jarhead."
cost = 500
- contains = list(/obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration)
+ contains = list(/obj/effect/spawner/random/food_or_drink/ration,
+ /obj/effect/spawner/random/food_or_drink/ration,
+ /obj/effect/spawner/random/food_or_drink/ration,
+ /obj/effect/spawner/random/food_or_drink/ration,
+ /obj/effect/spawner/random/food_or_drink/ration,
+ /obj/effect/spawner/random/food_or_drink/ration)
crate_name = "ration crate"
crate_type = /obj/structure/closet/crate
@@ -111,12 +111,8 @@
/datum/supply_pack/food/ingredients_randomized
name = "Exotic Meat Crate"
- desc = "The best cuts in the whole galaxy. Probably."
-// [CELADON-EDIT] - CELADON_BALANCE
-// cost = 500
-// CELADON-EDIT - ORIGINAL
+ desc = "The best cuts in the whole sector. Probably."
cost = 500
-// [/CELADON-EDIT]
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
/obj/item/reagent_containers/food/snacks/meat/slab/killertomato,
/obj/item/reagent_containers/food/snacks/meat/slab/bear,
@@ -138,12 +134,8 @@
/datum/supply_pack/food/ingredients_randomized/meat
name = "Standard Meat Crate"
- desc = "Less interesting cuts of meat, but filling nonetheless."
-// [CELADON-EDIT] - CELADON_BALANCE
-// cost = 300
-// CELADON-EDIT - ORIGINAL
+ desc = "Less interesting, yet filling cuts of meat."
cost = 300
-// [/CELADON-EDIT]
contains = list(/obj/item/reagent_containers/food/snacks/meat/slab,
/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
/obj/item/reagent_containers/food/snacks/meat/slab/synthmeat,
@@ -155,12 +147,8 @@
/datum/supply_pack/food/ingredients_randomized/vegetables
name = "Vegetables Crate"
- desc = "Grown in vats."
-// [CELADON-EDIT] - CELADON_BALANCE
-// cost = 1300
-// CELADON-EDIT - ORIGINAL
+ desc = "Grown in the finest hydroponic vats."
cost = 250
-// [/CELADON-EDIT]
contains = list(/obj/item/reagent_containers/food/snacks/grown/chili,
/obj/item/reagent_containers/food/snacks/grown/corn,
/obj/item/reagent_containers/food/snacks/grown/tomato,
@@ -230,6 +218,17 @@
crate_name = "food crate"
crate_type = /obj/structure/closet/crate/freezer
+/datum/supply_pack/food/sugar
+ name = "Sugar Crate"
+ desc = "A crate with a few bags of sugar. Good for cake shops and amateur chemists."
+ cost = 500
+ contains = list(/obj/item/reagent_containers/condiment/sugar,
+ /obj/item/reagent_containers/condiment/sugar,
+ /obj/item/reagent_containers/condiment/sugar
+ )
+ crate_name = "sugar crate"
+ crate_type = /obj/structure/closet/crate
+
/*
Cooking
*/
@@ -297,6 +296,19 @@
crate_name = "gardening crate"
crate_type = /obj/structure/closet/crate/hydroponics
+/datum/supply_pack/food/ethanol
+ name = "Ethanol Crate"
+ desc = "Five small bottles of ethanol for the aspiring botanist or amateur chemist."
+ cost = 750
+ contains = list(/obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol,
+ /obj/item/reagent_containers/glass/bottle/ethanol
+ )
+ crate_name = "gardening crate"
+ crate_type = /obj/structure/closet/crate/hydroponics
+
/datum/supply_pack/food/weedcontrol
name = "Weed Control Crate"
desc = "Contains a scythe, gasmask, and two anti-weed defoliant grenades, for when your garden grows out of control."
@@ -396,20 +408,3 @@
/obj/item/melee/flyswatter)
crate_name = "beekeeping starter crate"
crate_type = /obj/structure/closet/crate/hydroponics
-
-/datum/supply_pack/food/ration
- name = "Ration Crate"
- desc = "6 standerd issue rations."
-// [CELADON-EDIT] - CELADON_BALANCE
-// cost = 2000
-// CELADON-EDIT - ORIGINAL
- cost = 750
-// [/CELADON-EDIT]
- contains = list(/obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration,
- /obj/effect/spawner/lootdrop/ration)
- crate_name = "ration crate"
- crate_type = /obj/structure/closet/crate
diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm
index 4074f76194d3..c5404250e799 100644
--- a/code/modules/cargo/packs/gun.dm
+++ b/code/modules/cargo/packs/gun.dm
@@ -1,6 +1,7 @@
/datum/supply_pack/gun
group = "Guns"
crate_type = /obj/structure/closet/crate/secure/weapon
+ faction_discount = 10
/*
Pistols
@@ -10,65 +11,145 @@
name = "Disposable Gun Crate"
desc = "In some sectors, these disposable pistols are the only firearms that can be legally sold for less than 200cr. That price is still far too high."
cost = 300
- contains = list(/obj/item/storage/pistolcase/disposable)
+ contains = list(/obj/item/storage/guncase/pistol/disposable)
crate_name = "disposable gun crate"
- faction = FACTION_FRONTIER
/datum/supply_pack/gun/derringer
name = ".38 Derringer Crate"
desc = "A cheap, concealable pistol manufactured by the reputable Hunter's Pride. At least it's better than a disposable pistol. Chambered in .38 rounds."
cost = 350
- contains = list(/obj/item/storage/pistolcase/derringer)
+ contains = list(/obj/item/storage/guncase/pistol/derringer)
crate_name = "derringer crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
+
+/datum/supply_pack/gun/m17
+ name = "M17 pistol Crate"
+ desc = "A cheap target shooting pistol manufactured by Serene Outdoors. Chambered in .22lr"
+ cost = 400
+ contains = list(/obj/item/storage/guncase/pistol/m17)
+ crate_name = "pistol crate"
/datum/supply_pack/gun/commanders
name = "Commander Pistol Crate"
desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm."
cost = 750
- contains = list(/obj/item/storage/pistolcase/commander)
- faction = FACTION_NT
+ contains = list(/obj/item/storage/guncase/pistol/commander)
+ faction = /datum/faction/nt
/datum/supply_pack/gun/ringneck
name = "Ringneck Pistol Crate"
- desc = "Contains a civillian variant of the Ringneck pistol, produced by Scarborough Arms and chambered in 10mm."
+ desc = "Contains a civilian variant of the Ringneck pistol, produced by Scarborough Arms and chambered in 10mm."
cost = 1000
- contains = list(/obj/item/storage/pistolcase/ringneck)
- faction = FACTION_SYNDICATE
+ contains = list(/obj/item/storage/guncase/pistol/ringneck)
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/gun/cm23
+ name = "CM-23 Pistol Crate"
+ desc = "Contains a 10mm CM-23 Pistol, standard issue of the Colonial Minutemen."
+ cost = 1000
+ contains = list(/obj/item/storage/guncase/pistol/cm23)
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/cm70
+ name = "CM-70 Machinepistol Crate"
+ desc = "Contains a 9mm machinepistol produced proudly within Lanchester City. Colonial Minuteman issue only."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/pistol/cm70)
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
/datum/supply_pack/gun/candors
name = "Candor Pistol Crate"
desc = "Contains a Candor pistol, the trusty sidearm of any spacer, produced by Hunter's Pride and chambered in .45 ACP."
cost = 1000
- contains = list(/obj/item/storage/pistolcase/candor)
- faction = FACTION_SRM
+ contains = list(/obj/item/storage/guncase/pistol/candor)
+ faction = /datum/faction/srm
+
+/datum/supply_pack/gun/asp
+ name = "BC-81 'Asp' Crate"
+ desc = "Contains a compact armor-piercing sidearm, chambered in 5.7mm"
+ cost = 1250
+ contains = list(/obj/item/storage/guncase/pistol/asp)
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/pistolec
+ name = "Pistole 'C' Crate"
+ desc = "Contains a compact solarian-produced sidearm, chambered in 5.56mm HITP. Not to be confused with 5.56x42 CLIP."
+ cost = 1000
+ contains = list(/obj/item/storage/guncase/pistol/pistolec)
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/pistolec
+ name = "Model 'H' Gauss Pistol Crate"
+ desc = "Contains a compact solarian-produced gauss pistol, chambered in ferromagnetic slugs. Remember to sign your necessary forms upon arrival."
+ cost = 2000
+ contains = list(/obj/item/storage/guncase/pistol/modelh)
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
/datum/supply_pack/gun/pepperbox
name = "HP Firebrand Pepperbox Revolver Crate"
desc = "Contains a concealable pepperbox revolver manufactured by the Saint Roumain Militia, chambered in .357."
cost = 1250
- contains = list(/obj/item/storage/pistolcase/firebrand)
- faction = FACTION_SRM
+ contains = list(/obj/item/storage/guncase/pistol/firebrand)
+ faction = /datum/faction/srm
/datum/supply_pack/gun/detrevolver
name = "Hunter's Pride Detective Revolver Crate"
desc = "Contains a concealable revolver favored by police departments around the sector, chambered in .38."
cost = 600
- contains = list(/obj/item/storage/pistolcase/detective)
- faction = FACTION_SRM
+ contains = list(/obj/item/storage/guncase/pistol/detective)
+ faction = /datum/faction/srm
/datum/supply_pack/gun/shadowrevolver
name = "Shadow Revolver Crate"
desc = "Contains a concealable Shadow revolver, chambered in .44 Roumain."
cost = 1000
- contains = list(/obj/item/storage/pistolcase/shadow)
- faction = FACTION_SRM
+ contains = list(/obj/item/storage/guncase/pistol/shadow)
+ faction = /datum/faction/srm
/datum/supply_pack/gun/viperrevolver
name = "Viper-23 Revolver Crate"
- desc = "Contains a a civillian variant of the Viper revolver, chambered in .357 magnum."
+ desc = "Contains a civilian variant of the Viper revolver, chambered in .357 magnum."
cost = 2500
- contains = list(/obj/item/storage/pistolcase/viper)
+ contains = list(/obj/item/storage/guncase/pistol/viper)
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 5
+
+/datum/supply_pack/gun/a357
+ name = "R-23 'Viper' Revolver Crate"
+ desc = "Contains a double-action military variant of the Viper revolver, chambered in .357 magnum."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/pistol/a357)
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/ashhand
+ name = "Ashhand Hunting Revolver Crate"
+ desc = "Contains a single-action .45-70 hunting revolver manufactured by Hunter's Pride for use against the biggest game."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/pistol/ashhand)
+ faction = /datum/faction/srm
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/cm357
+ name = "CM-357 Automag Pistol Crate"
+ desc = "Contains a magazine-fed .357 handgun, produced for the CMM-BARD division and available for requisition in small numbers to the Minutemen."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/pistol/cm357)
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
/*
Energy
@@ -78,45 +159,80 @@
name = "Laser Gun Crate"
desc = "Contains a lethal, high-energy laser gun."
cost = 1000
- contains = list(/obj/item/storage/pistolcase/laser)
+ contains = list(/obj/item/storage/guncase/energy/laser)
crate_name = "laser crate"
+ faction = /datum/faction/nt
/datum/supply_pack/gun/mini_energy
name = "Mini Energy Gun Crate"
desc = "Contains a small, versatile energy gun, capable of firing both nonlethal and lethal blasts, but with a limited power cell."
cost = 500
- contains = list(/obj/item/storage/pistolcase/miniegun)
+ contains = list(/obj/item/storage/guncase/pistol/miniegun)
crate_name = "laser crate"
+ faction_discount = 20
+ faction = /datum/faction/nt
/datum/supply_pack/gun/energy
name = "Energy Gun Crate"
desc = "Contains a versatile energy gun, capable of firing both nonlethal and lethal blasts of light."
cost = 1250
- contains = list(/obj/item/storage/pistolcase/egun)
+ contains = list(/obj/item/storage/guncase/energy/egun)
crate_name = "energy gun crate"
crate_type = /obj/structure/closet/crate/secure/plasma
+ faction = /datum/faction/nt
/datum/supply_pack/gun/ion
name = "Ion Rifle Crate"
desc = "Contains a single Mk.I Ion Projector, a special anti-tank rifle designed to disable electronic threats at range."
cost = 10000
- contains = list(/obj/item/storage/pistolcase/iongun)
+ contains = list(/obj/item/storage/guncase/energy/iongun)
crate_name = "ion rifle crate"
crate_type = /obj/structure/closet/crate/secure/plasma
+ faction = /datum/faction/nt
/datum/supply_pack/gun/laser/kalix/pistol
name = "Etherbor SG-8 Beam Pistol Crate"
desc = "Contains a single SG-8 Beam Pistol, a civilian-grade sidearm developed in the PGF, manufactured by Etherbor Industries."
cost = 1000
- contains = list(/obj/item/storage/pistolcase/kalixpistol)
+ contains = list(/obj/item/storage/guncase/pistol/kalixpistol)
crate_name = "beam pistol crate"
+ faction = /datum/faction/pgf
/datum/supply_pack/gun/laser/kalix
name = "Etherbor BG-12 Beam Rifle Crate"
desc = "Contains a single BG-12 Beam Rifle, a civilian-grade semi-automatic developed in the PGF, manufactured by Etherbor Industries."
cost = 3000
- contains = list(/obj/item/storage/guncase/kalixrifle)
+ contains = list(/obj/item/storage/guncase/energy/kalixrifle)
crate_name = "beam rifle crate"
+ faction = /datum/faction/pgf
+
+/datum/supply_pack/gun/laser/bg16
+ name = "Etherbor BG-16 Beam Rifle Crate"
+ desc = "Contains a single BG-16 Beam Rifle, a military-grade automatic developed in the PGF and manufactured by Etherbor Industries for use within the Marine Corps."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/energy/bg16)
+ crate_name = "beam rifle crate"
+ faction = /datum/faction/pgf
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/energy/disabler
+ name = "Disabler Crate"
+ desc = "One stamina-draining disabler weapon, for use in non-lethal pacification."
+ cost = 1000
+ contains = list(/obj/item/gun/energy/disabler)
+ crate_name = "disabler crate"
+ faction = /datum/faction/nt
+
+/datum/supply_pack/gun/energy/taser
+ name = "Hybrid Taser Crate"
+ desc = "Contains one disabler-taser hybrid weapon."
+ cost = 1250
+ contains = list(/obj/item/gun/energy/e_gun/advtaser)
+ crate_name = "hybrid taser crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
/*
Shotguns
@@ -127,15 +243,16 @@
desc = "For when you need to deal with 2 drunkards the old-fashioned way. Contains a double-barreled shotgun, favored by Bartenders. Warranty voided if sawed off."
cost = 1000
contains = list(/obj/item/storage/guncase/doublebarrel)
- crate_name = "shotguns crate"
- faction = FACTION_SRM
+ crate_name = "shotgun crate"
+ faction = /datum/faction/srm
/datum/supply_pack/gun/conflagration
name = "Conflagration Lever Action Shotgun Crate"
desc = "For when you need to deal with 6 hooligans and look good doing it. Contains one lever-action shotgun, with a 6 round capacity."
cost = 1500
contains = list(/obj/item/storage/guncase/conflagration)
- crate_name = "shotguns crate"
+ crate_name = "shotgun crate"
+ faction = /datum/faction/srm
/datum/supply_pack/gun/hellfire_shotgun
name = "Hellfire Shotgun Crate"
@@ -143,7 +260,7 @@
cost = 2000
contains = list(/obj/item/storage/guncase/hellfire)
crate_name = "shotgun crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
/datum/supply_pack/gun/brimstone_shotgun
name = "Brimstone Shotgun Crate"
@@ -151,19 +268,192 @@
cost = 2000
contains = list(/obj/item/storage/guncase/brimstone)
crate_name = "shotgun crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
+
+/datum/supply_pack/gun/buckmaster
+ name = "Buckmaster Shotgun Crate"
+ desc = "For when you need to deal with 8 hooligans and can't be arsed to pump. Contains a semi-auto shotgun with an 8 round tube."
+ contains = list(/obj/item/storage/guncase/buckmaster)
+ cost = 3000
+ crate_name = "shotgun crate"
+
+/datum/supply_pack/gun/bulldog
+ name = "Bulldog Shotgun Crate"
+ desc = "An automatic shotgun chambered in 12ga produced by Scarborough Arms for exclusive use by licensed buyers. Comes with 8-round box magazines."
+ contains = list(/obj/item/storage/guncase/bulldog)
+ cost = 4000
+ crate_name = "shotgun crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/mastiff
+ name = "Mastiff Shotgun Crate"
+ desc = "An automatic shotgun modified for exclusive use by the IRMG and chambered in 12ga. Comes with 8-round box magazines."
+ contains = list(/obj/item/storage/guncase/mastiff)
+ cost = 4000
+ crate_name = "shotgun crate"
+ faction = /datum/faction/inteq
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/cm15
+ name = "CM-15 Shotgun Crate"
+ desc = "A combat shotgun produced by Lanchester Arms Co. for the Colonial Minuteman and CMM-BARD for use in CQC operations. Chambered in 12ga and equipped with 8-round box magazines."
+ contains = list(/obj/item/storage/guncase/cm15)
+ cost = 4000
+ crate_name = "shotgun crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/ultima
+ name = "E-SG 500 Energy Shotgun Crate"
+ desc = "Contains an energy-based shotgun equipped with dual kill/disable modes, ideal for short range. The on-board computer is notoriously unreliable. For NT employee use only."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/energy/ultima)
+ crate_name = "shotgun crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/*
+ SMGs
+*/
+
+/datum/supply_pack/gun/cobra20
+ name = "Cobra-20 SMG Crate"
+ desc = "Contains a civilian variant of the Cobra SMG, manufactured by Scaraborough Arms and chambered in .45"
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/cobra)
+ crate_name = "SMG crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 10
+
+/datum/supply_pack/gun/vector
+ name = "Vector SMG Crate"
+ desc = "Contains a Vector PDW produced by Sharplite Defense and chambered in 9mm."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/vector)
+ crate_name = "SMG crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/mongrel
+ name = "SKM-44v Mongrel SMG Crate"
+ desc = "Contains a shortened variant of the SKM rechambered to 10mm and painted in the brown-and-gold of Inteq."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/mongrel)
+ crate_name = "SMG crate"
+ faction = /datum/faction/inteq
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/wt550
+ name = "WT-550 Auto Rifle Crate"
+ desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm."
+ cost = 4000
+ contains = list(/obj/item/storage/guncase/wt550)
+ crate_name = "auto rifle crate"
+ faction_discount = 10
+ faction = /datum/faction/nt
+
+/datum/supply_pack/gun/saber
+ name = "SABR Prototype SMG Crate"
+ desc = "Contains a compact 9mm automatic SMG produced by NT Ballistics. For NT employee use only."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/saber)
+ crate_name = "SMG crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/etar
+ name = "E-TAR Dual-Mode Energy SMG Crate"
+ desc = "Contains a compact energy-based PDW platform, ideal for suppressing threats at mid-range. For NT employee use only."
+ cost = 2000
+ contains = list(/obj/item/storage/guncase/energy/etar)
+ crate_name = "SMG crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/firestorm
+ name = "Firestorm SMG Crate"
+ desc = "Contains a Hunter's Pride SMG, intended for internal use by hunters and chambered in .45"
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/firestorm)
+ crate_name = "SMG crate"
+ faction = /datum/faction/srm
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/rattlesnake
+ name = "Rattlesnake Machinepistol Crate"
+ desc = "Contains an automatic machinepistol produced by Scarborough Arms, chambered in 9mm."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/rattlesnake)
+ crate_name = "Machinepistol crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/kingsnake
+ name = "Kingsnake Machinepistol Crate"
+ desc = "Contains an automatic machinepistol chambered in 9mm, painted in the brown-and-gold of Inteq."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/kingsnake)
+ crate_name = "Machinepistol crate"
+ faction = /datum/faction/inteq
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/cm5
+ name = "CM-5 SMG Crate"
+ desc = "Contains a CM-5 automatic SMG, produced proudly within Lanchester City. Colonial Minuteman issue only."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/cm5)
+ crate_name = "SMG crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/sidewinder
+ name = "Sidewinder SMG Crate"
+ desc = "Contains a Sidewinder PDW produced by Scarborough Arms and chambered in 5.7mm for armor-piercing capabilities."
+ cost = 3000
+ contains = list(/obj/item/storage/guncase/sidewinder)
+ crate_name = "SMG crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
/*
Rifles
*/
+/datum/supply_pack/gun/m12
+ name = "Sporter Rifle Crate"
+ desc = "Contains a recently manufactured Model 12 \"Sporter\", Serene Outdoors' premier small game rifle. Chambered in .22lr"
+ contains = list(/obj/item/storage/guncase/m12)
+ cost = 500
+ crate_name = "rifle crate"
+
+/datum/supply_pack/gun/m15
+ name = "Super Sporter Rifle Crate"
+ desc = "Contains a recently manufactured Model 15 \"Super Sporter\", Serene Outdoors' premier hunting rifle. Chambered in 5.56 CLIP"
+ contains = list(/obj/item/storage/guncase/m15)
+ cost = 2500
+ crate_name = "rifle crate"
+
/datum/supply_pack/gun/winchester
name = "Flaming Arrow Lever Action Rifle Crate"
desc = "Contains an antiquated lever action rifle intended for hunting wildlife. Chambered in .38 rounds."
cost = 750
contains = list(/obj/item/storage/guncase/winchester)
crate_name = "rifle crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
/datum/supply_pack/gun/absolution
name = "Absolution Lever Action Rifle Crate"
@@ -171,6 +461,7 @@
cost = 2000
contains = list(/obj/item/storage/guncase/absolution)
crate_name = "shotguns crate"
+ faction = /datum/faction/srm
/datum/supply_pack/gun/illestren
name = "Illestren Rifle Crate"
@@ -178,67 +469,188 @@
cost = 1250
contains = list(/obj/item/storage/guncase/illestren)
crate_name = "rifle crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
/datum/supply_pack/gun/beacon
name = "Beacon Break Action Rifle Crate"
desc = "Contains a single shot break action rifle to hunt wildlife that annoys you in particular. Chambered in devastating .45-70 rounds. Warranty voided if sawed off."
- cost = 2250
+ cost = 1000
contains = list(/obj/item/storage/guncase/beacon)
crate_name = "rifle crate"
- faction = FACTION_SRM
+ faction = /datum/faction/srm
-/datum/supply_pack/gun/scout
- name = "Scout Sniper Rifle Crate"
- desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum."
- cost = 4000
- contains = list(/obj/item/storage/guncase/scout)
+/datum/supply_pack/gun/skm
+ name = "SKM-24 Rifle Crate"
+ desc = "Contains a high-powered, automatic rifle chambered in 7.62x40mm CLIP."
+ cost = 5000
+ contains = list(/obj/item/storage/guncase/skm)
+ crate_name = "auto rifle crate"
+
+/datum/supply_pack/gun/inteq_skm
+ name = "SKM-44 Rifle Crate"
+ desc = "Contains a SKM painted in the brown-and-gold of Inteq, chambered in 7.62x40mm CLIP. "
+ cost = 5000
+ contains = list(/obj/item/storage/guncase/skm_inteq)
+ crate_name = "auto rifle crate"
+ faction = /datum/faction/inteq
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/hades
+ name = "SL AL-655 'Hades' energy rifle"
+ desc = "Contains a high-energy, automatic laser rifle. For NT employee use only."
+ cost = 5000
+ contains = list(/obj/item/storage/guncase/hades)
+ crate_name = "laser crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/hydra
+ name = "SMR-80 'Hydra' Automatic Rifle Crate"
+ desc = "Contains a high-powered automatic rifle produced by Scarborough Arms and chambered in 5.56 CLIP. This one is a standard variant."
+ cost = 5000
+ contains = list(/obj/item/storage/guncase/hydra)
crate_name = "rifle crate"
- faction = FACTION_SRM
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
-/datum/supply_pack/gun/boomslang90
- name = "Boomslang-90 Rifle Crate"
- desc = "Contains a civillian variant of the Boomslang Sniper rifle- modified with a 2x scope, rather than a sniper scope. Chambered in the powerful 6.5x57mm CLIP."
+/datum/supply_pack/gun/cm82
+ name = "CM-82 Standard Issue Rifle"
+ desc = "Contains a high-powered rifle chambered in 5.56 CLIP, standard issue of the Colonial Minutemen."
cost = 5000
- contains = list(/obj/item/storage/guncase/boomslang)
+ contains = list(/obj/item/storage/guncase/cm82)
crate_name = "rifle crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
-/datum/supply_pack/gun/cobra20
- name = "Cobra-20 SMG Crate"
- desc = "Contains a civillian variant of the Cobra SMG, manufactured by Scaraborough Arms and chambered in .45"
- cost = 3000
- contains = list(/obj/item/storage/guncase/cobra)
- crate_name = "SMG crate"
- faction = FACTION_SRM
+/datum/supply_pack/gun/cm24
+ name = "CM-24 Surplus Stockpile Rifle"
+ desc = "Contains a higher-powered rifle chambered in 7.62x40 CLIP based on the SKM-24 platform, formerly the main service rifle of the CMM. This one has been pulled from reservist stockpiles."
+ cost = 5000
+ contains = list(/obj/item/storage/guncase/cm82)
+ crate_name = "rifle crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+
+/* Marksman Rifles */
+
+/datum/supply_pack/gun/cmf4
+ name = "CM-F4 Designated Marksman Rifle"
+ desc = "Contains a high-powered marksman rifle chambered in .308. For Colonial Minuteman issue only."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/cmf4)
+ crate_name = "dmr crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/ssg04
+ name = "SsG-04 Designated Marksman Rifle"
+ desc = "Contains a high-powered marksman rifle chambered in .308. Painted in the brown-and-gold of Inteq."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/ssg04)
+ crate_name = "dmr crate"
+ faction = /datum/faction/inteq
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/sbr80
+ name = "SBR-80 'Hydra' Designated Marksman Rifle Crate"
+ desc = "Contains a high-powered marksman rifle chambered in 5.56 CLIP and produced by Scarborough Arms. A modification of the ever-popular SMR-80 platform."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/sbr80)
+ crate_name = "dmr crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/vickland
+ name = "Vickland Battle Rifle"
+ desc = "Contains a high-powered semi-automatic battle rifle chambered in .308 and produced by Hunter's Pride. Fed via stripper clips with a 10 round capacity."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/vickland)
+ crate_name = "dmr crate"
+ faction = /datum/faction/srm
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/gauss
+ name = "Prototype Gauss Rifle"
+ desc = "Contains a high-powered prototype armor-piercing gauss rifle, operable with ferromagnetic pellets. For NT employee use only."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/gauss)
+ crate_name = "dmr crate"
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/claris
+ name = "Claris Gauss Rifle"
+ desc = "Contains a high-powered armor-piercing gauss rifle, loaded directly via ferromagnetic pellet speedloaders."
+ cost = 2500
+ contains = list(/obj/item/storage/guncase/claris)
+ crate_name = "dmr crate"
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
-/datum/supply_pack/gun/wt550
- name = "WT-550 Auto Rifle Crate"
- desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm."
+/datum/supply_pack/gun/boomslang90
+ name = "Boomslang-90 Designated Marksman Rifle Crate"
+ desc = "Contains a civilian variant of the Boomslang Sniper rifle- modified with a 2x scope, rather than a sniper scope. Chambered in the powerful 6.5x57mm CLIP."
+ cost = 3500
+ contains = list(/obj/item/storage/guncase/boomslang)
+ crate_name = "dmr crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/gun/boomslang10
+ name = "Boomslang-10 Sniper Rifle Crate"
+ desc = "Contains a military variant of the Boomslang Sniper rifle equipped with an 8x sniper scope, for licenesed buyers only. Chambered in the powerful 6.5x57mm CLIP."
+ cost = 4500
+ contains = list(/obj/item/storage/guncase/boomslangmilitary)
+ crate_name = "marksman rifle crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/f90
+ name = "CM-F90 Sniper Rifle Crate"
+ desc = "Contains a military sniper rifle equipped with an 8x sniper scope, for Minuteman use only. Chambered in the powerful 6.5x57mm CLIP."
+ cost = 4500
+ contains = list(/obj/item/storage/guncase/cmf90)
+ crate_name = "marksman rifle crate"
+ faction = /datum/faction/clip
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/gun/scout
+ name = "Scout Sniper Rifle Crate"
+ desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum."
cost = 4000
- contains = list(/obj/item/storage/guncase/wt550)
- crate_name = "auto rifle crate"
- faction = FACTION_SRM
+ contains = list(/obj/item/storage/guncase/scout)
+ crate_name = "sniper rifle crate"
+ faction = /datum/faction/srm
-/datum/supply_pack/gun/p16
- name = "P16 Assault Rifle Crate"
- desc = "Contains a high-powered, automatic rifle chambered in 5.56mm."
- cost = 5000
- contains = list(/obj/item/storage/guncase/p16)
- crate_name = "auto rifle crate"
- faction = FACTION_SRM
+/datum/supply_pack/gun/ssg669
+ name = "SSG-669C Sniper Rifle Crate"
+ desc = "Contains a traditional scoped rifle to hunt wildlife and big game from a respectful distance. Chambered in powerful .300 Magnum."
+ cost = 4000
+ contains = list(/obj/item/storage/guncase/ssg669)
+ crate_name = "sniper rifle crate"
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
-/datum/supply_pack/gun/skm
- name = "SKM-24 Rifle Crate"
- desc = "Contains a high-powered, automatic rifle chambered in 7.62x40mm CLIP."
- cost = 5000
- contains = list(/obj/item/storage/guncase/skm)
- crate_name = "auto rifle crate"
- faction = FACTION_SRM
+/* Attachments */
/datum/supply_pack/gun/attachment/rail_light
name = "Tactical Rail Light Crate"
desc = "Contains a single rail light to be mounted on a firearm."
- cost = 250
+ cost = 100
contains = list(/obj/item/attachment/rail_light)
crate_name = "rail light crate"
@@ -256,9 +668,26 @@
contains = list(/obj/item/attachment/bayonet)
crate_name = "bayonet crate"
+/datum/supply_pack/gun/attachment/ebayonet
+ name = "Energy Bayonet Crate"
+ desc = "Contains a single energy bayonet to be mounted on a firearm, exclusive for Scarborough Firearms."
+ cost = 500
+ contains = list(/obj/item/attachment/energy_bayonet)
+ crate_name = "bayonet crate"
+ faction = /datum/faction/syndicate/scarborough_arms
+ faction_discount = 0
+ faction_locked = TRUE
+
/datum/supply_pack/gun/attachment/silencer
name = "Suppressor Crate"
desc = "Contains a single suppressor to be mounted on a firearm."
cost = 250
contains = list(/obj/item/attachment/silencer)
- crate_name = "silencer crate"
+ crate_name = "suppressor crate"
+
+/datum/supply_pack/gun/attachment/sling
+ name = "Shoulder Sling Crate"
+ desc = "Contains a single shoulder sling to be mounted on a firearm for easy carrying without armor holsters. Only compatible with longarms."
+ cost = 250
+ contains = list(/obj/item/attachment/sling)
+ crate_name = "shoulder sling crate"
diff --git a/code/modules/cargo/packs/machinery.dm b/code/modules/cargo/packs/machinery.dm
index 01e8eb80e759..22a1c92bec5e 100644
--- a/code/modules/cargo/packs/machinery.dm
+++ b/code/modules/cargo/packs/machinery.dm
@@ -171,18 +171,6 @@
crate_name = "holofield generator crate"
crate_type = /obj/structure/closet/crate/engineering
-/datum/supply_pack/machinery/shuttle_in_a_box
- name = "Shuttle in a Box"
- desc = "The bare minimum amount of machine and computer boards required to create a working spacecraft."
- cost = 8000
- contains = list(
- /obj/item/circuitboard/computer/shuttle/helm,
- /obj/item/circuitboard/machine/shuttle/smes,
- /obj/item/circuitboard/machine/shuttle/engine/electric,
- /obj/item/shuttle_creator
- )
- crate_name = "Shuttle in a Box"
-
/datum/supply_pack/machinery/ion_thruster
name = "Ion Thruster Crate"
desc = "A crate containing an ion thruster and its precharger's electronics. For when you need a little extra thrust."
diff --git a/code/modules/cargo/packs/magazines.dm b/code/modules/cargo/packs/magazines.dm
new file mode 100644
index 000000000000..40c2182f4433
--- /dev/null
+++ b/code/modules/cargo/packs/magazines.dm
@@ -0,0 +1,338 @@
+/datum/supply_pack/magazine
+ group = "Magazines"
+ crate_type = /obj/structure/closet/crate/secure/gear
+ crate_name = "magazine crate"
+
+
+/* VI */
+
+/datum/supply_pack/magazine/co9mm_mag
+ name = "9mm Commander Magazine Crate"
+ desc = "Contains a 9mm magazine for the standard-issue Commander pistol, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/co9mm)
+ cost = 500
+ faction = /datum/faction/nt
+
+/datum/supply_pack/magazine/smgm9mm_mag
+ name = "9mm SMG Magazine Crate"
+ desc = "Contains a 9mm magazine for the Vector and Saber SMGs, containing thirty rounds."
+ contains = list(/obj/item/ammo_box/magazine/smgm9mm)
+ cost = 500
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+
+/* Hunter's Pride */
+
+/datum/supply_pack/magazine/c38_mag
+ name = ".38 Speedloader Crate"
+ desc = "Contains a .38 speedloader for revolvers, containing six rounds."
+ contains = list(/obj/item/ammo_box/c38)
+ cost = 250
+ faction_discount = 20
+ faction = /datum/faction/srm
+
+/datum/supply_pack/magazine/c38match
+ name = ".38 Match Grade Speedloader"
+ desc = "Contains one speedloader of match grade .38 ammunition, perfect for showing off trickshots."
+ cost = 200
+ small_item = TRUE
+ contains = list(/obj/item/ammo_box/c38/match)
+ crate_name = ".38 match crate"
+ faction = /datum/faction/srm
+
+/datum/supply_pack/magazine/c38dumdum
+ name = ".38 DumDum Speedloader"
+ desc = "Contains one speedloader of .38 DumDum ammunition, good for embedding in soft targets."
+ cost = 200
+ small_item = TRUE
+ contains = list(/obj/item/ammo_box/c38/dumdum)
+ crate_name = ".38 match crate"
+ faction = /datum/faction/srm
+
+/datum/supply_pack/magazine/m45_mag
+ name = ".45 ACP Candor Magazine Crate"
+ desc = "Contains a .45 ACP magazine for the Candor pistol, containing eight rounds."
+ contains = list(/obj/item/ammo_box/magazine/m45)
+ cost = 500
+ faction = /datum/faction/srm
+
+/datum/supply_pack/magazine/a44roum_speedloader
+ name = ".44 Roumain Speedloader Crate"
+ desc = "Contains a .44 Roumain speedloader for the HP Montagne, containing six rounds."
+ contains = list(/obj/item/ammo_box/a44roum_speedloader)
+ cost = 400
+ faction = /datum/faction/srm
+
+/* Serene Sporting */
+
+/datum/supply_pack/magazine/m17_mag
+ name = "Micro Target Magazine Crate"
+ desc = "Contains a .22lr magazine for the Micro Target pistol, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/m17)
+ cost = 100
+
+/datum/supply_pack/magazine/m12_mag
+ name = "Sporter Magazine Crate"
+ desc = "Contains a .22lr magazine for the Sporter Rifle, containing 25 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m12_sporter)
+ cost = 200
+
+/datum/supply_pack/magazine/m15_mag
+ name = "Super Sporter Magazine Crate"
+ desc = "Contains a 5.56 CLIP magazine for the Super Sporter Rifle, containing 20 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m15)
+ cost = 300
+
+/* Scarbie */
+
+/datum/supply_pack/magazine/himehabu_mag
+ name = "Himehabu Magazine Crate"
+ desc = "Contains a .22lr magazine for the Himehabu pistol, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/m22lr_himehabu)
+ cost = 200
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/asp_mag
+ name = "Asp Magazine Crate"
+ desc = "Contains a 5.7x39mm magazine for the Asp pistol, containing 12 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m57_39_asp)
+ cost = 400
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/m10mm_mag
+ name = "Ringneck Magazine Crate"
+ desc = "Contains a 10mm magazine for the Ringneck pistol, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/m10mm_ringneck)
+ cost = 500
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/m9mm_rattlesnake
+ name = "Rattlesnake Magazine Crate"
+ desc = "Contains a 9mm magazine for the Rattlesnake machine pistol, contains 18 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m9mm_rattlesnake)
+ cost = 500
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/a357_mag
+ name = ".357 Speedloader Crate"
+ desc = "Contains a .357 speedloader for revolvers, containing seven rounds."
+ contains = list(/obj/item/ammo_box/a357)
+ cost = 750
+ faction_discount = 20
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/sidewinder_mag
+ name = "Sidewinder Magazine Crate"
+ desc = "Contains a 30 round magazine for the Sidewinder SMG."
+ contains = list(/obj/item/ammo_box/magazine/m57_39_sidewinder)
+ cost = 750
+ faction_discount = 20
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/c45_cobra_mag
+ name = "Cobra Magazine Crate"
+ desc = "Contains a .45 magazine for the Cobra-20, containing 24 rounds."
+ cost = 750
+ contains = list(/obj/item/ammo_box/magazine/m45_cobra)
+ faction_discount = 20
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/short_hydra_mag
+ name = "SBR-80 DMR Short Magazine Crate"
+ desc = "Contains a 5.56x42mm CLIP made specially for the SBR-80 Designated Marksman Rifle, containing 20 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m556_42_hydra/small)
+ cost = 1000
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/hydra_mag
+ name = "SMR-80 Rifle Magazine Crate"
+ desc = "Contains a 5.56x42mm CLIP for the SMR-80 assault rifle, containing 30 rounds."
+ contains = list(/obj/item/ammo_box/magazine/m556_42_hydra)
+ cost = 1500
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/datum/supply_pack/magazine/boomslang_mag
+ name = "Boomslang-90 Magazine Crate"
+ desc = "Contains a 6.5 CLIP magazine for the Boomslang rifle platform, containing five rounds."
+ contains = list(/obj/item/ammo_box/magazine/boomslang/short)
+ cost = 1000
+ faction = /datum/faction/syndicate/scarborough_arms
+
+/* CM Lancaster */
+
+/datum/supply_pack/magazine/cm23_mag
+ name = "CM-23 Magazine Crate"
+ desc = "Contains a 10mm magazine for the CM-23 handgun."
+ contains = list(/obj/item/ammo_box/magazine/cm23)
+ cost = 500
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/cm70_mag
+ name = "CM-70 Magazine Crate"
+ desc = "Contains a 9mm magazine for the CM-70 machinepistol."
+ contains = list(/obj/item/ammo_box/magazine/m9mm_cm70)
+ cost = 750
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/cm357_mag
+ name = "CM-357 Magazine Crate"
+ desc = "Contains a .357 magazine for the CM-357 automag pistol."
+ contains = list(/obj/item/ammo_box/magazine/cm357)
+ cost = 1000
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/cm5_mag
+ name = "CM-5 Magazine Crate"
+ desc = "Contains a 9mm magazine for the CM-5 SMG."
+ contains = list(/obj/item/ammo_box/magazine/cm5_9mm)
+ cost = 750
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/cm82_mag
+ name = "CM-82 Magazine Crate"
+ desc = "Contains a 5.56mm magazine for the CM-82 rifle, containing thirty rounds. Notably, these are also compatable with the P-16 rifle."
+ contains = list(/obj/item/ammo_box/magazine/p16)
+ cost = 1000
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/skm_ammo
+ name = "SKM Magazine Crate"
+ desc = "Contains a 7.62x40mm magazine for the SKM rifles, containing twenty rounds."
+ contains = list(/obj/item/ammo_box/magazine/skm_762_40)
+ cost = 1000
+
+/datum/supply_pack/magazine/f4_mag
+ name = "F4 Magazine Crate"
+ desc = "Contains a .308 magazine for SsG-04 and CM-F4 platform rifles, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/f4_308)
+ cost = 1000
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/f90
+ name = "CM-F90 Magazine Crate"
+ desc = "Contains a 5-round 6.5mm magazine for use with the CM-F90 sniper rifle."
+ contains = list(/obj/item/ammo_box/magazine/f90)
+ cost = 1000
+ faction = /datum/faction/clip
+
+/datum/supply_pack/magazine/cm15
+ name = "CM-15 Magazine Crate"
+ desc = "Contains an 8-round 12ga magazine for the CM-15 Automatic Shotgun."
+ contains = list(/obj/item/ammo_box/magazine/cm15_12g)
+ cost = 1500
+ faction = /datum/faction/clip
+
+/* NT */
+
+/datum/supply_pack/magazine/wt550_mag
+ name = "WT-550 Auto Rifle Magazine Crate"
+ desc = "Contains a 20-round magazine for the WT-550 Auto Rifle. Each magazine is designed to facilitate rapid tactical reloads."
+ cost = 750
+ contains = list(/obj/item/ammo_box/magazine/wt550m9)
+ faction_discount = 20
+ faction = /datum/faction/nt
+
+/datum/supply_pack/magazine/ap_wt550_mag
+ name = "WT-550 Auto Rifle AP Magazine Crate"
+ desc = "Contains one magazine of armor-piercing ammunition for the WT-550 Auto Rifle."
+ cost = 1000
+ contains = list(/obj/item/ammo_box/magazine/wt550m9/ap)
+ faction = /datum/faction/nt
+
+/* Solgov */
+
+/datum/supply_pack/magazine/mag_556mm
+ name = "5.56 Pistole C Magazine Crate"
+ desc = "Contains a 5.56mm magazine for the Pistole C, containing twelve rounds."
+ contains = list(/obj/item/ammo_box/magazine/pistol556mm)
+ cost = 750
+ faction = /datum/faction/solgov
+
+/datum/supply_pack/magazine/fms_mag
+ name = "Ferromagnetic Slug Magazine Crate"
+ desc = "Contains a ferromagnetic slug magazine for the Model H pistol, containing ten rounds."
+ contains = list(/obj/item/ammo_box/magazine/modelh)
+ cost = 750
+ faction = /datum/faction/solgov
+
+/datum/supply_pack/magazine/gar_ammo
+ name = "GAR Ferromagnetic Lance Magazine Crate"
+ desc = "Contains a ferromagnetic lance magazine for the GAR rifle, containing thirty two rounds."
+ contains = list(/obj/item/ammo_box/magazine/gar)
+ cost = 1000
+ faction = /datum/faction/solgov
+
+/datum/supply_pack/magazine/claris_ammo
+ name = "Claris Ferromagnetic Pellet Speedloader Crate"
+ desc = "Contains a ferromagnetic pellet speedloader for the Claris rifle, containing twenty two rounds."
+ contains = list(/obj/item/ammo_box/amagpellet_claris)
+ cost = 1000
+ faction = /datum/faction/solgov
+
+/* Inteq */
+
+/datum/supply_pack/magazine/mongrel_mag
+ name = "Mongrel Magazine Crate"
+ desc = "Contains a 10mm magazine for the SKM-44v 'Mongrel' SMG, containing twenty-four rounds."
+ contains = list(/obj/item/ammo_box/magazine/smgm10mm)
+ cost = 750
+ faction = /datum/faction/inteq
+
+/* Shotguns */
+
+/datum/supply_pack/magazine/bulldog
+ name = "Bulldog Magazine Crate"
+ desc = "Contains an 8-round 12ga box magazine for the Bulldog weapons platform."
+ contains = list(/obj/item/ammo_box/magazine/m12g_bulldog)
+ cost = 1000
+ faction = /datum/faction/syndicate/scarborough_arms
+
+
+/* energy weapons */
+
+/datum/supply_pack/magazine/guncell
+ name = "Weapon Cell Crate"
+ desc = "Contains a weapon cell, compatible with laser guns."
+ contains = list(/obj/item/stock_parts/cell/gun)
+ faction = /datum/faction/nt
+ cost = 500
+
+/datum/supply_pack/magazine/solgovcell
+ name = "SolCon Weapon Cell Crate"
+ desc = "Contains a Solarian weapon cell, compatible with Solarian gauss weaponry."
+ contains = list(/obj/item/stock_parts/cell/gun/solgov)
+ cost = 500
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
+
+/datum/supply_pack/magazine/upgradedguncell
+ name = "Upgraded Weapon Cell Crate"
+ desc = "Contains an upgraded weapon cell, compatible with laser guns. For NT use only."
+ contains = list(/obj/item/stock_parts/cell/gun/upgraded)
+ cost = 1500
+ faction = /datum/faction/nt
+ faction_discount = 0
+ faction_locked = TRUE
+
+/* etherbor */
+
+/datum/supply_pack/magazine/guncell/kalix
+ name = "Etherbor Cell Crate"
+ desc = "Contains an Etherbor weapon cell, compatible with Etherbor armaments with a slightly higher capacity."
+ contains = list(/obj/item/stock_parts/cell/gun/kalix)
+ cost = 600
+ faction = /datum/faction/pgf
+
+/datum/supply_pack/magazine/guncell/pgf
+ name = "Etherbor Cell Crate"
+ desc = "Contains a military-grade Etherbor weapon cell produced for the PGFMC, compatible with Etherbor armaments with a significantly higher capacity."
+ contains = list(/obj/item/stock_parts/cell/gun/pgf)
+ cost = 1500
+ faction = /datum/faction/pgf
+ faction_discount = 0
+ faction_locked = TRUE
+
+/* Expand once the energy weapons have been actually expanded upon */
diff --git a/code/modules/cargo/packs/material.dm b/code/modules/cargo/packs/material.dm
index e396854387de..356856535b77 100644
--- a/code/modules/cargo/packs/material.dm
+++ b/code/modules/cargo/packs/material.dm
@@ -1,6 +1,7 @@
/datum/supply_pack/material
group = "Materials & Sheets"
- faction = FACTION_NS_LOGI
+ faction = /datum/faction/nt/ns_logi
+ faction_discount = 20
/*
Basic construction materials
@@ -41,7 +42,7 @@
/datum/supply_pack/material/uranium20
name = "20 Uranium Sheets"
- desc = "Green rock make thog puke red."
+ desc = "Twenty sheets of mildly radioactive uranium. Lead gloves for safe handling not included."
cost = 2000
contains = list(/obj/item/stack/sheet/mineral/uranium/twenty)
crate_name = "uranium sheets crate"
@@ -53,21 +54,21 @@
/datum/supply_pack/material/titanium20
name = "20 Titanium Sheets"
- desc = "Used for making big boy tanks and tools."
+ desc = "Twenty sheets of durable titanium. Great for heavy machinery."
cost = 3000
contains = list(/obj/item/stack/sheet/mineral/titanium/twenty)
crate_name = "titanium sheets crate"
/datum/supply_pack/material/gold20
name = "20 Gold Sheets"
- desc = "Shiny."
+ desc = "Twenty sheets of gold. There was a time when this would've been more expensive."
cost = 4000
contains = list(/obj/item/stack/sheet/mineral/gold/twenty)
crate_name = "gold sheets crate"
/datum/supply_pack/material/silver20
name = "20 Silver Sheets"
- desc = "Somewhat less shiny."
+ desc = "Twenty sheets of silver. How quaint."
cost = 3000
contains = list(/obj/item/stack/sheet/mineral/silver/twenty)
crate_name = "silver sheets crate"
diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm
index 744e9f67e2f2..50bfd59a99d4 100644
--- a/code/modules/cargo/packs/mechs.dm
+++ b/code/modules/cargo/packs/mechs.dm
@@ -196,6 +196,14 @@ Mech Equipment
/obj/item/mecha_parts/mecha_equipment/thrusters/gas
)
+/datum/supply_pack/mech/equipment/ionthrust
+ name = "Exosuit Ion thruster kit"
+ desc = "An electrical powered thruster pack, perfect for exosuits without a functional way to refill more tradional RCS thrusters."
+ cost = 2000
+ contains = list(
+ /obj/item/mecha_parts/mecha_equipment/thrusters/ion
+ )
+
/datum/supply_pack/mech/equipment/ripley_upgrade
name = "APLU upgrade kit"
desc = "Contains an APLU MK II upgrade kit. The upgrade will replace the cockpit with a spaceworthy canopy, but the added weight makes it slower."
diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm
index e0ca4f139258..4d63d5c9cb67 100644
--- a/code/modules/cargo/packs/medical.dm
+++ b/code/modules/cargo/packs/medical.dm
@@ -52,6 +52,23 @@
Tools
*/
+/datum/supply_pack/medical/painkillers
+ name = "Painkiller Supply Crate"
+ desc = "Contains a supply of painkillers. Great for stopping headaches, feeling broken bones, and screaming people!"
+ cost = 1000
+ contains = list(
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ /obj/item/reagent_containers/glass/bottle/morphine,
+ )
+ faction = /datum/faction/syndicate/suns
+ faction_discount = 25
+
+/datum/supply_pack/medical/painkillers/fill(obj/structure/closet/crate/cargo_crate)
+ . = ..()
+ if(prob(5))
+ new /obj/item/reagent_containers/glass/bottle/painkiller_booze(cargo_crate)
+
/datum/supply_pack/medical/iv_drip
name = "IV Drip Crate"
desc = "Contains a single IV drip for administering blood to patients."
@@ -68,12 +85,14 @@
/datum/supply_pack/medical/surgery
name = "Surgical Supplies Crate"
- desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
+ desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical case, Sterilizine spray and collapsible roller bed."
cost = 3000
- contains = list(/obj/item/storage/backpack/duffelbag/med/surgery,
+ contains = list(/obj/item/storage/case/surgery,
/obj/item/reagent_containers/medigel/sterilizine,
/obj/item/roller)
crate_name = "surgical supplies crate"
+ faction = /datum/faction/syndicate/suns
+ faction_discount = 50 //this shouldnt be 3k but if it is...
/datum/supply_pack/medical/anesthetic
@@ -83,6 +102,8 @@
contains = list(/obj/item/clothing/mask/breath/medical,
/obj/item/tank/internals/anesthetic)
crate_name = "anesthetics crate"
+ faction = /datum/faction/syndicate/suns
+ faction_discount = 25
/*
Bundles and supplies
@@ -105,6 +126,8 @@
/obj/item/reagent_containers/blood/synthetic)
crate_name = "blood freezer"
crate_type = /obj/structure/closet/crate/freezer
+ faction = /datum/faction/syndicate/suns
+ faction_discount = 25
/datum/supply_pack/medical/surplus
name = "Medical Surplus Crate"
@@ -132,36 +155,14 @@
/obj/item/reagent_containers/pill/neurine,
/obj/item/vending_refill/medical)
crate_name = "medical surplus crate"
- faction = FACTION_SUNS
+ faction = /datum/faction/syndicate/suns
+ faction_discount = 25
/datum/supply_pack/medical/surplus/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 7)
var/item = pick(contains)
new item(C)
-/datum/supply_pack/medical/virus
- name = "Virus Crate"
- desc = "Contains twelve different bottles, containing several viral samples for virology research. Also includes seven beakers and syringes. Balled-up jeans not included."
- cost = 3500
- contains = list(/obj/item/reagent_containers/glass/bottle/flu_virion,
- /obj/item/reagent_containers/glass/bottle/cold,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/random_virus,
- /obj/item/reagent_containers/glass/bottle/fake_gbs,
- /obj/item/reagent_containers/glass/bottle/magnitis,
- /obj/item/reagent_containers/glass/bottle/pierrot_throat,
- /obj/item/reagent_containers/glass/bottle/brainrot,
- /obj/item/reagent_containers/glass/bottle/anxiety,
- /obj/item/reagent_containers/glass/bottle/beesease,
- /obj/item/storage/box/syringes,
- /obj/item/storage/box/beakers,
- /obj/item/reagent_containers/glass/bottle/mutagen)
- crate_name = "virus crate"
- crate_type = /obj/structure/closet/crate/medical
- faction = FACTION_SUNS
-
/datum/supply_pack/medical/salglucanister
name = "Heavy-Duty Saline Canister"
desc = "Contains a bulk supply of saline-glucose condensed into a single canister that should last a long time, with a large pump to fill containers with. Direct injection of saline should be left to medical professionals as the pump is capable of overdosing patients."
diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm
index f0f062160c79..9e18adec4855 100644
--- a/code/modules/cargo/packs/sec_supply.dm
+++ b/code/modules/cargo/packs/sec_supply.dm
@@ -5,6 +5,12 @@
/*
Standard supplies
*/
+/datum/supply_pack/sec_supply/holster
+ name = "Shoulder Holster Crate"
+ desc = "Contains a shoulder holster, capable of holding a single pistol or revolver and your ammo."
+ cost = 600
+ contains = list(/obj/item/clothing/accessory/holster)
+ crate_name = "holster crate"
/datum/supply_pack/sec_supply/chemimp
name = "Chemical Implants Crate"
@@ -77,34 +83,44 @@
/obj/item/melee/knife/survival)
crate_name = "combat knife crate"
-/*
/datum/supply_pack/sec_supply/machete
name = "Stampted Steel Machete Crate"
desc = "Contains five mass produced machetes. A perfect choice for crews on a budget."
cost = 500
contains = list(/obj/item/melee/sword/mass,
- /obj/item/melee/sword/mass,
- /obj/item/melee/sword/mass,
- /obj/item/melee/sword/mass,
/obj/item/melee/sword/mass)
crate_name = "combat knife crate"
-*/
-/datum/supply_pack/sec_supply/fire
- name = "Incendiary Weapons Crate"
- desc = "Burn, baby burn. Contains three incendiary grenades and three prebuilt flamethrowers."
- cost = 5000
- contains = list(
- /obj/item/flamethrower/full,
- /obj/item/flamethrower/full,
- /obj/item/flamethrower/full,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- /obj/item/grenade/chem_grenade/incendiary,
- )
- crate_name = "incendiary weapons crate"
+/datum/supply_pack/sec_supply/flamethrower
+ name = "Flamethrower Crate"
+ desc = "Contains one flamethrower. Point the nozzle away from anything important."
+ cost = 1250
+ contains = list(/obj/item/flamethrower/full)
+ crate_name = "flamethrower crate"
+ crate_type = /obj/structure/closet/crate/secure/weapon
+
+ faction = /datum/faction/syndicate/ngr
+ faction_discount = 20
+
+/datum/supply_pack/sec_supply/incendiary_grenade
+ name = "Incendiary Grenade Crate"
+ desc = "Contains one incendiary grenade. Better not let it go off in your hands."
+ cost = 750
+ contains = list(/obj/item/grenade/chem_grenade/incendiary)
+ crate_name = "incendiary grenade crate"
crate_type = /obj/structure/closet/crate/secure/plasma
- faction = FACTION_NGR
+ faction = /datum/faction/syndicate/ngr
+ faction_discount = 20
+
+/datum/supply_pack/sec_supply/halberd
+ name = "Energy Halberd Crate"
+ desc = "Contains one Solarian Energy Halberd, for issue to your local Sonnensoldner battalion."
+ cost = 1500
+ contains = list(/obj/item/energyhalberd)
+ crate_name = "energy halberd crate"
+ faction = /datum/faction/solgov
+ faction_discount = 0
+ faction_locked = TRUE
/*
Stamina / PVP weapons (intentionally overpriced due to odd balance position of stamina weapons)
@@ -126,35 +142,39 @@
/datum/supply_pack/sec_supply/baton
name = "Stun Batons Crate"
- desc = "Arm the Civil Protection Forces with three stun batons. Batteries included."
- cost = 9000
- contains = list(/obj/item/melee/baton/loaded,
- /obj/item/melee/baton/loaded,
- /obj/item/melee/baton/loaded)
+ desc = "Arm your vessel security with a stun baton. Batteries included."
+ cost = 3000
+ contains = list(/obj/item/melee/baton/loaded)
crate_name = "stun baton crate"
-/datum/supply_pack/sec_supply/disabler
- name = "Disabler Crate"
- desc = "Three stamina-draining disabler weapons."
- cost = 9000
- contains = list(/obj/item/gun/energy/disabler,
- /obj/item/gun/energy/disabler,
- /obj/item/gun/energy/disabler)
- crate_name = "disabler crate"
-
/datum/supply_pack/sec_supply/dragnet
name = "DRAGnet Crate"
- desc = "Contains three \"Dynamic Rapid-Apprehension of the Guilty\" netting devices, a recent breakthrough in law enforcement prisoner management technology."
- cost = 10000
- contains = list(/obj/item/gun/energy/e_gun/dragnet,
- /obj/item/gun/energy/e_gun/dragnet,
- /obj/item/gun/energy/e_gun/dragnet)
+ desc = "Contains one \"Dynamic Rapid-Apprehension of the Guilty\" netting device, a recent breakthrough in law enforcement prisoner management technology."
+ cost = 2000
+ contains = list(/obj/item/gun/energy/e_gun/dragnet)
crate_name = "\improper DRAGnet crate"
-/datum/supply_pack/sec_supply/taser
- name = "Hybrid Taser Crate"
- desc = "Two disabler-taser hybrid weapons."
- cost = 12000
- contains = list(/obj/item/gun/energy/e_gun/advtaser,
- /obj/item/gun/energy/e_gun/advtaser)
- crate_name = "hybrid taser crate"
+/datum/supply_pack/sec_supply/claymore
+ name = "C-10 Claymore Crate"
+ desc = "Four motion-activated directional mines, perfect for ambushing enemy infantry. Still debatably legal to sell!"
+ cost = 3000
+ contains = list(/obj/item/paper/fluff/claymore,
+ /obj/item/mine/directional/claymore,
+ /obj/item/mine/directional/claymore,
+ /obj/item/mine/directional/claymore,
+ /obj/item/mine/directional/claymore)
+ crate_name = "C-10 Claymore crate"
+
+/obj/item/paper/fluff/claymore
+ name = "PRODUCT USAGE GUIDE"
+ desc = "A dusty memo stamped with the Scarborough Arms logo."
+ default_raw_text = "ASSEMBLY:
\
+ -Deploy mounting legs and emplace device. Front should be placed in direction of enemy egress, no more then three meters from intended target area.
\
+ -INFORM ALLIES OF PLACEMENT LOCATION.
\
+ -Wait for arming sequence to complete.
\
+ -Enjoy hands-free area denial, courtesy of Scarborough Arms.
\
+ DISASSEMBLY & STORAGE:
\
+ -Insert screwdriver into arming pin access and turn 180 degrees. There will be considerable resistance. DO NOT Step onto or in front of device.
\
+ -When pressure releases, reach below device and lift via underside in one clean motion. Mounting legs will automatically retract.
\
+ -The device is now safe to handle.
\
+ -Safely stow device in secure, moisture-free location, away from fire and blunt force. "
diff --git a/code/modules/cargo/packs/spacesuit_armor.dm b/code/modules/cargo/packs/spacesuit_armor.dm
index 581a7f2587b4..d0b1da6be6d2 100644
--- a/code/modules/cargo/packs/spacesuit_armor.dm
+++ b/code/modules/cargo/packs/spacesuit_armor.dm
@@ -24,12 +24,11 @@
/datum/supply_pack/spacesuit_armor/mining_hardsuits_indie
name = "Mining Hardsuit Crate"
- desc = "One independent branded mining hardsuit for when explorer suits just dont cut it."
+ desc = "One independent-manufactured mining hardsuit, for when explorer suits just dont cut it."
cost = 1500
contains = list(/obj/item/clothing/suit/space/hardsuit/mining/independent)
crate_name = "mining hardsuit crate"
crate_type = /obj/structure/closet/crate/secure/plasma
- faction = FACTION_INDEPENDENT
/datum/supply_pack/spacesuit_armor/med_hardsuit
name = "Medical Hardsuit Crate"
@@ -38,7 +37,7 @@
contains = list(/obj/item/clothing/suit/space/hardsuit/medical)
crate_name = "medical hardsuit crate"
crate_type = /obj/structure/closet/crate/medical
- faction = FACTION_NT
+ faction = /datum/faction/nt
/datum/supply_pack/spacesuit_armor/mining_hardsuit_heavy
name = "Heavy Mining Hardsuit Crate"
@@ -48,7 +47,7 @@
/obj/item/clothing/shoes/bhop)
crate_name = "heavy mining hardsuit crate"
crate_type = /obj/structure/closet/crate/secure/plasma
- faction = FACTION_NT
+ faction = /datum/faction/nt
/datum/supply_pack/spacesuit_armor/sec_hardsuit_bundle
name = "Security Hardsuit Crate"
@@ -57,7 +56,7 @@
contains = list(/obj/item/clothing/suit/space/hardsuit/security/independent)
crate_name = "security hardsuit crate"
crate_type = /obj/structure/closet/crate/secure/gear
- faction = FACTION_NT
+ faction = /datum/faction/nt
/datum/supply_pack/spacesuit_armor/sci_hardsuit
name = "Science Hardsuit Crate"
@@ -66,7 +65,7 @@
contains = list(/obj/item/clothing/suit/space/hardsuit/rd)
crate_name = "science hardsuit crate"
crate_type = /obj/structure/closet/crate/secure/science
- faction = FACTION_NT
+ faction = /datum/faction/nt
/datum/supply_pack/spacesuit_armor/engi_spacesuit_bundle
name = "Engineering Space Suit Crate"
@@ -84,17 +83,7 @@
contains = list(/obj/item/clothing/suit/space/hardsuit/engine/atmos)
crate_name = "atmospherics hardsuit crate"
crate_type = /obj/structure/closet/crate/secure/engineering
- faction = FACTION_NT
-
-/datum/supply_pack/spacesuit_armor/swat
- name = "SWAT Crate"
- desc = "Contains one fullbody set of tough, fireproof, pressurized suit designed in a joint effort by IS-ERI and Nanotrasen. The set contains a suit, helmet, and combat belt."
- cost = 3500
- contains = list(/obj/item/clothing/head/helmet/swat/nanotrasen,
- /obj/item/clothing/suit/space/swat,
- /obj/item/storage/belt/military/assault)
- crate_name = "swat crate"
- crate_type = /obj/structure/closet/crate/secure/gear
+ faction = /datum/faction/nt
/*
Non-spaceworthy (armor)
@@ -135,3 +124,21 @@
contains = list(/obj/item/clothing/suit/armor/laserproof)
crate_name = "reflector vest crate"
crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/spacesuit_armor/marine_armor
+ name = "Tactical Armor Crate"
+ desc = "One set of well-rounded tactical armor. While it does not protect the limbs, the vest is fairly durable. The set includes a helmet and vest."
+ cost = 1500
+ contains = list(/obj/item/clothing/suit/armor/vest/marine,
+ /obj/item/clothing/head/helmet/bulletproof/x11)
+ crate_name = "armor crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
+
+/datum/supply_pack/spacesuit_armor/medium_marine_armor
+ name = "Medium Tactical Armor Crate"
+ desc = "One set of well-rounded medium tactical body armor. Plates are attached to the vest and cover the limbs. The set includes a helmet and chestpiece."
+ cost = 3000
+ contains = list(/obj/item/clothing/suit/armor/vest/marine/medium,
+ /obj/item/clothing/head/helmet/bulletproof/x11)
+ crate_name = "armor crate"
+ crate_type = /obj/structure/closet/crate/secure/plasma
diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm
index 36bfefc02796..857477bcf922 100644
--- a/code/modules/cargo/packs/tools.dm
+++ b/code/modules/cargo/packs/tools.dm
@@ -25,7 +25,7 @@
contains = list(/obj/item/storage/toolbox/electrical,
/obj/item/storage/toolbox/mechanical,
/obj/item/clothing/head/welding)
- cost = 500
+ cost = 200
crate_name = "toolbox crate"
/datum/supply_pack/tools/engigear
@@ -39,13 +39,19 @@
/obj/item/clothing/glasses/meson/engine)
crate_name = "engineering gear crate"
+/datum/supply_pack/tools/assbelt
+ name = "Assault Belt"
+ desc = "Contains an assault belt, with not one, not two, but six pockets."
+ cost = 500
+ contains = list(/obj/item/storage/belt/military/assault)
+ crate_name = "assault belt crate"
+
/datum/supply_pack/tools/cellcharger
name = "Cell Charger Crate"
desc = "Contains a cell charger, able to charge all sorts of power cells."
- cost = 4000
+ cost = 1000
contains = list(/obj/machinery/cell_charger)
-
/datum/supply_pack/tools/rped
name = "RPED crate"
desc = "Tired of deconstructing all of your machines just to replace the power cells? This device has you covered. Actual parts not included."
@@ -74,13 +80,6 @@
contains = list(/obj/item/pickaxe/drill/jackhammer)
crate_name = "jackhammer crate"
-/datum/supply_pack/tools/plasmacutter
- name = "Plasmacutter Crate"
- desc = "Contains a plasmacutter, capable of rapidly breaking down hull."
- cost = 1250
- contains = list(/obj/item/gun/energy/plasmacutter)
- crate_name = "plasmacutter crate"
-
/datum/supply_pack/tools/metalfoam
name = "Metal Foam Grenade Crate"
desc = "Seal up those pesky hull breaches with 7 metal foam grenades."
@@ -98,25 +97,40 @@
/datum/supply_pack/tools/jetpack
name = "Jetpack Crate"
desc = "For when you need to go fast in space."
- cost = 2000
+ cost = 750
contains = list(/obj/item/tank/jetpack/carbondioxide)
crate_name = "jetpack crate"
crate_type = /obj/structure/closet/crate/secure/plasma
-/datum/supply_pack/tools/transfer_valve
- name = "Tank Transfer Valves Crate"
- desc = "The key ingredient for making a lot of people very angry very fast. Contains a tank transfer valve."
- cost = 3000
- contains = list(/obj/item/transfer_valve)
- crate_name = "tank transfer valve crate"
- crate_type = /obj/structure/closet/crate/secure/science
+/datum/supply_pack/tools/jetpack/harness
+ name = "Jetpack Harness Crate"
+ desc = "A compact jetpack harness for those who don't wish to be weighed down by larger traditional jetpacks."
+ cost = 1500
+ contains = list(/obj/item/tank/jetpack/oxygen/harness)
/datum/supply_pack/tools/anglegrinder
name = "Angle Grinder"
desc = "Contains one angle grinder pack, a tool used for quick structure deconstruction and salvaging"
- cost = 2000
- contains = list(/obj/item/gear_pack/anglegrinder)
- crate_name = "Angle Grinder"
+ cost = 1500
+ contains = list(
+ /obj/item/gear_pack/anglegrinder,
+ /obj/item/radio/headset/alt
+ )
+ crate_name = "angle grinder crate"
+
+/datum/supply_pack/tools/electric_welder
+ name = "Electric Welder"
+ desc = "Contains a single electric welder, useful for many applications. No fuel required!"
+ cost = 850
+ contains = list(/obj/item/weldingtool/electric)
+ crate_name = "electric welder crate"
+
+/datum/supply_pack/tools/plasmacutter
+ name = "Plasmacutter Crate"
+ desc = "Contains a plasmacutter, capable of rapidly breaking down hull."
+ cost = 2500
+ contains = list(/obj/item/gun/energy/plasmacutter)
+ crate_name = "plasmacutter crate"
/*
Liquid tanks
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index 64e2476b400f..b985ead4aca2 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -190,7 +190,7 @@
var/next_move_dir_sub
/// If the client is currently under the restrictions of the interview system
- var/interviewee = FALSE
+ var/interviewee = TRUE
/// Used by SSserver_maint to detect if a client is newly AFK.
var/last_seen_afk = 0
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 80115f5ef3e8..fd0dd5b7e1ff 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -277,6 +277,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
prefs.last_id = computer_id //these are gonna be used for banning
fps = prefs.clientfps == 0 ? 60 : prefs.clientfps //WS Edit - Client FPS Tweak
+ donator = GLOB.donators[ckey] || new /datum/donator(src)
+
if(fexists(roundend_report_file()))
add_verb(src, /client/proc/show_previous_roundend_report)
@@ -936,8 +938,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
..()
/client/proc/add_verbs_from_config()
- if (interviewee)
+ if(interviewee)
return
+ if(donator.is_donator)
+ add_verb(src, /client/proc/do_donator_redemption)
+ add_verb(src, /client/proc/do_donator_wcir)
if(CONFIG_GET(flag/see_own_notes))
add_verb(src, /client/proc/self_notes)
if(CONFIG_GET(flag/use_exp_tracking))
diff --git a/code/modules/client/loadout/_loadout.dm b/code/modules/client/loadout/_loadout.dm
index 7ae82e11040f..f12c5612ffc3 100644
--- a/code/modules/client/loadout/_loadout.dm
+++ b/code/modules/client/loadout/_loadout.dm
@@ -20,11 +20,11 @@ GLOBAL_LIST_EMPTY(gear_datums)
if(G == initial(G.subtype_path))
continue
- if(!use_name)
- WARNING("Loadout - Missing display name: [G]")
+ if(!use_name && initial(G.path))
+ WARNING("Loadout gear [G] is missing display name")
continue
if(!initial(G.path) && use_category != "OOC") //OOC category does not contain actual items
- WARNING("Loadout - Missing path definition: [G]")
+ WARNING("Loadout gear [G] is missing path definition")
continue
if(!GLOB.loadout_categories[use_category])
diff --git a/code/modules/client/loadout/loadout_accessories.dm b/code/modules/client/loadout/loadout_accessories.dm
index a8acc1544654..d52c9a8b58fc 100644
--- a/code/modules/client/loadout/loadout_accessories.dm
+++ b/code/modules/client/loadout/loadout_accessories.dm
@@ -98,6 +98,9 @@
subtype_path = /datum/gear/accessory/mask
slot = ITEM_SLOT_MASK
+/datum/gear/accessory/mask/bandana
+ subtype_path = /datum/gear/accessory/mask/bandana
+
/datum/gear/accessory/mask/bandana/red
display_name = "bandana, red"
path = /obj/item/clothing/mask/bandana/red
diff --git a/code/modules/client/loadout/loadout_hat.dm b/code/modules/client/loadout/loadout_hat.dm
index 2f7e59c288b7..a393ec451c30 100644
--- a/code/modules/client/loadout/loadout_hat.dm
+++ b/code/modules/client/loadout/loadout_hat.dm
@@ -80,6 +80,9 @@
//Soft caps
+/datum/gear/hat/softcap
+ subtype_path = /datum/gear/hat/softcap
+
/datum/gear/hat/softcap/red
display_name = "cap, red"
path = /obj/item/clothing/head/soft/red
@@ -100,6 +103,23 @@
display_name = "cap, black"
path = /obj/item/clothing/head/soft/black
+/datum/gear/hat/utility_black
+ display_name = "utility cover, black"
+ path = /obj/item/clothing/head/soft/utility_black
+
+/datum/gear/hat/utility_olive
+ display_name = "utility cover, olive"
+ path = /obj/item/clothing/head/soft/utility_olive
+
+/datum/gear/hat/utility_beige
+ display_name = "utility cover, beige"
+ path = /obj/item/clothing/head/soft/utility_beige
+
+/datum/gear/hat/utility_navy
+ display_name = "utility cover, navy"
+ path = /obj/item/clothing/head/soft/utility_navy
+
+
//Beanies
/datum/gear/hat/beanie
diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm
index 1d11857663ad..1edeed63530a 100644
--- a/code/modules/client/loadout/loadout_suit.dm
+++ b/code/modules/client/loadout/loadout_suit.dm
@@ -88,6 +88,9 @@
path = /obj/item/clothing/suit/toggle/hazard
//Suspenders
+/datum/gear/suit/suspenders
+ subtype_path = /datum/gear/suit/suspenders
+
/datum/gear/suit/suspenders/red
display_name = "suspenders, red"
path = /obj/item/clothing/suit/toggle/suspenders
diff --git a/code/modules/client/loadout/loadout_uniform.dm b/code/modules/client/loadout/loadout_uniform.dm
index 96b4088b65bd..a042ab353070 100644
--- a/code/modules/client/loadout/loadout_uniform.dm
+++ b/code/modules/client/loadout/loadout_uniform.dm
@@ -53,10 +53,6 @@
display_name = "jumpsuit, random"
path = /obj/item/clothing/under/color/random //literally useless if grey assistants is off
-/datum/gear/uniform/color/rainbow
- display_name = "jumpsuit, rainbow"
- path = /obj/item/clothing/under/color/rainbow
-
//Shorts
/datum/gear/uniform/athshortsred
@@ -180,46 +176,115 @@
display_name = "suit, checkered"
path = /obj/item/clothing/under/suit/checkered
+/datum/gear/uniform/suit/detective
+ display_name = "suit, hardworn"
+ path = /obj/item/clothing/under/rank/security/detective
+
+/datum/gear/uniform/suit/detective/skirt
+ display_name = "suitskirt, hardworn"
+ path = /obj/item/clothing/under/rank/security/detective/skirt
+
+/datum/gear/uniform/suit/detective/grey
+ display_name = "suit, noir"
+ path = /obj/item/clothing/under/rank/security/detective/grey
+
+/datum/gear/uniform/suit/detective/grey/skirt
+ display_name = "suitskirt, noir"
+ path = /obj/item/clothing/under/rank/security/detective/grey/skirt
+
// Dresses
/datum/gear/uniform/dress
subtype_path = /datum/gear/uniform/dress
/datum/gear/uniform/dress/sailor
- display_name = "sailor dress"
+ display_name = "dress, sailor"
path = /obj/item/clothing/under/dress/sailor
/datum/gear/uniform/dress/striped
- display_name = "striped dress"
+ display_name = "dress, striped"
path = /obj/item/clothing/under/dress/striped
/datum/gear/uniform/dress/redeveninggown
- display_name = "red evening gown"
+ display_name = "dress, red evening gown"
path = /obj/item/clothing/under/dress/redeveninggown
/datum/gear/uniform/dress/blacktango
- display_name = "black tango dress"
+ display_name = "dress, black tango"
path = /obj/item/clothing/under/dress/blacktango
+/datum/gear/uniform/dress/one_shoulder_dress
+
+ display_name = "dress, one shoulder"
+ path = /obj/item/clothing/under/dress/one_shoulder
+
+/datum/gear/uniform/dress/iko_ikssoal
+
+ display_name = "dress, iko-ikssoal"
+ path = /obj/item/clothing/under/dress/iko_ikssoal
+
+/datum/gear/uniform/dress/whitedress
+
+ display_name = "dress, white"
+ path = /obj/item/clothing/under/dress/white_dress
+
+/datum/gear/uniform/dress/sundress
+ display_name = "dress, sundress"
+ path = /obj/item/clothing/under/dress/sundress
+
+/datum/gear/uniform/dress/rilena
+ display_name = "dress, Ri cosplay"
+ path = /obj/item/clothing/under/dress/rilena
+
/datum/gear/uniform/dress/purpleskirt
- display_name = "purple skirt"
- path = /obj/item/clothing/under/dress/skirt/purple
+ display_name = "skirt, purple"
+ path = /obj/item/clothing/under/dress/skirt/color/purple
/datum/gear/uniform/dress/blueskirt
- display_name = "blue skirt"
- path = /obj/item/clothing/under/dress/skirt/blue
+ display_name = "skirt, blue"
+ path = /obj/item/clothing/under/dress/skirt/color/blue
/datum/gear/uniform/dress/redskirt
- display_name = "red skirt"
- path = /obj/item/clothing/under/dress/skirt/red
+ display_name = "skirt, red"
+ path = /obj/item/clothing/under/dress/skirt/color/red
+
+/datum/gear/uniform/dress/whiteskirt
+
+ display_name = "skirt, white"
+ path = /obj/item/clothing/under/dress/skirt/color/white
/datum/gear/uniform/dress/blackskirt
- display_name = "black skirt"
- path = /obj/item/clothing/under/dress/skirt
- description = "Actually, it's a black blouse with a salmon skirt. But it's not called that."
+ display_name = "skirt, black"
+ path = /obj/item/clothing/under/dress/skirt/color
-/datum/gear/uniform/dress/sundress
- display_name = "sundress"
- path = /obj/item/clothing/under/dress/sundress
+/datum/gear/uniform/dress/black_pinafore
+
+ display_name = "pinafore, black"
+ path = /obj/item/clothing/under/dress/skirt/pinafore
+
+/datum/gear/uniform/dress/maroon_pinafore
+
+ display_name = "pinafore, maroon"
+ path = /obj/item/clothing/under/dress/skirt/pinafore/maroon
+
+/datum/gear/uniform/dress/cerulean_pinafore
+
+ display_name = "pinafore, cerulean"
+ path = /obj/item/clothing/under/dress/skirt/pinafore/cerulean
+
+/datum/gear/uniform/dress/red_plaid_pinafore
+
+ display_name = "pinafore, red plaid"
+ path = /obj/item/clothing/under/dress/skirt/pinafore/plaid
+
+/datum/gear/uniform/dress/green_plaid_pinafore
+
+ display_name = "pinafore, green plaid"
+ path = /obj/item/clothing/under/dress/skirt/pinafore/plaid/green
+
+/datum/gear/uniform/dress/brown_plaid_pinafore
+
+ display_name = "pinafore, brown plaid"
+ path = /obj/item/clothing/under/dress/skirt/pinafore/plaid/brown
/datum/gear/uniform/suit/dress_suit
display_name = "dress-suit, navy"
@@ -228,7 +293,3 @@
/datum/gear/uniform/suit/dress_suit/skirt
display_name = "dress-suitskirt, navy"
path = /obj/item/clothing/under/suit/dresssuit/skirt
-
-/datum/gear/uniform/dress/rilena
- display_name = "red dress, Ri cosplay"
- path = /obj/item/clothing/under/dress/rilena
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 6fb094628cfb..71ca4eeaae4a 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -17,7 +17,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/ooccolor = "#c43b23"
var/asaycolor = "#ff4500" //This won't change the color for current admins, only incoming ones.
/// If we spawn an ERT as an admin and choose to spawn as the briefing officer, we'll be given this outfit
- var/brief_outfit = /datum/outfit/centcom/commander
+ var/brief_outfit = /datum/outfit/job/nanotrasen/captain
var/enable_tips = TRUE
var/tip_delay = 500 //tip delay in milliseconds
@@ -1141,7 +1141,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
mutant_category = 0
// end generic adjective
- if("wings" in pref_species.default_features && GLOB.r_wings_list.len >1)
+ if(("wings" in pref_species.default_features) && GLOB.r_wings_list.len >1)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
@@ -1420,7 +1420,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Hide Prayers: [(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]
"
dat += "Split Admin Tabs: [(toggles & SPLIT_ADMIN_TABS)?"Enabled":"Disabled"]
"
dat += "Fast MC Refresh: [(toggles & FAST_MC_REFRESH)?"Enabled":"Disabled"]
"
- dat += "Ignore Being Summoned as Cult Ghost: [(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]
"
dat += "Briefing Officer Outfit: [brief_outfit]
"
if(CONFIG_GET(flag/allow_admin_asaycolor))
dat += "
"
@@ -2638,8 +2637,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
toggles ^= DEADMIN_POSITION_SECURITY
if("toggle_deadmin_silicon")
toggles ^= DEADMIN_POSITION_SILICON
- if("toggle_ignore_cult_ghost")
- toggles ^= ADMIN_IGNORE_CULT_GHOST
if("be_special")
var/be_special_type = href_list["be_special_type"]
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index f5c37b18997d..7fb618f34ddb 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -12,10 +12,12 @@
// Damn our lack of abstract interfeces
if (istype(target, /obj/item/clothing/head/chameleon/drone))
var/obj/item/clothing/head/chameleon/drone/X = target
- X.chameleon_action.random_look(owner)
+ var/datum/action/item_action/chameleon/change/chameleon_action_x = locate() in X.actions
+ chameleon_action_x.random_look(owner)
if (istype(target, /obj/item/clothing/mask/chameleon/drone))
var/obj/item/clothing/mask/chameleon/drone/Z = target
- Z.chameleon_action.random_look(owner)
+ var/datum/action/item_action/chameleon/change/chameleon_action_z = locate() in Z.actions
+ chameleon_action_z.random_look(owner)
return 1
@@ -133,7 +135,8 @@
if(helmet_type)
var/obj/item/clothing/head/chameleon/hat = H.head
- hat.chameleon_action.update_look(user, helmet_type)
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in hat.actions
+ chameleon_action.update_look(user, helmet_type)
// ID card sechud
if(outfit.job_icon)
@@ -320,11 +323,9 @@
can_adjust = FALSE
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/under/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/under
chameleon_action.chameleon_name = "Jumpsuit"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/under, /obj/item/clothing/under/color, /obj/item/clothing/under/rank, /obj/item/clothing/under/changeling), only_root_path = TRUE)
@@ -334,10 +335,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/under/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/suit/chameleon
@@ -351,11 +354,9 @@
resistance_flags = NONE
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/suit/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/suit
chameleon_action.chameleon_name = "Suit"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/suit/armor/abductor, /obj/item/clothing/suit/changeling), only_root_path = TRUE)
@@ -365,10 +366,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/suit/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/glasses/chameleon
@@ -379,11 +382,9 @@
resistance_flags = NONE
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/glasses/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/glasses
chameleon_action.chameleon_name = "Glasses"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/glasses/changeling, only_root_path = TRUE)
@@ -393,10 +394,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/glasses/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/gloves/chameleon
@@ -408,11 +411,9 @@
resistance_flags = NONE
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/gloves/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/gloves
chameleon_action.chameleon_name = "Gloves"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/clothing/gloves, /obj/item/clothing/gloves/color, /obj/item/clothing/gloves/changeling), only_root_path = TRUE)
@@ -422,10 +423,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/gloves/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/head/chameleon
@@ -436,11 +439,9 @@
resistance_flags = NONE
armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/head/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/head
chameleon_action.chameleon_name = "Hat"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/head/changeling, only_root_path = TRUE)
@@ -450,10 +451,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/head/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/head/chameleon/drone
@@ -465,6 +468,7 @@
/obj/item/clothing/head/chameleon/drone/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.random_look()
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
togglehatmask_action.UpdateButtonIcon()
@@ -486,11 +490,9 @@
var/voice_change = 1 ///This determines if the voice changer is on or off.
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/mask/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/mask
chameleon_action.chameleon_name = "Mask"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/mask/changeling, only_root_path = TRUE)
@@ -500,10 +502,12 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/mask/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/mask/chameleon/attack_self(mob/user)
@@ -519,6 +523,7 @@
/obj/item/clothing/mask/chameleon/drone/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.random_look()
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
togglehatmask_action.UpdateButtonIcon()
@@ -537,11 +542,9 @@
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/shoes/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/shoes
chameleon_action.chameleon_name = "Shoes"
chameleon_action.chameleon_blacklist = typecacheof(/obj/item/clothing/shoes/changeling, only_root_path = TRUE)
@@ -551,6 +554,7 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/shoes/chameleon/noslip
@@ -562,15 +566,15 @@
/obj/item/clothing/shoes/chameleon/noslip/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/storage/backpack/chameleon
name = "backpack"
- var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/storage/backpack/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/storage/backpack
chameleon_action.chameleon_name = "Backpack"
chameleon_action.initialize_disguises()
@@ -579,21 +583,22 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/storage/backpack/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/storage/belt/chameleon
name = "toolbelt"
desc = "Holds tools."
- var/datum/action/item_action/chameleon/change/chameleon_action
/obj/item/storage/belt/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/storage/belt
chameleon_action.chameleon_name = "Belt"
chameleon_action.initialize_disguises()
@@ -607,19 +612,17 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/storage/belt/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
-/obj/item/radio/headset/chameleon
- name = "radio headset"
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/radio/headset/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/radio/headset
chameleon_action.chameleon_name = "Headset"
chameleon_action.initialize_disguises()
@@ -628,19 +631,17 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/radio/headset/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
-/obj/item/pda/chameleon
- name = "PDA"
- var/datum/action/item_action/chameleon/change/pda/chameleon_action
-
/obj/item/pda/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/pda
chameleon_action.chameleon_name = "PDA"
chameleon_action.chameleon_blacklist = typecacheof(list(/obj/item/pda/heads, /obj/item/pda/ai, /obj/item/pda/ai/pai), only_root_path = TRUE)
@@ -650,24 +651,24 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/pda/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
-/obj/item/stamp/chameleon
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/stamp/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/stamp
chameleon_action.chameleon_name = "Stamp"
chameleon_action.initialize_disguises()
/obj/item/stamp/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
/obj/item/clothing/neck/chameleon
@@ -677,12 +678,9 @@
resistance_flags = NONE
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50)
-/obj/item/clothing/neck/chameleon
- var/datum/action/item_action/chameleon/change/chameleon_action
-
/obj/item/clothing/neck/chameleon/Initialize()
. = ..()
- chameleon_action = new(src)
+ var/datum/action/item_action/chameleon/change/chameleon_action = new(src)
chameleon_action.chameleon_type = /obj/item/clothing/neck
chameleon_action.chameleon_name = "Neck Accessory"
chameleon_action.initialize_disguises()
@@ -691,8 +689,10 @@
. = ..()
if(. & EMP_PROTECT_SELF)
return
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise()
/obj/item/clothing/neck/chameleon/broken/Initialize()
. = ..()
+ var/datum/action/item_action/chameleon/change/chameleon_action = locate() in actions
chameleon_action.emp_randomise(INFINITY)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index eb3e9c980536..c56416dd339c 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -29,9 +29,9 @@
var/can_be_bloody = TRUE
- //Var modification - PLEASE be careful with this I know who you are and where you live
- var/list/user_vars_to_edit //VARNAME = VARVALUE eg: "name" = "butts"
- var/list/user_vars_remembered //Auto built by the above + dropped() + equipped()
+ //set during equip_to_slot, removed when taking off.
+ //here lies some of the most batshit insane reference code I've ever seen. Look it up in the commit history
+ var/datum/weakref/wearer
var/pocket_storage_component_path
@@ -46,6 +46,9 @@
/// Trait modification, lazylist of traits to add/take away, on equipment/drop in the correct slot
var/list/clothing_traits
+ ///sets the icon path of the onmob blood overlay created by this object. syntax is "[var]blood"
+ var/blood_overlay_type = "uniform"
+
/obj/item/clothing/Initialize()
if((clothing_flags & VOICEBOX_TOGGLABLE))
actions_types += /datum/action/item_action/toggle_voice_box
@@ -107,22 +110,14 @@
return TRUE
return ..()
-/obj/item/clothing/Destroy()
- user_vars_remembered = null //Oh god somebody put REFERENCES in here? not to worry, we'll clean it up
- return ..()
-
/obj/item/clothing/dropped(mob/user)
..()
if(!istype(user))
return
for(var/trait in clothing_traits)
REMOVE_CLOTHING_TRAIT(user, trait)
- if(LAZYLEN(user_vars_remembered))
- for(var/variable in user_vars_remembered)
- if(variable in user.vars)
- if(user.vars[variable] == user_vars_to_edit[variable]) //Is it still what we set it to? (if not we best not change it)
- user.vars[variable] = user_vars_remembered[variable]
- user_vars_remembered = initial(user_vars_remembered) // Effectively this sets it to null.
+ if(wearer?.resolve())
+ wearer = null
/obj/item/clothing/equipped(mob/user, slot)
..()
@@ -131,11 +126,8 @@
if(slot_flags & slot) //Was equipped to a valid slot for this item?
for(var/trait in clothing_traits)
ADD_CLOTHING_TRAIT(user, trait)
- if (LAZYLEN(user_vars_to_edit))
- for(var/variable in user_vars_to_edit)
- if(variable in user.vars)
- LAZYSET(user_vars_remembered, variable, user.vars[variable])
- user.vv_edit_var(variable, user_vars_to_edit[variable])
+ if(!wearer?.resolve())
+ wearer = WEAKREF(user)
/**
* Inserts a trait (or multiple traits) into the clothing traits list
@@ -446,11 +438,19 @@
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
else
- if(attached_accessory)
- remove_accessory(user)
+ if(attached_accessory && ispath(attached_accessory.pocket_storage_component_path) && loc == user)
+ attached_accessory.attack_hand(user)
+ return
else
rolldown()
+/obj/item/clothing/under/CtrlClick(mob/user)
+ if(..())
+ return 1
+ if(attached_accessory)
+ remove_accessory(user)
+
+
/obj/item/clothing/under/verb/jumpsuit_adjust()
set name = "Adjust Jumpsuit Style"
set category = null
@@ -536,3 +536,17 @@
deconstruct(FALSE)
else
..()
+
+///sets up the proper bloody overlay for a clothing object, using species data
+/obj/item/clothing/proc/setup_blood_overlay()
+ var/overlay_file = 'icons/effects/blood.dmi'
+
+ var/mob/living/carbon/human/wearing = wearer?.resolve()
+ var/custom_overlay_icon = wearing?.dna.species.custom_overlay_icon
+ if(custom_overlay_icon)
+ overlay_file = custom_overlay_icon
+
+ var/mutable_appearance/bloody_clothing = mutable_appearance(overlay_file, "[blood_overlay_type]blood")
+ bloody_clothing.color = get_blood_dna_color(return_blood_DNA())
+
+ return bloody_clothing
diff --git a/code/modules/clothing/factions/clip.dm b/code/modules/clothing/factions/clip.dm
index 7ac3668aaf77..cdb3dcfce757 100644
--- a/code/modules/clothing/factions/clip.dm
+++ b/code/modules/clothing/factions/clip.dm
@@ -215,7 +215,7 @@
armor = list("melee" = 50, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 60, "fire" = 50, "acid" = 80)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clip_spotter
- allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
resistance_flags = null
slowdown = 1
@@ -240,7 +240,7 @@
//hats
/obj/item/clothing/head/clip
name = "\improper CLIP Minutemen service cap"
- desc = "A standard issue soft cap dating back to the original Zohil colonial peroid. While usually given to recruits and volunteers, it's sometimes used by occasionally by some Minutemen."
+ desc = "A standard issue soft cap dating back to the original Zohil colonial peroid. While usually given to recruits and new volunteers, it's used occasionally by some Minutemen."
icon = 'icons/obj/clothing/faction/clip/head.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/clip/head.dmi'
vox_override_icon = 'icons/mob/clothing/faction/clip/vox.dmi'
@@ -330,6 +330,8 @@
icon_state = "clip_m10_correspondant"
item_state = "clip_m10_correspondant"
+ supports_variations = VOX_VARIATION
+
/obj/item/clothing/head/helmet/riot/clip
name = "\improper Minutemen riot helmet"
desc = "Designed to protect against close range attacks. Mainly used by the CMM-BARD against hostile xenofauna, it also sees prolific use on some Minutemen member worlds."
@@ -382,6 +384,14 @@
supports_variations = SNOUTED_VARIATION
+/obj/item/clothing/mask/balaclava/combat
+ name = "combat balaclava"
+ desc = "A surprisingly advanced balaclava. While it doesn't muffle your voice, it has a mouthpiece for internals. Comfy to boot!"
+ icon_state = "combat_balaclava"
+ item_state = "combat_balaclava"
+ alternate_worn_layer = BODY_LAYER
+ flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEARS|HIDEHAIR
+
//gloves
/obj/item/clothing/gloves/color/latex/nitrile/clip
@@ -435,21 +445,26 @@
new /obj/item/ammo_box/magazine/cm15_12g(src)
new /obj/item/grenade/frag(src)
+/obj/item/storage/belt/military/clip/cm15_inc/PopulateContents()
+ for(var/i in 1 to 5)
+ new /obj/item/ammo_box/magazine/cm15_12g/incendiary(src)
+ new /obj/item/grenade/frag(src)
+
/obj/item/storage/belt/military/clip/e50/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_w_class = WEIGHT_CLASS_NORMAL
/obj/item/storage/belt/military/clip/e50/PopulateContents()
- for(var/i in 1 to 5)
+ for(var/i in 1 to 3)
new /obj/item/stock_parts/cell/gun/large(src)
new /obj/item/grenade/frag(src)
- new /obj/item/screwdriver/nuke(src)
+ new /obj/item/screwdriver(src)
/obj/item/storage/belt/military/clip/engi/PopulateContents()
new /obj/item/screwdriver/power(src)
new /obj/item/crowbar/power(src)
- new /obj/item/weldingtool/experimental(src)
+ new /obj/item/weldingtool/electric(src)
new /obj/item/multitool(src)
new /obj/item/construction/rcd/combat(src)
new /obj/item/extinguisher/mini(src)
@@ -458,7 +473,7 @@
/obj/item/storage/belt/military/clip/flamer/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/reagent_containers/glass/beaker/large/fuel(src)
- new /obj/item/ammo_box/magazine/co9mm(src)
+ new /obj/item/ammo_box/magazine/cm23(src)
/obj/item/storage/belt/medical/webbing/clip
name = "medical webbing"
diff --git a/code/modules/clothing/factions/frontiersmen.dm b/code/modules/clothing/factions/frontiersmen.dm
index 77af8138fb40..7c4857823260 100644
--- a/code/modules/clothing/factions/frontiersmen.dm
+++ b/code/modules/clothing/factions/frontiersmen.dm
@@ -41,19 +41,20 @@
//Unarmored suits//
///////////////////
-/obj/item/clothing/suit/frontiersmen
+/obj/item/clothing/suit/frontiersmen //Ideally, the basic suit model here should be turned into a placeholder model, and this item have "smock" or "apron" added on the end.
name = "frontiersmen smock"
desc = "A basic white surgical apron worn by the Frontiersmen. It seems it could stain very easily..."
icon_state = "frontier_surgery"
icon = 'icons/obj/clothing/faction/frontiersmen/suits.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/suits.dmi'
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
//////////////////
//Armored suits//
/////////////////
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier
- name = "\improper Frontiersmen bulletproof armor"
+/obj/item/clothing/suit/armor/vest/frontier
+ name = "\improper Frontiersmen armor vest"
desc = "A scrap piece of armor made of disused protective plates. This one was used to protect the squishy bits of a Frontiersman, once."
icon_state = "frontier_armor"
icon = 'icons/obj/clothing/faction/frontiersmen/suits.dmi'
@@ -129,7 +130,7 @@
name = "frontiersman cap"
desc = "An olive-green and grey baseball hat, worn by cargo technicians working under the Frontiersmen. Even they have the rights for a cool cap!"
icon_state = "frontiersoft"
- soft_type = "frontiersmen"
+ soft_type = "frontier"
icon = 'icons/obj/clothing/faction/frontiersmen/head.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/head.dmi'
@@ -189,12 +190,18 @@
resistance_flags = FIRE_PROOF
armor = list("melee" = 15, "bullet" = 60, "laser" = 10, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
-/obj/item/clothing/head/helmet/marine/frontier
+/obj/item/clothing/head/helmet/frontier
name = "frontiersmen reinforced helmet"
desc = "A reinforced Frontiersmen X-11. The front plate has a small window to let the user see."
icon_state = "marine_frontier"
icon = 'icons/obj/clothing/faction/frontiersmen/head.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/head.dmi'
+ armor = list("melee" = 35, "bullet" = 55, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 75, "fire" = 40, "acid" = 50)
+ slowdown = 0.1
+ min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT
+ clothing_flags = STOPSPRESSUREDAMAGE | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF | SEALS_EYES
////////////
//Glasses//
@@ -230,24 +237,11 @@
unique_reskin = null
-/obj/item/storage/belt/medical/webbing/frontiersmen
- name = "leather medical bandolier"
- desc = "A rudimentary leather bandolier, utilized by both independents and frontiersmen alike. This one is painted white, usually to be worn by a medic."
- icon_state = "frontiermedicalwebbing"
- item_state = "frontiermedicalwebbing"
- icon = 'icons/obj/clothing/faction/frontiersmen/belt.dmi'
- mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/belt.dmi'
-
-/obj/item/storage/belt/medical/webbing/frontiersmen/surgery/PopulateContents()
- new /obj/item/scalpel(src)
- new /obj/item/circular_saw(src)
- new /obj/item/surgicaldrill(src)
- new /obj/item/retractor(src)
- new /obj/item/cautery(src)
- new /obj/item/hemostat(src)
- new /obj/item/hypospray/mkii(src)
- update_appearance()
-
+/obj/item/storage/belt/security/military/frontiersmen/illestren/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/illestren_a850r(src)
+ new /obj/item/grenade/frag(src)
/obj/item/storage/belt/security/military/frontiersmen/skm_ammo/PopulateContents()
for(var/i in 1 to 4)
@@ -268,3 +262,30 @@
for(var/i in 1 to 4)
new /obj/item/reagent_containers/glass/beaker/large/napalm(src)
new /obj/item/grenade/frag(src)
+
+
+/obj/item/storage/belt/medical/webbing/frontiersmen
+ name = "leather medical bandolier"
+ desc = "A rudimentary leather bandolier, utilized by both independents and frontiersmen alike. This one is painted white, usually to be worn by a medic."
+ icon_state = "frontiermedicalwebbing"
+ item_state = "frontiermedicalwebbing"
+ icon = 'icons/obj/clothing/faction/frontiersmen/belt.dmi'
+ mob_overlay_icon = 'icons/mob/clothing/faction/frontiersmen/belt.dmi'
+
+/obj/item/storage/belt/medical/webbing/frontiersmen/surgery/PopulateContents()
+ new /obj/item/scalpel(src)
+ new /obj/item/circular_saw(src)
+ new /obj/item/surgicaldrill(src)
+ new /obj/item/retractor(src)
+ new /obj/item/cautery(src)
+ new /obj/item/hemostat(src)
+ new /obj/item/hypospray/mkii(src)
+ update_appearance()
+
+/obj/item/storage/belt/medical/webbing/frontiersmen/combat/PopulateContents()
+ new /obj/item/reagent_containers/hypospray/medipen/stimulants(src)
+ new /obj/item/reagent_containers/hypospray/medipen/stimulants(src)
+ new /obj/item/reagent_containers/medigel/silver_sulf(src)
+ new /obj/item/reagent_containers/medigel/styptic(src)
+ new /obj/item/stack/medical/gauze/twelve(src)
+ new /obj/item/stack/medical/splint(src)
diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm
index 3eea9ebec461..c37b02754a38 100644
--- a/code/modules/clothing/factions/gezena.dm
+++ b/code/modules/clothing/factions/gezena.dm
@@ -102,6 +102,10 @@
w_class = WEIGHT_CLASS_NORMAL
supports_variations = DIGITIGRADE_VARIATION
+/obj/item/clothing/suit/space/gezena/Initialize()
+ . = ..()
+ allowed = GLOB.security_hardsuit_allowed
+
/obj/item/clothing/head/helmet/space/gezena
name = "\improper Rakalla-helm"
desc = "Featuring rubberized grommets fitting for any length of horn, and an internal monitor for life support."
@@ -217,7 +221,6 @@
name = "\improper PGFN Captain's Ihuz-irra Gloves"
desc = "As the name, “ihuz-irra”, or “sure-grip”, suggests, the gloves employed by the PGF military are designed to ensure the highest possible grip is maintained while also providing protection from blisters in work environments. Bears the silver standard of a Gezenan captain."
icon_state = "captaingloves"
- siemens_coefficient = 0.5
//Boots
@@ -225,7 +228,7 @@
name = "\improper PGF Uhro-sez Boots"
desc = "The word “uhro-sez” translates to “steel-foot”, in reference to the steel toe protection provided by these boots. Standard issue to all members of all branches of the PGF military."
icon = 'icons/obj/clothing/faction/gezena/feet.dmi'
- //mob_overlay_icon = 'icons/mob/clothing/faction/gezena/feet.dmi' todo: find out why digi breaks here
+ mob_overlay_icon = 'icons/mob/clothing/faction/gezena/feet.dmi'
icon_state = "pgfboots"
item_state = "jackboots"
@@ -242,6 +245,20 @@
item_state = "bluecloth"
unique_reskin = null
+/obj/item/storage/belt/military/gezena/bg16/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/stock_parts/cell/gun/pgf(src)
+ new /obj/item/screwdriver(src)
+
+/obj/item/storage/belt/military/gezena/engineer/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 2)
+ new /obj/item/stock_parts/cell/gun/pgf(src)
+ new /obj/item/screwdriver(src)
+ new /obj/item/grenade/c4
+ new /obj/item/grenade/c4
+
/obj/item/storage/belt/medical/gezena
name = "\improper PGF Medical Iho-Usks"
desc = "The “iho-usks”, translating to “gear-holder”, is a lightweight harness covered in pouches, supplied to the ground troops of the PGF. This variant is designed for carrying medical supplies."
@@ -252,6 +269,17 @@
icon_state = "medpouches"
item_state = "whitecloth"
+/obj/item/storage/belt/medical/gezena/paramedic/PopulateContents()
+ new /obj/item/reagent_containers/medigel/styptic(src)
+ new /obj/item/reagent_containers/medigel/styptic(src)
+ new /obj/item/reagent_containers/medigel/silver_sulf(src)
+ new /obj/item/reagent_containers/medigel/silver_sulf(src)
+ new /obj/item/reagent_containers/medigel/synthflesh(src)
+ new /obj/item/stack/medical/gauze/twelve(src)
+ new /obj/item/stack/medical/splint(src)
+ . = ..()
+
+
//Cloaks
/obj/item/clothing/neck/cloak/gezena
diff --git a/code/modules/clothing/factions/hardliners.dm b/code/modules/clothing/factions/hardliners.dm
index 43faee3ccb19..83c00e64b89e 100644
--- a/code/modules/clothing/factions/hardliners.dm
+++ b/code/modules/clothing/factions/hardliners.dm
@@ -28,13 +28,14 @@
//Unarmored suits//
///////////////////
-/obj/item/clothing/suit/hardliners
+/obj/item/clothing/suit/hardliners //Ideally, the basic suit model here should be turned into a placeholder model, and this item have "smock" or "apron" added on the end.
name = "white smock"
desc = "A plain-white surgical smock typically worn by both Hardliners and Cybersun staff. Even mercenaries need medical attention!"
icon = 'icons/obj/clothing/faction/hardliners/suits.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi'
icon_state = "hl_apron"
item_state = "whitecloth"
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
/obj/item/clothing/suit/hazardvest/hardliners
name = "blood-red hazard vest"
@@ -125,7 +126,6 @@
icon = 'icons/obj/clothing/faction/hardliners/suits.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi'
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/hl
- lightweight = 1
jetpack = null
/obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/hl
@@ -147,7 +147,6 @@
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/hl
icon = 'icons/obj/clothing/faction/hardliners/suits.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/suits.dmi'
- lightweight = 1
jetpack = null
/////////
@@ -215,3 +214,9 @@
item_state = "hl_webbing"
icon = 'icons/obj/clothing/faction/hardliners/belt.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/hardliners/belt.dmi'
+
+/obj/item/storage/belt/security/webbing/hardliners/sidewinder/PopulateContents()
+ . = ..()
+ new /obj/item/ammo_box/magazine/m57_39_sidewinder(src)
+ new /obj/item/ammo_box/magazine/m57_39_sidewinder(src)
+ new /obj/item/ammo_box/magazine/m57_39_sidewinder(src)
diff --git a/code/modules/clothing/factions/nanotrasen.dm b/code/modules/clothing/factions/nanotrasen.dm
index 6e605d5471b2..9d2c8ba3899a 100644
--- a/code/modules/clothing/factions/nanotrasen.dm
+++ b/code/modules/clothing/factions/nanotrasen.dm
@@ -9,7 +9,8 @@
righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi'
icon_state = "deckhand"
item_state = "graycloth"
- supports_variations = DIGITIGRADE_VARIATION
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION
// Engineering uniforms
/obj/item/clothing/under/nanotrasen/engineering
@@ -17,12 +18,16 @@
desc = "A dirty grey jumpsuit with reflective blue flashes on the limbs and a wrench icon on the back. A Nanotrasen, Inc. logo is stitched into the collar."
icon_state = "engi"
item_state = "greycloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/engineering/atmos
name = "atmospherics jumpsuit"
desc = "A thick grey jumpsuit with black stripes and an 'O2' icon on the back. A Nanotrasen, Inc. logo is stitched into the collar."
icon_state = "atmos_tech"
item_state = "greycloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/engineering/director
name = "engineering director's overalls"
@@ -30,18 +35,23 @@
icon_state = "engi_director"
item_state = "blackcloth"
+
//Supply uniforms
/obj/item/clothing/under/nanotrasen/supply
name = "cargo handler shorts"
desc = "A cheap work shirt and black shorts, typical of cargo handlers and clerks at N+S Logistics."
icon_state = "supply"
item_state = "browncloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/supply/qm
name = "supply director slacks"
desc = "Crisp slacks and a pressed brown shirt that any supply director could be proud of. N+S Logistics' compass rose logo is embossed on every button."
icon_state = "supply_director"
item_state = "browncloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/supply/miner
name = "mining overalls"
@@ -74,12 +84,16 @@
desc = "A crisp white shirt with blue stripes on the arms, identifying the owner as trained Nanotrasen medical staff. The faint smell of antiseptic won't wash out."
icon_state = "doctor"
item_state = "whitecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/medical/paramedic
name = "paramedic uniform"
desc = "Tough synthetic pants and a white uniform shirt, designed to handle all manner of scrapes and splashes in the line of duty. The tag identifies this as property of Nanotrasen, Inc."
icon_state = "paramedic"
item_state = "whitecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/medical/director
name = "medical director's slacks"
@@ -94,24 +108,32 @@
desc = "A grey jumpsuit with purple sleeves and faint stains on the elbows and knees. It looks stiff and cheap, but is surprisingly comfortable."
icon_state = "janitor"
item_state = "graycloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/affairs
name = "neatly pleated slacks"
desc = "Flawlessly pleated slacks and a linen shirt with the Nanotrasen logo stitched repeatedly into the cuffs and collar. It exudes an aura of quiet authority."
icon_state = "affairs"
item_state = "whitecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/security
name = "security slacks"
desc = "A starched grey uniform with red arm flashes, of a type seen throughout the core worlds. The Vigilitas Interstellar logo is proudly emblazoned on the front."
icon_state = "security"
item_state = "graycloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/under/nanotrasen/security/director
name = "security director's slacks"
desc = "A robust crimson uniform, heavily starched, with a Vigilitas logo neatly stitched onto either end of the collar. The last line of defense for Vigilitas's managerial staff."
icon_state = "security_director"
item_state = "redcloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
//Command uniforms
/obj/item/clothing/under/nanotrasen/captain
@@ -163,24 +185,31 @@
desc = "A thick fluid-repelling smock rendered in what is unmistakeably Nanotrasen Blue. The tag on the inside declares it property of Nanotrasen, Inc."
icon_state = "med_smock"
item_state = "bluecloth"
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
/obj/item/clothing/suit/nanotrasen/suitjacket
name = "fancy black suit jacket"
desc = "A fine black linen suit jacket with blue markings and a Nanotrasen lapel pin. It has a strangely menacing aura."
icon_state = "suit_jacket"
item_state = "blackcloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/suit/nanotrasen/vest
name = "black hazard vest"
desc = "A thin black vest with reflective markings, worn to guarantee visibility when operating around industrial equipment or in dark or dusty conditions. Property of Nanotrasen, Inc."
icon_state = "engi_vest"
item_state = "blackcloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/suit/nanotrasen/vest/blue
name = "blue hazard vest"
desc = "A thin vest with reflective stripes, worn to guarantee visibility in dangerous conditions. The vest itself is an offensively bright shade of Nanotrasen Blue. Property of Nanotrasen, Inc."
icon_state = "atmos_vest"
item_state = "bluecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/suit/toggle/nanotrasen
name = "officer's coat"
@@ -236,6 +265,8 @@
/obj/item/clothing/suit/armor/nanotrasen/slim
name = "slim armor vest"
icon_state = "armor_slim"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/suit/armor/nanotrasen/sec_director
name = "security director's overcoat"
@@ -243,6 +274,8 @@
icon_state = "command_coat"
body_parts_covered = CHEST|GROIN
armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 90)
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/suit/armor/nanotrasen/captain
name = "captain's jacket"
@@ -336,6 +369,8 @@
desc = "A blue peaked hat with red silk decoration and an embroidered Nanotrasen logo, worn exclusively by management."
icon_state = "officer_peaked"
item_state = "bluecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/head/nanotrasen/officer/fedora
name = "officer's fedora"
@@ -354,6 +389,8 @@
desc = "A decorated blue peaked cap, rife with laurels and gold thread, with a large badge on the front displaying the Nanotrasen, Inc. logo. This hat practically oozes authority."
icon_state = "com_peaked"
item_state = "bluecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/head/hardhat/nanotrasen //TODO: inhands for hardhats
name = "black heavy-duty hat"
@@ -364,18 +401,24 @@
righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi'
icon_state = "hardhat_black"
item_state = "blackcloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/head/hardhat/nanotrasen/blue
name = "blue heavy-duty hat"
desc = "A tough plastic helmet with suspension rig, designed to protect against blunt impacts. This one is brightly colored in Nanotrasen Blue, with the company logo on the front."
icon_state = "hardhat_blue"
item_state = "bluecloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
/obj/item/clothing/head/hardhat/nanotrasen/white
name = "white heavy-duty hat"
desc = "An extremely tough plastic helmet with suspension rig, designed to protect against blunt impacts. This one is colored bright white, typical of managerial staff, and has a Nanotrasen logo on the front."
icon_state = "hardhat_white"
item_state = "graycloth"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ supports_variations = VOX_VARIATION
// Neck //
@@ -389,3 +432,19 @@
righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi'
icon_state = "sash"
item_state = "redcloth"
+
+// Mask //
+
+/obj/item/clothing/mask/gas/vigilitas
+ name = "Vigilitas gas mask"
+ desc = "A protective gas mask designed for first response, specialist operations, and counter terrorism by Vigilitas Interstellar officers. It features a wide scratch resistant visor, ports for connecting an oxygen supply, and secure, comfortable straps."
+ icon = 'icons/obj/clothing/faction/nanotrasen/mask.dmi'
+ mob_overlay_icon = 'icons/mob/clothing/faction/nanotrasen/mask.dmi'
+ kepori_override_icon = 'icons/mob/clothing/faction/nanotrasen/mask_kepori.dmi'
+ lefthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/faction/nanotrasen/nt_righthand.dmi'
+ icon_state = "vigi_gas_mask"
+ item_state = "vigi_gas_mask"
+ vox_override_icon = 'icons/mob/clothing/faction/nanotrasen/vox.dmi'
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ supports_variations = KEPORI_VARIATION | VOX_VARIATION
diff --git a/code/modules/clothing/factions/ngr.dm b/code/modules/clothing/factions/ngr.dm
index 401f82795f68..366fa3b37cfe 100644
--- a/code/modules/clothing/factions/ngr.dm
+++ b/code/modules/clothing/factions/ngr.dm
@@ -11,6 +11,7 @@
can_adjust = FALSE
icon = 'icons/obj/clothing/faction/ngr/uniforms.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/ngr/uniforms.dmi'
+ supports_variations = DIGITIGRADE_VARIATION
/obj/item/clothing/under/syndicate/ngr/fatigues
name = "\improper NGR fatigues"
@@ -29,6 +30,7 @@
desc = "A button-up in a tasteful black with beige pants, used by officers of the New Gorlex Republic."
icon_state = "ngr_officer"
item_state = "ngr_officer"
+ supports_variations = DIGITIGRADE_VARIATION
/obj/item/clothing/under/plasmaman/ngr
name = "\improper NGR phorid envirosuit"
@@ -56,6 +58,7 @@
desc = "A blood-red surgical smock typically worn by field medics of the New Gorlex Republic. It hides red blood really well!"
icon_state = "ngr_apron"
item_state = "redcloth"
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
/obj/item/clothing/suit/hazardvest/ngr
name = "blood-red hazard vest"
@@ -135,7 +138,6 @@
icon = 'icons/obj/clothing/faction/ngr/suits.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/ngr/suits.dmi'
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ngr
- lightweight = 1
jetpack = null
greyscale_colors = list("#33353a", "#d9ad82", "#8c1a34")
@@ -219,21 +221,22 @@
//Masks//
/////////
-/obj/item/clothing/mask/gas/sechailer/balaclava/ngr
+/obj/item/clothing/mask/balaclava/ngr
name = "NGR combat balaclava"
- desc = "A surprisingly advanced balaclava. while it doesn't muffle your voice it has a miniature rebreather for internals. Comfy to boot! This version is commonly used by the soldiers of the New Gorlex Republic to protect against sandstorms."
+ desc = "A surprisingly advanced balaclava. While it doesn't muffle your voice, it has a mouthpiece for internals. Comfy to boot! This version is commonly used by the soldiers of the New Gorlex Republic to protect against sandstorms."
icon_state = "ngr_balaclava"
item_state = "ngr_balaclava"
icon = 'icons/obj/clothing/faction/ngr/mask.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi'
-/obj/item/clothing/mask/gas/syndicate/ngr
+/obj/item/clothing/mask/breath/ngr
name = "NGR face mask"
desc = "A face mask that covers the nose, mouth and neck of those who wear it. Favored by field medics over the balaclava due to lessened heat while wearing."
icon_state = "ngr_facemask"
item_state = "ngr_facemask"
icon = 'icons/obj/clothing/faction/ngr/mask.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/ngr/mask.dmi'
+ supports_variations = SNOUTED_VARIATION | SNOUTED_SMALL_VARIATION
//////////
//Neck//
@@ -258,3 +261,14 @@
item_state = "ngr_webbing"
icon = 'icons/obj/clothing/faction/ngr/belt.dmi'
mob_overlay_icon = 'icons/mob/clothing/faction/ngr/belt.dmi'
+
+/obj/item/storage/belt/security/webbing/ngr/cobra/PopulateContents()
+ . = ..()
+ for(var/i in 1 to 4)
+ new /obj/item/ammo_box/magazine/m45_cobra(src)
+
+/obj/item/storage/belt/security/webbing/ngr/hydra_grenadier/PopulateContents()
+ for(var/i in 1 to 3)
+ new /obj/item/ammo_box/magazine/m556_42_hydra(src)
+ new /obj/item/ammo_casing/a40mm(src)
+ new /obj/item/ammo_casing/a40mm(src)
diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm
index a6e9f22ea3e7..ea0062359c9a 100644
--- a/code/modules/clothing/gloves/_gloves.dm
+++ b/code/modules/clothing/gloves/_gloves.dm
@@ -17,6 +17,7 @@
clothamnt = 2
greyscale_colors = list(list(10, 13), list(11, 14), list(9, 12))
greyscale_icon_state = "gloves"
+ blood_overlay_type = "hands"
/obj/item/clothing/gloves/wash(clean_types)
. = ..()
@@ -30,9 +31,8 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_hands = mutable_appearance('icons/effects/blood.dmi', "bloodyhands")
- bloody_hands.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_hands
+ . += setup_blood_overlay()
+
/obj/item/clothing/gloves/update_clothes_damaged_state(damaging = TRUE)
..()
diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm
index 0447f62aab9e..db9e2814b2c0 100644
--- a/code/modules/clothing/gloves/color.dm
+++ b/code/modules/clothing/gloves/color.dm
@@ -259,24 +259,6 @@
item_state = "lgloves"
custom_price = 200
-/obj/effect/spawner/lootdrop/gloves
- name = "random gloves"
- desc = "These gloves are supposed to be a random color..."
- icon = 'icons/obj/clothing/gloves.dmi'
- icon_state = "random_gloves"
- loot = list(
- /obj/item/clothing/gloves/color/orange = 1,
- /obj/item/clothing/gloves/color/red = 1,
- /obj/item/clothing/gloves/color/blue = 1,
- /obj/item/clothing/gloves/color/purple = 1,
- /obj/item/clothing/gloves/color/green = 1,
- /obj/item/clothing/gloves/color/grey = 1,
- /obj/item/clothing/gloves/color/light_brown = 1,
- /obj/item/clothing/gloves/color/brown = 1,
- /obj/item/clothing/gloves/color/white = 1,
- /obj/item/clothing/gloves/color/rainbow = 1,
- )
-
/obj/item/clothing/gloves/maid
name = "maid arm covers"
desc = "Cylindrical looking tubes that go over your arm, weird."
diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm
index e326b55f58f3..45999fd75db6 100644
--- a/code/modules/clothing/gloves/miscellaneous.dm
+++ b/code/modules/clothing/gloves/miscellaneous.dm
@@ -41,16 +41,6 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50)
//supports_variations = KEPORI_VARIATION
-/obj/item/clothing/gloves/combat/maid
- name = "combat maid sleeves"
- desc = "These 'tactical' gloves and sleeves are fireproof and acid-resistant. Warm to boot."
- icon_state = "syndimaid_arms"
-
-/obj/item/clothing/gloves/combat/maid/inteq
- name = "inteq combat maid sleeves"
- desc = "Tacticute and comfy, along with being both fireproof and acid-resistant."
- icon_state = "inteqmaid_arms"
-
/obj/item/clothing/gloves/bracer
name = "bone bracers"
desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms."
diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm
index 9807125c353b..c0328e0ac799 100644
--- a/code/modules/clothing/head/_head.dm
+++ b/code/modules/clothing/head/_head.dm
@@ -15,6 +15,7 @@
// supports_variations = VOX_VARIATION // CELADON-EDIT - ORIGINAL
supports_variations = VOX_VARIATION | TAJARA_VARIATION | RIOL_VARIATION
// [/CELADON-EDIT]
+ blood_overlay_type = "helmet"
///Special throw_impact for hats to frisbee hats at people to place them on their heads/attempt to de-hat them.
/obj/item/clothing/head/throw_impact(atom/hit_atom, datum/thrownthing/thrownthing)
@@ -68,9 +69,7 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_helmet = mutable_appearance('icons/effects/blood.dmi', "helmetblood")
- bloody_helmet.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_helmet
+ . += setup_blood_overlay()
/obj/item/clothing/head/update_clothes_damaged_state(damaging = TRUE)
..()
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index 9b28c58d03cf..4247405d873e 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -62,6 +62,10 @@
icon_state = "hardhat_orange"
dog_fashion = null
+/obj/item/clothing/head/hardhat/purple
+ icon_state = "hardhat_purple"
+ dog_fashion = null
+
/obj/item/clothing/head/hardhat/red
name = "firefighter helmet"
icon_state = "hardhat_red"
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index cefff9c4c76f..75103c5f524a 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -229,37 +229,6 @@
)
content_overlays = TRUE
-/obj/item/clothing/head/helmet/marine
- name = "tactical combat helmet"
- desc = "A tactical black helmet, sealed from outside hazards with a reinforced visor."
- icon_state = "marine_command"
- item_state = "helmetalt"
- armor = list("melee" = 50, "bullet" = 75, "laser" = 55, "energy" = 25, "bomb" = 60, "bio" = 100, "fire" = 70, "acid" = 50)
- slowdown = 0.3
- min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT
- clothing_flags = STOPSPRESSUREDAMAGE
- resistance_flags = FIRE_PROOF | ACID_PROOF
- can_flashlight = TRUE
- dog_fashion = null
-
-/obj/item/clothing/head/helmet/marine/Initialize(mapload)
- set_attached_light(new /obj/item/flashlight/seclite)
- update_helmlight()
- update_appearance()
- . = ..()
-
-/obj/item/clothing/head/helmet/marine/security
- name = "marine heavy helmet"
- icon_state = "marine_security"
-
-/obj/item/clothing/head/helmet/marine/engineer
- name = "marine utility helmet"
- icon_state = "marine_engineer"
-
-/obj/item/clothing/head/helmet/marine/medic
- name = "marine medic helmet"
- icon_state = "marine_medic"
-
/obj/item/clothing/head/helmet/old
name = "degrading helmet"
desc = "Standard issue security helmet. Due to degradation the helmet's visor obstructs the users ability to see long distances."
@@ -549,7 +518,7 @@
icon_state = "solgov_envirohelm"
item_state = "solgov_envirohelm"
-/obj/item/clothing/head/helmet/operator
+/obj/item/clothing/head/helmet/syndie
name = "\improper operator helmet"
desc = "A robust combat helmet commonly employed by Syndicate forces, regardless of alignment."
icon_state = "operator"
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 416fa20df39c..85b3af968296 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -57,8 +57,9 @@
new /obj/item/reagent_containers/food/drinks/flask/det(src)
/obj/item/clothing/head/fedora/det_hat/examine_more(mob/user)
+ . = ..()
if(!in_range(src, user) || !isobserver(user)) //hide the easter egg a little more
- . = "You try to examine [src] closer, but you're too far away."
+ . += "You try to examine [src] closer, but you're too far away."
return
. += "Alt-click to take a candy corn."
@@ -184,7 +185,7 @@
. = ..()
UnregisterSignal(M, COMSIG_MOB_SAY)
-/obj/item/clothing/head/warden/drill/proc/handle_speech(datum/source, mob/speech_args)
+/obj/item/clothing/head/warden/drill/proc/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
switch (mode)
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index b2636b02871b..0c638fb75e2c 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -201,7 +201,7 @@
. = ..()
UnregisterSignal(M, COMSIG_MOB_SAY)
-/obj/item/clothing/head/frenchberet/proc/handle_speech(datum/source, mob/speech_args)
+/obj/item/clothing/head/frenchberet/proc/handle_speech(datum/source, list/speech_args)
var/message = speech_args[SPEECH_MESSAGE]
if(message[1] != "*")
message = " [message]"
@@ -226,18 +226,6 @@
icon_state = "intern_hat"
item_state = "intern_hat"
-/obj/item/clothing/head/maidheadband/syndicate
- name = "tactical maid headband"
- desc = "Tacticute."
- icon_state = "syndieheadband"
- item_state = "syndieheadband"
-
-/obj/item/clothing/head/maidheadband/inteq
- name = "inteq maid headband"
- desc = "Tacticute."
- icon_state = "inteqheadband"
- item_state = "inteqheadband"
-
/obj/item/clothing/head/inteq_peaked
name = "inteq peaked cap"
desc = "A peaked cap for Vanguards with a commanding authority, emblazoned with the golden badge of the IRMG."
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 3e5052cacc92..307106409f18 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -161,3 +161,32 @@
icon_state = "inteqmedsoft"
soft_type = "inteqmed"
dog_fashion = null
+
+/obj/item/clothing/head/soft/utility_beige
+ name = "beige utility cover"
+ desc = "A flat beige utility cover, unbranded. Just the right color for those sandy planetoids."
+ icon_state = "patrolbeigesoft"
+ soft_type = "patrolbeige"
+ dog_fashion = null
+
+/obj/item/clothing/head/soft/utility_black
+ name = "black utility cover"
+ desc = "A flat black utility cover, unbranded. Night Vision Goggles sold separately."
+ icon_state = "patrolblacksoft"
+ soft_type = "patrolblack"
+ dog_fashion = null
+
+/obj/item/clothing/head/soft/utility_olive
+ name = "miskilamao cap"
+ desc = "An olive utility cover emblazoned with the Miskilamo Shipbreaking logo. The material feels cheap."
+ icon_state = "patrololivesoft"
+ soft_type = "patrololive"
+ dog_fashion = null
+
+/obj/item/clothing/head/soft/utility_navy
+ name = "navy utility cover"
+ desc = "A navy blue utility cover, unbranded. Perfect for Seamen on long voyages."
+ icon_state = "patrolnavysoft"
+ soft_type = "patrolnavy"
+ dog_fashion = null
+//recompile icons comment!!!!!
diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm
index a4c1d5d509fa..10724104fd05 100644
--- a/code/modules/clothing/masks/_masks.dm
+++ b/code/modules/clothing/masks/_masks.dm
@@ -11,6 +11,7 @@
var/mask_adjusted = 0
var/adjusted_flags = null
supports_variations = VOX_VARIATION | KEPORI_VARIATION
+ blood_overlay_type = "mask"
/obj/item/clothing/mask/attack_self(mob/user)
if((clothing_flags & VOICEBOX_TOGGLABLE))
@@ -38,9 +39,7 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_mask = mutable_appearance('icons/effects/blood.dmi', "maskblood")
- bloody_mask.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_mask
+ . += setup_blood_overlay()
/obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE)
..()
diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm
index 6bb58bb2b4e5..a1ddb98a3474 100644
--- a/code/modules/clothing/masks/boxing.dm
+++ b/code/modules/clothing/masks/boxing.dm
@@ -1,16 +1,35 @@
/obj/item/clothing/mask/balaclava
name = "balaclava"
- desc = "LOADSAMONEY"
+ desc = "A stretchy fabric hood with eye holes meant for keeping the face warm in cold weather. Also useful for concealing one's identity."
icon_state = "balaclava"
item_state = "balaclava"
- flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
+ clothing_flags = ALLOWINTERNALS
+ visor_flags = ALLOWINTERNALS
+ flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEARS|HIDEHAIR
visor_flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR
w_class = WEIGHT_CLASS_SMALL
+ gas_transfer_coefficient = 0.1
+ permeability_coefficient = 0.5
actions_types = list(/datum/action/item_action/adjust)
+ flags_cover = MASKCOVERSMOUTH
+ visor_flags_cover = MASKCOVERSMOUTH
+ resistance_flags = NONE
+ supports_variations = SNOUTED_VARIATION | SNOUTED_SMALL_VARIATION | VOX_VARIATION
/obj/item/clothing/mask/balaclava/attack_self(mob/user)
adjustmask(user)
+/obj/item/clothing/mask/balaclava/AltClick(mob/user)
+ ..()
+ if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+ else
+ adjustmask(user)
+
+/obj/item/clothing/mask/balaclava/examine(mob/user)
+ . = ..()
+ . += "Alt-click [src] to adjust it."
+
/obj/item/clothing/mask/infiltrator
name = "infiltrator balaclava"
desc = "It makes you feel safe in your anonymity, but for a stealth outfit you sure do look obvious that you're up to no good. It seems to have a built in heads-up display."
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index 8ff4e6bcb0d9..ea6719e1fb63 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -36,3 +36,8 @@
permeability_coefficient = 0.01
equip_delay_other = 10
+/obj/item/clothing/mask/balaclava/inteq //inteq needs a faction clothing file badly but it's out of scope for this PR -apogee
+ name = "IRMG combat balaclava"
+ desc = "A surprisingly advanced balaclava. While it doesn't muffle your voice, it has a mouthpiece for internals. Comfy to boot! This one is a variataion commonly used by the IRMG to protect it's members idenites."
+ icon_state = "inteq_balaclava"
+ item_state = "inteq_balaclava"
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index e5d3717b2b65..4fd1df88f0bc 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -275,3 +275,10 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEYES|HIDEEARS|HIDEHAIR
+/obj/item/clothing/mask/gas/inteq
+ name = "Inteq gas mask"
+ desc = "A protective gas mask refit for Inteq's standards. It features a modified scratch resistant visor, ports for connecting an oxygen supply, and secure, comfortable straps."
+ icon_state = "inteq_gas_mask"
+ item_state = "inteq_gas_mask"
+ resistance_flags = FIRE_PROOF | ACID_PROOF
+ supports_variations = KEPORI_VARIATION
diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm
index 78bbc032e861..35fd0e304309 100644
--- a/code/modules/clothing/masks/hailer.dm
+++ b/code/modules/clothing/masks/hailer.dm
@@ -13,6 +13,7 @@
visor_flags_inv = HIDEFACIALHAIR | HIDEFACE
flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
visor_flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES | PEPPERPROOF
+ supports_variations = VOX_VARIATION
/obj/item/clothing/mask/gas/sechailer/swat
name = "\improper SWAT mask"
@@ -28,13 +29,6 @@
icon_state = "spacepol"
item_state = "spacepol"
-/obj/item/clothing/mask/gas/sechailer/cyborg
- name = "security hailer"
- desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals."
- icon = 'icons/obj/device.dmi'
- icon_state = "taperecorder_idle"
- mob_overlay_state = "sechailer"
-
/obj/item/clothing/mask/gas/sechailer/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/adjust))
adjustmask(user)
@@ -66,17 +60,3 @@
icon_state = "whistle"
item_state = "whistle"
blown_sound = 'sound/misc/trenchwhistle.ogg'
-
-/obj/item/clothing/mask/gas/sechailer/balaclava
- name = "combat balaclava"
- desc = "A surprisingly advanced balaclava. while it doesn't muffle your voice it has a miniature rebreather for internals. Comfy to boot!"
- icon_state = "combat_balaclava"
- item_state = "combat_balaclava"
- strip_delay = 60
- alternate_worn_layer = BODY_LAYER
- flags_inv = HIDEFACIALHAIR|HIDEFACE|HIDEEARS|HIDEHAIR
-
-/obj/item/clothing/mask/gas/sechailer/balaclava/inteq
- desc = "A surprisingly advanced balaclava. while it doesn't muffle your voice it has a miniature rebreather for internals. Comfy to boot! This one is a variataion commonly used by the IRMG to protect it's members idenites."
- icon_state = "inteq_balaclava"
- item_state = "inteq_balaclava"
diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm
index 2165baaa2b0e..be896c6cee3c 100644
--- a/code/modules/clothing/neck/_neck.dm
+++ b/code/modules/clothing/neck/_neck.dm
@@ -310,6 +310,23 @@
tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN)
name = "[initial(name)] - [tagname]"
+/obj/item/clothing/neck/dogtag
+ name = "dogtag"
+ desc = "A nondescript dogtag."
+ icon = 'icons/obj/clothing/neck.dmi'
+ icon_state = "dogtag"
+ resistance_flags = FIRE_PROOF
+ w_class = WEIGHT_CLASS_SMALL
+ slot_flags = ITEM_SLOT_NECK | ITEM_SLOT_POCKETS
+
+/obj/item/clothing/neck/dogtag/frontier
+ name = "frontiersman dogtag"
+ desc = "A dogtag marked with the name and rank of a Frontiersmen pirate. You could turn this in to an outpost console contract for money."
+
+/obj/item/clothing/neck/dogtag/ramzi
+ name = "ramzi clique dogtag"
+ desc = "A dogtag marked with the name and rank of a Ramzi Clique pirate. You could turn this in to an outpost console contract for money."
+
//////////////
//DOPE BLING//
//////////////
diff --git a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
index 8401455bf7d8..56f2a677c129 100644
--- a/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
+++ b/code/modules/clothing/outfits/ert/frontiersmen_ert.dm
@@ -1,21 +1,23 @@
/datum/outfit/job/frontiersmen/ert //most basic of grunts
name = "ERT - Frontiersman Basic"
- head = /obj/item/clothing/head/helmet/bulletproof/x11/frontier
- suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier
+ head = /obj/item/clothing/head/beret/sec/frontier
+ suit = /obj/item/clothing/suit/armor/vest/bulletproof
suit_store = /obj/item/gun/ballistic/rifle/illestren
+ belt = /obj/item/storage/belt/security/military/frontiersmen/illestren
uniform = /obj/item/clothing/under/frontiersmen
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/radio/headset/pirate/alt
back = /obj/item/storage/backpack
- l_pocket = /obj/item/flashlight/seclite
- r_pocket = /obj/item/tank/internals/emergency_oxygen/double
+ id = null // lol
+ wallet = null
box = /obj/item/storage/box/survival/frontier
- id = null // lol
+ l_pocket = /obj/item/flashlight/seclite
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/double
- backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/ammo_box/magazine/illestren_a850r=5, /obj/item/grenade/frag=1)
+ backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen)
/datum/outfit/job/frontiersmen/ert/random
name = "ERT - Frontiersman Randomized"
@@ -25,47 +27,56 @@
suit = null
suit_store = null
back = null
+ belt = null
+ gloves = null
+
l_pocket = null
r_pocket = /obj/item/radio
+
backpack_contents = list()
+ box = null
+ backpack = null
+ courierbag = null
+ satchel = null
+ duffelbag = null
+
/datum/outfit/job/frontiersmen/ert/random/pre_equip(mob/living/carbon/human/H, visualsOnly, client/preference_source)
. = ..()
if(visualsOnly)
return
if(prob(90))
- head = pickweight(list(
+ head = pick_weight(list(
/obj/item/clothing/head/beret/sec/frontier = 10,
/obj/item/clothing/head/helmet/bulletproof/x11/frontier = 5,
/obj/item/reagent_containers/glass/bucket = 1))
if(prob(60))
- suit = pickweight(list(
+ suit = pick_weight(list(
/obj/item/clothing/suit/armor/vest = 5,
- /obj/item/clothing/suit/armor/vest/bulletproof/frontier = 5,
+ /obj/item/clothing/suit/armor/vest/frontier = 5,
/obj/item/clothing/suit/armor/vest/scrap = 1))
- if(prob(30))
- mask = pickweight(list(
- /obj/item/clothing/mask/gas/frontiersmen = 5,
- /obj/item/clothing/mask/gas/sechailer/balaclava = 5,
- /obj/item/clothing/mask/breath = 5,
+ if(prob(50))
+ mask = pick_weight(list(
+ /obj/item/clothing/mask/gas/frontiersmen = 12,
+ /obj/item/clothing/mask/balaclava = 10,
+ /obj/item/clothing/mask/breath = 7,
/obj/item/clothing/mask/whistle = 3))
if(prob(90))
- back = pickweight(list(
+ back = pick_weight(list(
/obj/item/storage/backpack = 20,
/obj/item/storage/backpack/satchel = 20,
/obj/item/storage/backpack/messenger = 20,
/obj/item/melee/baton/cattleprod/loaded = 5,
- /obj/item/food/baguette = 2, // yes you can put this on your back
- /obj/item/deployable_turret_folded = 1,
- /obj/item/gun/ballistic/automatic/hmg/skm_lmg/extended = 1,
+ /obj/item/deployable_turret_folded = 4,
+ /obj/item/gun/ballistic/automatic/hmg/skm_lmg/extended = 3,
))
if(prob(90))
- shoes = pickweight(list(
+ shoes = pick_weight(list(
/obj/item/clothing/shoes/jackboots = 10,
/obj/item/clothing/shoes/sneakers = 5,
))
@@ -73,29 +84,32 @@
var/extra_class = pick(list("Doctor", "Breacher", "Ammo Carrier"))
switch(extra_class)
if("Doctor")
- backpack_contents += list(/obj/item/storage/firstaid/regular = 1)
+ backpack_contents += list(/obj/item/storage/firstaid/medical = 1)
gloves = /obj/item/clothing/gloves/color/latex
suit = /obj/item/clothing/suit/frontiersmen
head = /obj/item/clothing/head/frontier
if(prob(50))
- belt = /obj/item/storage/belt/medical/surgery
+ belt = /obj/item/storage/belt/medical/webbing/frontiersmen/combat
if(prob(30))
glasses = /obj/item/clothing/glasses/hud/health
if("Breacher")
- backpack_contents += list(/obj/item/grenade/c4 = 2)
- if(prob(10))
+ backpack_contents += list(/obj/item/grenade/c4 = 2, /obj/item/grenade/smokebomb = 3)
+ if(prob(60))
belt = /obj/item/storage/belt/grenade/full
if("Ammo Carrier")
var/loops = rand(1,3)
for(var/i in 1 to loops)
var/ammotype = pick(list(
- /obj/item/ammo_box/c8x50mm_box,
- /obj/item/ammo_box/c45,
- /obj/item/ammo_box/a357_box,
- /obj/item/ammo_box/c45,
- /obj/item/ammo_box/a4570,
+ /obj/item/storage/box/ammo/a8_50r,
+ /obj/item/storage/box/ammo/c45,
+ /obj/item/storage/box/ammo/a357,
+ /obj/item/storage/box/ammo/c45,
+ /obj/item/storage/box/ammo/a4570,
/obj/item/stock_parts/cell/gun/mini))
- backpack_contents += ammotype
+ if(istype(back, /obj/item/storage/backpack))
+ backpack_contents += ammotype
+ else
+ H.put_in_hands(ammotype, FALSE)
var/weapon = pick(list("Bolt-Action", "Pistol", "Melee"))
switch(weapon)
@@ -113,7 +127,7 @@
/obj/item/gun/ballistic/revolver/shadow,
/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/presawn,
/obj/item/gun/energy/e_gun/mini))
- if(prob(30))
+ if(prob(80))
l_hand = pick(list(
/obj/item/gun/ballistic/automatic/pistol/disposable,
/obj/item/gun/ballistic/automatic/pistol/candor,
@@ -122,7 +136,7 @@
/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/presawn,
/obj/item/gun/energy/e_gun/mini))
if("Melee")
- r_hand = pickweight(list(
+ r_hand = pick_weight(list(
/obj/item/melee/knife/survival = 15,
/obj/item/melee/baseball_bat = 10,
/obj/item/roastingstick = 2,
@@ -130,7 +144,7 @@
/obj/item/melee/flyswatter = 1,
))
-/datum/outfit/job/frontiersmen/ert/grunt //better armed, use for quick creating pirate ships
+/datum/outfit/job/frontiersmen/ert/unarmed //better armed, use for quick creating pirate ships
name = "ERT - Frontiersman Grunt (Unarmed)"
suit_store = null
@@ -138,25 +152,25 @@
backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen)
-/datum/outfit/job/frontiersmen/ert/grunt/skm
+/datum/outfit/job/frontiersmen/ert/skm
name = "ERT - Frontiersman Grunt (SKM-24 AR)"
suit_store = /obj/item/gun/ballistic/automatic/assault/skm
belt = /obj/item/storage/belt/security/military/frontiersmen/skm_ammo
-/datum/outfit/job/frontiersmen/ert/grunt/mauler_mp
+/datum/outfit/job/frontiersmen/ert/mauler_mp
name = "ERT - Frontiersman Grunt (Mauler MP)"
suit_store = /obj/item/gun/ballistic/automatic/pistol/mauler
belt = /obj/item/storage/belt/security/military/frontiersmen/mauler_mp_ammo
-/datum/outfit/job/frontiersmen/ert/grunt/spitter_mp
+/datum/outfit/job/frontiersmen/ert/spitter_mp
name = "ERT - Frontiersman Grunt (Spitter MP)"
suit_store = /obj/item/gun/ballistic/automatic/pistol/spitter
belt = /obj/item/storage/belt/security/military/frontiersmen/spitter_ammo
-/datum/outfit/job/frontiersmen/ert/grunt/pounder_smg
+/datum/outfit/job/frontiersmen/ert/pounder_smg
name = "ERT - Frontiersman Grunt (Pounder SMG)"
suit_store = /obj/item/gun/ballistic/automatic/smg/pounder
@@ -171,12 +185,29 @@
ears = /obj/item/radio/headset/pirate/alt/captain
back = /obj/item/storage/backpack/satchel/leather
suit = /obj/item/clothing/suit/armor/frontier
- suit_store = /obj/item/gun/ballistic/automatic/pistol/deagle
+ suit_store = null
+ belt = /obj/item/gun/ballistic/automatic/pistol/deagle
backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/ammo_box/magazine/m50=2, /obj/item/binoculars=1, /obj/item/melee/knife/survival)
-/datum/outfit/job/frontiersmen/ert/leader/unnarmed
- name = "ERT - Frontiersman Officer (Unnarmed)"
+/datum/outfit/job/frontiersmen/ert/leader/heavy
+ name = "ERT - Frontiersman Officer (Shock Troop)"
+
+ suit = /obj/item/clothing/suit/armor/vest/marine/frontier
+ head = /obj/item/clothing/head/helmet/bulletproof/x11/frontier
+ mask = /obj/item/clothing/mask/breath
+ belt = /obj/item/gun/ballistic/automatic/pistol/deagle/gold // daring today aren't we
+
+ backpack = /obj/item/minigunpack
+ satchel = /obj/item/minigunpack
+ courierbag = /obj/item/minigunpack
+ duffelbag = /obj/item/minigunpack
+
+ backpack_contents = null
+ box = null
+
+/datum/outfit/job/frontiersmen/ert/leader/unarmed
+ name = "ERT - Frontiersman Officer (Unarmed)"
suit_store = null
@@ -190,10 +221,22 @@
mask = /obj/item/clothing/mask/surgical
gloves = /obj/item/clothing/gloves/color/latex/nitrile
belt = /obj/item/storage/belt/medical/webbing/frontiersmen/surgery
- suit_store = /obj/item/gun/ballistic/automatic/pistol/mauler
+ suit = /obj/item/clothing/suit/frontiersmen
+ suit_store = null
- backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/storage/firstaid/medical=1, /obj/item/reagent_containers/hypospray/medipen/stimpack=3, /obj/item/ammo_box/magazine/m9mm_mauler=2)
+ backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/storage/firstaid/regular, /obj/item/ammo_box/magazine/m9mm_mauler = 2, /obj/item/gun/ballistic/automatic/pistol/mauler)
+
+/datum/outfit/job/frontiersmen/ert/medic/heavy
+ name = "ERT - Frontiersman Medic (Shock Troop)"
+
+ head = /obj/item/clothing/head/helmet/bulletproof/x11/frontier
+ mask = /obj/item/clothing/mask/breath/ngr
+ suit = /obj/item/clothing/suit/armor/vest/frontier
+ suit_store = /obj/item/gun/ballistic/automatic/pistol/mauler
+ belt = /obj/item/storage/belt/medical/webbing/frontiersmen/combat
+ glasses = /obj/item/clothing/glasses/hud/health
+ backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/storage/firstaid/medical=1, /obj/item/reagent_containers/hypospray/medipen/stimpack/traitor = 3, /obj/item/ammo_box/magazine/m9mm_mauler=2)
/datum/outfit/job/frontiersmen/ert/engineer
name = "ERT - Frontiersman Engineer"
@@ -215,19 +258,23 @@
suit_store = /obj/item/tank/internals/oxygen/red
uniform = /obj/item/clothing/under/frontiersmen/fireproof
gloves = /obj/item/clothing/gloves/combat
- back = /obj/item/storage/backpack
+ back = /obj/item/storage/backpack/fireproof
belt = /obj/item/storage/belt/security/military/frontiersmen/flamer
l_hand = /obj/item/flamethrower/full/tank
- backpack_contents = list(/obj/item/gun/ballistic/shotgun/doublebarrel/presawn=1,/obj/item/ammo_box/a12g=1,/obj/item/extinguisher=2,/obj/item/radio=1)
+ backpack_contents = list(
+ /obj/item/gun/ballistic/shotgun/doublebarrel/presawn=1, \
+ /obj/item/storage/box/ammo/a12g_slug = 1, \
+ /obj/item/extinguisher = 2, \
+ /obj/item/radio=1)
-/datum/outfit/job/frontiersmen/ert/sentry_lmg
+/datum/outfit/job/frontiersmen/ert/sentry
name = "ERT - Frontiersman Sentry (SKM-24v LMG)"
- head = /obj/item/clothing/head/helmet/marine/frontier
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava
+ head = /obj/item/clothing/head/helmet/frontier
+ mask = /obj/item/clothing/mask/balaclava
suit = /obj/item/clothing/suit/armor/vest/marine/frontier
suit_store = /obj/item/gun/ballistic/automatic/hmg/skm_lmg/drum_mag
gloves = /obj/item/clothing/gloves/combat
@@ -236,17 +283,10 @@
backpack_contents = list(/obj/item/ammo_box/magazine/skm_762_40/drum=2,/obj/item/ammo_box/a357=2,/obj/item/grenade/frag=1,/obj/item/radio=1)
-/datum/outfit/job/frontiersmen/ert/sentry_shredder
+/datum/outfit/job/frontiersmen/ert/sentry/shredder
name = "ERT - Frontiersman Sentry (Shredder LMG)"
- head = /obj/item/clothing/head/helmet/marine/frontier
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava
- suit = /obj/item/clothing/suit/armor/vest/marine/frontier
- gloves = /obj/item/clothing/gloves/combat
-
- belt = /obj/item/gun/ballistic/revolver/mateba
-
-
+ suit_store = null
l_hand = /obj/item/gun/ballistic/automatic/hmg/shredder // this doesnt even fit on the suit storage slot
backpack_contents = list(/obj/item/ammo_box/magazine/m12_shredder=2,/obj/item/ammo_box/a357=2,/obj/item/grenade/frag=1,/obj/item/radio=1)
diff --git a/code/modules/clothing/outfits/ert/gezena_ert.dm b/code/modules/clothing/outfits/ert/gezena_ert.dm
new file mode 100644
index 000000000000..436b7379599e
--- /dev/null
+++ b/code/modules/clothing/outfits/ert/gezena_ert.dm
@@ -0,0 +1,87 @@
+/datum/outfit/job/gezena/ert
+ name = "ERT - PGF Marine Rifleman"
+ id_assignment = "Marine Rifleman"
+ jobtype = /datum/job/officer
+ job_icon = "securityofficer"
+
+ uniform = /obj/item/clothing/under/gezena/marine
+ suit = /obj/item/clothing/suit/armor/gezena/marine
+ head = /obj/item/clothing/head/helmet/gezena
+ belt = /obj/item/storage/belt/military/gezena/bg16
+ gloves = /obj/item/clothing/gloves/gezena/marine
+ shoes = /obj/item/clothing/shoes/combat/gezena
+ neck = /obj/item/clothing/neck/cloak/gezena
+ suit_store = /obj/item/gun/energy/kalix/pgf
+
+ l_pocket = /obj/item/melee/knife/combat
+ r_pocket = /obj/item/flashlight/seclite
+
+ backpack_contents = list(/obj/item/gun/energy/kalix/pistol, /obj/item/stock_parts/cell/gun/kalix = 2, /obj/item/grenade/frag=2)
+
+
+/datum/outfit/job/gezena/ert/gunner
+ name = "ERT - PGF Marine Gunner"
+
+ suit_store = /obj/item/gun/energy/kalix/pgf/heavy // yea there's not much else to put in. sorry
+
+/datum/outfit/job/gezena/ert/engineer
+ name = "ERT - PGF Marine Combat Engineer"
+ id_assignment = "Marine Combat Engineer"
+
+ belt = /obj/item/storage/belt/military/gezena/engineer
+
+/datum/outfit/job/gezena/ert/medic
+ name = "ERT - PGF Marine Medic"
+ id_assignment = "Marine Medic"
+ jobtype = /datum/job/paramedic
+ job_icon = "paramedic"
+
+ belt = /obj/item/storage/belt/medical/gezena/paramedic
+ gloves = /obj/item/clothing/gloves/gezena/marine
+ neck = /obj/item/clothing/neck/cloak/gezena/med
+
+ backpack = /obj/item/storage/backpack/medic
+ satchel = /obj/item/storage/backpack/satchel/med
+ duffelbag = /obj/item/storage/backpack/duffelbag/med
+ courierbag = /obj/item/storage/backpack/messenger/para
+ box = /obj/item/storage/box/survival/medical
+
+ backpack_contents = list(/obj/item/gun/energy/kalix/pistol, /obj/item/stock_parts/cell/gun/kalix = 2, /obj/item/screwdriver)
+
+
+/datum/outfit/job/gezena/ert/leader
+ name = "ERT - PGF Marine Sergeant"
+ id_assignment = "Marine Sergeant"
+ jobtype = /datum/job/hos
+ job_icon = "headofsecurity"
+
+ suit = /obj/item/clothing/suit/armor/gezena/marinecoat
+ head = /obj/item/clothing/head/helmet/gezena
+ gloves = /obj/item/clothing/gloves/gezena/marine
+ shoes = /obj/item/clothing/shoes/combat/gezena
+ neck = /obj/item/clothing/neck/cloak/gezena/lead
+ suit_store = /obj/item/gun/energy/kalix/pgf/heavy
+
+ backpack_contents = list(/obj/item/gun/energy/kalix/pistol, /obj/item/stock_parts/cell/gun/kalix = 2, /obj/item/grenade/smokebomb = 3, /obj/item/binoculars)
+
+
+/datum/outfit/job/gezena/ert/inspector
+ name = "ERT - PGF Naval Observer"
+ id_assignment = "Naval Observer"
+ jobtype = /datum/job/head_of_personnel
+ job_icon = "headofpersonnel"
+
+ head = /obj/item/clothing/head/gezena
+ neck = /obj/item/clothing/neck/cloak/gezena/command
+ uniform = /obj/item/clothing/under/gezena
+ suit = /obj/item/clothing/suit/armor/gezena
+ suit_store = null
+ belt = null
+ gloves = /obj/item/clothing/gloves/gezena
+
+ backpack = /obj/item/storage/backpack/satchel
+ satchel = /obj/item/storage/backpack/satchel
+ duffelbag = /obj/item/storage/backpack/satchel
+ courierbag = /obj/item/storage/backpack/satchel
+
+ backpack_contents = list(/obj/item/folder, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
diff --git a/code/modules/clothing/outfits/ert/indie_ert.dm b/code/modules/clothing/outfits/ert/indie_ert.dm
index 236f9ee75c57..57d737ba0f8a 100644
--- a/code/modules/clothing/outfits/ert/indie_ert.dm
+++ b/code/modules/clothing/outfits/ert/indie_ert.dm
@@ -3,25 +3,18 @@
jobtype = /datum/job/officer
job_icon = "securityofficer"
+ wallet = null
+
head = /obj/item/clothing/head/helmet/sec
ears = /obj/item/radio/headset/alt
- mask = null
uniform = /obj/item/clothing/under/rank/security/officer
- shoes = /obj/item/clothing/shoes/combat/swat
+ shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/color/black
suit = /obj/item/clothing/suit/armor/vest
back = /obj/item/storage/backpack/security
belt = /obj/item/storage/belt/security/full
id = /obj/item/card/id
-/datum/outfit/job/independent/ert/post_equip(mob/living/carbon/human/H, visualsOnly, client/preference_source)
- . = ..()
- if(visualsOnly)
- return
-
- var/obj/item/card/id/W = H.wear_id
- W.access += list(ACCESS_CENT_GENERAL)
-
/datum/outfit/job/independent/ert/emt
name = "ERT - Independent Paramedic"
jobtype = /datum/job/paramedic
@@ -37,6 +30,15 @@
back = /obj/item/storage/backpack/medic
belt = /obj/item/storage/belt/medical/webbing/paramedic
+ backpack_contents = list(/obj/item/storage/firstaid/medical)
+
+/datum/outfit/job/independent/ert/emt/eva
+ name = "ERT - Independent Paramedic (EVA)"
+
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/medical
+ suit_store = /obj/item/tank/internals/oxygen
+
/datum/outfit/job/independent/ert/firefighter
name = "ERT - Independent Firefighter (Standard)"
jobtype = /datum/job/atmos
@@ -44,14 +46,20 @@
head = /obj/item/clothing/head/hardhat/red
uniform = /obj/item/clothing/under/utility
- suit = /obj/item/clothing/suit/fire/firefighter
+ suit = /obj/item/clothing/suit/fire/atmos
suit_store = /obj/item/extinguisher
glasses = /obj/item/clothing/glasses/heat
- mask = /obj/item/clothing/mask/breath
+ belt = null
+ mask = /obj/item/clothing/mask/gas/atmos
shoes = /obj/item/clothing/shoes/workboots
gloves = /obj/item/clothing/gloves/color/black
back = /obj/item/tank/internals/oxygen/red
+ backpack = /obj/item/storage/backpack/fireproof
+ courierbag = /obj/item/storage/backpack/fireproof
+ duffelbag = /obj/item/storage/backpack/fireproof
+ satchel = /obj/item/storage/backpack/fireproof
+
l_pocket = /obj/item/crowbar/red
r_pocket = /obj/item/radio
@@ -61,27 +69,33 @@
job_icon = "paramedic"
mask = /obj/item/clothing/mask/breath/medical
- back = /obj/item/storage/backpack/fireproof
gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil
glasses = /obj/item/clothing/glasses/hud/health
suit_store = /obj/item/tank/internals/emergency_oxygen
l_pocket = /obj/item/extinguisher/mini
- backpack_contents = list(/obj/item/storage/firstaid/fire=1, /obj/item/storage/firstaid/o2=1, /obj/item/radio=1)
+ backpack_contents = list(/obj/item/storage/firstaid/fire=1, /obj/item/storage/firstaid/o2=1)
/datum/outfit/job/independent/ert/firefighter/leader
name = "ERT - Independent Firefighter (Group Captain)"
jobtype = /datum/job/chief_engineer
job_icon = "chiefengineer"
- back = /obj/item/melee/axe/fire
suit = /obj/item/clothing/suit/space/hardsuit/engine
suit_store = /obj/item/tank/internals/oxygen/red
head = null
belt = /obj/item/storage/belt/utility/atmostech
gloves = /obj/item/clothing/gloves/color/yellow
+ backpack_contents = null
+ box = null
+
+ backpack = /obj/item/melee/axe/fire
+ courierbag = /obj/item/melee/axe/fire
+ duffelbag = /obj/item/melee/axe/fire
+ satchel = /obj/item/melee/axe/fire
+
/datum/outfit/job/independent/ert/technician
name = "ERT - Independent Technician"
jobtype = /datum/job/engineer
@@ -90,6 +104,7 @@
head = /obj/item/clothing/head/hardhat
uniform = /obj/item/clothing/under/rank/engineering/engineer
belt = /obj/item/storage/belt/utility/full/engi
+ gloves = /obj/item/clothing/gloves/color/yellow
suit = /obj/item/clothing/suit/toggle/hazard
shoes = /obj/item/clothing/shoes/workboots
back = /obj/item/storage/backpack/industrial
@@ -97,3 +112,61 @@
r_pocket = /obj/item/analyzer
box = /obj/item/storage/box/survival/engineer
+
+/datum/outfit/job/independent/ert/pizza
+ name = "ERT - Independent Pizza Delivery Worker"
+
+ uniform = /obj/item/clothing/under/suit/burgundy
+ neck = /obj/item/clothing/neck/tie/red
+ shoes = /obj/item/clothing/shoes/sneakers/black
+ head = /obj/item/clothing/head/soft/mime
+ suit = null
+ ears = null
+ belt = null
+ gloves = null
+
+
+/datum/outfit/job/independent/ert/janitor
+ name = "ERT - Independent Sanitation Technician"
+ jobtype = /datum/job/janitor
+ job_icon = "janitor"
+
+ uniform = /obj/item/clothing/under/rank/civilian/janitor
+ head = /obj/item/clothing/head/soft/purple
+ ears = /obj/item/radio/headset
+ mask = null
+ shoes = /obj/item/clothing/shoes/combat/swat
+ gloves = /obj/item/clothing/gloves/color/purple
+ suit = null
+ belt = /obj/item/storage/belt/janitor/full
+
+/datum/outfit/job/independent/ert/deathsquad
+ name = "ERT - Death Commando"
+ job_icon = "deathsquad"
+ faction_icon = null
+ id_assignment = "Commando" // i mean. if you have enough time to look at a dsquaddie's id card. why not
+
+ head = null
+ uniform = /obj/item/clothing/under/rank/security/officer/military
+ id = /obj/item/card/id/ert/deathsquad
+ suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
+ shoes = /obj/item/clothing/shoes/combat/swat
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated
+ mask = /obj/item/clothing/mask/gas/sechailer/swat
+ glasses = /obj/item/clothing/glasses/hud/toggle/thermal
+ back = /obj/item/storage/backpack/security
+ suit_store = /obj/item/tank/internals/emergency_oxygen/double
+ belt = /obj/item/gun/ballistic/revolver/mateba
+ ears = /obj/item/radio/headset/alt
+ r_hand = /obj/item/gun/energy/pulse
+
+ l_pocket = /obj/item/melee/energy/sword/saber
+ r_pocket = /obj/item/shield/energy
+
+
+ backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
+ /obj/item/ammo_box/a357=1,\
+ /obj/item/storage/firstaid/regular=1,\
+ /obj/item/storage/box/flashbangs=1,\
+ /obj/item/flashlight=1,\
+ /obj/item/grenade/c4/x4=1)
diff --git a/code/modules/clothing/outfits/ert/inteq_ert.dm b/code/modules/clothing/outfits/ert/inteq_ert.dm
index 9fd796d04516..6513fe11dd47 100644
--- a/code/modules/clothing/outfits/ert/inteq_ert.dm
+++ b/code/modules/clothing/outfits/ert/inteq_ert.dm
@@ -4,31 +4,63 @@
jobtype = /datum/job/officer
job_icon = "securityofficer"
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava/inteq
+ wallet = null
+
+ head = /obj/item/clothing/head/helmet/inteq
+ mask = /obj/item/clothing/mask/balaclava/inteq
glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq
uniform = /obj/item/clothing/under/syndicate/inteq
- suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ suit = /obj/item/clothing/suit/armor/vest
suit_store = /obj/item/gun/ballistic/automatic/assault/skm/inteq
gloves = /obj/item/clothing/gloves/combat
+ shoes = /obj/item/clothing/shoes/combat
ears = /obj/item/radio/headset/inteq/alt
id = /obj/item/card/id
belt = /obj/item/storage/belt/security/webbing/inteq/skm
- back = /obj/item/storage/backpack/fireproof
l_pocket = /obj/item/melee/knife/combat
r_pocket = /obj/item/flashlight/seclite
- backpack_contents = list(/obj/item/radio=1)
+/datum/outfit/job/inteq/ert/eva
+ name = "ERT - Inteq Rifleman (EVA)"
+
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
/datum/outfit/job/inteq/ert/shotgun
name = "ERT - Inteq Shotgunner"
- id_assignment = "Enforcer"
- suit_store = /obj/item/gun/ballistic/shotgun/automatic/combat/compact
- belt = /obj/item/storage/belt/security/webbing/inteq/alt
+ suit_store = /obj/item/gun/ballistic/shotgun/automatic/bulldog/inteq
+ belt = /obj/item/storage/belt/security/webbing/inteq/alt/bulldog
- backpack_contents = list(/obj/item/storage/box/lethalshot=2, /obj/item/radio=1)
+/datum/outfit/job/inteq/ert/shotgun/eva
+ name = "ERT - Inteq Shotgunner (EVA)"
+
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
+
+/datum/outfit/job/inteq/ert/engineer
+ name = "ERT - Inteq Artificer"
+ id_assignment = "Artificer"
+ jobtype = /datum/job/engineer
+ job_icon = "stationengineer"
+
+ head = /obj/item/clothing/head/soft/inteq
+ uniform = /obj/item/clothing/under/syndicate/inteq/artificer
+ belt = /obj/item/storage/belt/utility/full/engi
+ gloves = /obj/item/clothing/gloves/color/yellow
+ suit_store = /obj/item/gun/ballistic/automatic/pistol/commander/inteq
+
+ backpack_contents = list(/obj/item/ammo_box/magazine/co9mm=2)
+
+/datum/outfit/job/inteq/ert/engineer/eva
+ name = "ERT - Inteq Artificer (EVA)"
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
/datum/outfit/job/inteq/ert/medic
name = "ERT - Inteq Corpsman"
@@ -36,13 +68,21 @@
jobtype = /datum/job/paramedic
job_icon = "paramedic"
+ head = /obj/item/clothing/head/soft/inteq/corpsman
uniform = /obj/item/clothing/under/syndicate/inteq/corpsman
belt = /obj/item/storage/belt/medical/webbing/paramedic
- suit_store = null
+ suit = /obj/item/clothing/suit/armor/inteq/corpsman
+ suit_store = /obj/item/healthanalyzer
+
+ backpack_contents = list(/obj/item/storage/firstaid/medical=1)
- l_pocket = /obj/item/healthanalyzer
+/datum/outfit/job/inteq/ert/medic/eva
+ name = "ERT - Inteq Corpsman (EVA)"
- backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/radio=1)
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ suit_store = null
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
/datum/outfit/job/inteq/ert/leader
name = "ERT - Inteq Vanguard"
@@ -50,7 +90,62 @@
jobtype = /datum/job/hos
job_icon = "headofsecurity"
+ head = /obj/item/clothing/head/helmet/inteq
ears = /obj/item/radio/headset/inteq/alt/captain
back = /obj/item/storage/backpack/messenger/inteq
+ belt = /obj/item/storage/belt/security/webbing/inteq/skm_carabine
+ suit = /obj/item/clothing/suit/armor/hos/inteq
+ suit_store = /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq
+ id = /obj/item/card/id/gold
+
+ backpack_contents = list(/obj/item/megaphone/sec)
+
+/datum/outfit/job/inteq/ert/leader/eva
+ name = "ERT - Inteq Vanguard (EVA)"
+
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/inteq
+ r_pocket = /obj/item/tank/internals/emergency_oxygen/engi
+
+/datum/outfit/job/inteq/ert/honor_guard
+ name = "ERT - Inteq Honor Guard"
+ id_assignment = "Guardsman"
+ jobtype = /datum/job/officer
+ job_icon = "inteq"
+
+ uniform = /obj/item/clothing/under/syndicate/inteq
+ suit = /obj/item/clothing/suit/armor/vest/marine
+ belt = /obj/item/storage/belt/military/assault/commander
+ gloves = /obj/item/clothing/gloves/color/white
+ shoes = /obj/item/clothing/shoes/combat
+ head = /obj/item/clothing/head/beret/sec/hos/inteq/honorable
+ mask = /obj/item/clothing/mask/balaclava/inteq
+ ears = /obj/item/radio/headset/inteq/captain
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq
+ r_pocket = /obj/item/restraints/handcuffs
suit_store = /obj/item/gun/ballistic/automatic/pistol/commander/inteq
- id = /obj/item/card/id/silver
+
+ backpack_contents = list(/obj/item/gun/energy/taser)
+
+
+/datum/outfit/job/inteq/ert/inspector
+ name = "ERT - Inteq Mothership Investigator"
+ id_assignment = "Investigator"
+ jobtype = /datum/job/head_of_personnel
+ job_icon = "inteq"
+
+ uniform = /obj/item/clothing/under/syndicate/inteq
+ suit = null
+ suit_store = null
+ belt = /obj/item/clipboard
+ gloves = /obj/item/clothing/gloves/color/black
+ shoes = /obj/item/clothing/shoes/laceup
+ head = /obj/item/clothing/head/beret/sec/inteq
+ mask = null
+ ears = /obj/item/radio/headset/inteq/captain
+ glasses = null
+
+ r_pocket = /obj/item/pen/fourcolor
+ l_pocket = /obj/item/taperecorder
+
+ backpack_contents = list(/obj/item/stamp/inteq, /obj/item/folder, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
diff --git a/code/modules/clothing/outfits/ert/minutemen_ert.dm b/code/modules/clothing/outfits/ert/minutemen_ert.dm
index d5a3ec72e94c..cec786d70789 100644
--- a/code/modules/clothing/outfits/ert/minutemen_ert.dm
+++ b/code/modules/clothing/outfits/ert/minutemen_ert.dm
@@ -1,26 +1,61 @@
-/datum/outfit/job/clip/minutemen/grunt/dressed/bard
- name = "ERT - CLIP Minuteman BARD Specialist"
- id_assignment = "Biohazard Assessment Specialist"
+/datum/outfit/job/clip/minutemen/bard
+ name = "ERT - C-MM BARD Field Agent"
+ id_assignment = "Biohazard Assessment Field Agent"
+ jobtype = /datum/job/virologist
+ job_icon = "virologist" // can someone resprite the biosuits already
+
+ wallet = null
+
+ uniform = /obj/item/clothing/under/clip/formal/with_shirt
+ head = /obj/item/clothing/head/clip
+ mask = /obj/item/clothing/mask/surgical
+ gloves = /obj/item/clothing/gloves/color/latex
+
+ backpack = /obj/item/storage/backpack/satchel/sec/clip
+ satchel = /obj/item/storage/backpack/satchel/sec/clip
+ courierbag = /obj/item/storage/backpack/satchel/sec/clip
+ duffelbag = /obj/item/storage/backpack/satchel/sec/clip
+
+ l_pocket = /obj/item/taperecorder
+ r_pocket = /obj/item/flashlight
+
+ backpack_contents = list(/obj/item/clothing/mask/gas/clip,
+ /obj/item/evidencebag = 2,
+ /obj/item/camera,
+ /obj/item/storage/firstaid/toxin,
+ )
+
+/datum/outfit/job/clip/minutemen/bard/emergency
+ name = "ERT - C-MM BARD Xenofauna Specialist"
+ id_assignment = "Biohazard Assessment Xenofauna Specialist"
job_icon = "clip_cmm2"
+ uniform = /obj/item/clothing/under/clip/minutemen
suit = /obj/item/clothing/suit/armor/vest/marine/heavy
- suit_store = /obj/item/gun/ballistic/shotgun/cm15
+ suit_store = /obj/item/gun/ballistic/shotgun/cm15/incendiary
mask = /obj/item/clothing/mask/gas/clip
head = /obj/item/clothing/head/helmet/riot/clip
- belt = /obj/item/storage/belt/military/clip/cm15
+ belt = /obj/item/storage/belt/military/clip/cm15_inc
glasses = /obj/item/clothing/glasses/hud/health/night
r_pocket = /obj/item/melee/knife/combat
l_pocket = /obj/item/extinguisher/mini
+ shoes = /obj/item/clothing/shoes/combat
+
+ backpack = /obj/item/storage/backpack/ert
+ satchel = /obj/item/storage/backpack/ert
+ courierbag = /obj/item/storage/backpack/ert
+ duffelbag = /obj/item/storage/backpack/ert
backpack_contents = list(
/obj/item/flashlight/seclite = 1,
/obj/item/storage/box/flares = 1
)
-/datum/outfit/job/clip/minutemen/grunt/dressed/bard/medic
- name = "ERT - CLIP Minuteman BARD Medical Specialist"
- id_assignment = "Corpsman"
+/datum/outfit/job/clip/minutemen/bard/emergency/medic
+ name = "ERT - C-MM BARD Medical Specialist"
+ id_assignment = "Biohazard Assessment Medical Aid Specialist"
+ uniform = /obj/item/clothing/under/clip/medic
suit = /obj/item/clothing/suit/armor/vest/marine
suit_store = /obj/item/gun/ballistic/automatic/smg/cm5
belt = /obj/item/storage/belt/medical/webbing/clip/prefilled
@@ -31,11 +66,17 @@
/obj/item/flashlight/seclite = 1,
/obj/item/defibrillator/compact/loaded = 1,
/obj/item/storage/firstaid/advanced = 1,
- /obj/item/ammo_box/magazine/smgm9mm = 2
+ /obj/item/ammo_box/magazine/cm5_9mm = 2
)
-/datum/outfit/job/clip/minutemen/grunt/dressed/bard/flamer
- name = "ERT - CLIP Minuteman BARD Flamethrower Specialist"
+ backpack = /obj/item/storage/backpack/ert/medical
+ satchel = /obj/item/storage/backpack/ert/medical
+ courierbag = /obj/item/storage/backpack/ert/medical
+ duffelbag = /obj/item/storage/backpack/ert/medical
+
+/datum/outfit/job/clip/minutemen/bard/emergency/flamer
+ name = "ERT - C-MM BARD Flamethrower Specialist"
+ id_assignment = "Biohazard Assessment Fire Control Specialist"
suit = /obj/item/clothing/suit/armor/vest/marine/medium
suit_store = /obj/item/flamethrower/full/tank
@@ -46,17 +87,15 @@
backpack_contents = list(
/obj/item/flashlight/seclite = 1,
/obj/item/extinguisher = 1,
- /obj/item/gun/ballistic/automatic/pistol/commander = 1 // replace commander with the cm23 when it is implemented
+ /obj/item/gun/ballistic/automatic/pistol/cm23 = 1
)
-
-/datum/outfit/job/clip/minutemen/grunt/dressed/bard/leader
- name = "ERT - CLIP Minuteman BARD Specialist Sergeant"
- id_assignment = "Biohazard Assessment Sergeant"
- job_icon = "clip_cmm3"
+/datum/outfit/job/clip/minutemen/bard/emergency/leader
+ name = "ERT - C-MM BARD Master Sergeant"
+ id_assignment = "Master Sergeant"
+ job_icon = "clip_cmm4"
belt = /obj/item/storage/belt/military/clip/e50
- uniform = /obj/item/clothing/under/clip/officer
suit = /obj/item/clothing/suit/armor/vest/marine
suit_store = /obj/item/gun/energy/laser/e50/clip
r_pocket = /obj/item/grenade/c4
@@ -65,36 +104,79 @@
backpack_contents = list(
/obj/item/storage/box/flares = 1,
/obj/item/grenade/c4 = 2,
+ /obj/item/grenade/smokebomb = 2,
/obj/item/flashlight/seclite = 1
)
-/datum/outfit/job/clip/minutemen/grunt/dressed/riot
- name = "ERT - CLIP Minuteman Riot Officer"
- job_icon = "securityofficerOld"
+/datum/outfit/job/clip/minutemen/military_police
+ name = "ERT - C-MM Military Police"
+ id_assignment = "Military Police"
+ job_icon = "clip_cmm3"
+
+ ears = /obj/item/radio/headset/clip/alt
+ suit = /obj/item/clothing/suit/armor/vest/bulletproof
+ head = /obj/item/clothing/head/clip/slouch
+ glasses = /obj/item/clothing/glasses/sunglasses
+ belt = /obj/item/storage/belt/security/full
+ shoes = /obj/item/clothing/shoes/jackboots
+ gloves = /obj/item/clothing/gloves/color/white
+
+ l_pocket = /obj/item/flashlight/seclite
+ r_pocket = /obj/item/melee/knife/combat
+
+/datum/outfit/job/clip/minutemen/military_police/riot
+ name = "ERT - C-MM Military Police (Riot Control)"
suit = /obj/item/clothing/suit/armor/riot/clip
+ mask = /obj/item/clothing/mask/balaclava/combat
+ glasses = /obj/item/clothing/glasses/sunglasses/big
+ gloves = /obj/item/clothing/gloves/combat
head = /obj/item/clothing/head/helmet/riot/clip
l_hand = /obj/item/melee/baton/loaded
- back = /obj/item/shield/riot
- belt = /obj/item/gun/ballistic/automatic/smg/cm5/no_mag
- r_pocket = /obj/item/ammo_box/magazine/smgm9mm/rubber
- l_pocket = /obj/item/ammo_box/magazine/smgm9mm/rubber
+ belt = /obj/item/gun/ballistic/automatic/smg/cm5/rubber
+
+ r_pocket = /obj/item/ammo_box/magazine/cm5_9mm/rubber
+ l_pocket = /obj/item/reagent_containers/spray/pepper
backpack_contents = null
box = null
- backpack = null
- duffelbag = null
- courierbag = null
- satchel = null
+ backpack = /obj/item/shield/riot
+ duffelbag = /obj/item/shield/riot
+ courierbag = /obj/item/shield/riot
+ satchel = /obj/item/shield/riot
-/datum/outfit/job/clip/minutemen/grunt/dressed/riot/leader
- name = "ERT - CLIP Minutemen Riot Officer Sergeant"
- id_assignment = "Security Sergeant"
- job_icon = "lieutenant"
+/datum/outfit/job/clip/minutemen/military_police/leader
+ name = "ERT - C-MM Chief Military Police"
+ id_assignment = "Chief Military Police"
+ job_icon = "clip_cmm4"
+ head = /obj/item/clothing/head/clip/slouch/officer
+ uniform = /obj/item/clothing/under/clip/officer
ears = /obj/item/radio/headset/clip/alt/captain
- back = /obj/item/shield/riot/flash
+
+/datum/outfit/job/clip/minutemen/military_police/leader/riot
+ name = "ERT - C-MM Chief Military Police (Riot Control)"
+
+ suit = /obj/item/clothing/suit/armor/riot/clip
+ mask = /obj/item/clothing/mask/balaclava/combat
+ glasses = /obj/item/clothing/glasses/sunglasses/big
+ gloves = /obj/item/clothing/gloves/tackler/combat
+ head = /obj/item/clothing/head/helmet/riot/clip
+ suit_store = /obj/item/melee/baton/loaded
+ l_hand = /obj/item/megaphone/command
+ belt = /obj/item/gun/ballistic/automatic/smg/cm5/rubber
+
+ r_pocket = /obj/item/assembly/flash/handheld
+ l_pocket = /obj/item/ammo_box/magazine/cm5_9mm/rubber
+
+ backpack_contents = null
+ box = null
+
+ backpack = /obj/item/shield/riot/flash
+ duffelbag = /obj/item/shield/riot/flash
+ courierbag = /obj/item/shield/riot/flash
+ satchel = /obj/item/shield/riot/flash
/datum/outfit/job/clip/minutemen/grunt/dressed/hardsuit
name = "CLIP Minutemen - Minuteman (Spotter Hardsuit)"
diff --git a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm
index 1ca40cd640e3..49a01ae5693b 100644
--- a/code/modules/clothing/outfits/ert/nanotrasen_ert.dm
+++ b/code/modules/clothing/outfits/ert/nanotrasen_ert.dm
@@ -1,464 +1,72 @@
-// this is where the base ERT outfit goes
-/datum/outfit/centcom/ert
- name = "ERT Common"
-
- mask = /obj/item/clothing/mask/gas/sechailer
- uniform = /obj/item/clothing/under/rank/centcom/official
- shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/combat
- ears = /obj/item/radio/headset/headset_cent/alt
-
-/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/human, visualsOnly = FALSE)
- if(visualsOnly)
- return
-
- var/obj/item/card/id/id = human.wear_id
- if(id)
- id.registered_name = human.real_name
- id.update_label()
- ..()
-
-/datum/outfit/centcom/ert/commander
- name = "ERT Commander"
-
- id = /obj/item/card/id/ert
- suit = /obj/item/clothing/suit/space/hardsuit/ert
- suit_store = /obj/item/gun/energy/e_gun/hades
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses
- back = /obj/item/storage/backpack/ert
- belt = /obj/item/storage/belt/security/full
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1)
- l_pocket = /obj/item/melee/knife/switchblade
-
-/datum/outfit/centcom/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/heads/captain
- R.recalculateChannels()
-
-/datum/outfit/centcom/ert/commander/alert
- name = "ERT Commander - High Alert"
-
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- glasses = /obj/item/clothing/glasses/thermal/eyepatch
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/gun/energy/pulse/pistol=1)
- l_pocket = /obj/item/melee/transforming/energy/sword/saber
-
-/datum/outfit/centcom/ert/security
- name = "ERT Security"
-
- id = /obj/item/card/id/ert/security
- suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
- suit_store = /obj/item/gun/energy/e_gun/hades
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses
- gloves = /obj/item/clothing/gloves/tackler/combat/insulated
- back = /obj/item/storage/backpack/ert/security
- belt = /obj/item/storage/belt/security/full
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/storage/box/handcuffs=1,
- /obj/item/melee/baton/loaded=1)
-
-/datum/outfit/centcom/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/headset_com
- R.recalculateChannels()
-
-/datum/outfit/centcom/ert/security/alert
- name = "ERT Security - High Alert"
-
- suit_store = /obj/item/gun/energy/pulse/carbine
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/storage/box/handcuffs=1,\
- /obj/item/melee/baton/loaded=1)
-
-/datum/outfit/centcom/ert/medic
- name = "ERT Medic"
-
- id = /obj/item/card/id/ert/medical
- suit = /obj/item/clothing/suit/space/hardsuit/ert/med
- suit_store = /obj/item/gun/energy/e_gun/hades
- glasses = /obj/item/clothing/glasses/hud/health
- back = /obj/item/storage/backpack/ert/medical
- belt = /obj/item/storage/belt/medical
- r_hand = /obj/item/storage/firstaid/regular
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/reagent_containers/hypospray/combat=1,\
- /obj/item/gun/medbeam=1)
-
-/datum/outfit/centcom/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/headset_com
- R.recalculateChannels()
-
-/datum/outfit/centcom/ert/medic/alert
- name = "ERT Medic - High Alert"
-
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/gun/energy/pulse/pistol=1,\
- /obj/item/reagent_containers/hypospray/combat/nanites=1,\
- /obj/item/gun/medbeam=1)
-
-/datum/outfit/centcom/ert/engineer
- name = "ERT Engineer"
-
- id = /obj/item/card/id/ert/engineer
- suit = /obj/item/clothing/suit/space/hardsuit/ert/engi
- suit_store = /obj/item/gun/energy/e_gun/hades
- glasses = /obj/item/clothing/glasses/meson/engine
- back = /obj/item/storage/backpack/ert/engineer
- belt = /obj/item/storage/belt/utility/full
- l_pocket = /obj/item/rcd_ammo/large
- r_hand = /obj/item/storage/firstaid/regular
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/construction/rcd/loaded=1)
-
-
-/datum/outfit/centcom/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
+/datum/outfit/job/nanotrasen/ert
+ name = "ERT - Nanotrasen Vigilitas Security Officer"
+ jobtype = /datum/job/officer
+ job_icon = "securityofficer"
- if(visualsOnly)
- return
+ wallet = null
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/headset_com
- R.recalculateChannels()
+ ears = /obj/item/radio/headset/headset_sec/alt
+ uniform = /obj/item/clothing/under/nanotrasen/security
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/nanotrasen/cap/security
+ suit = /obj/item/clothing/suit/armor/nanotrasen
+ suit_store = /obj/item/gun/ballistic/automatic/pistol/commander
+ dcoat = /obj/item/clothing/suit/hooded/wintercoat/security
+ shoes = /obj/item/clothing/shoes/jackboots
-/datum/outfit/centcom/ert/engineer/alert
- name = "ERT Engineer - High Alert"
+ backpack = /obj/item/storage/backpack/security
+ satchel = /obj/item/storage/backpack/satchel/sec
+ duffelbag = /obj/item/storage/backpack/duffelbag/sec
+ courierbag = /obj/item/storage/backpack/messenger/sec
+ box = /obj/item/storage/box/survival/security
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/gun/energy/pulse/pistol=1,\
- /obj/item/construction/rcd/combat=1)
+ backpack_contents = list(/obj/item/ammo_box/magazine/co9mm = 3)
-// official
+ implants = list(/obj/item/implant/weapons_auth)
-/datum/outfit/centcom/centcom_official
- name = "CentCom Official"
+/datum/outfit/job/nanotrasen/ert/inspector
+ name = "ERT - Nanotrasen CentCom Inspector"
+ id_assignment = "Inspector"
+ job_icon = "centcom"
+ head = null
uniform = /obj/item/clothing/under/rank/centcom/official
shoes = /obj/item/clothing/shoes/sneakers/black
gloves = /obj/item/clothing/gloves/color/black
+ suit = null
+ suit_store = null
ears = /obj/item/radio/headset/headset_cent
glasses = /obj/item/clothing/glasses/sunglasses
- belt = /obj/item/gun/energy/e_gun
- l_pocket = /obj/item/pen
- back = /obj/item/storage/backpack/satchel
- r_pocket = /obj/item/pda/heads
- l_hand = /obj/item/clipboard
+ belt = /obj/item/clipboard
id = /obj/item/card/id/centcom
- backpack_contents = list(/obj/item/stamp/centcom=1)
-
-/datum/outfit/centcom/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- if(visualsOnly)
- return
- var/obj/item/pda/heads/pda = H.r_store
- pda.owner = H.real_name
- pda.ownjob = "CentCom Official"
- pda.update_label()
-
- var/obj/item/card/id/W = H.wear_id
- W.access = get_centcom_access("CentCom Official")
- W.access += ACCESS_WEAPONS
- W.assignment = "CentCom Official"
- W.registered_name = H.real_name
- W.update_label()
- ..()
-
-/datum/outfit/centcom/ert/janitor
- name = "ERT Janitor"
-
- id = /obj/item/card/id/ert/janitor
- suit = /obj/item/clothing/suit/space/hardsuit/ert/jani
- glasses = /obj/item/clothing/glasses/night
- back = /obj/item/storage/backpack/ert/janitor
- belt = /obj/item/storage/belt/janitor/full
- r_pocket = /obj/item/grenade/chem_grenade/cleaner
- l_pocket = /obj/item/grenade/chem_grenade/cleaner
- l_hand = /obj/item/storage/bag/trash/bluespace
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/storage/box/lights/mixed=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/mop/advanced=1,\
- /obj/item/reagent_containers/glass/bucket=1,\
- /obj/item/grenade/clusterbuster/cleaner=1)
-
-/datum/outfit/centcom/ert/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/R = H.ears
- R.keyslot = new /obj/item/encryptionkey/headset_com
- R.recalculateChannels()
+ l_pocket = /obj/item/pen
+ r_pocket = /obj/item/pda/heads
-/datum/outfit/centcom/ert/janitor/heavy
- name = "ERT Janitor - Heavy Duty"
+ backpack_contents = list(/obj/item/stamp/nanotrasen/central, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- r_hand = /obj/item/reagent_containers/spray/chemsprayer/janitor
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/storage/box/lights/mixed=1,\
- /obj/item/melee/baton/loaded=1,\
- /obj/item/grenade/clusterbuster/cleaner=3)
+// /datum/outfit/job/nanotrasen/ert/emergency
+// name = "ERT - Vigilitas Emergency Response Officer"
-/datum/outfit/centcom/centcom_intern
- name = "CentCom Intern"
+/datum/outfit/job/nanotrasen/ert/leader
+ name = "ERT - Nanotrasen Vigilitas Security Corporal"
+ jobtype = /datum/job/hos
+ job_icon = "lieutenant"
- uniform = /obj/item/clothing/under/rank/centcom/intern
- shoes = /obj/item/clothing/shoes/sneakers/black
+ ears = /obj/item/radio/headset/headset_sec/alt
+ uniform = /obj/item/clothing/under/nanotrasen/security
gloves = /obj/item/clothing/gloves/color/black
- ears = /obj/item/radio/headset/headset_cent
- glasses = /obj/item/clothing/glasses/sunglasses
- belt = /obj/item/melee/classic_baton
- r_hand = /obj/item/gun/ballistic/rifle/illestren
- back = /obj/item/storage/backpack/satchel
- l_pocket = /obj/item/ammo_box/magazine/illestren_a850r
- r_pocket = /obj/item/ammo_box/magazine/illestren_a850r
- id = /obj/item/card/id/centcom
- backpack_contents = list(/obj/item/storage/box/survival = 1)
-/datum/outfit/centcom/centcom_intern/unarmed
- name = "CentCom Intern (Unarmed)"
- belt = null
- l_hand = null
- l_pocket = null
- r_pocket = null
-
-/datum/outfit/centcom/centcom_intern/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- if(visualsOnly)
- return
-
- var/obj/item/card/id/W = H.wear_id
- W.access = get_centcom_access(name)
- W.access += ACCESS_WEAPONS
- W.assignment = name
- W.registered_name = H.real_name
- W.update_label()
-
-/datum/outfit/centcom/centcom_intern/leader
- name = "CentCom Head Intern"
- belt = /obj/item/melee/baton/loaded
- suit = /obj/item/clothing/suit/armor/vest
- suit_store = /obj/item/gun/ballistic/rifle/illestren
- r_hand = /obj/item/megaphone
- head = /obj/item/clothing/head/intern
-
-/datum/outfit/centcom/centcom_intern/leader/unarmed // i'll be nice and let the leader keep their baton and vest
- name = "CentCom Head Intern (Unarmed)"
- suit_store = null
- l_pocket = null
- r_pocket = null
-
-// Marine
-
-/datum/outfit/centcom/ert/marine
- name = "Marine Commander"
-
- id = /obj/item/card/id/ert
- suit = /obj/item/clothing/suit/armor/vest/marine
- back = /obj/item/storage/backpack/ert
- backpack_contents = list(
- /obj/item/storage/box/survival/engineer = 1,
- /obj/item/gun_voucher/nanotrasen = 1
-)
- belt = /obj/item/storage/belt/military/assault
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch
- l_pocket = /obj/item/melee/knife/combat
- r_pocket = /obj/item/tank/internals/emergency_oxygen/double
- uniform = /obj/item/clothing/under/rank/security/officer/military
- accessory = /obj/item/clothing/accessory/holster/marine
- mask = /obj/item/clothing/mask/gas/sechailer
- head = /obj/item/clothing/head/helmet/marine
-
-/datum/outfit/centcom/ert/marine/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
- var/obj/item/radio/headset = H.ears
- headset.keyslot = new /obj/item/encryptionkey/heads/captain
- headset.recalculateChannels()
-
-/datum/outfit/centcom/ert/marine/security
- name = "Marine Heavy"
-
- id = /obj/item/card/id/ert/security
- suit = /obj/item/clothing/suit/armor/vest/marine/heavy
- back = /obj/item/storage/backpack/ert/security
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses
- head = /obj/item/clothing/head/helmet/marine/security
-
-/datum/outfit/centcom/ert/marine/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/headset = H.ears
- headset.keyslot = new /obj/item/encryptionkey/headset_com
- headset.recalculateChannels()
-
-/datum/outfit/centcom/ert/marine/medic
- name = "Marine Medic"
-
- id = /obj/item/card/id/ert/medical
- suit = /obj/item/clothing/suit/armor/vest/marine
- accessory = /obj/item/clothing/accessory/holster/marine
- back = /obj/item/storage/backpack/ert/medical
- l_pocket = /obj/item/healthanalyzer
- head = /obj/item/clothing/head/helmet/marine/medic
- backpack_contents = list(
- /obj/item/storage/box/survival/engineer = 1,
- /obj/item/gun_voucher/nanotrasen = 1,
- /obj/item/reagent_containers/hypospray/combat = 1,
- /obj/item/storage/firstaid/regular = 1,
- /obj/item/storage/firstaid/advanced = 1
-)
- belt = /obj/item/storage/belt/medical/paramedic
- glasses = /obj/item/clothing/glasses/hud/health/sunglasses
-
-/datum/outfit/centcom/ert/marine/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/headset = H.ears
- headset.keyslot = new /obj/item/encryptionkey/headset_com
- headset.recalculateChannels()
-
-/datum/outfit/centcom/ert/marine/engineer
- name = "Marine Engineer"
-
- id = /obj/item/card/id/ert/engineer
- suit = /obj/item/clothing/suit/armor/vest/marine/medium
- head = /obj/item/clothing/head/helmet/marine/engineer
- back = /obj/item/storage/backpack/ert/engineer
- backpack_contents = list(
- /obj/item/storage/box/survival/engineer = 1,
- /obj/item/gun_voucher/nanotrasen = 1,
- /obj/item/rcd_ammo/large = 2,
- )
- r_hand = /obj/item/deployable_turret_folded
- uniform = /obj/item/clothing/under/rank/security/officer/military/eng
- belt = /obj/item/storage/belt/utility/full/ert
- glasses = /obj/item/clothing/glasses/hud/diagnostic/sunglasses
-
-/datum/outfit/centcom/ert/marine/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- ..()
-
- if(visualsOnly)
- return
-
- var/obj/item/radio/headset = H.ears
- headset.keyslot = new /obj/item/encryptionkey/headset_com
- headset.recalculateChannels()
-
-// Loss Prevention
-/datum/outfit/job/nanotrasen/security/ert/lp
- name = "ERT - Loss Prevention Security Specialist"
- jobtype = /datum/job/officer
- job_icon = "securityresponseofficer"
-
- head = null
- implants = list(/obj/item/implant/mindshield)
- ears = /obj/item/radio/headset/nanotrasen/alt
- id = /obj/item/card/id/lpsec
- suit_store = /obj/item/gun/energy/laser/scatter/shotty
- belt = /obj/item/storage/belt/security/full
- glasses = /obj/item/clothing/glasses/sunglasses
- gloves = /obj/item/clothing/gloves/tackler/combat
- suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/sec
- uniform = /obj/item/clothing/under/rank/security/head_of_security/nt/lp
- shoes = /obj/item/clothing/shoes/jackboots
- back = /obj/item/storage/backpack/ert/security
-
- box = /obj/item/storage/box/survival/security
+ head = /obj/item/clothing/head/nanotrasen/beret/security
+ suit = /obj/item/clothing/suit/armor/nanotrasen/slim
l_pocket = /obj/item/restraints/handcuffs
- r_pocket = /obj/item/melee/knife/combat
-
- backpack_contents = list(/obj/item/radio=1, /obj/item/stock_parts/cell/gun/upgraded=2, /obj/item/screwdriver=1)
-
-
-/datum/outfit/job/nanotrasen/security/ert/lp/medic
- name = "ERT - Loss Prevention Medical Specialist"
- jobtype = /datum/job/doctor
- job_icon = "medicalresponseofficer"
+ r_pocket = /obj/item/assembly/flash/handheld
+ backpack_contents = null
- head = null
- uniform = /obj/item/clothing/under/rank/medical/paramedic/lp
- suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/med
- id = /obj/item/card/id/lpmed
- gloves = /obj/item/clothing/gloves/color/latex/nitrile
- back = /obj/item/storage/backpack/ert/medical
- belt = /obj/item/storage/belt/medical/surgery
-
- box = /obj/item/storage/box/survival/medical
- l_pocket = /obj/item/healthanalyzer
- r_pocket = /obj/item/reagent_containers/hypospray/medipen/atropine
-
- backpack_contents = list(/obj/item/storage/firstaid/medical=1, /obj/item/radio=1)
-
-
-/datum/outfit/job/nanotrasen/security/ert/lp/engineer
- name = "ERT - Loss Prevention Engineering Specialist"
- jobtype = /datum/job/engineer
- job_icon = "engineeringresponseofficer"
-
- head = null
- uniform = /obj/item/clothing/under/rank/engineering/engineer/nt/lp
- suit = /obj/item/clothing/suit/space/hardsuit/ert/lp/engi
- id = /obj/item/card/id/lpengie
- belt = /obj/item/storage/belt/utility/full
- gloves = /obj/item/clothing/gloves/color/yellow
- glasses = /obj/item/clothing/glasses/welding
- back = /obj/item/storage/backpack/ert/engineer
-
- box = /obj/item/storage/box/survival/engineer
- l_pocket = /obj/item/extinguisher/mini
- r_pocket = /obj/item/wrench/combat
-
- backpack_contents = list(/obj/item/stack/sheet/metal/fifty=1, /obj/item/stack/sheet/glass/fifty=1, /obj/item/radio=1)
+// /datum/outfit/job/nanotrasen/ert/leader/emergency
+// name = "ERT - Vigilitas Emergency Response Lieutenant"
-/datum/outfit/job/nanotrasen/security/ert/lp/lieutenant
- name = "ERT - Loss Prevention Lieutenant"
- jobtype = /datum/job/captain
- job_icon = "emergencyresponseteamcommander"
-
- head = null
- ears = /obj/item/radio/headset/nanotrasen/alt/captain
- id = /obj/item/card/id/lplieu
- belt = /obj/item/storage/belt/military/army
- gloves = /obj/item/clothing/gloves/color/black
- uniform = /obj/item/clothing/under/rank/security/warden/lp
- suit = /obj/item/clothing/suit/space/hardsuit/ert/lp
- shoes = /obj/item/clothing/shoes/combat
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses
- back = /obj/item/storage/backpack/ert
+// /datum/outfit/job/nanotrasen/ert/emergency/medic
+// name = "ERT - Vigilitas Emergency Response Medic"
- l_pocket = /obj/item/megaphone/command
- r_pocket = /obj/item/binoculars
+// /datum/outfit/job/nanotrasen/ert/emergency/engineer
+// name = "ERT - Vigilitas Emergency Response Engineer"
diff --git a/code/modules/clothing/outfits/ert/roumain_ert.dm b/code/modules/clothing/outfits/ert/roumain_ert.dm
new file mode 100644
index 000000000000..efe7828173be
--- /dev/null
+++ b/code/modules/clothing/outfits/ert/roumain_ert.dm
@@ -0,0 +1,131 @@
+/datum/outfit/job/roumain/ert
+ name = "ERT - Saint-Roumain Hunter" // flaming arrow and shadow
+ id_assignment = "Hunter"
+ jobtype = /datum/job/officer
+ job_icon = "srm_hunter"
+
+ wallet = null
+
+ uniform = /obj/item/clothing/under/suit/roumain
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ suit = /obj/item/clothing/suit/armor/roumain
+ head = /obj/item/clothing/head/cowboy/sec/roumain
+ belt = /obj/item/gun/ballistic/revolver/shadow
+ suit_store = /obj/item/gun/ballistic/shotgun/flamingarrow/factory
+
+ l_pocket = /obj/item/ammo_box/a44roum_speedloader
+ r_pocket = /obj/item/flashlight/lantern
+
+ duffelbag = /obj/item/storage/backpack/satchel/leather
+ courierbag = /obj/item/storage/backpack/satchel/leather
+ backpack = /obj/item/storage/backpack/satchel/leather
+ satchel = /obj/item/storage/backpack/satchel/leather
+ box = null
+
+ backpack_contents = list(/obj/item/ammo_box/a44roum_speedloader = 2, /obj/item/storage/box/ammo/c38)
+
+/datum/outfit/job/roumain/ert/firestorm
+ name = "ERT - Saint-Roumain Hunter (Firestorm)" // firestorm and shadow
+
+ belt = /obj/item/gun/ballistic/revolver/shadow
+ suit_store = /obj/item/gun/ballistic/automatic/smg/firestorm/pan
+
+ l_pocket = /obj/item/ammo_box/a44roum_speedloader
+
+ backpack_contents = list(/obj/item/ammo_box/magazine/c45_firestorm_mag/pan = 3, /obj/item/ammo_box/a44roum_speedloader = 2, /obj/item/storage/box/ammo/a44roum)
+
+/datum/outfit/job/roumain/ert/vickland
+ name = "ERT - Saint-Roumain Hunter (Vickland)" // vickland and candor
+
+ belt = /obj/item/gun/ballistic/automatic/pistol/candor/factory
+ suit_store = /obj/item/gun/ballistic/automatic/marksman/vickland
+
+ l_pocket = /obj/item/ammo_box/magazine/m45
+
+ backpack_contents = list(/obj/item/ammo_box/vickland_a308 = 6, /obj/item/storage/box/ammo/a308, /obj/item/ammo_box/magazine/m45 = 2)
+
+/datum/outfit/job/roumain/ert/scout
+ name = "ERT - Saint-Roumain Hunter (Scout)" // scout and detective special
+
+ belt = /obj/item/gun/ballistic/revolver/detective
+ suit_store = /obj/item/gun/ballistic/rifle/scout
+
+ backpack_contents = list(/obj/item/ammo_box/a300 = 5)
+
+/datum/outfit/job/roumain/ert/medic
+ name = "ERT - Saint-Roumain Hunter Doctor"
+ id_assignment = "Hunter Doctor"
+ job_icon = "srm_doctor"
+ jobtype = /datum/job/doctor
+
+ uniform = /obj/item/clothing/under/suit/roumain
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ suit = /obj/item/clothing/suit/toggle/labcoat/roumain_med
+ suit_store = null
+ head = /obj/item/clothing/head/cowboy/sec/roumain/med
+ mask = /obj/item/clothing/mask/gas/plaguedoctor
+ gloves = null
+
+/datum/outfit/job/roumain/ert/engineer
+ name = "ERT - Saint-Roumain Machinist"
+ id_assignment = "Machinist"
+ job_icon = "srm_machinist"
+ jobtype = /datum/job/engineer
+
+ uniform = /obj/item/clothing/under/suit/roumain
+ alt_uniform = null
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ belt = /obj/item/storage/belt/utility/full/engi
+ suit = /obj/item/clothing/suit/hazardvest/roumain
+ suit_store = null
+ head = /obj/item/clothing/head/cowboy/sec/roumain/machinist
+ glasses = /obj/item/clothing/glasses/welding
+ accessory = /obj/item/clothing/accessory/waistcoat/roumain
+ gloves = /obj/item/clothing/gloves/color/yellow
+
+
+/datum/outfit/job/roumain/ert/leader
+ name = "ERT - Saint-Roumain Hunter Montagne" // flaming bolt and montagne
+ id_assignment = "Hunter Montagne"
+ job_icon = "srm_montagne"
+ jobtype = /datum/job/captain
+
+ ears = /obj/item/radio/headset/headset_com/alt
+ uniform = /obj/item/clothing/under/suit/roumain
+ shoes = /obj/item/clothing/shoes/cowboy
+ suit = /obj/item/clothing/suit/armor/roumain/montagne
+ suit_store = /obj/item/gun/ballistic/shotgun/flamingarrow/bolt
+ belt = /obj/item/gun/ballistic/revolver/montagne
+ head = /obj/item/clothing/head/cowboy/sec/roumain/montagne
+ id = /obj/item/card/id/gold
+
+ duffelbag = /obj/item/storage/backpack/cultpack
+ courierbag = /obj/item/storage/backpack/cultpack
+ backpack = /obj/item/storage/backpack/cultpack
+ satchel = /obj/item/storage/backpack/cultpack
+
+/datum/outfit/job/roumain/ert/leader/twobore
+ name = "ERT - Saint-Roumain Hunter Montagne (Huntsman)" // huntsman (twobore) and montagne
+
+ suit_store = /obj/item/gun/ballistic/shotgun/doublebarrel/twobore
+
+ l_pocket = /obj/item/ammo_box/a357
+
+ backpack_contents = list(/obj/item/ammo_casing/shotgun/buckshot/twobore = 8)
+
+/datum/outfit/job/roumain/ert/leader/colligne
+ name = "ERT - Saint-Roumain Hunter Colligne" // double barrel and ashhand
+ id_assignment = "Hunter Colligne"
+ job_icon = "srm_colligne"
+ jobtype = /datum/job/head_of_personnel
+
+ ears = /obj/item/radio/headset/headset_com
+ uniform = /obj/item/clothing/under/suit/roumain
+ shoes = /obj/item/clothing/shoes/workboots/mining
+ suit = /obj/item/clothing/suit/armor/roumain/colligne
+ suit_store = /obj/item/gun/ballistic/shotgun/doublebarrel/roumain
+ head = /obj/item/clothing/head/cowboy/sec/roumain/colligne
+ belt = /obj/item/gun/ballistic/revolver/ashhand
+ id = /obj/item/card/id/silver
+
+ backpack_contents = list(/obj/item/storage/box/ammo/a12g_buckshot, /obj/item/storage/box/ammo/a4570)
diff --git a/code/modules/clothing/outfits/ert/solgov_ert.dm b/code/modules/clothing/outfits/ert/solgov_ert.dm
index d6830b751498..5fbc808397b1 100644
--- a/code/modules/clothing/outfits/ert/solgov_ert.dm
+++ b/code/modules/clothing/outfits/ert/solgov_ert.dm
@@ -4,6 +4,8 @@
jobtype = /datum/job/officer
job_icon = "sonnensoldner"
+ wallet = null
+
id = /obj/item/card/id/solgov
uniform = /obj/item/clothing/under/solgov
suit = /obj/item/clothing/suit/armor/vest/solgov
@@ -11,20 +13,20 @@
ears = /obj/item/radio/headset/solgov/alt
gloves = /obj/item/clothing/gloves/combat
head = /obj/item/clothing/head/solgov/sonnensoldner
- shoes = /obj/item/clothing/shoes/workboots
- back = /obj/item/storage/backpack
+ shoes = /obj/item/clothing/shoes/combat
box = /obj/item/storage/box/survival
l_hand = /obj/item/energyhalberd
/datum/outfit/job/solgov/ert/inspector
- name = "ERT - Inspector (SolGov)"
+ name = "ERT - SolGov Inspector"
id_assignment = "Inspector"
jobtype = /datum/job/head_of_personnel
job_icon = "solgovrepresentative"
uniform = /obj/item/clothing/under/solgov/formal
+ neck = /obj/item/clothing/neck/cloak/solgov
belt = /obj/item/clipboard
ears = /obj/item/radio/headset/solgov/captain
back = /obj/item/storage/backpack/satchel/leather
@@ -35,7 +37,9 @@
suit_store = null
mask = null
glasses = null
-
l_hand = null
- backpack_contents = list(/obj/item/stamp/solgov=1)
+ r_pocket = /obj/item/pen/fourcolor
+ l_pocket = /obj/item/taperecorder
+
+ backpack_contents = list(/obj/item/folder/solgov, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
diff --git a/code/modules/clothing/outfits/ert/syndicate_ert.dm b/code/modules/clothing/outfits/ert/syndicate_ert.dm
index c37dab500091..8dd260c51af4 100644
--- a/code/modules/clothing/outfits/ert/syndicate_ert.dm
+++ b/code/modules/clothing/outfits/ert/syndicate_ert.dm
@@ -1,114 +1,186 @@
+// unaligned. they're basically stand-ins
+
/datum/outfit/job/syndicate/ert
name = "ERT - Syndicate Basic"
jobtype = /datum/job/officer
job_icon = "securityofficer"
+ wallet = null
+
+ uniform = /obj/item/clothing/under/syndicate/combat
suit = /obj/item/clothing/suit/armor/vest/syndie
- suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
+ suit_store = /obj/item/gun/ballistic/automatic/assault/hydra
shoes = /obj/item/clothing/shoes/combat
- ears = /obj/item/radio/headset/syndicate/alt
+ ears = /obj/item/radio/headset/headset_sec/alt
gloves = /obj/item/clothing/gloves/color/black
id = /obj/item/card/id/syndicate_command/crew_id
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava
- head = /obj/item/clothing/head/helmet/operator
- back = /obj/item/storage/backpack/security
- belt = /obj/item/storage/belt/military/c20r
+ mask = /obj/item/clothing/mask/balaclava
+ head = /obj/item/clothing/head/helmet/syndie
+ belt = /obj/item/storage/belt/military/hydra
+ glasses = /obj/item/clothing/glasses/hud/security
r_pocket = /obj/item/melee/knife/combat
l_pocket = /obj/item/grenade/frag
implants = list(/obj/item/implant/weapons_auth)
- backpack_contents = list(/obj/item/radio=1)
+ backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/ringneck=1, /obj/item/ammo_box/magazine/m10mm_ringneck=2)
/datum/outfit/job/syndicate/ert/leader
name = "ERT - Syndicate Basic Leader"
job_icon = "lieutenant"
head = /obj/item/clothing/head/HoS/beret/syndicate
+ mask = /obj/item/clothing/mask/balaclava/combat
+ ears = /obj/item/radio/headset/syndicate/alt/leader
+
+// inspector
+
+/datum/outfit/job/syndicate/ert/inspector
+ name = "ERT - ACLF Inspector"
+ id_assignment = "Inspector"
+ jobtype = /datum/job/head_of_personnel
+ job_icon = "syndicate"
+
+ uniform = /obj/item/clothing/under/syndicate
+ head = /obj/item/clothing/head/HoS/beret/syndicate
+ mask = null
+ belt = /obj/item/clipboard
+ back = /obj/item/storage/backpack/satchel/leather
ears = /obj/item/radio/headset/syndicate/captain
+ shoes = /obj/item/clothing/shoes/laceup
+ gloves = /obj/item/clothing/gloves/color/white
+ suit = /obj/item/clothing/suit/armor/hos
+ suit_store = null
- backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/ringneck=1, /obj/item/ammo_box/magazine/m10mm_ringneck=2, /obj/item/radio=1)
+ backpack = /obj/item/storage/backpack/satchel/sec
+ duffelbag = /obj/item/storage/backpack/satchel/sec
+ satchel = /obj/item/storage/backpack/satchel/sec
+ courierbag = /obj/item/storage/backpack/satchel/sec
-// gorlex loyalist/2nd battlegroup
+ l_pocket = /obj/item/pen/fourcolor
+ r_pocket = /obj/item/taperecorder
-/datum/outfit/job/syndicate/ert/gorlex
- name = "ERT - New Gorlex Republic Trooper"
+ backpack_contents = list(/obj/item/stamp/syndicate, /obj/item/paper_bin, /obj/item/folder/syndicate, /obj/item/tape)
- head = /obj/item/clothing/head/helmet/swat
- uniform = /obj/item/clothing/under/syndicate/combat
- suit = /obj/item/clothing/suit/armor/vest/bulletproof
- belt = /obj/item/storage/belt/military/assault/m90
- back = /obj/item/storage/backpack/security
- suit_store = /obj/item/gun/ballistic/automatic/assault/hydra
+// new gorlex republic
-/datum/outfit/job/syndicate/ert/gorlex/pointman
- name = "ERT - New Gorlex Republic Pointman"
+/datum/outfit/job/syndicate/ert/ngr
+ name = "ERT - New Gorlex Republic Serviceman"
+ id_assignment = "Serviceman"
+
+ head = /obj/item/clothing/head/helmet/ngr
+ mask = /obj/item/clothing/mask/balaclava/ngr
+ ears = /obj/item/radio/headset/headset_sec/alt
+ uniform = /obj/item/clothing/under/syndicate/ngr
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses/ngr
+ suit = /obj/item/clothing/suit/armor/ngr
+ belt = /obj/item/storage/belt/security/webbing/ngr/cobra
+ suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
- suit_store = /obj/item/gun/ballistic/shotgun/automatic/bulldog
- belt = /obj/item/storage/belt/security/webbing/bulldog
+/datum/outfit/job/syndicate/ert/ngr/grenadier
+ name = "ERT - New Gorlex Republic Grenadier"
-/datum/outfit/job/syndicate/ert/gorlex/medic
- name = "ERT - New Gorlex Republic Medic"
+ belt = /obj/item/storage/belt/security/webbing/ngr/hydra_grenadier
+ suit_store = /obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl
+
+ backpack_contents = list(/obj/item/grenade/c4 = 3)
+
+/datum/outfit/job/syndicate/ert/ngr/medic
+ name = "ERT - New Gorlex Republic Field Medic"
jobtype = /datum/job/paramedic
job_icon = "paramedic"
+ id_assignment = "Field Medic"
- head = /obj/item/clothing/head/soft/black
- mask = null
- suit = /obj/item/clothing/suit/armor/vest/alt
+ head = /obj/item/clothing/head/ngr/surgical
+ mask = /obj/item/clothing/mask/breath/ngr
belt = /obj/item/storage/belt/medical/webbing/paramedic
- glasses = /obj/item/clothing/glasses/hud/health/sunglasses
+ glasses = /obj/item/clothing/glasses/hud/health
gloves = /obj/item/clothing/gloves/color/latex/nitrile/evil
- suit_store = /obj/item/gun/ballistic/automatic/pistol/ringneck
+ suit_store = /obj/item/gun/ballistic/automatic/pistol/asp
l_pocket = /obj/item/radio
- backpack_contents = list(/obj/item/ammo_box/magazine/m10mm_ringneck=2, /obj/item/storage/firstaid/medical=1, /obj/item/defibrillator/compact/combat/loaded=1)
+ backpack_contents = list(/obj/item/ammo_box/magazine/m57_39_asp = 2, /obj/item/storage/firstaid/medical=1, /obj/item/defibrillator/compact/combat/loaded=1)
-/datum/outfit/job/syndicate/ert/gorlex/sniper
- name = "ERT - New Gorlex Republic Sniper"
+/datum/outfit/job/syndicate/ert/ngr/sniper
+ name = "ERT - New Gorlex Republic Marksman"
head = /obj/item/clothing/head/beret/black
- back = /obj/item/storage/backpack/messenger/sec
- glasses = /obj/item/clothing/glasses/night
+ neck = /obj/item/clothing/neck/shemagh/ngr
gloves = /obj/item/clothing/gloves/fingerless
- suit = /obj/item/clothing/suit/armor/vest
- belt = /obj/item/storage/belt/security
+ suit = /obj/item/clothing/suit/armor/vest/alt
+ belt = /obj/item/storage/belt/military/assault/sniper
suit_store = /obj/item/gun/ballistic/automatic/marksman/taipan
r_pocket = /obj/item/melee/knife/survival
l_pocket = /obj/item/binoculars
- backpack_contents = list(/obj/item/ammo_box/magazine/sniper_rounds=2, /obj/item/radio=1)
+ backpack = /obj/item/storage/backpack/messenger/sec
+ duffelbag = /obj/item/storage/backpack/messenger/sec
+ satchel = /obj/item/storage/backpack/messenger/sec
+ courierbag = /obj/item/storage/backpack/messenger/sec
-/datum/outfit/job/syndicate/ert/gorlex/leader
+ backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/asp, /obj/item/ammo_box/magazine/m57_39_asp = 2)
+
+/datum/outfit/job/syndicate/ert/ngr/leader
name = "ERT - New Gorlex Republic Sergeant"
job_icon = "lieutenant"
- uniform = /obj/item/clothing/under/syndicate/gorlex
- head = /obj/item/clothing/head/HoS/beret/syndicate
+ uniform = /obj/item/clothing/under/syndicate/ngr/officer
+ neck = /obj/item/clothing/mask/whistle/trench // funny
+ head = /obj/item/clothing/head/ngr/peaked
back = /obj/item/storage/backpack/satchel/sec
- mask = /obj/item/clothing/mask/gas/sechailer
- glasses = /obj/item/clothing/glasses/hud/security/night
gloves = /obj/item/clothing/gloves/tackler/combat
+ belt = /obj/item/storage/belt/security/webbing/ngr/cobra
+ suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
l_pocket = /obj/item/megaphone/sec
-// commandos
+ backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/asp, /obj/item/ammo_box/magazine/m57_39_asp = 2, /obj/item/grenade/smokebomb)
+
+/datum/outfit/job/syndicate/ert/ngr/inspector
+ name = "ERT - New Gorlex Republic Official"
+ id_assignment = "Official"
+ job_icon = "syndicate"
+
+ head = /obj/item/clothing/head/ngr
+ ears = /obj/item/radio/headset/syndicate/captain
+ gloves = /obj/item/clothing/gloves/color/white
+ mask = null
+ uniform = /obj/item/clothing/under/syndicate/ngr/officer
+ glasses = null
+ suit = /obj/item/clothing/suit/armor/ngr/lieutenant
+ belt = /obj/item/clipboard
+ shoes = /obj/item/clothing/shoes/jackboots
+ suit_store = null
+
+ backpack = /obj/item/storage/backpack/satchel/leather
+ duffelbag = /obj/item/storage/backpack/satchel/leather
+ satchel = /obj/item/storage/backpack/satchel/leather
+ courierbag = /obj/item/storage/backpack/satchel/leather
+
+ r_pocket = /obj/item/pen/fourcolor
+ l_pocket = /obj/item/taperecorder
+
+ backpack_contents = list(/obj/item/folder/red, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
+
+// cybersun
/datum/outfit/job/syndicate/ert/cybersun
name = "ERT - Syndicate Cybersun Commando"
job_icon = "syndicate"
head = null
- uniform = /obj/item/clothing/under/syndicate/combat
- belt = /obj/item/storage/belt/military/c20r
+ mask = /obj/item/clothing/mask/breath
+ uniform = /obj/item/clothing/under/syndicate/cybersun
+ belt = /obj/item/storage/belt/military/boomslang
suit = /obj/item/clothing/suit/space/hardsuit/syndi/cybersun
- suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
+ suit_store = /obj/item/gun/ballistic/automatic/marksman/boomslang
ears = /obj/item/radio/headset/syndicate/alt
- glasses = /obj/item/clothing/glasses/hud/security/sunglasses
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses/hardliners
implants = list(/obj/item/implant/adrenalin)
- backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm, /obj/item/radio=1)
+ backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm, /obj/item/grenade/smokebomb)
/datum/outfit/job/syndicate/ert/cybersun/leader
name = "ERT - Syndicate Cybersun Commando Leader"
@@ -116,15 +188,36 @@
ears = /obj/item/radio/headset/syndicate/alt/captain
glasses = /obj/item/clothing/glasses/hud/security/night
- backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm=1, /obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked=1, /obj/item/radio=1)
+ backpack_contents = list(/obj/item/autosurgeon/syndicate/laser_arm=1, /obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked=1, /obj/item/grenade/smokebomb)
-// paramedics
+/datum/outfit/job/syndicate/ert/cybersun/inspector
+ name = "ERT - Syndicate Cybersun Representative"
+
+ uniform = /obj/item/clothing/under/syndicate/cybersun/officer
+ head = /obj/item/clothing/head/HoS/cybersun
+ shoes = /obj/item/clothing/shoes/laceup
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses
+ suit = null
+ suit_store = null
+ belt = /obj/item/clipboard
+ glasses = null
+ mask = null
+ ears = /obj/item/radio/headset/syndicate
+
+ r_pocket = /obj/item/pen/fourcolor
+ l_pocket = /obj/item/taperecorder
+
+ backpack_contents = list(/obj/item/stamp/cybersun, /obj/item/folder/red, /obj/item/paper_bin/bundlenatural, /obj/item/hand_labeler)
+
+// cybersun paramedics
/datum/outfit/job/syndicate/ert/cybersun/medic
name = "ERT - Syndicate Cybersun Paramedic"
job_icon = "paramedic"
+ jobtype = /datum/job/paramedic
uniform = /obj/item/clothing/under/syndicate/medic
+ accessory = /obj/item/clothing/accessory/holster/marine
suit = /obj/item/clothing/suit/space/hardsuit/syndi/cybersun/paramed
suit_store = /obj/item/tank/internals/oxygen
mask = /obj/item/clothing/mask/breath/medical
@@ -135,13 +228,9 @@
back = /obj/item/storage/backpack/ert/medical
l_pocket = /obj/item/melee/knife/survival
r_pocket = /obj/item/pinpointer/crew
- accessory = /obj/item/clothing/accessory/holster/marine
backpack_contents = list(/obj/item/storage/firstaid/tactical=1, /obj/item/holosign_creator/medical=1, /obj/item/radio=1)
- jobtype = /datum/job/paramedic
- job_icon = "paramedic"
-
/datum/outfit/job/syndicate/ert/cybersun/medic/leader
name = "ERT - Syndicate Cybersun Lead Paramedic"
id_assignment = "Lead Paramedic"
@@ -154,25 +243,89 @@
backpack_contents = list(/obj/item/storage/firstaid/tactical=1, /obj/item/holosign_creator/medical=1, /obj/item/autosurgeon/cmo=1, /obj/item/radio=1, /obj/item/antag_spawner/nuke_ops/borg_tele/medical/unlocked=1)
-// inspector
-/datum/outfit/job/syndicate/ert/inspector
- name = "ERT - Inspector (Syndicate)"
- id_assignment = "Inspector"
- jobtype = /datum/job/head_of_personnel
- job_icon = "syndicate"
+// hardliners
- uniform = /obj/item/clothing/under/syndicate/ngr/officer
- head = /obj/item/clothing/head/HoS/beret/syndicate
- mask = null
- belt = /obj/item/clipboard
- back = /obj/item/storage/backpack/satchel/leather
- ears = /obj/item/radio/headset/syndicate/captain
- shoes = /obj/item/clothing/shoes/laceup
- gloves = /obj/item/clothing/gloves/color/white
- suit = /obj/item/clothing/suit/armor/hos
- l_pocket = null
- r_pocket = null
- suit_store = null
+/datum/outfit/job/syndicate/ert/hardliner
+ name = "ERT - Syndicate Hardliner Mercenary"
+
+ uniform = /obj/item/clothing/under/syndicate/hardliners
+ suit = /obj/item/clothing/suit/armor/hardliners
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses/hardliners
+ suit_store = /obj/item/gun/ballistic/automatic/smg/sidewinder
+ belt = /obj/item/storage/belt/security/webbing/hardliners/sidewinder
+ gloves = /obj/item/clothing/gloves/color/black
+ mask = /obj/item/clothing/mask/balaclava/combat
+ head = /obj/item/clothing/head/helmet/hardliners
+
+/datum/outfit/job/syndicate/ert/hardliner/engineer
+ name = "ERT - Syndicate Hardliner Mechanic"
+
+ head = /obj/item/clothing/head/hardhat/hardliners
+ belt = /obj/item/storage/belt/utility/full
+ suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
+
+ backpack_contents = list(/obj/item/ammo_box/magazine/m45_cobra = 2)
+
+/datum/outfit/job/syndicate/ert/hardliner/medic
+ name = "ERT - Syndicate Hardliner Medic"
+
+ head = /obj/item/clothing/head/hardliners
+ belt = /obj/item/storage/belt/medical/webbing/paramedic
+
+/datum/outfit/job/syndicate/ert/hardliner/leader
+ name = "ERT - Syndicate Hardliner Sergeant"
+
+ uniform = /obj/item/clothing/under/syndicate/hardliners/officer
+ suit = /obj/item/clothing/suit/armor/hardliners/sergeant
+ head = /obj/item/clothing/head/hardliners/peaked
+
+// ramzi clique
+
+/datum/outfit/job/syndicate/ert/ramzi
+ name = "ERT - Ramzi Clique Cell Rifleman"
+
+ head = null
+ mask = /obj/item/clothing/mask/gas/syndicate
+ uniform = /obj/item/clothing/under/syndicate
+ suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
+ suit_store = /obj/item/gun/ballistic/automatic/smg/cobra
+ belt = /obj/item/storage/belt/military/cobra
+ glasses = /obj/item/clothing/glasses/thermal
+ gloves = /obj/item/clothing/gloves/combat
+ id = null // no identification for you
+
+ l_pocket = /obj/item/tank/internals/emergency_oxygen/double
+
+ implants = list(/obj/item/implant/explosive)
+ backpack_contents = list(/obj/item/grenade/frag = 3, /obj/item/grenade/smokebomb = 3)
+
+/datum/outfit/job/syndicate/ert/ramzi/demolitionist
+ name = "ERT - Ramzi Clique Cell Demolitionist"
+
+ belt = /obj/item/storage/belt/military/mako
+ suit_store = /obj/item/gun/ballistic/rocketlauncher/mako
+ glasses = /obj/item/clothing/glasses/meson/night
+
+ r_pocket = /obj/item/gun/ballistic/automatic/pistol/himehabu
+
+ backpack_contents = list(/obj/item/ammo_box/magazine/m22lr_himehabu = 2, /obj/item/grenade/c4/x4 = 3, /obj/item/grenade/syndieminibomb = 3, /obj/item/ammo_casing/caseless/rocket/a70mm = 4)
+
+/datum/outfit/job/syndicate/ert/ramzi/medic
+ name = "ERT - Ramzi Clique Cell Medic"
+
+ belt = /obj/item/storage/belt/medical/webbing/combat
+ glasses = /obj/item/clothing/glasses/hud/health/night
+
+ backpack_contents = list(/obj/item/ammo_box/magazine/m45_cobra = 3, /obj/item/defibrillator/compact/combat/loaded, /obj/item/reagent_containers/hypospray/combat)
+
+/datum/outfit/job/syndicate/ert/ramzi/leader
+ name = "ERT - Ramzi Clique Cell Leader"
+
+ uniform = /obj/item/clothing/under/syndicate/gorlex
+ gloves = /obj/item/clothing/gloves/tackler/combat/insulated // funny
+
+ belt = /obj/item/storage/belt/security/webbing/bulldog_mixed
+ suit_store = /obj/item/gun/ballistic/shotgun/automatic/bulldog/drum
- backpack_contents = list(/obj/item/stamp/syndicate)
+ backpack_contents = list(/obj/item/grenade/smokebomb = 4, /obj/item/grenade/stingbang = 2, /obj/item/grenade/empgrenade = 2)
diff --git a/code/modules/clothing/outfits/factions/frontiersmen.dm b/code/modules/clothing/outfits/factions/frontiersmen.dm
index 997eec2209d4..b9e350da7a3c 100644
--- a/code/modules/clothing/outfits/factions/frontiersmen.dm
+++ b/code/modules/clothing/outfits/factions/frontiersmen.dm
@@ -145,7 +145,7 @@
accessory = /obj/item/clothing/accessory/armband
uniform = /obj/item/clothing/under/frontiersmen/officer
head = /obj/item/clothing/head/beret/sec/frontier/officer
- suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier
+ suit = /obj/item/clothing/suit/armor/vest/frontier
shoes = /obj/item/clothing/shoes/jackboots
gloves = /obj/item/clothing/gloves/combat
backpack_contents = list(/obj/item/clothing/mask/gas/frontiersmen, /obj/item/melee/baton/loaded=1)
diff --git a/code/modules/clothing/outfits/factions/gezena.dm b/code/modules/clothing/outfits/factions/gezena.dm
index df7a5145e47f..efadbece4bab 100644
--- a/code/modules/clothing/outfits/factions/gezena.dm
+++ b/code/modules/clothing/outfits/factions/gezena.dm
@@ -22,7 +22,7 @@
/datum/outfit/job/gezena/assistant/bridge
name = "PGF - Bridge Crew"
- id_assignment = "Bridge Crew"
+ id_assignment = "Helmsman"
jobtype = /datum/job/head_of_personnel
/datum/outfit/job/gezena/engineer
@@ -71,6 +71,15 @@
courierbag = /obj/item/storage/backpack/messenger/sec
box = /obj/item/storage/box/survival/security
+/datum/outfit/job/gezena/security/sapper
+ name = "PGF - Marine Pioneer"
+ id_assignment = "Marine Pioneer"
+
+ backpack = /obj/item/storage/backpack/industrial
+ satchel = /obj/item/storage/backpack/satchel/eng
+ duffelbag = /obj/item/storage/backpack/duffelbag/engineering
+ courierbag = /obj/item/storage/backpack/messenger/engi
+
/datum/outfit/job/gezena/hos
name = "PGF - Marine Sergeant"
id_assignment = "Sergeant"
diff --git a/code/modules/clothing/outfits/factions/independent.dm b/code/modules/clothing/outfits/factions/independent.dm
index ba883d59f4dd..7b82368f14da 100644
--- a/code/modules/clothing/outfits/factions/independent.dm
+++ b/code/modules/clothing/outfits/factions/independent.dm
@@ -30,7 +30,7 @@
..()
if(visualsOnly)
return
- var/obj/item/card/id/W = H.wear_id
+ var/obj/item/card/id/W = H.get_idcard()
W.access += list(ACCESS_KITCHEN)
/datum/outfit/job/independent/assistant/fancy
@@ -107,6 +107,22 @@
gloves = /obj/item/clothing/gloves/color/white //poverty gloves
shoes = /obj/item/clothing/shoes/sneakers/brown
+/datum/outfit/job/independent/captain/merc
+ name = "Independent - Captain (Mercenary)"
+
+ uniform = /obj/item/clothing/under/syndicate
+ head = /obj/item/clothing/head/beret
+ gloves = /obj/item/clothing/gloves/combat
+ shoes = /obj/item/clothing/shoes/combat
+ suit = /obj/item/clothing/suit/armor/vest
+
+ accessory = null
+
+ backpack = /obj/item/storage/backpack/security
+ satchel = /obj/item/storage/backpack/satchel/sec
+ duffelbag = /obj/item/storage/backpack/duffelbag/sec
+ courierbag = /obj/item/storage/backpack/messenger/sec
+
/datum/outfit/job/independent/captain/western
name = "Independent - Captain (Western)"
head = /obj/item/clothing/head/caphat/cowboy
@@ -231,6 +247,20 @@
chameleon_extras = list(/obj/item/gun/energy/e_gun/hos, /obj/item/stamp/hos)
+/datum/outfit/job/independent/hos/merc
+ name = "Independent - Mercenary XO"
+ id_assignment = "Lieutenant"
+
+ ears = /obj/item/radio/headset/headset_com
+ uniform = /obj/item/clothing/under/syndicate
+ shoes = /obj/item/clothing/shoes/combat
+ suit = /obj/item/clothing/suit/armor/vest
+ alt_suit = null
+ gloves = /obj/item/clothing/gloves/combat
+ head = /obj/item/clothing/head/beret
+ glasses = null
+ l_pocket = null
+
// Roboticist
/datum/outfit/job/independent/roboticist
@@ -275,6 +305,13 @@
chameleon_extras = list(/obj/item/gun/energy/disabler, /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/clothing/head/helmet)
//The helmet is necessary because /obj/item/clothing/head/helmet/sec is overwritten in the chameleon list by the standard helmet, which has the same name and icon state
+/datum/outfit/job/independent/security/disarmed //No armor, no pocket handcuffs.
+ name = "Independent - Security Officer (Disarmed)"
+ head = null
+ suit = null
+ l_pocket = null
+
+
/datum/outfit/job/independent/security/western
name = "Independent - Security Officer (Western)"
@@ -282,6 +319,17 @@
shoes = /obj/item/clothing/shoes/jackboots
head = /obj/item/clothing/head/cowboy/sec
+/datum/outfit/job/independent/security/merc
+ name = "Independent - Security Officer (Mercenary)"
+ id_assignment = "Trooper"
+
+ uniform = /obj/item/clothing/under/syndicate/camo
+ gloves = /obj/item/clothing/gloves/fingerless
+ head = null
+ suit = null
+ dcoat = null
+
+
/datum/outfit/job/independent/security/pirate
name = "Independent - Security Officer (Pirate)"
@@ -378,7 +426,7 @@
courierbag = /obj/item/storage/backpack/messenger/sec
box = /obj/item/storage/box/survival/security
- chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/combat/compact
+ chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/m11
// Chief Engineer
@@ -441,7 +489,7 @@
job_icon = "cargotechnician"
ears = /obj/item/radio/headset/headset_cargo
- uniform = /obj/item/clothing/under/color/khaki
+ uniform = /obj/item/clothing/under/color/lightbrown
dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo
backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1)
@@ -534,28 +582,26 @@
job_icon = "quartermaster"
ears = /obj/item/radio/headset/headset_cargo
- uniform = /obj/item/clothing/under/rank/cargo/qm
+ uniform = /obj/item/clothing/under/rank/security/detective
+ head = /obj/item/clothing/head/hardhat/white
dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo
- shoes = /obj/item/clothing/shoes/sneakers/brown
+ suit = /obj/item/clothing/suit/hazardvest
+ shoes = /obj/item/clothing/shoes/workboots
glasses = /obj/item/clothing/glasses/sunglasses
r_pocket = /obj/item/clipboard
backpack_contents = list(/obj/item/modular_computer/tablet/preset/cargo=1)
+ backpack = /obj/item/storage/backpack/industrial
+ satchel = /obj/item/storage/backpack/satchel/eng
chameleon_extras = /obj/item/stamp/qm
/datum/outfit/job/independent/quartermaster/western
name = "Independent - Quartermaster (Western)"
- uniform = /obj/item/clothing/under/rank/security/detective
- suit = /obj/item/clothing/suit/hazardvest
- shoes = /obj/item/clothing/shoes/workboots
+ suit = /obj/item/clothing/suit/jacket/leather/duster
gloves = /obj/item/clothing/gloves/fingerless
- glasses = /obj/item/clothing/glasses/sunglasses
head = /obj/item/clothing/head/cowboy/sec
- backpack = /obj/item/storage/backpack/industrial
- satchel = /obj/item/storage/backpack/satchel/eng
-
/datum/outfit/job/independent/miner
name = "Independent - Miner"
jobtype = /datum/job/mining
diff --git a/code/modules/clothing/outfits/factions/inteq.dm b/code/modules/clothing/outfits/factions/inteq.dm
index 16d1456361be..e63bc44a440b 100644
--- a/code/modules/clothing/outfits/factions/inteq.dm
+++ b/code/modules/clothing/outfits/factions/inteq.dm
@@ -3,7 +3,7 @@
faction_icon = "bg_inteq"
uniform = /obj/item/clothing/under/syndicate/inteq
- box = /obj/item/storage/box/survival
+ box = /obj/item/storage/box/survival/inteq
backpack = /obj/item/storage/backpack
satchel = /obj/item/storage/backpack/satchel
@@ -24,6 +24,7 @@
jobtype = /datum/job/assistant
job_icon = "assistant"
+ ears = /obj/item/radio/headset
r_pocket = /obj/item/radio
///captains
@@ -37,7 +38,7 @@
id = /obj/item/card/id/gold
head = /obj/item/clothing/head/beret/sec/hos/inteq
glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava/inteq
+ mask = /obj/item/clothing/mask/balaclava/inteq
suit = /obj/item/clothing/suit/armor/hos/inteq
dcoat = /obj/item/clothing/suit/hooded/wintercoat/security/inteq
belt = /obj/item/storage/belt/security/webbing/inteq
@@ -88,7 +89,7 @@
ears = /obj/item/radio/headset/inteq
uniform = /obj/item/clothing/under/syndicate/inteq/artificer
head = /obj/item/clothing/head/hardhat/white
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava/inteq
+ mask = /obj/item/clothing/mask/balaclava/inteq
dcoat = /obj/item/clothing/suit/hooded/wintercoat/security/inteq
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/color/yellow
@@ -135,10 +136,11 @@
jobtype = /datum/job/officer
job_icon = "securityofficer"
+ ears = /obj/item/radio/headset/alt
head = /obj/item/clothing/head/helmet/inteq
suit = /obj/item/clothing/suit/armor/vest/alt
belt = /obj/item/storage/belt/security/webbing/inteq
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava/inteq
+ mask = /obj/item/clothing/mask/balaclava/inteq
uniform = /obj/item/clothing/under/syndicate/inteq
dcoat = /obj/item/clothing/suit/hooded/wintercoat/security/inteq
shoes = /obj/item/clothing/shoes/combat
@@ -181,6 +183,7 @@
job_icon = "stationengineer"
jobtype = /datum/job/engineer
+ ears = /obj/item/radio/headset/alt
uniform = /obj/item/clothing/under/syndicate/inteq/artificer
head = /obj/item/clothing/head/soft/inteq
shoes = /obj/item/clothing/shoes/combat
@@ -199,7 +202,7 @@
head = /obj/item/clothing/head/warden/inteq
uniform = /obj/item/clothing/under/syndicate/inteq
glasses = /obj/item/clothing/glasses/hud/security/sunglasses/inteq
- mask = /obj/item/clothing/mask/gas/sechailer/balaclava/inteq
+ mask = /obj/item/clothing/mask/balaclava/inteq
belt = /obj/item/storage/belt/military/assault
suit = /obj/item/clothing/suit/armor/vest/security/warden/inteq
dcoat = /obj/item/clothing/suit/hooded/wintercoat/security/inteq
diff --git a/code/modules/clothing/outfits/factions/minutemen.dm b/code/modules/clothing/outfits/factions/minutemen.dm
index 2301855c6809..3f99cc85087f 100644
--- a/code/modules/clothing/outfits/factions/minutemen.dm
+++ b/code/modules/clothing/outfits/factions/minutemen.dm
@@ -3,7 +3,6 @@
/datum/outfit/job/clip
name = "CLIP - Base Outfit"
- jobtype = /datum/job/assistant
uniform = /obj/item/clothing/under/clip
alt_uniform = null
@@ -120,7 +119,7 @@
suit = /obj/item/clothing/suit/toggle/lawyer/clip/fo
alt_suit = null
- shoes = /obj/item/clothing/shoes/combat
+ shoes = /obj/item/clothing/shoes/laceup
head = /obj/item/clothing/head/clip/slouch/officer
backpack = /obj/item/storage/backpack/captain
@@ -223,6 +222,8 @@
shoes = /obj/item/clothing/shoes/jackboots
gloves = /obj/item/clothing/gloves/color/black
+ l_hand = /obj/item/storage/briefcase
+
backpack = /obj/item/storage/backpack/satchel/leather
satchel = /obj/item/storage/backpack/satchel/leather
@@ -233,6 +234,16 @@
/obj/item/detective_scanner=1,\
/obj/item/melee/classic_baton=1)
+/datum/outfit/job/clip/investigator/cm5
+ name = "CLIP GOLD - Investigator (CM-5c)"
+
+ backpack_contents = list(/obj/item/storage/box/evidence=1,\
+ /obj/item/detective_scanner=1,\
+ /obj/item/melee/classic_baton=1,\
+ /obj/item/ammo_box/magazine/cm5_9mm = 2, \
+ /obj/item/gun/ballistic/automatic/smg/cm5/compact
+ )
+
/datum/outfit/job/clip/bureaucrat
name = "CLIP GOLD - Bureaucrat"
job_icon = "scribe"
@@ -273,7 +284,7 @@
backpack = /obj/item/storage/backpack/security/clip
satchel = /obj/item/storage/backpack/satchel/sec/clip
duffelbag = /obj/item/storage/backpack/duffelbag
- courierbag = /obj/item/storage/backpack/messenger
+ courierbag = /obj/item/storage/backpack/satchel/sec/clip
box = /obj/item/storage/box/survival/clip/balaclava
@@ -298,17 +309,12 @@
ears = /obj/item/radio/headset/clip/alt/captain
uniform = /obj/item/clothing/under/clip/officer
alt_uniform = null
- suit = /obj/item/clothing/suit/armor/clip_capcoat
alt_suit = null
+ suit = /obj/item/clothing/suit/armor/clip_capcoat
dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain
- shoes = /obj/item/clothing/shoes/combat
+ shoes = /obj/item/clothing/shoes/jackboots
head = /obj/item/clothing/head/clip/slouch/officer
- backpack = /obj/item/storage/backpack/captain
- satchel = /obj/item/storage/backpack/satchel/cap
- duffelbag = /obj/item/storage/backpack/duffelbag/captain
- courierbag = /obj/item/storage/backpack/messenger/com
-
backpack_contents = list(/obj/item/storage/box/ids=1,
/obj/item/melee/classic_baton/telescopic=1,
/obj/item/modular_computer/tablet/preset/advanced = 1)
@@ -365,14 +371,9 @@
ears = /obj/item/radio/headset/clip/alt
uniform = /obj/item/clothing/under/clip/formal
alt_uniform = null
- suit = /obj/item/clothing/suit/toggle/lawyer/clip
alt_suit = null
- shoes = /obj/item/clothing/shoes/combat
-
- backpack = /obj/item/storage/backpack/captain
- satchel = /obj/item/storage/backpack/satchel/cap
- duffelbag = /obj/item/storage/backpack/duffelbag/captain
- courierbag = /obj/item/storage/backpack/messenger/com
+ suit = /obj/item/clothing/suit/toggle/lawyer/clip
+ shoes = /obj/item/clothing/shoes/jackboots
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced = 1)
@@ -382,17 +383,9 @@
job_icon = "clip_navy2"
jobtype = /datum/job/doctor
- l_hand = /obj/item/storage/firstaid/medical
-
- backpack = /obj/item/storage/backpack/security/clip
- satchel = /obj/item/storage/backpack/satchel/sec/clip
- duffelbag = /obj/item/storage/backpack/duffelbag
- courierbag = /obj/item/storage/backpack/messenger
-
uniform = /obj/item/clothing/under/clip/medic
shoes = /obj/item/clothing/shoes/sneakers/white
head = /obj/item/clothing/head/clip/corpsman
- gloves = /obj/item/clothing/gloves/color/latex/nitrile/clip
suit = null
suit_store = null
@@ -513,7 +506,7 @@
job_icon = "clip_cmm2"
ears = /obj/item/radio/headset/alt
box = /obj/item/storage/box/survival/clip/balaclava
- shoes = null
+ shoes = /obj/item/clothing/shoes/combat // shoos
backpack = /obj/item/storage/backpack/security/clip
satchel = /obj/item/storage/backpack/satchel/sec/clip
@@ -552,6 +545,11 @@
backpack_contents = list(/obj/item/clothing/mask/gas/clip=1, /obj/item/storage/ration/chicken_wings_hot_sauce=1)
+/datum/outfit/job/clip/minutemen/grunt/dressed/hardsuit
+ name = "CLIP Minutemen - Minuteman (Spotter Hardsuit)"
+ head = null
+ suit = /obj/item/clothing/suit/space/hardsuit/clip_spotter
+
/datum/outfit/job/clip/minutemen/grunt/dressed/armed
name = "CLIP Minutemen - Minuteman (Armed - CM-82)"
@@ -619,7 +617,7 @@
belt = /obj/item/storage/belt/military/clip/gunner
suit_store = /obj/item/gun/ballistic/automatic/hmg/cm40
- backpack_contents = list(/obj/item/clothing/mask/gas/clip=1, /obj/item/reagent_containers/food/snacks/rationpack=1)
+ backpack_contents = list(/obj/item/clothing/mask/gas/clip=1, /obj/item/storage/ration/shredded_beef=1)
///lead, i guess you could reuse this for "Brig Officer"
@@ -635,7 +633,7 @@
head = /obj/item/clothing/head/clip/slouch
suit = /obj/item/clothing/suit/armor/vest/bulletproof
belt = /obj/item/storage/belt/military/clip
- shoes = /obj/item/clothing/shoes/combat
+ shoes = /obj/item/clothing/shoes/jackboots
l_pocket = /obj/item/flashlight/seclite
r_pocket = /obj/item/tank/internals/emergency_oxygen/double
@@ -648,7 +646,7 @@
suit_store = /obj/item/gun/ballistic/automatic/assault/cm82
belt = /obj/item/storage/belt/military/clip/cm82
//replace commander with the cm23 when its impemented, see the cm-f4 above
- backpack_contents = list(/obj/item/clothing/mask/gas/clip=1, /obj/item/reagent_containers/food/snacks/rationpack=1, /obj/item/gun/ballistic/automatic/pistol/commander=1)
+ backpack_contents = list(/obj/item/clothing/mask/gas/clip=1, /obj/item/storage/ration/shredded_beef=1, /obj/item/gun/ballistic/automatic/pistol/commander=1)
/datum/outfit/job/clip/minutemen/grunt/commander
name = "CLIP Minutemen - Field Commander"
@@ -662,7 +660,7 @@
head = /obj/item/clothing/head/clip/slouch/officer
suit = /obj/item/clothing/suit/toggle/lawyer/clip
- shoes = /obj/item/clothing/shoes/combat
+ shoes = /obj/item/clothing/shoes/jackboots
glasses = /obj/item/clothing/glasses/sunglasses
/datum/outfit/job/clip/minutemen/grunt/major
@@ -677,6 +675,6 @@
head = /obj/item/clothing/head/clip/slouch/officer
suit = /obj/item/clothing/suit/armor/clip_trenchcoat
- shoes = /obj/item/clothing/shoes/combat
+ shoes = /obj/item/clothing/shoes/jackboots
glasses = /obj/item/clothing/glasses/sunglasses
diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm
index 3c9e379e74db..3d0a75fd2525 100644
--- a/code/modules/clothing/outfits/factions/nanotrasen.dm
+++ b/code/modules/clothing/outfits/factions/nanotrasen.dm
@@ -188,7 +188,7 @@
courierbag = /obj/item/storage/backpack/messenger/sec
box = /obj/item/storage/box/survival/security
- chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/combat/compact
+ chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/m11
// Engineering //
@@ -328,6 +328,12 @@
chameleon_extras = /obj/item/gun/energy/kinetic_accelerator
+/datum/outfit/job/nanotrasen/miner/no_equipment
+ name = "Nanotrasen - Miner (No Equipment)"
+
+ r_pocket = null
+ backpack_contents = null
+
// Cargo Tech
/datum/outfit/job/nanotrasen/cargo_tech
name = "Nanotrasen - Cargo Tech"
diff --git a/code/modules/clothing/outfits/factions/roumain.dm b/code/modules/clothing/outfits/factions/roumain.dm
index fe31fddd9041..e7cc57a33a96 100644
--- a/code/modules/clothing/outfits/factions/roumain.dm
+++ b/code/modules/clothing/outfits/factions/roumain.dm
@@ -84,7 +84,7 @@
name = "Saint-Roumain Militia - Hunter"
id_assignment = "Hunter"
jobtype = /datum/job/officer
- job_icon = "hsrm_hunter"
+ job_icon = "srm_hunter"
uniform = /obj/item/clothing/under/suit/roumain
alt_uniform = null
diff --git a/code/modules/clothing/outfits/factions/syndicate.dm b/code/modules/clothing/outfits/factions/syndicate.dm
index 1d91a94b766d..af3bc97ac2e9 100644
--- a/code/modules/clothing/outfits/factions/syndicate.dm
+++ b/code/modules/clothing/outfits/factions/syndicate.dm
@@ -40,18 +40,13 @@
alt_uniform = null
shoes = /obj/item/clothing/shoes/jackboots
- gloves = /obj/item/clothing/gloves/color/black
+ gloves = null
ears = /obj/item/radio/headset
back = /obj/item/storage/backpack
id = /obj/item/card/id/syndicate_command/crew_id
r_pocket = /obj/item/radio
- backpack = /obj/item/storage/backpack/security
- satchel = /obj/item/storage/backpack/satchel/sec
- duffelbag = /obj/item/storage/backpack/duffelbag/syndie
- courierbag = /obj/item/storage/backpack/messenger/sec
-
box = /obj/item/storage/box/survival
/datum/outfit/job/syndicate/assistant/gorlex
@@ -521,6 +516,20 @@
backpack_contents = list(/obj/item/storage/box/ids=1,\
/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1)
+/datum/outfit/job/syndicate/head_of_personnel/ngr
+ name = "Syndicate - Ensign (NGR)"
+ id_assignment = "Ensign"
+
+ ears = /obj/item/radio/headset/syndicate
+ uniform = /obj/item/clothing/under/syndicate/ngr/officer
+ head = /obj/item/clothing/head/ngr
+ suit = /obj/item/clothing/suit/armor/ngr/lieutenant
+ id = /obj/item/card/id/syndicate_command/crew_id
+ shoes = /obj/item/clothing/shoes/combat
+ glasses = null
+ gloves = null
+
+
/datum/outfit/job/syndicate/head_of_personnel/cybersun
name = "Syndicate - Intelligence Officer (Cybersun)"
id_assignment = "Intelligence Officer"
@@ -594,7 +603,8 @@
suit = /obj/item/clothing/suit/armor/ngr/lieutenant
id = /obj/item/card/id/syndicate_command/crew_id
shoes = /obj/item/clothing/shoes/combat
- suit_store = /obj/item/gun/ballistic/automatic/pistol/ringneck
+ suit_store = null
+ gloves = /obj/item/clothing/gloves/color/black
/datum/outfit/job/syndicate/hos/twink
@@ -676,10 +686,12 @@
uniform = /obj/item/clothing/under/syndicate
id = /obj/item/card/id/syndicate_command/crew_id
shoes = /obj/item/clothing/shoes/jackboots
- shoes = /obj/item/clothing/shoes/sneakers/white
alt_suit = /obj/item/clothing/suit/apron/surgical
- l_hand = /obj/item/storage/firstaid/medical
box = /obj/item/storage/box/survival/medical
+ backpack = /obj/item/storage/backpack/medic
+ satchel = /obj/item/storage/backpack/satchel/med
+ duffelbag = /obj/item/storage/backpack/duffelbag/syndie/med
+ courierbag = /obj/item/storage/backpack/messenger/med
/datum/outfit/job/syndicate/doctor/suns
name = "Syndicate - Medical Doctor (SUNS)"
@@ -712,9 +724,9 @@
suit = /obj/item/clothing/suit/hardliners
glasses = /obj/item/clothing/glasses/hud/health
r_pocket = /obj/item/melee/knife/survival
- back = /obj/item/storage/backpack/duffelbag/syndie/med
id = /obj/item/card/id/syndicate_command/crew_id
backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,)
+ shoes = /obj/item/clothing/shoes/combat
/datum/outfit/job/syndicate/doctor/ngr
name = "Syndicate - Medical Doctor (New Gorlex Republic)"
@@ -724,9 +736,8 @@
suit = /obj/item/clothing/suit/ngr/smock
glasses = /obj/item/clothing/glasses/hud/health
r_pocket = /obj/item/melee/knife/survival
- back = /obj/item/storage/backpack/duffelbag/syndie/med
id = /obj/item/card/id/syndicate_command/crew_id
- backpack_contents = list(/obj/item/storage/box/survival/syndie=1, /obj/item/storage/firstaid/medical,)
+ shoes = /obj/item/clothing/shoes/combat
//paramedics
@@ -910,10 +921,6 @@
l_pocket = /obj/item/restraints/handcuffs
r_pocket = /obj/item/assembly/flash/handheld
- backpack_contents = list(
- /obj/item/melee/baton/loaded=1,
- )
-
box = /obj/item/storage/box/survival/security
@@ -1016,14 +1023,13 @@
shoes = /obj/item/clothing/shoes/workboots/mining
gloves = /obj/item/clothing/gloves/explorer
uniform = /obj/item/clothing/under/rank/cargo/miner/lavaland
- l_pocket = /obj/item/reagent_containers/hypospray/medipen/survival
r_pocket = /obj/item/storage/bag/ore
backpack_contents = list(
- /obj/item/flashlight/seclite=1,\
- /obj/item/melee/knife/survival=1,\
- /obj/item/mining_voucher=1,\
- /obj/item/stack/marker_beacon/ten=1)
-
+ /obj/item/flashlight/seclite=1,
+ /obj/item/melee/knife/survival=1,
+ /obj/item/stack/marker_beacon/ten=1,
+ /obj/item/radio/weather_monitor=1,
+ )
box = /obj/item/storage/box/survival/mining
/datum/outfit/job/syndicate/miner/gorlex
@@ -1117,6 +1123,11 @@
head = /obj/item/clothing/head/hardhat/dblue
r_pocket = /obj/item/t_scanner
+ backpack = /obj/item/storage/backpack/industrial
+ satchel = /obj/item/storage/backpack/satchel/eng
+ duffelbag = /obj/item/storage/backpack/duffelbag/engineering
+ courierbag = /obj/item/storage/backpack/messenger/engi
+
box = /obj/item/storage/box/survival/engineer
pda_slot = ITEM_SLOT_LPOCKET
backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1)
diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm
index cf5c85102870..0fc3173c1f55 100644
--- a/code/modules/clothing/outfits/standard.dm
+++ b/code/modules/clothing/outfits/standard.dm
@@ -1,13 +1,3 @@
-/datum/outfit/centcom
- name = "CentCom Base"
-
-/datum/outfit/centcom/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- if(visualsOnly)
- return
-
- var/obj/item/implant/mindshield/L = new/obj/item/implant/mindshield(H)//hmm lets have centcom officials become revs
- L.implant(H, null, 1)
-
/datum/outfit/laser_tag
name = "Laser Tag Red"
@@ -59,7 +49,7 @@
var/obj/item/radio/R = H.ears
if(R)
- R.set_frequency(FREQ_SYNDICATE)
+ R.set_frequency(FREQ_PIRATE)
R.freqlock = TRUE
var/obj/item/card/id/W = H.wear_id
@@ -67,42 +57,6 @@
W.registered_name = H.real_name
W.update_label()
-/datum/outfit/centcom/commander
- name = "CentCom Commander"
-
- uniform = /obj/item/clothing/under/rank/centcom/commander
- suit = /obj/item/clothing/suit/armor/vest/bulletproof
- shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/tackler/combat/insulated
- ears = /obj/item/radio/headset/headset_cent/commander
- glasses = /obj/item/clothing/glasses/eyepatch
- mask = /obj/item/clothing/mask/cigarette/cigar/cohiba
- head = /obj/item/clothing/head/centcom_cap
- belt = /obj/item/gun/ballistic/revolver/mateba
- r_pocket = /obj/item/lighter
- l_pocket = /obj/item/ammo_box/a357
- back = /obj/item/storage/backpack/satchel/leather
- id = /obj/item/card/id/centcom
-
-/datum/outfit/centcom/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- if(visualsOnly)
- return
-
- var/obj/item/card/id/W = H.wear_id
- W.access = get_all_accesses()
- W.access += get_centcom_access("CentCom Commander")
- W.assignment = "CentCom Commander"
- W.registered_name = H.real_name
- W.update_label()
- ..()
-
-/datum/outfit/ghost_cultist
- name = "Cultist Ghost"
-
- uniform = /obj/item/clothing/under/color/black/ghost
- suit = /obj/item/clothing/suit/hooded/cultrobes/alt/ghost
- shoes = /obj/item/clothing/shoes/cult/alt/ghost
-
/datum/outfit/wizard
name = "Blue Wizard"
@@ -134,51 +88,6 @@
mask = /obj/item/clothing/mask/breath
gloves = /obj/item/clothing/gloves/color/plasmaman
-
-/datum/outfit/centcom/death_commando
- name = "Death Commando"
-
- uniform = /obj/item/clothing/under/rank/centcom/commander
- suit = /obj/item/clothing/suit/space/hardsuit/deathsquad
- shoes = /obj/item/clothing/shoes/combat/swat
- gloves = /obj/item/clothing/gloves/tackler/combat/insulated
- mask = /obj/item/clothing/mask/gas/sechailer/swat
- glasses = /obj/item/clothing/glasses/hud/toggle/thermal
- back = /obj/item/storage/backpack/security
- l_pocket = /obj/item/melee/transforming/energy/sword/saber
- r_pocket = /obj/item/shield/energy
- suit_store = /obj/item/tank/internals/emergency_oxygen/double
- belt = /obj/item/gun/ballistic/revolver/mateba
- r_hand = /obj/item/gun/energy/pulse
- id = /obj/item/card/id/ert/deathsquad
- ears = /obj/item/radio/headset/headset_cent/alt
-
- backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
- /obj/item/ammo_box/a357=1,\
- /obj/item/storage/firstaid/regular=1,\
- /obj/item/storage/box/flashbangs=1,\
- /obj/item/flashlight=1,\
- /obj/item/grenade/c4/x4=1)
-
-/datum/outfit/centcom/death_commando/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
- if(visualsOnly)
- return
-
- var/obj/item/radio/R = H.ears
- R.set_frequency(FREQ_CENTCOM)
- R.freqlock = TRUE
- var/obj/item/card/id/W = H.wear_id
- W.access = get_all_accesses()//They get full station access.
- W.access += get_centcom_access("Death Commando")//Let's add their alloted CentCom access.
- W.assignment = "Death Commando"
- W.registered_name = H.real_name
- W.update_label()
- ..()
-
-/datum/outfit/centcom/death_commando/officer
- name = "Death Commando Officer"
- head = /obj/item/clothing/head/helmet/space/beret
-
/datum/outfit/chrono_agent
name = "Timeline Eradication Agent"
uniform = /obj/item/clothing/under/color/white
@@ -204,7 +113,7 @@
box = /obj/item/storage/box/debugtools
internals_slot = ITEM_SLOT_SUITSTORE
backpack_contents = list(
- /obj/item/melee/transforming/energy/axe=1,\
+ /obj/item/melee/energy/axe=1,\
/obj/item/storage/part_replacer/bluespace/tier4=1,\
/obj/item/debug/human_spawner=1,\
/obj/item/debug/omnitool=1
diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm
index cd4474588090..687bf7bf7e72 100644
--- a/code/modules/clothing/shoes/_shoes.dm
+++ b/code/modules/clothing/shoes/_shoes.dm
@@ -16,6 +16,7 @@
permeability_coefficient = 0.5
slowdown = SHOES_SLOWDOWN
strip_delay = 1 SECONDS
+ blood_overlay_type = "shoe"
var/offset = 0
var/equipped_before_drop = FALSE
@@ -34,10 +35,7 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_shoes
- bloody_shoes = mutable_appearance('icons/effects/blood.dmi', "shoeblood")
- bloody_shoes.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_shoes
+ . += setup_blood_overlay()
/obj/item/clothing/shoes/examine(mob/user)
. = ..()
@@ -172,7 +170,7 @@
else // if one of us moved
user.visible_message("[our_guy] stamps on [user]'s hand, mid-shoelace [tied ? "knotting" : "untying"]!", "Ow! [our_guy] stamps on your hand!", list(our_guy))
to_chat(our_guy, "You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "untying"] your shoelaces!")
- user.emote("scream")
+ user.force_scream()
if(istype(L))
var/obj/item/bodypart/ouchie = L.get_bodypart(pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
if(ouchie)
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index ad130ea45fac..839dd3565ada 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -126,29 +126,6 @@
icon_state = "explorer"
resistance_flags = FIRE_PROOF
-/obj/item/clothing/shoes/cult
- name = "\improper Nar'Sien invoker boots"
- desc = "A pair of boots worn by the followers of Nar'Sie."
- icon_state = "cult"
- item_state = "cult"
- cold_protection = FEET
- min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT
- heat_protection = FEET
- max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
- lace_time = 10 SECONDS
- greyscale_icon_state = "boots"
-
-/obj/item/clothing/shoes/cult/alt
- name = "cultist boots"
- icon_state = "cultalt"
-
-/obj/item/clothing/shoes/cult/alt/ghost
- item_flags = DROPDEL
-
-/obj/item/clothing/shoes/cult/alt/ghost/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
-
/obj/item/clothing/shoes/laceup
name = "laceup shoes"
desc = "The height of fashion, and they're pre-polished!"
@@ -240,6 +217,9 @@
var/mob/living/simple_animal/hostile/retaliate/poison/snake/bootsnake = new/mob/living/simple_animal/hostile/retaliate/poison/snake(src)
occupants += bootsnake
+/obj/item/clothing/shoes/cowboy/Destroy()
+ QDEL_LIST(occupants)
+ return ..()
/obj/item/clothing/shoes/cowboy/equipped(mob/living/carbon/user, slot)
. = ..()
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 1359fe929e9e..b563d4fa300d 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -423,7 +423,7 @@
item_state = "syndie_hardsuit"
hardsuit_type = "syndi"
armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
- allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
jetpack = /obj/item/tank/jetpack/suit
supports_variations = DIGITIGRADE_VARIATION | VOX_VARIATION | TAJARA_VARIATION | RIOL_VARIATION
@@ -453,7 +453,6 @@
item_state = "hardsuit1-ramzi"
hardsuit_type = "ramzi"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/ramzi
- lightweight = 1
jetpack = null
armor = list("melee" = 35, "bullet" = 25, "laser" = 20,"energy" = 40, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)
// [CELADON - REMOVE] - BALANCE
@@ -962,7 +961,7 @@
item_state = "syndie_hardsuit"
hardsuit_type = "syndi"
armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 40, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
slowdown = 0.5
shield_state = "shield-red"
@@ -1253,7 +1252,7 @@
item_state = "hardsuit_solgov"
armor = list("melee" = 50, "bullet" = 45, "laser" = 40, "energy" = 30, "bomb" = 60, "bio" = 100, "rad" = 60, "fire" = 90, "acid" = 75) //intentionally the fucking strong, this is master chief-tier armor //is this really what you call the strong?? is this the best solgov has to offer??????
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/solgov
- allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
slowdown = 0.5
// [CELADON-EDIT] - TAJARA, CELADON_RIOL
// supports_variations = DIGITIGRADE_VARIATION // CELADON-EDIT - ORIGINAL
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 6e825e48ea4b..8cf3da8547cd 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -153,7 +153,7 @@ Contains:
desc = "Yarr."
w_class = WEIGHT_CLASS_NORMAL
flags_inv = 0
- allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/transforming/energy/sword/saber/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/energy/sword/saber/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
armor = list("melee" = 30, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 75)
strip_delay = 40
@@ -363,7 +363,7 @@ Contains:
armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 10, "fire" = 100, "acid" = 100)
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/melee/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/transforming/cleaving_saw)
+ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/melee/spear, /obj/item/organ/regenerative_core/legion, /obj/item/kinetic_crusher, /obj/item/resonator, /obj/item/melee/cleaving_saw)
/obj/item/clothing/suit/space/hardsuit/berserker/RemoveHelmet()
var/obj/item/clothing/head/helmet/space/hardsuit/berserker/helm = helmet
@@ -525,7 +525,7 @@ Contains:
icon_state = "vacsuit_solgov"
desc = "Originally designed by independent contractors on Luna for the purposes of survival in hazardous environments, the lightweight Tortoise Microlite Armored Suit now sees widespread use by SolGov's exploration teams."
item_state = "vacsuit_solgov"
- allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy, /obj/item/tank/internals)
+ allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy, /obj/item/tank/internals)
armor = list("bio" = 100, "rad" = 50, "fire" = 60, "acid" = 75)
slowdown = 0.5
w_class = WEIGHT_CLASS_NORMAL
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index 895dea5156aa..6f8269357eb2 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -4,7 +4,7 @@
/obj/item/clothing/suit/space/eva/plasmaman
name = "EVA plasma envirosuit"
desc = "A special plasma containment suit designed to be space-worthy, as well as worn over other clothing. Like its smaller counterpart, it can automatically extinguish the wearer in a crisis, and holds twice as many charges."
- allowed = list(/obj/item/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword, /obj/item/restraints/handcuffs, /obj/item/tank)
+ allowed = list(/obj/item/gun, /obj/item/ammo_casing, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/energy/sword, /obj/item/restraints/handcuffs, /obj/item/tank)
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 100, "acid" = 75)
resistance_flags = FIRE_PROOF
icon_state = "plasmaman_suit"
diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm
index e2a405176c21..2b2660af4f9c 100644
--- a/code/modules/clothing/spacesuits/syndi.dm
+++ b/code/modules/clothing/spacesuits/syndi.dm
@@ -4,7 +4,7 @@
icon_state = "syndicate"
item_state = "syndicate"
desc = "An advanced, lightweight space helmet made of durable composites. Almost matches integrated hardsuit helmets for protection. Almost."
- armor = list("melee" = 30, "bullet" = 15, "laser" = 15, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 30, "fire" = 75, "acid" = 75)
+ armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 30, "fire" = 75, "acid" = 75)
supports_variations = VOX_VARIATION
/obj/item/clothing/suit/space/syndicate
@@ -13,8 +13,11 @@
item_state = "space_suit_syndicate"
desc = "A space suit made of high-grade ballistic fabric with integrated armor plates. More compact than a normal space suit while almost matching powered hardsuits for protection. Almost."
w_class = WEIGHT_CLASS_NORMAL
- allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
- armor = list("melee" = 30, "bullet" = 15, "laser" = 15, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 30, "fire" = 75, "acid" = 75)
+ armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 20, "bio" = 100, "rad" = 30, "fire" = 75, "acid" = 75)
+
+/obj/item/clothing/suit/space/syndicate/Initialize()
+ . = ..()
+ allowed = GLOB.security_hardsuit_allowed
//Green syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/green
@@ -105,6 +108,7 @@
icon_state = "syndicate-helm-black-med"
item_state = "syndicate-helm-black"
+
/obj/item/clothing/suit/space/syndicate/black/med
name = "green space suit"
icon_state = "syndicate-black-med"
diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm
index 92baf4714ce1..05a283e650ef 100644
--- a/code/modules/clothing/suits/_suits.dm
+++ b/code/modules/clothing/suits/_suits.dm
@@ -9,7 +9,7 @@
drop_sound = 'sound/items/handling/cloth_drop.ogg'
pickup_sound = 'sound/items/handling/cloth_pickup.ogg'
slot_flags = ITEM_SLOT_OCLOTHING
- var/blood_overlay_type = "suit"
+ blood_overlay_type = "suit"
var/togglename = null
var/suittoggled = FALSE
pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo //WS Edit - Exowear Pockets
@@ -27,9 +27,8 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_armor = mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood")
- bloody_armor.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_armor
+ . += setup_blood_overlay()
+
var/mob/living/carbon/human/M = loc
if(ishuman(M) && M.w_uniform)
var/obj/item/clothing/under/U = M.w_uniform
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 6fd1a1677104..6e3f3ad8d52b 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -42,22 +42,32 @@
icon_state = "marine_light"
item_state = "armor"
clothing_flags = THICKMATERIAL
- body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- armor = list("melee" = 50, "bullet" = 75, "laser" = 55, "energy" = 25, "bomb" = 60, "bio" = 100, "fire" = 70, "acid" = 50)
- cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS
+ body_parts_covered = CHEST|GROIN
+ armor = list("melee" = 20, "bullet" = 45, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 65, "fire" = 40, "acid" = 50)
+ cold_protection = CHEST|GROIN
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
+ heat_protection = CHEST|GROIN
resistance_flags = FIRE_PROOF | ACID_PROOF
supports_variations = VOX_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON
- slowdown = 0.5
+ slowdown = 0 //one day...
/obj/item/clothing/suit/armor/vest/marine/medium
name = "medium tactical armor vest"
icon_state = "marine_medium"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ cold_protection = CHEST|GROIN|LEGS|ARMS
+ heat_protection = CHEST|GROIN|LEGS|ARMS
+ armor = list("melee" = 35, "bullet" = 50, "laser" = 45, "energy" = 25, "bomb" = 30, "bio" = 75, "fire" = 40, "acid" = 50)
+ slowdown = 0.4
/obj/item/clothing/suit/armor/vest/marine/heavy
- name = "large tactical armor vest"
+ name = "heavy tactical armor vest"
icon_state = "marine_heavy"
+ body_parts_covered = CHEST|GROIN|LEGS|ARMS
+ cold_protection = CHEST|GROIN|LEGS|ARMS
+ heat_protection = CHEST|GROIN|LEGS|ARMS
+ armor = list("melee" = 60, "bullet" = 60, "laser" = 55, "energy" = 25, "bomb" = 50, "bio" = 75, "fire" = 40, "acid" = 50)
+ slowdown = 0.8
/obj/item/clothing/suit/armor/vest/old
name = "degrading armor vest"
diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm
index 982b3804f586..1524a4aa6466 100644
--- a/code/modules/clothing/suits/cloaks.dm
+++ b/code/modules/clothing/suits/cloaks.dm
@@ -5,7 +5,6 @@
desc = "It's a cape that can be worn around your neck."
icon = 'icons/obj/clothing/cloaks.dmi'
icon_state = "qmcloak"
- item_state = "qmcloak"
w_class = WEIGHT_CLASS_SMALL
body_parts_covered = CHEST|GROIN|LEGS|ARMS
flags_inv = HIDESUITSTORAGE
diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm
index 2b06e695851c..03822d3f7a11 100644
--- a/code/modules/clothing/suits/jobs.dm
+++ b/code/modules/clothing/suits/jobs.dm
@@ -207,7 +207,7 @@
name = "surgical apron"
desc = "A sterile blue surgical apron."
icon_state = "surgical"
- allowed = list(/obj/item/scalpel, /obj/item/cautery, /obj/item/hemostat, /obj/item/retractor)
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
//SolGov suits
diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm
index 798a34606bc1..51d0f1eb08b1 100644
--- a/code/modules/clothing/suits/labcoat.dm
+++ b/code/modules/clothing/suits/labcoat.dm
@@ -5,7 +5,7 @@
item_state = "labcoat"
blood_overlay_type = "coat"
body_parts_covered = CHEST|ARMS|GROIN
- allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50)
togglename = "buttons"
@@ -75,7 +75,7 @@ You're pretty sure this is just a raincoat.
mob_overlay_icon = 'icons/mob/clothing/suits/utility.dmi'
icon_state = "labcoat_long"
item_state = "labcoat"
- allowed = list(/obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman)
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 50, "acid" = 50)
togglename = "buttons"
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index c8e54edb2e01..83ec8abff93c 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -37,7 +37,7 @@
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
- allowed = list(/obj/item/melee/transforming/energy/sword/saber/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
+ allowed = list(/obj/item/melee/energy/sword/saber/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/food/drinks/bottle/rum)
/obj/item/clothing/suit/pirate/captain
name = "pirate captain coat"
diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm
index 5c1bfb47be66..29faddfdd49d 100644
--- a/code/modules/clothing/suits/wintercoats.dm
+++ b/code/modules/clothing/suits/wintercoats.dm
@@ -65,28 +65,7 @@
icon_state = "coatmedical"
item_state = "coatmedical"
hoodtype = /obj/item/clothing/head/hooded/winterhood/medical
- allowed = list(
- /obj/item/analyzer,
- /obj/item/sensor_device,
- /obj/item/stack/medical,
- /obj/item/dnainjector,
- /obj/item/reagent_containers/dropper,
- /obj/item/reagent_containers/syringe,
- /obj/item/reagent_containers/hypospray,
- /obj/item/healthanalyzer,
- /obj/item/flashlight/pen,
- /obj/item/reagent_containers/glass/bottle,
- /obj/item/reagent_containers/glass/beaker,
- /obj/item/reagent_containers/pill,
- /obj/item/storage/pill_bottle,
- /obj/item/paper,
- /obj/item/melee/classic_baton/telescopic,
- /obj/item/toy,
- /obj/item/storage/fancy/cigarettes,
- /obj/item/lighter,
- /obj/item/tank/internals/emergency_oxygen,
- /obj/item/tank/internals/plasmaman,
- )
+ allowed = MEDICAL_SUIT_ALLOWED_ITEMS
/obj/item/clothing/head/hooded/winterhood/medical
icon_state = "hood_medical"
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index bc8cb512906b..7445eb2ad55a 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -15,6 +15,7 @@
clothamnt = 3
greyscale_colors = list(list(15, 17), list(10, 19), list(15, 10))
greyscale_icon_state = "under"
+
var/has_sensor = HAS_SENSORS // For the crew computer
var/random_sensor = TRUE
var/sensor_mode = NO_SENSORS
@@ -24,7 +25,9 @@
var/obj/item/clothing/accessory/attached_accessory
var/mutable_appearance/accessory_overlay
var/freshly_laundered = FALSE
+
supports_variations = VOX_VARIATION
+ blood_overlay_type = "uniform"
/obj/item/clothing/under/worn_overlays(isinhands = FALSE)
. = ..()
@@ -32,12 +35,15 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
if(HAS_BLOOD_DNA(src))
- var/mutable_appearance/bloody_uniform = mutable_appearance('icons/effects/blood.dmi', "uniformblood")
- bloody_uniform.color = get_blood_dna_color(return_blood_DNA())
- . += bloody_uniform
+ . += setup_blood_overlay()
if(accessory_overlay)
. += accessory_overlay
+/obj/item/clothing/under/Destroy()
+ . = ..()
+ if(attached_accessory)
+ attached_accessory.detach(src)
+
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = I
@@ -45,6 +51,9 @@
has_sensor = HAS_SENSORS
to_chat(user,"You repair the suit sensors on [src] with [C].")
return 1
+ if(attached_accessory && ispath(attached_accessory.pocket_storage_component_path) && loc == user)
+ attached_accessory.attackby(I,user)
+ return
if(!attach_accessory(I, user))
return ..()
@@ -179,7 +188,9 @@
if(SENSOR_COORDS)
. += "Its vital tracker and tracking beacon appear to be enabled."
if(attached_accessory)
- . += "\A [attached_accessory] is attached to it."
+ . += "\A [attached_accessory] is attached to it. You could Ctrl-click on it to remove it."
+ if(attached_accessory.pocket_storage_component_path)
+ . += "You could open the storage of \the [attached_accessory] with Alt-click."
/obj/item/clothing/under/rank
dying_key = DYE_REGISTRY_UNDER
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index 0d05c4e0cf7f..f084d50f6418 100644
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -92,10 +92,11 @@
if(initial(above_suit))
above_suit = !above_suit
to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.")
+ return ..()
/obj/item/clothing/accessory/examine(mob/user)
. = ..()
- . += "\The [src] can be attached to a uniform. Alt-click to remove it once attached."
+ . += "\The [src] can be attached to a uniform. Ctrl-click to remove it once attached."
if(initial(above_suit))
. += "\The [src] can be worn above or below your suit. Alt-click to toggle."
@@ -103,7 +104,7 @@
name = "waistcoat"
desc = "For some classy, murderous fun."
icon_state = "waistcoat"
- item_state = "waistcoat"
+ item_state = "det_suit"
minimize_when_attached = FALSE
attachment_slot = null
@@ -115,18 +116,6 @@
minimize_when_attached = FALSE
attachment_slot = null
-/obj/item/clothing/accessory/maidapron/syndicate
- name = "syndicate maid apron"
- desc = "Practical? No. Tactical? Also no. Cute? Most definitely yes."
- icon_state = "maidapronsynd"
- item_state = "maidapronsynd"
-
-/obj/item/clothing/accessory/maidapron/inteq
- name = "inteq maid apron"
- desc = "A 'tactical' apron to protect you from all sorts of spills, from dough to blood!"
- icon_state = "inteqmaidapron"
- item_state = "inteqmaidapron"
-
//////////
//Medals//
//////////
@@ -408,7 +397,6 @@
name = "shoulder holster"
desc = "A holster to carry a handgun and ammo. WARNING: Badasses only."
icon_state = "holster"
- item_state = "holster"
pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster
attachment_slot = null
@@ -434,7 +422,6 @@
name = "syndicate holster"
desc = "A two pouched hip holster that uses chameleon technology to disguise itself and any guns in it."
var/datum/action/item_action/chameleon/change/chameleon_action
- pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster/chameleon
/obj/item/clothing/accessory/holster/chameleon/Initialize()
. = ..()
@@ -444,6 +431,10 @@
chameleon_action.chameleon_name = "Accessory"
chameleon_action.initialize_disguises()
+/obj/item/clothing/accessory/holster/chameleon/Destroy()
+ QDEL_NULL(chameleon_action)
+ return ..()
+
/obj/item/clothing/accessory/holster/chameleon/emp_act(severity)
. = ..()
if(. & EMP_PROTECT_SELF)
diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm
index bbd0d962601f..7ac32c9c1295 100644
--- a/code/modules/clothing/under/color.dm
+++ b/code/modules/clothing/under/color.dm
@@ -11,11 +11,11 @@
/obj/item/clothing/under/color/random
icon_state = "random_jumpsuit"
- mob_overlay_state = "rainbow" // if you somehow equip it like that
+ mob_overlay_state = "white" // if you somehow equip it like that
/obj/item/clothing/under/color/random/Initialize()
..()
- var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient - /obj/item/clothing/under/color/black/ghost)
+ var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient)
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere...
@@ -25,7 +25,7 @@
/obj/item/clothing/under/color/jumpskirt/random
icon_state = "random_jumpsuit" //Skirt variant needed
- mob_overlay_state = "rainbow"
+ mob_overlay_state = "white"
/obj/item/clothing/under/color/jumpskirt/random/Initialize()
..()
@@ -48,13 +48,6 @@
icon_state = "black_skirt"
item_state = "bl_suit"
-/obj/item/clothing/under/color/black/ghost
- item_flags = DROPDEL
-
-/obj/item/clothing/under/color/black/ghost/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT)
-
/obj/item/clothing/under/color/grey
name = "grey jumpsuit"
desc = "A tasteful grey jumpsuit that reminds you of the good old days."
@@ -193,15 +186,6 @@
icon_state = "lightbrown_skirt"
item_state = "lb_suit"
-/obj/item/clothing/under/color/khaki
- name = "khaki jumpsuit"
- icon_state = "khakij"
- item_state = "lb_suit"
-
-/obj/item/clothing/under/color/khaki/buster
- name = "buster jumpsuit"
- desc = "There seems to be a large stain in the left pocket. Someone must have squashed a really big twinkie."
-
/obj/item/clothing/under/color/brown
name = "brown jumpsuit"
icon_state = "brown"
@@ -221,17 +205,3 @@
name = "maroon jumpskirt"
icon_state = "maroon_skirt"
item_state = "r_suit"
-
-/obj/item/clothing/under/color/rainbow
- name = "rainbow jumpsuit"
- desc = "A multi-colored jumpsuit!"
- icon_state = "rainbow"
- item_state = "rainbow"
- can_adjust = FALSE
-
-/obj/item/clothing/under/color/jumpskirt/rainbow
- name = "rainbow jumpskirt"
- desc = "A multi-colored jumpskirt!"
- icon_state = "rainbow_skirt"
- item_state = "rainbow"
- can_adjust = FALSE
diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm
index 46a1ff275d15..03f1cf19580f 100644
--- a/code/modules/clothing/under/jobs/security.dm
+++ b/code/modules/clothing/under/jobs/security.dm
@@ -55,7 +55,6 @@
desc = "Someone who wears this means business."
icon_state = "detective"
item_state = "det"
- armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30)
strip_delay = 50
alt_covers_chest = TRUE
sensor_mode = 3
diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm
index f74748f71fbb..091a584f1178 100644
--- a/code/modules/clothing/under/skirt_dress.dm
+++ b/code/modules/clothing/under/skirt_dress.dm
@@ -1,9 +1,13 @@
/obj/item/clothing/under/dress
+ name = "strange broken dress"
+ desc = "Tell a coder!"
+ icon = 'icons/obj/clothing/under/dress.dmi'
+ mob_overlay_icon = 'icons/mob/clothing/under/dresses/dress.dmi'
+ kepori_override_icon = 'icons/mob/clothing/under/dresses/dress_kepori.dmi'
+
can_adjust = FALSE
body_parts_covered = CHEST|GROIN
- icon = 'icons/obj/clothing/under/dress.dmi'
- mob_overlay_icon = 'icons/mob/clothing/under/dress.dmi'
- supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION //Doesn't require a new icon.
+ supports_variations = DIGITIGRADE_VARIATION_NO_NEW_ICON | VOX_VARIATION | KEPORI_VARIATION
/obj/item/clothing/under/dress/sundress
name = "sundress"
@@ -13,19 +17,19 @@
/obj/item/clothing/under/dress/blacktango
name = "black tango dress"
- desc = "Filled with Latin fire."
+ desc = "A silky black satin dress, traditionally made for dancing. It's light and easy to move in."
icon_state = "black_tango"
item_state = "wcoat"
/obj/item/clothing/under/dress/striped
name = "striped dress"
- desc = "Fashion in space."
+ desc = "A simple blue striped dress."
icon_state = "striped_dress"
item_state = "striped_dress"
/obj/item/clothing/under/dress/sailor
name = "sailor dress"
- desc = "Formal wear for a leading lady."
+ desc = "A traditional dress with roots in Far Eastern Cantonal culture, later popularized by the Solarian Confederacy's Naval Forces. However, due to its roots as a formal uniform, it would later be used by civilians in occasions outside of its naval context. The crisp cloth evokes feelings of order and discipline."
icon_state = "sailor_dress"
item_state = "sailor_dress"
@@ -35,62 +39,86 @@
icon_state = "red_evening_gown"
item_state = "red_evening_gown"
-/obj/item/clothing/under/dress/skirt
+/obj/item/clothing/under/dress/one_shoulder
+ name = "one shoulder dress"
+ desc = "A modern black dress with only one shoulder strap. Comes with a matching pair of arm warmers."
+ icon_state = "one_shoulder_dress"
+ can_adjust = TRUE
+
+/obj/item/clothing/under/dress/iko_ikssoal
+ name = "iko ikssoal"
+ desc = "The “iko-ikssoal”, translating to “long-dress”, is a traditional Kalixcian garment for formal gatherings."
+ icon_state = "iko_ikssoal"
+
+/obj/item/clothing/under/dress/skirt/color
name = "black skirt"
- desc = "A black skirt, very fancy!"
+ desc = "A black, casual skirt."
icon_state = "blackskirt"
+ can_adjust = TRUE
-/obj/item/clothing/under/dress/skirt/blue
+/obj/item/clothing/under/dress/skirt/color/blue
name = "blue skirt"
desc = "A blue, casual skirt."
icon_state = "blueskirt"
item_state = "b_suit"
- custom_price = 60
-/obj/item/clothing/under/dress/skirt/red
+/obj/item/clothing/under/dress/skirt/color/red
name = "red skirt"
desc = "A red, casual skirt."
icon_state = "redskirt"
item_state = "r_suit"
- custom_price = 60
-/obj/item/clothing/under/dress/skirt/purple
+/obj/item/clothing/under/dress/skirt/color/purple
name = "purple skirt"
desc = "A purple, casual skirt."
icon_state = "purpleskirt"
item_state = "p_suit"
- custom_price = 60
-/obj/item/clothing/under/dress/skirt/plaid
- name = "red plaid skirt"
- desc = "A preppy red skirt with a white blouse."
- icon_state = "plaid_red"
- item_state = "plaid_red"
+/obj/item/clothing/under/dress/skirt/color/white
+ name = "white skirt"
+ desc = "A white, casual skirt."
+ icon_state = "whiteskirt"
+
+/obj/item/clothing/under/dress/skirt/pinafore
+ name = "black pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is black."
+ icon_state = "black_pinafore"
can_adjust = TRUE
alt_covers_chest = TRUE
- custom_price = 60
-
-/obj/item/clothing/under/dress/skirt/plaid/blue
- name = "blue plaid skirt"
- desc = "A preppy blue skirt with a white blouse."
- icon_state = "plaid_blue"
- item_state = "plaid_blue"
-
-/obj/item/clothing/under/dress/skirt/plaid/purple
- name = "purple plaid skirt"
- desc = "A preppy purple skirt with a white blouse."
- icon_state = "plaid_purple"
- item_state = "plaid_purple"
-
-/obj/item/clothing/under/dress/skirt/plaid/green
- name = "green plaid skirt"
- desc = "A preppy green skirt with a white blouse."
- icon_state = "plaid_green"
- item_state = "plaid_green"
+
+/obj/item/clothing/under/dress/skirt/pinafore/maroon
+ name = "maroon pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is maroon."
+ icon_state = "maroon_pinafore"
+
+/obj/item/clothing/under/dress/skirt/pinafore/cerulean
+ name = "cerulean pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is cerulean."
+ icon_state = "cerulean_pinafore"
+
+/obj/item/clothing/under/dress/skirt/pinafore/plaid
+ name = "red plaid pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is in red plaid."
+ icon_state = "red_plaid_pinafore"
+
+/obj/item/clothing/under/dress/skirt/pinafore/plaid/green
+ name = "green plaid pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is in green plaid."
+ icon_state = "green_plaid_pinafore"
+
+/obj/item/clothing/under/dress/skirt/pinafore/plaid/brown
+ name = "brown plaid pinafore"
+ desc = "It's really just an apron that one wears over a shirt or dress. This one is in brown plaid."
+ icon_state = "brown_plaid_pinafore"
/obj/item/clothing/under/dress/rilena
name = "RILENA: LMR Ri cosplay"
desc = "A pretty red dress with big pink ribbons attached. Intended to be worn by Kepori cosplayers, but also fits other species."
icon_state = "rilena_dress"
item_state = "rilena_dress"
- //supports_variations = KEPORI_VARIATION
+
+/obj/item/clothing/under/dress/white_dress
+ name = "white dress"
+ desc = "A breezy white dress."
+ icon_state = "white_dress"
+ item_state = "white_dress"
diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm
index 82b4b663a66b..613238051fc3 100644
--- a/code/modules/clothing/under/syndicate.dm
+++ b/code/modules/clothing/under/syndicate.dm
@@ -186,17 +186,6 @@
icon_state = "gec_ce"
armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 80, "acid" = 40)
-/obj/item/clothing/under/syndicate/skirt/maid
- name = "tactical maid outfit"
- desc = "A 'tactical' turtleneck fashioned to the likeness of a maid outfit. Why the Syndicate has these, you'll never know."
- icon_state = "syndimaid"
- item_state = "syndimaid"
-
-/obj/item/clothing/under/syndicate/skirt/maid/Initialize()
- . = ..()
- var/obj/item/clothing/accessory/maidapron/syndicate/A = new (src)
- attach_accessory(A)
-
/datum/outfit/syndicate/intern
name = "Syndicate Operative - Intern"
@@ -267,21 +256,8 @@
name = "inteq corpsman skirtleneck"
desc = "A sterile white turtleneck with a free flowing black skirt, it is emblazoned with the lettering 'IRMG' on the shoulder. For the IRMG's support division Corpsmen."
icon_state = "inteqmed_skirt"
- supports_variations = KEPORI_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON
-
-/obj/item/clothing/under/syndicate/inteq/skirt/maid
- name = "inteq tactical maid outfit"
- desc = "A 'tactical' turtleneck fashioned to the likeness of a maid outfit. This one is lovingly knitted in the colors of the IRMG."
- icon_state = "inteqmaid"
- item_state = "inteqmaid"
- can_adjust = FALSE
supports_variations = KEPORI_VARIATION | VOX_VARIATION | DIGITIGRADE_VARIATION_NO_NEW_ICON
-/obj/item/clothing/under/syndicate/inteq/skirt/maid/Initialize()
- . = ..()
- var/obj/item/clothing/accessory/maidapron/inteq/A = new (src)
- attach_accessory(A)
-
/obj/item/clothing/under/syndicate/inteq/honorable
name = "honorable vanguard turtleneck"
desc = "a midnight black turtleneck worn by honorable Vanguards of the IRMG."
diff --git a/code/modules/donator/_donator.dm b/code/modules/donator/_donator.dm
index 4943aaea90d6..e79a81174924 100644
--- a/code/modules/donator/_donator.dm
+++ b/code/modules/donator/_donator.dm
@@ -8,19 +8,6 @@ GLOBAL_PROTECT(donators)
/client/var/datum/donator/donator
-/client/New(TopicData)
- . = ..()
- donator = GLOB.donators[ckey] || new /datum/donator(src)
- donator.owner = src
- add_verb(src, /client/proc/do_donator_redemption)
- add_verb(src, /client/proc/do_donator_wcir)
-
-/client/Destroy()
- . = ..()
- if(donator) // it's possible that a client was qdel'd inside the initializer
- donator.owner = null
- donator = null
-
/client/proc/do_donator_redemption()
set name = "Redeem Donator Reward"
set category = "OOC.Donator"
@@ -46,23 +33,20 @@ GLOBAL_PROTECT(donators)
/datum/donator
/// ckey of the client who this datum belongs to
var/ckey
- /// reference to the client
- var/client/owner
+
+ /// Whether or not this datum actually is a real donator
+ var/is_donator = FALSE
/// typecache of eligible rewards for this donator
- var/list/flat_rewards = list(
- /obj/item/reagent_containers/food/snacks/cookie = TRUE
- )
+ var/list/flat_rewards = list()
/// list of conversion rewards for this donator
/// Expected format: base type -> list of convertible types
- var/list/conversion_rewards = list(
- )
+ var/list/conversion_rewards = list()
/// list of reskin rewards for this donator
/// Should be an assosciative list indexed by type with a value which is a list of skins
- var/list/reskin_rewards = list(
- )
+ var/list/reskin_rewards = list()
/// list of redeemed conversion types
var/list/conversions_redeemed = list()
@@ -70,7 +54,6 @@ GLOBAL_PROTECT(donators)
/datum/donator/New(client/owner)
. = ..()
src.ckey = owner.ckey
- src.owner = owner
load_information()
GLOB.donators[ckey] = src
@@ -79,13 +62,14 @@ GLOBAL_PROTECT(donators)
return QDEL_HINT_LETMELIVE
. = ..()
GLOB.donators -= ckey
- owner.donator = null
- owner = null
/datum/donator/proc/load_information() //todo: db support with config files being a backup method
var/json_file = file(REWARD_JSON_PATH + "[ckey].json")
if(!fexists(json_file))
return
+
+ is_donator = TRUE
+
var/list/json = safe_json_decode(file2text(json_file))
if(!json || !("ckey" in json))
@@ -180,6 +164,10 @@ GLOBAL_PROTECT(donators)
. += rinstance
/datum/donator/proc/what_can_i_redeem(mob/user)
+ if(!is_donator)
+ to_chat(user, span_notice("You are not a donator! If you are, please contact an admin on the discord."))
+ return
+
var/resp = list()
resp += "----------"
resp += "Your current redeemable rewards are as follows:"
diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm
index 4213ae91376b..367b299107e7 100644
--- a/code/modules/economy/account.dm
+++ b/code/modules/economy/account.dm
@@ -29,7 +29,7 @@
/datum/bank_account/proc/has_money(amt)
return account_balance >= amt
-/datum/bank_account/proc/adjust_money(amt, reason = "cash")
+/datum/bank_account/proc/adjust_money(amt, reason = CREDIT_LOG_WITHDRAW)
if((amt < 0 && has_money(-amt)) || amt > 0)
SSblackbox.record_feedback("tally", "credits", amt, reason)
SSeconomy.bank_money += amt
@@ -39,10 +39,10 @@
/datum/bank_account/proc/transfer_money(datum/bank_account/from, amount)
if(from.has_money(amount))
- adjust_money(amount, "transfer")
+ adjust_money(amount, CREDIT_LOG_TRANSFER_IN)
SSblackbox.record_feedback("amount", "credits_transferred", amount)
log_econ("[amount] credits were transferred from [from.account_holder]'s account to [src.account_holder]")
- from.adjust_money(-amount, "transfer_out")
+ from.adjust_money(-amount, CREDIT_LOG_TRANSFER_OUT)
return TRUE
return FALSE
@@ -83,4 +83,4 @@
/datum/bank_account/ship/New(newname, budget)
account_holder = newname
- adjust_money(budget, "starting_money")
+ adjust_money(budget, CREDIT_LOG_STARTING_MONEY)
diff --git a/code/modules/economy/pay_stand.dm b/code/modules/economy/pay_stand.dm
index 9382a03d062e..1007f25fe40b 100644
--- a/code/modules/economy/pay_stand.dm
+++ b/code/modules/economy/pay_stand.dm
@@ -54,7 +54,7 @@
if(momsdebitcard < 1)
to_chat(user, "ERROR: Invalid amount designated.")
return
- if(vbucks.registered_account.adjust_money(-momsdebitcard, "transfer"))
+ if(vbucks.registered_account.adjust_money(-momsdebitcard, CREDIT_LOG_TRANSFER_IN))
purchase(vbucks.registered_account.account_holder, momsdebitcard)
to_chat(user, "Thanks for purchasing! The vendor has been informed.")
return
@@ -117,7 +117,7 @@
return ..()
/obj/machinery/paystand/proc/purchase(buyer, price)
- my_card.registered_account.adjust_money(price, "transfer")
+ my_card.registered_account.adjust_money(price, CREDIT_LOG_TRANSFER_IN)
my_card.registered_account.bank_card_talk("Purchase made at your vendor by [buyer] for [price] credits.")
amount_deposited = amount_deposited + price
if(signaler && amount_deposited >= signaler_threshold)
diff --git a/code/modules/economy/selling_pad.dm b/code/modules/economy/selling_pad.dm
index cf155ad251bd..e70dab4dcb77 100644
--- a/code/modules/economy/selling_pad.dm
+++ b/code/modules/economy/selling_pad.dm
@@ -36,7 +36,7 @@
/obj/machinery/computer/selling_pad_control/attackby(obj/item/I, mob/user)
var/value = I.get_item_credit_value()
if(value)
- sell_account.adjust_money(value, "selling_pad")
+ sell_account.adjust_money(value, CREDIT_LOG_SELLING_PAD)
to_chat(user, "You deposit [I]. The Vessel Budget is now [sell_account.account_balance] cr.")
qdel(I)
return TRUE
@@ -150,7 +150,7 @@
total_report.total_amount[E] += ex.total_amount[E]
total_report.total_value[E] += ex.total_value[E]
- sell_account.adjust_money(value, "selling_pad")
+ sell_account.adjust_money(value, CREDIT_LOG_SELLING_PAD)
if(!value)
status_report += "Nothing"
diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm
index f7324e3c57dd..3c68b18d50f9 100644
--- a/code/modules/events/brain_trauma.dm
+++ b/code/modules/events/brain_trauma.dm
@@ -27,7 +27,7 @@
15;TRAUMA_RESILIENCE_LOBOTOMY,
5;TRAUMA_RESILIENCE_MAGIC)
- var/trauma_type = pickweight(list(
+ var/trauma_type = pick_weight(list(
BRAIN_TRAUMA_MILD = 60,
BRAIN_TRAUMA_SEVERE = 30,
BRAIN_TRAUMA_SPECIAL = 10
diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm
deleted file mode 100644
index 656888f068bc..000000000000
--- a/code/modules/events/devil.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-/datum/round_event_control/devil
- name = "Create Devil"
- typepath = /datum/round_event/ghost_role/devil
- max_occurrences = 0
-
-/datum/round_event/ghost_role/devil
- var/success_spawn = 0
- role_name = "devil"
- fakeable = FALSE
-
-/datum/round_event/ghost_role/devil/kill()
- if(!success_spawn && control)
- control.occurrences--
- return ..()
-
-/datum/round_event/ghost_role/devil/spawn_role()
- //selecting a candidate player
- var/list/candidates = get_candidates(ROLE_DEVIL, null, ROLE_DEVIL)
- if(!candidates.len)
- return NOT_ENOUGH_PLAYERS
-
- var/mob/dead/selected_candidate = pick_n_take(candidates)
- var/key = selected_candidate.key
-
- var/datum/mind/Mind = create_devil_mind(key)
- Mind.active = 1
-
- var/mob/living/carbon/human/devil = create_event_devil()
- Mind.transfer_to(devil)
- add_devil(devil, ascendable = FALSE)
-
- spawned_mobs += devil
- message_admins("[ADMIN_LOOKUPFLW(devil)] has been made into a devil by an event.")
- log_game("[key_name(devil)] was spawned as a devil by an event.")
- var/datum/job/jobdatum = new /datum/job/assistant()
- devil.job = jobdatum.name
- jobdatum.equip(devil)
- return SUCCESSFUL_SPAWN
-
-
-/proc/create_event_devil(spawn_loc)
- var/mob/living/carbon/human/new_devil = new(spawn_loc)
- var/datum/preferences/A = new() //Randomize appearance for the devil.
- A.copy_to(new_devil)
- new_devil.dna.update_dna_identity()
- return new_devil
-
-/proc/create_devil_mind(key)
- var/datum/mind/Mind = new /datum/mind(key)
- Mind.assigned_role = ROLE_DEVIL
- Mind.special_role = ROLE_DEVIL
- SSticker.mode.devils |= Mind
- return Mind
diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm
index 35d8c4b141e1..73e3b721c067 100644
--- a/code/modules/events/heart_attack.dm
+++ b/code/modules/events/heart_attack.dm
@@ -18,7 +18,7 @@
heart_attack_contestants[victim] = 1
if(LAZYLEN(heart_attack_contestants))
- var/mob/living/carbon/human/winner = pickweight(heart_attack_contestants)
+ var/mob/living/carbon/human/winner = pick_weight(heart_attack_contestants)
var/datum/disease/D = new /datum/disease/heart_failure()
winner.ForceContractDisease(D, FALSE, TRUE)
announce_to_ghosts(winner)
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index 43e60c3137c3..1fbb017b7dd4 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -42,7 +42,7 @@
/obj/effect/spawner/xmastree
name = "christmas tree spawner"
- icon = 'icons/effects/landmarks_static.dmi'
+ icon = 'icons/effects/mapping/landmarks_static.dmi'
icon_state = "x2"
layer = FLY_LAYER
diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm
deleted file mode 100644
index 7fb00124a94d..000000000000
--- a/code/modules/events/major_dust.dm
+++ /dev/null
@@ -1,19 +0,0 @@
-/datum/round_event_control/meteor_wave/major_dust
- name = "Major Space Dust"
- typepath = /datum/round_event/meteor_wave/major_dust
- weight = 8
-
-/datum/round_event/meteor_wave/major_dust
- wave_name = "space dust"
-
-/datum/round_event/meteor_wave/major_dust/announce(fake)
- var/reason = pick(
- "The station is passing through a debris cloud, expect minor damage \
- to external fittings and fixtures.",
- "Nanotrasen Superweapons Division is testing a new prototype \
- [pick("field","projection","nova","super-colliding","reactive")] \
- [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \
- some mild debris is expected.",
- "A neighbouring station is throwing rocks at you. (Perhaps they've \
- grown tired of your messages.)")
- priority_announce(pick(reason), "Collision Alert")
diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm
deleted file mode 100644
index 11af56526c88..000000000000
--- a/code/modules/events/meateor_wave.dm
+++ /dev/null
@@ -1,11 +0,0 @@
-/datum/round_event_control/meteor_wave/meaty
- name = "Meteor Wave: Meaty"
- typepath = /datum/round_event/meteor_wave/meaty
- weight = 2
- max_occurrences = 1
-
-/datum/round_event/meteor_wave/meaty
- wave_name = "meaty"
-
-/datum/round_event/meteor_wave/meaty/announce(fake)
- priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/ai/meteors.ogg')
diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm
deleted file mode 100644
index a8ddab5aa76a..000000000000
--- a/code/modules/events/meteor_wave.dm
+++ /dev/null
@@ -1,76 +0,0 @@
-// Normal strength
-
-/datum/round_event_control/meteor_wave
- name = "Meteor Wave: Normal"
- typepath = /datum/round_event/meteor_wave
- weight = 4
- min_players = 15
- max_occurrences = 3
- earliest_start = 25 MINUTES
-
-/datum/round_event/meteor_wave
- startWhen = 6
- endWhen = 66
- announceWhen = 1
- var/list/wave_type
- var/wave_name = "normal"
-
-/datum/round_event/meteor_wave/New()
- ..()
- if(!wave_type)
- determine_wave_type()
-
-/datum/round_event/meteor_wave/proc/determine_wave_type()
- if(!wave_name)
- wave_name = pickweight(list(
- "normal" = 50,
- "threatening" = 40,
- "catastrophic" = 10))
- switch(wave_name)
- if("normal")
- wave_type = GLOB.meteors_normal
- if("threatening")
- wave_type = GLOB.meteors_threatening
- if("catastrophic")
- if(SSevents.holidays && SSevents.holidays[HALLOWEEN])
- wave_type = GLOB.meteorsSPOOKY
- else
- wave_type = GLOB.meteors_catastrophic
- if("meaty")
- wave_type = GLOB.meteorsB
- if("space dust")
- wave_type = GLOB.meteorsC
- if("halloween")
- wave_type = GLOB.meteorsSPOOKY
- else
- WARNING("Wave name of [wave_name] not recognised.")
- kill()
-
-/datum/round_event/meteor_wave/announce(fake)
- priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/meteors.ogg')
-
-/datum/round_event/meteor_wave/tick()
- if(ISMULTIPLE(activeFor, 3))
- spawn_meteors(5, wave_type) //meteor list types defined in gamemode/meteor/meteors.dm
-
-/datum/round_event_control/meteor_wave/threatening
- name = "Meteor Wave: Threatening"
- typepath = /datum/round_event/meteor_wave/threatening
- weight = 5
- min_players = 20
- max_occurrences = 3
- earliest_start = 35 MINUTES
-
-/datum/round_event/meteor_wave/threatening
- wave_name = "threatening"
-
-/datum/round_event_control/meteor_wave/catastrophic
- name = "Meteor Wave: Catastrophic"
- typepath = /datum/round_event/meteor_wave/catastrophic
- weight = 7
- min_players = 25
- max_occurrences = 3
- earliest_start = 45 MINUTES
-
-/datum/round_event/meteor_wave/catastrophic
- wave_name = "catastrophic"
diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm
deleted file mode 100644
index 182ea658a7a9..000000000000
--- a/code/modules/events/stray_cargo.dm
+++ /dev/null
@@ -1,76 +0,0 @@
-///Spawns a cargo pod containing a random cargo supply pack on a random area of the station
-/datum/round_event_control/stray_cargo
- name = "Stray Cargo Pod"
- typepath = /datum/round_event/stray_cargo
- weight = 20
- max_occurrences = 4
- earliest_start = 10 MINUTES
-
-///Spawns a cargo pod containing a random cargo supply pack on a random area of the station
-/datum/round_event/stray_cargo
- var/area/impact_area ///Randomly picked area
- announceChance = 75
- var/list/possible_pack_types = list() ///List of possible supply packs dropped in the pod, if empty picks from the cargo list
- var/static/list/stray_spawnable_supply_packs = list() ///List of default spawnable supply packs, filtered from the cargo list
-
-/datum/round_event/stray_cargo/announce(fake)
- priority_announce("Stray cargo pod detected on long-range scanners. Expected location of impact: [impact_area.name].", "Collision Alert", zlevel = impact_area.virtual_z())
-
-/**
-* Tries to find a valid area, throws an error if none are found
-* Also randomizes the start timer
-*/
-/datum/round_event/stray_cargo/setup()
- startWhen = rand(20, 40)
- impact_area = find_event_area()
- if(!impact_area)
- CRASH("No valid areas for cargo pod found.")
- var/list/turf_test = get_area_turfs(impact_area)
- if(!turf_test.len)
- CRASH("Stray Cargo Pod : No valid turfs found for [impact_area] - [impact_area.type]")
-
- if(!stray_spawnable_supply_packs.len)
- stray_spawnable_supply_packs = SSshuttle.supply_packs.Copy()
-
-///Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area
-/datum/round_event/stray_cargo/start()
- var/list/turf/valid_turfs = get_area_turfs(impact_area)
- //Only target non-dense turfs to prevent wall-embedded pods
- for(var/i in valid_turfs)
- var/turf/T = i
- if(T.density)
- valid_turfs -= T
- var/turf/LZ = pick(valid_turfs)
- var/pack_type
- if(possible_pack_types.len)
- pack_type = pick(possible_pack_types)
- else
- pack_type = pick(stray_spawnable_supply_packs)
- var/datum/supply_pack/SP = new pack_type
- var/obj/structure/closet/crate/crate = SP.generate(null)
- crate.locked = FALSE //Unlock secure crates
- crate.update_appearance()
- var/obj/structure/closet/supplypod/pod = make_pod()
- new /obj/effect/pod_landingzone(LZ, pod, crate)
-
-///Handles the creation of the pod, in case it needs to be modified beforehand
-/datum/round_event/stray_cargo/proc/make_pod()
- var/obj/structure/closet/supplypod/S = new
- return S
-
-///Picks an area that wouldn't risk critical damage if hit by a pod explosion
-/datum/round_event/stray_cargo/proc/find_event_area()
- var/static/list/allowed_areas
- if(!allowed_areas)
- ///Places that shouldn't explode
- var/list/safe_area_types = typecacheof(list(
- /area/ship/science/ai_chamber,
- /area/ship/engineering
- ))
-
- ///Subtypes from the above that actually should explode.
- var/list/unsafe_area_subtypes = typecacheof(list())
- allowed_areas = make_associative(typesof(/area/ship)) - safe_area_types + unsafe_area_subtypes
- var/list/possible_areas = typecache_filter_list(GLOB.sortedAreas,allowed_areas)
- if (length(possible_areas))
- return pick(possible_areas)
diff --git a/code/modules/faction/faction_datum.dm b/code/modules/faction/faction_datum.dm
index 450ee9688953..487d4f9c7810 100644
--- a/code/modules/faction/faction_datum.dm
+++ b/code/modules/faction/faction_datum.dm
@@ -1,62 +1,104 @@
/datum/faction
var/name
+ /// Primarly to be used for backend stuff.
+ var/short_name
var/parent_faction
+ /// List of prefixes that ships of this faction uses
var/list/prefixes
+ /// list of factions that are "allowed" with this faction, used for factional cargo
+ var/list/allowed_factions
+
+/datum/faction/New()
+ if(!short_name)
+ short_name = name
+
+/// Easy way to check if something is "allowed", checks to see if it matches the name or faction typepath because factions are a fucking mess
+/datum/faction/proc/allowed_faction(value_to_check)
+ ///Are we the same datum?
+ if(istype(value_to_check, src))
+ return TRUE
+ ///Allow if we share a parent faction
+ if(istype(value_to_check, parent_faction))
+ return TRUE
+ //do we have the same faction even if one is a define?
+ if(value_to_check == name)
+ return TRUE
+ if(value_to_check in allowed_factions)
+ return TRUE
+ return FALSE
/datum/faction/syndicate
name = FACTION_SYNDICATE
parent_faction = /datum/faction/syndicate
- prefixes = list("SEV", "SSV")
+ prefixes = PREFIX_SYNDICATE
/datum/faction/syndicate/ngr
name = FACTION_NGR
- prefixes = list("NGRV")
+ short_name = "NGR"
+ prefixes = PREFIX_NGR
/datum/faction/syndicate/cybersun
name = FACTION_CYBERSUN
- prefixes = list("CSSV")
+ prefixes = PREFIX_CYBERSUN
+
+/datum/faction/syndicate/hardliners
+ name = FACTION_HARDLINERS
+ prefixes = PREFIX_HARDLINERS
/datum/faction/syndicate/suns
name = FACTION_SUNS
- prefixes = list("SUNS")
+ short_name = "SUNS"
+ prefixes = PREFIX_SUNS
/datum/faction/solgov
name = FACTION_SOLGOV
- prefixes = list("SCSV")
+ prefixes = PREFIX_SOLGOV
/datum/faction/srm
name = FACTION_SRM
- prefixes = list("SRSV")
+ short_name = "SRM"
+ prefixes = PREFIX_SRM
/datum/faction/inteq
name = FACTION_INTEQ
- prefixes = list("IRMV")
+ short_name = "INTEQ"
+ prefixes = PREFIX_INTEQ
/datum/faction/clip
name = FACTION_CLIP
- prefixes = list("CMSV", "CMGSV")
+ short_name = "CLIP"
+ prefixes = PREFIX_CLIP
/datum/faction/nt
name = FACTION_NT
+ short_name = "NT"
parent_faction = /datum/faction/nt
- prefixes = list("NTSV")
+ prefixes = PREFIX_NT
/datum/faction/nt/ns_logi
name = FACTION_NS_LOGI
- prefixes = list("NSSV")
+ prefixes = PREFIX_NS_LOGI
/datum/faction/nt/vigilitas
name = FACTION_VIGILITAS
- prefixes = list("VISV")
+ prefixes = PREFIX_VIGILITAS
/datum/faction/frontier
name = FACTION_FRONTIER
- prefixes = list("FFV")
+ prefixes = PREFIX_FRONTIER
/datum/faction/pgf
name = FACTION_PGF
- prefixes = list("PGF", "PGFMC", "PGFN")
+ short_name = "PGF"
+ prefixes = PREFIX_PGF
/datum/faction/independent
name = FACTION_INDEPENDENT
- prefixes = list("SV", "IMV", "ISV")
+ short_name = "Indie"
+ prefixes = PREFIX_INDEPENDENT
+
+/datum/faction/syndicate/scarborough_arms
+ name = "Scarborough Arms"
+ parent_faction = /datum/faction/syndicate
+ prefixes = PREFIX_INDEPENDENT
+ allowed_factions = list(/datum/faction/syndicate)
diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm
index 229924eee7ba..42fc90d0cc15 100644
--- a/code/modules/fishing/aquarium/aquarium_kit.dm
+++ b/code/modules/fishing/aquarium/aquarium_kit.dm
@@ -4,7 +4,7 @@
desc = "Autogenerates nutritious fish feed based on sample inside."
icon = 'icons/obj/aquarium.dmi'
icon_state = "fish_feed"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
/obj/item/fish_feed/Initialize(mapload)
. = ..()
@@ -32,13 +32,12 @@
desc = "Everything you need to build your own aquarium. Raw materials sold separately."
icon = 'icons/obj/aquarium.dmi'
icon_state = "construction_kit"
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
/obj/item/aquarium_kit/attack_self(mob/user)
. = ..()
to_chat(user,span_notice("There's instruction and tools necessary to build aquarium inside. All you need is to start crafting."))
-
/obj/item/aquarium_prop
name = "generic aquarium prop"
desc = "very boring"
diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm
index 4f2c3cd1343a..40b979a89577 100644
--- a/code/modules/fishing/fish/_fish.dm
+++ b/code/modules/fishing/fish/_fish.dm
@@ -386,6 +386,6 @@
if(initial(fish.available_in_random_cases) || !case_fish_only)
chance_table[fish] = initial(fish.random_case_rarity)
probability_table[argkey] = chance_table
- return pickweight(probability_table[argkey])
+ return pick_weight(probability_table[argkey])
diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm
index 136a650148cd..db051d69175e 100644
--- a/code/modules/fishing/sources/_fish_source.dm
+++ b/code/modules/fishing/sources/_fish_source.dm
@@ -79,7 +79,7 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations())
/// In case you want more complex rules for specific spots
/datum/fish_source/proc/roll_reward(obj/item/fishing_rod/rod, mob/fisherman)
- return pickweight(get_modified_fish_table(rod,fisherman))
+ return pick_weight(get_modified_fish_table(rod,fisherman))
/// Gives out the reward if possible
/datum/fish_source/proc/dispense_reward(reward_path, mob/fisherman)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 8f8e532577c0..30b768e702b0 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -34,12 +34,14 @@ GLOBAL_LIST_INIT(hallucination_list, list(
if(world.time < next_hallucination)
return
- var/halpick = pickweight(GLOB.hallucination_list)
+ var/halpick = pick_weight(GLOB.hallucination_list)
new halpick(src, FALSE)
next_hallucination = world.time + rand(100, 600)
/mob/living/carbon/proc/set_screwyhud(hud_type)
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ hud_type = SCREWYHUD_HEALTHY
hal_screwyhud = hud_type
update_health_hud()
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index ec10f7dfb0f2..1caa3bcb14fa 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -233,7 +233,7 @@
/obj/item/reagent_containers/food/drinks/ice
name = "ice cup"
desc = "Careful, cold ice, do not chew."
- custom_price = 15
+ custom_price = 5
icon_state = "coffee"
list_reagents = list(/datum/reagent/consumable/ice = 30)
spillable = TRUE
@@ -268,21 +268,21 @@
list_reagents = list(/datum/reagent/consumable/hot_coco = 15, /datum/reagent/consumable/sugar = 5)
foodtype = SUGAR
resistance_flags = FREEZE_PROOF
- custom_price = 120
+ custom_price = 5
/obj/item/reagent_containers/food/drinks/cafelatte
name = "cafe latte"
desc = "A nice, strong and refreshing beverage while you're reading."
icon_state = "cafe_latte"
list_reagents = list(/datum/reagent/consumable/cafe_latte = 30)
- custom_price = 200
+ custom_price = 5
/obj/item/reagent_containers/food/drinks/soylatte
name = "soy latte"
desc = "A nice and refreshing beverage while you're reading."
icon_state = "soy_latte"
list_reagents = list(/datum/reagent/consumable/soy_latte = 30)
- custom_price = 200
+ custom_price = 5
/obj/item/reagent_containers/food/drinks/dry_ramen
name = "cup ramen"
@@ -291,7 +291,7 @@
list_reagents = list(/datum/reagent/consumable/dry_ramen = 15, /datum/reagent/consumable/sodiumchloride = 3)
foodtype = GRAIN
isGlass = FALSE
- custom_price = 95
+ custom_price = 5
/obj/item/reagent_containers/food/drinks/waterbottle
name = "Ryuunosuke Reserve" //we still have to find a way to make multiple variants as per the plan
@@ -305,7 +305,7 @@
amount_per_transfer_from_this = 10
fill_icon_thresholds = list(0, 10, 25, 50, 75, 80, 90)
isGlass = FALSE
- custom_price = 30
+ custom_price = 8
can_have_cap = TRUE
// The 2 bottles have separate cap overlay icons because if the bottle falls over while bottle flipping the cap stays fucked on the moved overlay
cap_icon_state = "bottle_cap_small"
@@ -374,7 +374,7 @@
icon_state = "beer"
list_reagents = list(/datum/reagent/consumable/ethanol/beer = 30)
foodtype = SUGAR | ALCOHOL
- custom_price = 60
+ custom_price = 10
/obj/item/reagent_containers/food/drinks/beer/light
name = "Carp Lite"
@@ -388,7 +388,7 @@
item_state = "beer"
list_reagents = list(/datum/reagent/consumable/ethanol/ale = 30)
foodtype = GRAIN | ALCOHOL
- custom_price = 60
+ custom_price = 15
/obj/item/reagent_containers/food/drinks/sillycup
name = "paper cup"
@@ -512,7 +512,7 @@
/obj/item/reagent_containers/food/drinks/flask
name = "flask"
desc = "Every good spacer knows it's a good idea to bring along a couple of pints of whiskey wherever they go."
- custom_price = 200
+ custom_price = 20
icon_state = "flask"
custom_materials = list(/datum/material/iron=250)
volume = 60
@@ -554,7 +554,7 @@
reagent_flags = NONE
spillable = FALSE
isGlass = FALSE
- custom_price = 45
+ custom_price = 5
var/pierced = FALSE
obj_flags = CAN_BE_HIT
@@ -593,6 +593,7 @@
broh.losebreath++
switch(broh.losebreath)
if(-INFINITY to 0)
+ EMPTY_BLOCK_GUARD
if(1 to 2)
if(prob(30))
user.visible_message("[broh]'s eyes water as [broh.p_they()] chug the can of [src]!")
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 0aa4ac7fad38..ece2f0dfbcfb 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -9,7 +9,7 @@
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."
icon_state = "glassbottle"
fill_icon_thresholds = list(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
- custom_price = 65
+ custom_price = 15
amount_per_transfer_from_this = 10
volume = 100
force = 15 //Smashing bottles over someone's head hurts.
@@ -32,7 +32,7 @@
desc = "This blank bottle is unyieldingly anonymous, offering no clues to its contents."
icon_state = "glassbottlesmall"
volume = 50
- custom_price = 55
+ custom_price = 1
/obj/item/reagent_containers/food/drinks/bottle/attack(mob/living/target, mob/living/user)
if(!target)
@@ -297,7 +297,7 @@
/obj/item/reagent_containers/food/drinks/bottle/orangejuice
name = "orange juice"
desc = "Sweet and tart orange juice. Usually found fortified to make it more nutritious. Full of vitamin C!"
- custom_price = 100
+ custom_price = 10
icon_state = "orangejuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -309,7 +309,7 @@
/obj/item/reagent_containers/food/drinks/bottle/lemonjuice
name = "lemon juice"
desc = "Lemonade for everyone!"
- custom_price = 100
+ custom_price = 10
icon_state = "lemonjuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -321,7 +321,7 @@
/obj/item/reagent_containers/food/drinks/bottle/cream
name = "milk cream"
desc = "Cream made from milk. It's thicker than milk, which hopefully prevents any mixups."
- custom_price = 100
+ custom_price = 10
icon_state = "cream"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -333,7 +333,7 @@
/obj/item/reagent_containers/food/drinks/bottle/tomatojuice
name = "tomato juice"
desc = "Juice from tomatoes and salt. You'll often find some technicians soaking in this if they've been working with plasma."
- custom_price = 100
+ custom_price = 10
icon_state = "tomatojuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -345,7 +345,7 @@
/obj/item/reagent_containers/food/drinks/bottle/limejuice
name = "lime juice"
desc = "Lime juice. You might want to mix something with this instead of drinking it straight..."
- custom_price = 100
+ custom_price = 10
icon_state = "limejuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -357,7 +357,7 @@
/obj/item/reagent_containers/food/drinks/bottle/pineapplejuice
name = "pineapple juice"
desc = "Tart, sweet juice from the tropical pineapple."
- custom_price = 100
+ custom_price = 10
icon_state = "pineapplejuice"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -370,7 +370,7 @@
/obj/item/reagent_containers/food/drinks/bottle/menthol
name = "menthol"
desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
- custom_price = 100
+ custom_price = 10
icon_state = "mentholbox"
item_state = "carton"
lefthand_file = 'icons/mob/inhands/equipment/kitchen_lefthand.dmi'
@@ -381,7 +381,7 @@
/obj/item/reagent_containers/food/drinks/bottle/grenadine
name = "Three-Star Grenadine"
desc = "A commonly seen bottle of grenadine - or sweet fruit syrup. It might even contain real cherries, as well as some blackcurrant for color."
- custom_price = 100
+ custom_price = 10
icon_state = "grenadine"
isGlass = TRUE
list_reagents = list(/datum/reagent/consumable/grenadine = 100)
@@ -391,7 +391,7 @@
/obj/item/reagent_containers/food/drinks/bottle/applejack
name = "Mars Lightning"
desc = "A strong brandy originating from apples, considered the older sibling to hard cider. Mars Lightning is often partnered with anti-gravity racing companies, leading to it often being served straight or for impromptu mixes."
- custom_price = 100
+ custom_price = 15
icon_state = "applejack_bottle"
isGlass = TRUE
list_reagents = list(/datum/reagent/consumable/ethanol/applejack = 100)
@@ -400,7 +400,7 @@
/obj/item/reagent_containers/food/drinks/bottle/champagne
name = "Treu Champagne"
desc = "Finely sourced from entire canton planets dedicated to faithful reproduction of pre-Night Of Fire vineyards. Typically enjoyed for celebrations and the turn of new years."
- custom_premium_price = 250
+ custom_premium_price = 25
icon_state = "champagne_bottle"
isGlass = TRUE
list_reagents = list(/datum/reagent/consumable/ethanol/champagne = 100)
@@ -414,7 +414,7 @@
/obj/item/reagent_containers/food/drinks/bottle/trappist
name = "Roumain Trapper's"
desc = "Traditionally (and heavily monitored for authenticity) made beer brewed on Illestren. Trapper's beer must be brewed by Saint Roumain Hunters or Shadows, made to fit the needs of their community first, and must never be made for profit... which makes it a common sight in the Frontier."
- custom_premium_price = 170
+ custom_premium_price = 17
icon_state = "trappistbottle"
volume = 50
list_reagents = list(/datum/reagent/consumable/ethanol/trappist = 50)
@@ -453,14 +453,27 @@
isGlass = TRUE
////////////////////////// MOLOTOV ///////////////////////
-/obj/item/reagent_containers/food/drinks/bottle/molotov
+/obj/item/reagent_containers/food/drinks/molotov
name = "molotov cocktail"
desc = "A throwing weapon used to ignite things, typically filled with an accelerant. Recommended highly by desperate militias and revolutionaries. Light and toss."
icon_state = "vodkabottle"
+ fill_icon_thresholds = list(0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
+ amount_per_transfer_from_this = 10
+ volume = 100
+ force = 15 //Smashing bottles over someone's head hurts.
+ throwforce = 15
+ item_state = "broken_beer" //Generic held-item sprite until unique ones are made.
+ lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi'
+ pickup_sound = 'sound/items/handling/bottle_pickup.ogg'
+ drop_sound = 'sound/items/handling/bottle_drop.ogg'
+ var/const/duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets)
+ isGlass = TRUE
+ foodtype = ALCOHOL
list_reagents = list()
var/active = 0
-/obj/item/reagent_containers/food/drinks/bottle/molotov/CheckParts(list/parts_list)
+/obj/item/reagent_containers/food/drinks/molotov/CheckParts(list/parts_list)
..()
var/obj/item/reagent_containers/food/drinks/bottle/B = locate() in contents
if(B)
@@ -471,7 +484,7 @@
isGlass = FALSE
return
-/obj/item/reagent_containers/food/drinks/bottle/molotov/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+/obj/item/reagent_containers/food/drinks/molotov/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
var/firestarter = FALSE
for(var/datum/reagent/reagent as anything in reagents.reagent_list)
if(reagent.accelerant_quality)
@@ -488,7 +501,7 @@
new /obj/effect/hotspot(otherT)
..()
-/obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params)
+/obj/item/reagent_containers/food/drinks/molotov/attackby(obj/item/I, mob/user, params)
if(I.get_temperature() && !active)
active = TRUE
log_bomber(user, "has primed a", src, "for detonation")
@@ -498,7 +511,7 @@
if(!isGlass)
addtimer(CALLBACK(src, PROC_REF(explode)), 5 SECONDS)
-/obj/item/reagent_containers/food/drinks/bottle/molotov/proc/explode()
+/obj/item/reagent_containers/food/drinks/molotov/proc/explode()
if(!active)
return
if(get_turf(src))
@@ -510,7 +523,7 @@
target.fire_act()
qdel(src)
-/obj/item/reagent_containers/food/drinks/bottle/molotov/attack_self(mob/user)
+/obj/item/reagent_containers/food/drinks/molotov/attack_self(mob/user)
if(active)
if(!isGlass)
to_chat(user, "The flame's spread too far on it!")
@@ -519,6 +532,9 @@
cut_overlay(custom_fire_overlay ? custom_fire_overlay : GLOB.fire_overlay)
active = 0
+/obj/item/reagent_containers/food/drinks/molotov/full
+ list_reagents = list(/datum/reagent/consumable/ethanol/vodka = 100)
+
/obj/item/reagent_containers/food/drinks/bottle/pruno
name = "pruno mix"
desc = "A trash bag filled with fruit, sugar, yeast, and water, pulped together into a pungent slurry to be fermented in an enclosed space, traditionally the toilet."
@@ -606,8 +622,8 @@
/obj/item/sandstar
name = "SandBlast Sarsaparilla star"
desc = "Legend says something amazing happens when you collect enough of these."
- custom_price = 100
- custom_premium_price = 110
+ custom_price = 10
+ custom_premium_price = 11
icon = 'icons/obj/items.dmi'
icon_state = "sandstar"
w_class = WEIGHT_CLASS_TINY
diff --git a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm
index 922e74ee9a3b..45dc05531ba8 100644
--- a/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm
@@ -1,6 +1,6 @@
/obj/item/reagent_containers/food/drinks/breakawayflask
name = "breakaway flask"
- desc = "A special flask designed to stabilize trick wines and shatter violently on contact."
+ desc = "A special flask designed to stabilize Illestren Bacterium and shatter violently on contact."
icon_state = "breakawayflask"
item_state = "breakawayflask"
w_class = WEIGHT_CLASS_SMALL
@@ -15,7 +15,7 @@
obj_flags = UNIQUE_RENAME
drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
- custom_price = 25
+ custom_price = 15
can_have_cap = TRUE
cap_icon_state = "baflask_cap"
cap_on = TRUE
@@ -41,7 +41,7 @@
else
icon_state = "breakawayflask"
name = "breakaway flask"
- desc = "A special flask designed to stabilize trick wines and shatter violently on contact."
+ desc = "A special flask designed to stabilize Illestren Bacterium and shatter violently on contact."
return
/obj/item/reagent_containers/food/drinks/breakawayflask/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
@@ -54,31 +54,21 @@
vintage = TRUE
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/ashwine
- name = "Vintage Saint-Roumain Ashwine"
+ name = "Vintage Wine of Ash"
list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/ash_wine = 45, /datum/reagent/consumable/ethanol/absinthe = 5)
- desc = "Ashwine was originally created using herbs native to Illestren, as a means of relaxing after a long hunt. The Saint-Roumain Militia has no prohibition on a little fun."
+ desc = "Wine of Ash was originally created using herbs native to Illestren, as a means of relaxing after a long hunt. The Saint-Roumain Militia has no prohibition on a little fun."
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/icewine
- name = "Vintage Saint-Roumain Icewine"
+ name = "Vintage Wine Of Ice"
list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/ice_wine = 45, /datum/reagent/consumable/ethanol/sake = 5)
- desc = "Icewine, inspired by the frigid slopes of the 'Godforsaken Precipice' that forged the group's reputation as valiant survivalists, was engineered to both soothe overheated Hunters and freeze their foes in their tracks."
+ desc = "Wine Of Ice, inspired by the frigid slopes of the 'Godforsaken Precipice' that forged the group's reputation as valiant survivalists, was engineered to both soothe overheated Hunters and freeze their foes in their tracks."
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/shockwine
- name = "Vintage Saint-Roumain Shockwine"
+ name = "Vintage Lightnings' Blessing"
list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/shock_wine = 45, /datum/reagent/consumable/ethanol/vodka = 5)
- desc = "Shockwine, made to invigorate consumers and incapacitate targets, took inspiration from an incident early in the Saint-Roumain Militia's history, when a young Shadow stopped a rampaging beast by plunging an electrical cable that had been dislodged in the fighting into its side."
+ desc = "Lightnings' Blessing, made to invigorate consumers and incapacitate targets, took inspiration from an incident early in the Saint-Roumain Militia's history, when a young Shadow stopped a rampaging beast by plunging an electrical cable that had been dislodged in the fighting into its side."
/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/hearthwine
- name = "Vintage Saint-Roumain Hearthwine"
+ name = "Vintage Hearthflame"
list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/hearth_wine = 45, /datum/reagent/consumable/ethanol/hcider = 5)
- desc = "Hearthwine is one of the most important tonics devised by the SRM – both for its potent abilities in staunching wounds or setting enemies aflame, and for its closeness to the divine fire associated with the Ashen Huntsman."
-
-/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/forcewine
- name = "Vintage Saint-Roumain Forcewine"
- list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 45, /datum/reagent/consumable/ethanol/tequila = 5)
- desc = "Forcewine was originally created as a means to create temporary shelters during long tracking expeditions. While the structures proved to be not as versatile in shape as its brewers had hoped, its utility in creating barricades or heming in hostiles was still greatly appreciated."
-
-/obj/item/reagent_containers/food/drinks/breakawayflask/vintage/prismwine
- name = "Vintage Saint-Roumain Prismwine"
- list_reagents = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 45, /datum/reagent/consumable/ethanol/gin = 5)
- desc = "Prismwine is one of the most recent additions to the Saint-Roumain Militia's reserve of trickwines. It was purpose-created for fighting hostiles that utilized more advanced energy projection attacks, such as the cryonic beams of watchers or the laser guns of interstellar pirates."
+ desc = "Hearthflame is one of the most important tonics devised by the SRM – both for its potent abilities in staunching wounds or setting enemies aflame, and for its closeness to the divine fire associated with the Ashen Huntsman."
diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
index 2f73f7678e38..79dccfc28f41 100644
--- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm
@@ -13,7 +13,7 @@
obj_flags = UNIQUE_RENAME
drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
- custom_price = 25
+ custom_price = 2
/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change(changetype)
cut_overlays()
@@ -33,6 +33,32 @@
icon_state = "glass_empty"
renamedByPlayer = FALSE //so new drinks can rename the glass
+/obj/item/reagent_containers/food/drinks/beaglemug
+ name = "beagle mug"
+ desc = "A beloved edifice of a Dog, now as a mug!"
+ icon_state = "beaglemug"
+ amount_per_transfer_from_this = 10
+ volume = 30
+ custom_materials = list(/datum/material/glass=500)
+ max_integrity = 20
+ spillable = TRUE
+ resistance_flags = ACID_PROOF
+ obj_flags = UNIQUE_RENAME
+ drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
+ pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
+ custom_price = 15
+
+/obj/item/reagent_containers/food/drinks/beaglemug/on_reagent_change(changetype)
+ cut_overlays()
+ if(reagents.reagent_list.len)
+ var/mutable_appearance/reagent_overlay = mutable_appearance(icon, "beaglemug_overlay")
+ icon_state = "beaglemug"
+ reagent_overlay.color = mix_color_from_reagents(reagents.reagent_list)
+ add_overlay(reagent_overlay)
+ else
+ icon_state = "beaglemug"
+ renamedByPlayer = FALSE
+
//Shot glasses!//
// This lets us add shots in here instead of lumping them in with drinks because >logic //
// The format for shots is the exact same as iconstates for the drinking glass, except you use a shot glass instead. //
@@ -49,7 +75,7 @@
possible_transfer_amounts = list()
volume = 15
custom_materials = list(/datum/material/glass=100)
- custom_price = 20
+ custom_price = 1
var/filled_desc = "The challenge is not taking as many as you can, but guessing what it is before you pass out."
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change(changetype)
diff --git a/code/modules/food_and_drinks/drinks/drinks/modglass.dm b/code/modules/food_and_drinks/drinks/drinks/modglass.dm
index 056ece3409ae..2ac2a22870b5 100644
--- a/code/modules/food_and_drinks/drinks/drinks/modglass.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/modglass.dm
@@ -35,7 +35,7 @@ GLOBAL_LIST_EMPTY(glass_variants)
obj_flags = UNIQUE_RENAME
drop_sound = 'sound/items/handling/drinkglass_drop.ogg'
pickup_sound = 'sound/items/handling/drinkglass_pickup.ogg'
- custom_price = 25
+ custom_price = 5
//rim defines the size of rim the glass has, used to decide which skins are available, and which garnish sprites to use
var/rim = RIM_MEDIUM
//stores the number of variations this glass sprite has to select from
diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm
index c088b2259610..540c6f1a94ea 100644
--- a/code/modules/food_and_drinks/food/snacks_meat.dm
+++ b/code/modules/food_and_drinks/food/snacks_meat.dm
@@ -273,7 +273,7 @@
w_class = WEIGHT_CLASS_TINY
var/faction
var/spawned_mob = /mob/living/carbon/monkey
- custom_price = 300
+ custom_price = 5
/obj/item/reagent_containers/food/snacks/monkeycube/proc/Expand()
var/mob/spammer = get_mob_by_key(fingerprintslast)
diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm
index 5129911cd311..3784e2f0fbd1 100644
--- a/code/modules/food_and_drinks/food/snacks_pizza.dm
+++ b/code/modules/food_and_drinks/food/snacks_pizza.dm
@@ -160,56 +160,6 @@
tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2)
foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE
-/obj/item/reagent_containers/food/snacks/pizza/arnold
- name = "\improper Arnold pizza"
- desc = "Hello, you've reached Arnold's pizza shop. I'm not here now, I'm out killing pepperoni."
- icon_state = "arnoldpizza"
- slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/arnold
- bonus_reagents = list(/datum/reagent/consumable/nutriment = 30, /datum/reagent/consumable/nutriment/vitamin = 6, /datum/reagent/iron = 10, /datum/reagent/medicine/omnizine = 30)
- tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2)
-
-/obj/item/reagent_containers/food/snacks/proc/try_break_off(mob/living/M, mob/living/user) //maybe i give you a pizza maybe i break off your arm
- var/obj/item/bodypart/l_arm = user.get_bodypart(BODY_ZONE_L_ARM)
- var/obj/item/bodypart/r_arm = user.get_bodypart(BODY_ZONE_R_ARM)
- if(prob(50) && iscarbon(user) && M == user && (r_arm || l_arm))
- user.visible_message("\The [src] breaks off [user]'s arm!!", "\The [src] breaks off your arm!")
- if(l_arm)
- l_arm.dismember()
- else
- r_arm.dismember()
- playsound(user, "desceration" ,50, TRUE, -1)
-
-/obj/item/reagent_containers/food/snacks/proc/i_kill_you(obj/item/I, mob/user)
- if(istype(I, /obj/item/reagent_containers/food/snacks/pineappleslice))
- to_chat(user, "If you want something crazy like pineapple, I kill you.")
- user.gib() //if you want something crazy like pineapple, i kill you
-
-/obj/item/reagent_containers/food/snacks/pizza/arnold/attack(mob/living/M, mob/living/user)
- . = ..()
- try_break_off(M, user)
-
-/obj/item/reagent_containers/food/snacks/pizza/arnold/attackby(obj/item/I, mob/user)
- i_kill_you(I, user)
- . = ..()
-
-
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold
- name = "\improper Arnold pizza slice"
- desc = "I come over, maybe I give you a pizza, maybe I break off your arm."
- icon_state = "arnoldpizzaslice"
- filling_color = "#A52A2A"
- tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pepperoni" = 2, "9 millimeter bullets" = 2)
- foodtype = GRAIN | VEGETABLES | DAIRY | MEAT
-
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold/attack(mob/living/M, mob/living/user)
- . =..()
- try_break_off(M, user)
-
-/obj/item/reagent_containers/food/snacks/pizzaslice/arnold/attackby(obj/item/I, mob/user)
- i_kill_you(I, user)
- . = ..()
-
-
/obj/item/reagent_containers/food/snacks/pizzaslice/custom
name = "pizza slice"
icon_state = "pizzamargheritaslice"
diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm
index b071add1027a..a450555a7a69 100644
--- a/code/modules/food_and_drinks/food/snacks_vend.dm
+++ b/code/modules/food_and_drinks/food/snacks_vend.dm
@@ -15,36 +15,6 @@
/*food_flags = FOOD_FINGER_FOOD*/
w_class = WEIGHT_CLASS_TINY
-/obj/item/reagent_containers/food/snacks/candy/bronx
- name = "South Bronx Paradise bar"
- desc = "Lose weight, guaranteed! Caramel Mocha Flavor. Something about product consumption..."
- icon_state = "bronx"
- item_state = "candy"
- trash = /obj/item/trash/candy
- list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/sugar = 2, /datum/reagent/yuck = 1)
- junkiness = 10
- bitesize = 10
- filling_color = "#e4d4b7"
- tastes = list("candy" = 5, "weight loss" = 4, "insect larva" = 1)
- foodtype = JUNKFOOD | RAW | GROSS
- custom_premium_price = 800
- var/revelation = FALSE
-
-/obj/item/reagent_containers/food/snacks/candy/bronx/On_Consume(mob/living/eater)
- . = ..()
- if(ishuman(eater))
- var/mob/living/carbon/human/carl = eater
- var/datum/disease/P = new /datum/disease/parasite()
- carl.ForceContractDisease(P, FALSE, TRUE)
-
-/obj/item/reagent_containers/food/snacks/candy/bronx/examine(mob/user)
- . = ..()
- if(revelation == FALSE)
- to_chat(user, "Geeze, you need to get to get your eyes checked. You should look again...")
- desc = "Lose weight, guaranteed! Caramel Mocha Flavor! WARNING: PRODUCT NOT FIT FOR HUMAN CONSUMPTION. CONTAINS LIVE DIAMPHIDIA SPECIMENS."
- name = "South Bronx Parasite bar"
- revelation = TRUE
-
/obj/item/reagent_containers/food/snacks/sosjerky
name = "\improper Scaredy's Private Reserve Beef Jerky"
icon_state = "sosjerky"
@@ -85,7 +55,7 @@
tastes = list("dried raisins" = 1)
foodtype = JUNKFOOD | FRUIT | SUGAR
/*food_flags = FOOD_FINGER_FOOD*/
- custom_price = 90
+ custom_price = 5
w_class = WEIGHT_CLASS_SMALL
/obj/item/reagent_containers/food/snacks/no_raisin/healthy
@@ -104,7 +74,7 @@
filling_color = "#FFD700"
foodtype = JUNKFOOD | GRAIN | SUGAR
/*food_flags = FOOD_FINGER_FOOD*/
- custom_price = 30
+ custom_price = 5
w_class = WEIGHT_CLASS_SMALL
/obj/item/reagent_containers/food/snacks/candy_trash
@@ -131,7 +101,7 @@
filling_color = "#FFD700"
tastes = list("cheese" = 5, "crisps" = 2)
foodtype = JUNKFOOD | DAIRY | SUGAR
- custom_price = 45
+ custom_price = 5
/obj/item/reagent_containers/food/snacks/syndicake
name = "syndi-cakes"
diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
deleted file mode 100644
index 79382343e1ae..000000000000
--- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm
+++ /dev/null
@@ -1,103 +0,0 @@
-GLOBAL_LIST_EMPTY(monkey_recyclers)
-
-/obj/machinery/monkey_recycler
- name = "monkey recycler"
- desc = "A machine used for recycling dead monkeys into monkey cubes."
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "grinder"
- layer = BELOW_OBJ_LAYER
- density = TRUE
- use_power = IDLE_POWER_USE
- idle_power_usage = IDLE_DRAW_MINIMAL
- active_power_usage = ACTIVE_DRAW_MEDIUM
- circuit = /obj/item/circuitboard/machine/monkey_recycler
- var/stored_matter = 0
- var/cube_production = 0.2
- var/list/connected = list() //Keeps track of connected xenobio consoles, for deletion in /Destroy()
-
-/obj/machinery/monkey_recycler/Initialize(mapload)
- . = ..()
- if (mapload)
- GLOB.monkey_recyclers += src
-
-/obj/machinery/monkey_recycler/Destroy()
- GLOB.monkey_recyclers -= src
- for(var/thing in connected)
- var/obj/machinery/computer/camera_advanced/xenobio/console = thing
- console.connected_recycler = null
- connected.Cut()
- return ..()
-
-/obj/machinery/monkey_recycler/RefreshParts() //Ranges from 0.2 to 0.8 per monkey recycled
- cube_production = 0
- for(var/obj/item/stock_parts/manipulator/B in component_parts)
- cube_production += B.rating * 0.1
- for(var/obj/item/stock_parts/matter_bin/M in component_parts)
- cube_production += M.rating * 0.1
-
-/obj/machinery/monkey_recycler/examine(mob/user)
- . = ..()
- if(in_range(user, src) || isobserver(user))
- . += "The status display reads: Producing [cube_production] cubes for every monkey inserted."
-
-/obj/machinery/monkey_recycler/attackby(obj/item/O, mob/user, params)
- if(default_deconstruction_screwdriver(user, "grinder_open", "grinder", O))
- return
-
- if(default_pry_open(O))
- return
-
- if(default_unfasten_wrench(user, O))
- power_change()
- return
-
- if(default_deconstruction_crowbar(O))
- return
-
- if(machine_stat) //NOPOWER etc
- return
- else
- return ..()
-
-/obj/machinery/monkey_recycler/MouseDrop_T(mob/living/target, mob/living/user)
- if(!istype(target))
- return
- if(ismonkey(target))
- stuff_monkey_in(target, user)
-
-/obj/machinery/monkey_recycler/proc/stuff_monkey_in(mob/living/carbon/monkey/target, mob/living/user)
- if(!istype(target))
- return
- if(target.stat == CONSCIOUS)
- to_chat(user, "The monkey is struggling far too much to put it in the recycler.")
- return
- if(target.buckled || target.has_buckled_mobs())
- to_chat(user, "The monkey is attached to something.")
- return
- qdel(target)
- to_chat(user, "You stuff the monkey into the machine.")
- playsound(src.loc, 'sound/machines/juicer.ogg', 50, TRUE)
- var/offset = prob(50) ? -2 : 2
- animate(src, pixel_x = pixel_x + offset, time = 0.2, loop = 200) //start shaking
- use_power(500)
- stored_matter += cube_production
- addtimer(VARSET_CALLBACK(src, pixel_x, base_pixel_x))
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), user, "The machine now has [stored_matter] monkey\s worth of material stored."))
-
-/obj/machinery/monkey_recycler/interact(mob/user)
- if(stored_matter >= 1)
- to_chat(user, "The machine hisses loudly as it condenses the ground monkey meat. After a moment, it dispenses a brand new monkey cube.")
- playsound(src.loc, 'sound/machines/hiss.ogg', 50, TRUE)
- for(var/i in 1 to FLOOR(stored_matter, 1))
- new /obj/item/reagent_containers/food/snacks/monkeycube(src.loc)
- stored_matter--
- to_chat(user, "The machine's display flashes that it has [stored_matter] monkeys worth of material left.")
- else
- to_chat(user, "The machine needs at least 1 monkey worth of material to produce a monkey cube. It currently has [stored_matter].")
-
-/obj/machinery/monkey_recycler/multitool_act(mob/living/user, obj/item/multitool/I)
- . = ..()
- if(istype(I))
- to_chat(user, "You log [src] in the multitool's buffer.")
- I.buffer = src
- return TRUE
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index ae1507cb2fae..ef3cceed2afc 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -37,7 +37,7 @@
qdel(what)
/obj/machinery/processor/proc/select_recipe(X)
- for (var/type in subtypesof(/datum/food_processor_process) - /datum/food_processor_process/mob)
+ for (var/type in subtypesof(/datum/food_processor_process))
var/datum/food_processor_process/recipe = new type()
if (!istype(X, recipe.input) || !istype(src, recipe.required_machine))
continue
@@ -149,62 +149,3 @@
O.forceMove(drop_location())
for (var/mob/M in src)
M.forceMove(drop_location())
-
-/obj/machinery/processor/slime
- name = "slime processor"
- desc = "An industrial grinder with a sticker saying appropriated for science department. Keep hands clear of intake area while operating."
-
-/obj/machinery/processor/slime/Initialize()
- . = ..()
- // [CELADON-REMOVE] - CELADON_BALANCE - Режем данную механику
- // var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/processor/slime(null)
- // B.apply_default_parts(src)
- // [/CELADON-REMOVE]
-
-/obj/machinery/processor/slime/adjust_item_drop_location(atom/movable/AM)
- var/static/list/slimecores = subtypesof(/obj/item/slime_extract)
- var/i = 0
- if(!(i = slimecores.Find(AM.type))) // If the item is not found
- return
- if (i <= 16) // If in the first 12 slots
- AM.pixel_x = AM.base_pixel_x - 12 + ((i%4)*8)
- AM.pixel_y = AM.base_pixel_y - 12 + (round(i/4)*8)
- return i
- var/ii = i - 16
- AM.pixel_x = AM.base_pixel_x - 12 + ((ii%4)*8)
- AM.pixel_y = AM.base_pixel_y - 12 + (round(ii/4)*8)
- return i
-
-/obj/machinery/processor/slime/process()
- if(processing)
- return
- var/mob/living/simple_animal/slime/picked_slime
- for(var/mob/living/simple_animal/slime/slime in range(1,src))
- if(slime.loc == src)
- continue
- if(istype(slime, /mob/living/simple_animal/slime))
- if(slime.stat)
- picked_slime = slime
- break
- if(!picked_slime)
- return
- var/datum/food_processor_process/P = select_recipe(picked_slime)
- if (!P)
- return
-
- visible_message("[picked_slime] is sucked into [src].")
- picked_slime.forceMove(src)
-
-/obj/machinery/processor/slime/process_food(datum/food_processor_process/recipe, atom/movable/what)
- var/mob/living/simple_animal/slime/S = what
- if (istype(S))
- var/C = S.cores
- if(S.stat != DEAD)
- S.forceMove(drop_location())
- S.visible_message("[C] crawls free of the processor!")
- return
- for(var/i in 1 to (C+rating_amount-1))
- var/atom/movable/item = new S.coretype(drop_location())
- adjust_item_drop_location(item)
- SSblackbox.record_feedback("tally", "slime_core_harvested", 1, S.colour)
- ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index 9a6b10e0444b..6d9945337f71 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -12,6 +12,7 @@
idle_power_usage = IDLE_DRAW_MINIMAL
active_power_usage = ACTIVE_DRAW_MINIMAL
circuit = /obj/item/circuitboard/machine/smartfridge
+ integrity_failure = 0.4
var/max_n_of_items = 1500
var/allow_ai_retrieve = FALSE
@@ -40,7 +41,10 @@
. += "The status display reads: This unit can hold a maximum of [max_n_of_items] items."
/obj/machinery/smartfridge/update_icon_state()
- if(machine_stat)
+ if(machine_stat & BROKEN)
+ icon_state = "[initial(icon_state)]-broken"
+ return ..()
+ else if(!powered())
icon_state = "[initial(icon_state)]-off"
return ..()
@@ -53,10 +57,8 @@
icon_state = "[initial(icon_state)]"
if(1 to 25)
icon_state = "[initial(icon_state)]1"
- if(26 to 75)
+ if(26 to INFINITY)
icon_state = "[initial(icon_state)]2"
- if(76 to INFINITY)
- icon_state = "[initial(icon_state)]3"
return ..()
/obj/machinery/smartfridge/update_overlays()
@@ -380,23 +382,6 @@
return TRUE
return FALSE
-// -------------------------------------
-// Xenobiology Slime-Extract Smartfridge
-// -------------------------------------
-/obj/machinery/smartfridge/extract
- name = "smart slime extract storage"
- desc = "A refrigerated storage unit for slime extracts."
-
-/obj/machinery/smartfridge/extract/accept_check(obj/item/O)
- if(istype(O, /obj/item/slime_extract))
- return TRUE
- if(istype(O, /obj/item/slime_scanner))
- return TRUE
- return FALSE
-
-/obj/machinery/smartfridge/extract/preloaded
- initial_contents = list(/obj/item/slime_scanner = 2)
-
// -------------------------
// Organ Surgery Smartfridge
// -------------------------
diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm
index b5c4c2c42b85..bfc9179c4893 100644
--- a/code/modules/food_and_drinks/pizzabox.dm
+++ b/code/modules/food_and_drinks/pizzabox.dm
@@ -341,13 +341,13 @@
/obj/item/pizzabox/infinite/proc/attune_pizza(mob/living/carbon/human/noms) //tonight on "proc names I never thought I'd type"
if(!pizza_preferences[noms.ckey])
- pizza_preferences[noms.ckey] = pickweight(pizza_types)
+ pizza_preferences[noms.ckey] = pick_weight(pizza_types)
if(noms.has_quirk(/datum/quirk/pineapple_liker))
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/pineapple
else if(noms.has_quirk(/datum/quirk/pineapple_hater))
var/list/pineapple_pizza_liker = pizza_types.Copy()
pineapple_pizza_liker -= /obj/item/reagent_containers/food/snacks/pizza/pineapple
- pizza_preferences[noms.ckey] = pickweight(pineapple_pizza_liker)
+ pizza_preferences[noms.ckey] = pick_weight(pineapple_pizza_liker)
else if(noms.mind && noms.mind.assigned_role == "Botanist")
pizza_preferences[noms.ckey] = /obj/item/reagent_containers/food/snacks/pizza/dank
diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
index 9fdacebf8900..8be72cd786db 100644
--- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
@@ -633,22 +633,10 @@
/datum/chemical_reaction/hearth_wine
results = list(/datum/reagent/consumable/ethanol/trickwine/hearth_wine = 5)
- required_reagents = list(/datum/reagent/consumable/ethanol/hcider = 3, /datum/reagent/consumable/pyre_elementum = 1, /datum/reagent/fuel = 1)
+ required_reagents = list(/datum/reagent/consumable/ethanol/hcider = 3, /datum/reagent/consumable/pyre_elementum = 1, /datum/reagent/phosphorus = 1)
required_container = /obj/structure/fermenting_barrel/distiller
mix_sound ='sound/items/welder.ogg'
-/datum/chemical_reaction/force_wine
- results = list(/datum/reagent/consumable/ethanol/trickwine/force_wine = 5)
- required_reagents = list(/datum/reagent/consumable/ethanol/tequila = 3, /datum/reagent/calcium = 1, /datum/reagent/consumable/comet_trail = 1)
- required_container = /obj/structure/fermenting_barrel/distiller
- mix_sound ='sound/magic/forcewall.ogg'
-
-/datum/chemical_reaction/prism_wine
- results = list(/datum/reagent/consumable/ethanol/trickwine/prism_wine = 5)
- required_reagents = list(/datum/reagent/consumable/ethanol/gin = 3, /datum/reagent/toxin/plasma = 1, /datum/reagent/consumable/tinlux = 1)
- required_container = /obj/structure/fermenting_barrel/distiller
- mix_sound ='sound/weapons/laser.ogg'
-
/datum/chemical_reaction/molten_bubbles
results = list(/datum/reagent/consumable/molten = 30)
required_reagents = list(/datum/reagent/clf3 = 10, /datum/reagent/consumable/space_cola = 20, /datum/reagent/medicine/leporazine = 1, /datum/reagent/medicine/lavaland_extract = 1)
diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm
index c13983c6792d..63ffccdba79c 100644
--- a/code/modules/food_and_drinks/recipes/processor_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm
@@ -45,11 +45,6 @@
input = /obj/item/reagent_containers/food/snacks/grown/parsnip
output = /obj/item/reagent_containers/food/snacks/roastparsnip
-/datum/food_processor_process/mob/slime
- input = /mob/living/simple_animal/slime
- output = null
- required_machine = /obj/machinery/processor/slime
-
/datum/food_processor_process/towercap
input = /obj/item/grown/log
output = /obj/item/popsicle_stick
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm
index c79d4cea8474..993c75246c6c 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm
@@ -81,7 +81,7 @@
name = "Energy cake"
reqs = list(
/obj/item/food/cake/birthday = 1,
- /obj/item/melee/transforming/energy/sword = 1,
+ /obj/item/melee/energy/sword = 1,
)
blacklist = list(/obj/item/food/cake/birthday/energy)
result = /obj/item/food/cake/birthday/energy
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm
index 5c9bcc56cc7d..42afb89c4228 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm
@@ -150,7 +150,6 @@
/datum/reagent/consumable/sugar = 5,
/obj/item/reagent_containers/food/snacks/pie/plain = 1,
/obj/item/reagent_containers/food/snacks/chocolatebar = 3,
- /obj/item/slime_extract = 1 //The reason you dont know how to make it!
)
result = /obj/item/reagent_containers/food/snacks/pie/cocolavatart
subcategory = CAT_PIE
diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm
index 2cb668df4fd0..704ac4d207e8 100644
--- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm
+++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm
@@ -24,18 +24,6 @@
result = /obj/item/reagent_containers/food/snacks/pizza/meat
subcategory = CAT_PIZZA
-/datum/crafting_recipe/food/arnold
- name = "Arnold pizza"
- reqs = list(
- /obj/item/reagent_containers/food/snacks/pizzabread = 1,
- /obj/item/reagent_containers/food/snacks/meat/cutlet = 3,
- /obj/item/ammo_casing/c9mm = 8,
- /obj/item/reagent_containers/food/snacks/cheesewedge = 1,
- /obj/item/reagent_containers/food/snacks/grown/tomato = 1
- )
- result = /obj/item/reagent_containers/food/snacks/pizza/arnold
- subcategory = CAT_PIZZA
-
/datum/crafting_recipe/food/mushroompizza
name = "Mushroom pizza"
reqs = list(
diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm
index e2cb7d4bd4a4..3252b2f13e1a 100644
--- a/code/modules/holiday/easter.dm
+++ b/code/modules/holiday/easter.dm
@@ -55,7 +55,7 @@
icon_state = "s_rabbit_white"
icon_living = "s_rabbit_white"
icon_dead = "s_rabbit_white_dead"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
unsuitable_atmos_damage = 0
diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm
index 59e9a46341e6..9670e4426a6f 100644
--- a/code/modules/holodeck/turfs.dm
+++ b/code/modules/holodeck/turfs.dm
@@ -169,4 +169,4 @@
tiled_dirt = FALSE
/turf/open/floor/holofloor/snow/cold
- initial_gas_mix = "nob=7500;TEMP=2.7"
+ initial_gas_mix = "ammonia=7500;TEMP=2.7"
diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm
index a91ad2b90050..6f1b40b3dc9d 100644
--- a/code/modules/hydroponics/fermenting_barrel.dm
+++ b/code/modules/hydroponics/fermenting_barrel.dm
@@ -76,6 +76,14 @@
icon_state = closed_state
return ..()
+/obj/structure/fermenting_barrel/gunpowder
+ name = "Gunpowder Barrel"
+ desc = "A wooden barrel packed with gunpowder. You should probably keep this away from sparks or open fires."
+
+/obj/structure/fermenting_barrel/gunpowder/Initialize()
+ . = ..()
+ reagents.add_reagent(/datum/reagent/gunpowder, 200)
+
/obj/structure/fermenting_barrel/distiller
name = "Distiller"
icon_state = "distiller"
diff --git a/code/modules/hydroponics/grown/chili.dm b/code/modules/hydroponics/grown/chili.dm
index bbb1379bcc74..bb5049415652 100644
--- a/code/modules/hydroponics/grown/chili.dm
+++ b/code/modules/hydroponics/grown/chili.dm
@@ -98,7 +98,7 @@
if(held_mob.is_holding(src))
if(istype(held_mob) && held_mob.gloves)
return
- held_mob.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT)
+ held_mob.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT)
if(prob(10))
to_chat(held_mob, "Your hand holding [src] burns!")
else
diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm
index ee76f02e02c8..8ab59cc6f658 100644
--- a/code/modules/hydroponics/growninedible.dm
+++ b/code/modules/hydroponics/growninedible.dm
@@ -7,6 +7,7 @@
icon = 'icons/obj/hydroponics/harvest.dmi'
resistance_flags = FLAMMABLE
var/obj/item/seeds/seed = null // type path, gets converted to item on New(). It's safe to assume it's always a seed item.
+ var/auto_scatter = TRUE
/obj/item/grown/Initialize(newloc, obj/item/seeds/new_seed)
. = ..()
@@ -18,9 +19,9 @@
// This is for adminspawn or map-placed growns. They get the default stats of their seed type.
seed = new seed()
seed.adjust_potency(50-seed.potency)
-
- pixel_x = base_pixel_x + rand(-5, 5)
- pixel_y = base_pixel_y + rand(-5, 5)
+ if(auto_scatter)
+ pixel_x = base_pixel_x + rand(-5, 5)
+ pixel_y = base_pixel_y + rand(-5, 5)
if(seed)
// Go through all traits in their genes and call on_new_plant from them.
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 56ad2264ce01..5f0e38920cc9 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -7,7 +7,7 @@
item_state = "analyzer"
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
custom_materials = list(/datum/material/iron=30, /datum/material/glass=20)
var/scan_mode = PLANT_SCANMODE_STATS
@@ -179,11 +179,13 @@
volume = 50
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(1,2,5,10,15,25,50)
+ var/auto_scatter = TRUE
/obj/item/reagent_containers/glass/bottle/nutrient/Initialize()
. = ..()
- pixel_x = base_pixel_x + rand(-5, 5)
- pixel_y = base_pixel_y + rand(-5, 5)
+ if(auto_scatter)
+ pixel_x = base_pixel_x + rand(-5, 5)
+ pixel_y = base_pixel_y + rand(-5, 5)
/obj/item/reagent_containers/glass/bottle/nutrient/ez
diff --git a/code/modules/interview/interview.dm b/code/modules/interview/interview.dm
index 27b2c83321f7..64e78e43d79b 100644
--- a/code/modules/interview/interview.dm
+++ b/code/modules/interview/interview.dm
@@ -102,13 +102,14 @@
set name = "Open Interview"
set category = "Admin.Interview"
var/mob/dead/new_player/M = usr
- if (M?.client?.interviewee)
- var/datum/interview/I = GLOB.interviews.interview_for_client(M.client)
- if (I) // we can be returned nothing if the user is on cooldown
- I.ui_interact(M)
- else
- to_chat(usr, "You are on cooldown for interviews. Please" \
- + " wait at least 3 minutes before starting a new questionnaire.", confidential = TRUE)
+ if (!M?.client?.interviewee)
+ return
+ var/datum/interview/I = GLOB.interviews.interview_for_client(M.client)
+ if (I) // we can be returned nothing if the user is on cooldown
+ I.ui_interact(M)
+ else
+ to_chat(usr, "You are on cooldown for interviews. Please" \
+ + " wait at least 3 minutes before starting a new questionnaire.", confidential = TRUE)
/datum/interview/ui_interact(mob/user, datum/tgui/ui = null)
ui = SStgui.try_update_ui(user, src, ui)
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index ee953b0fb74d..0ac783477e79 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -123,7 +123,7 @@
return FALSE
if(!visualsOnly)
var/datum/bank_account/bank_account = new(H.real_name, H.age)
- bank_account.adjust_money(officer ? 250 : 100, "starting_money") //just a little bit of money for you
+ bank_account.adjust_money(officer ? 250 : 100, CREDIT_LOG_STARTING_MONEY) //just a little bit of money for you
H.account_id = bank_account.account_id
//Equip the rest of the gear
diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm
index 42ca9b6de9fc..f6c4aa85fb6a 100644
--- a/code/modules/jobs/job_types/assistant.dm
+++ b/code/modules/jobs/job_types/assistant.dm
@@ -25,23 +25,12 @@ Assistant
/datum/outfit/job/assistant/pre_equip(mob/living/carbon/human/H)
..()
- if (CONFIG_GET(flag/grey_assistants))
- switch(H.jumpsuit_style)
- if(PREF_SUIT)
- uniform = initial(uniform)
- if(PREF_ALTSUIT)
- uniform = /obj/item/clothing/under/misc/assistantformal
- if(PREF_SKIRT)
- uniform = /obj/item/clothing/under/color/jumpskirt/grey
- else
- uniform = /obj/item/clothing/under/color/grey
- else
- switch(H.jumpsuit_style)
- if(PREF_SUIT)
- uniform = initial(uniform)
- if(PREF_ALTSUIT)
- uniform = /obj/item/clothing/under/misc/assistantformal
- if(PREF_SKIRT)
- uniform = /obj/item/clothing/under/utility/skirt
- else
- uniform = /obj/item/clothing/under/utility
+ switch(H.jumpsuit_style)
+ if(PREF_SUIT)
+ uniform = initial(uniform)
+ if(PREF_ALTSUIT)
+ uniform = /obj/item/clothing/under/misc/assistantformal
+ if(PREF_SKIRT)
+ uniform = /obj/item/clothing/under/utility/skirt
+ else
+ uniform = /obj/item/clothing/under/utility
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index 4feaed96faf1..ba4150f5a7f2 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -47,4 +47,4 @@
implants = list(/obj/item/implant/mindshield)
- chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/combat/compact
+ chameleon_extras = /obj/item/gun/ballistic/shotgun/automatic/m11
diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm
index 6e7e10a7cba6..d96e4591b050 100644
--- a/code/modules/language/language_holder.dm
+++ b/code/modules/language/language_holder.dm
@@ -291,11 +291,6 @@ Key procs
/datum/language/slime = list(LANGUAGE_ATOM))
spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM))
-/datum/language_holder/swarmer
- understood_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM))
- spoken_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM))
- blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM))
-
/datum/language_holder/venus
understood_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM))
spoken_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM))
diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm
deleted file mode 100644
index 69155c9230d8..000000000000
--- a/code/modules/library/lib_codex_gigas.dm
+++ /dev/null
@@ -1,104 +0,0 @@
-#define PRE_TITLE 1
-#define TITLE 2
-#define SYLLABLE 3
-#define MULTIPLE_SYLLABLE 4
-#define SUFFIX 5
-
-/obj/item/book/codex_gigas
- name = "\improper Codex Gigas"
- desc = "A book documenting the nature of devils."
- icon_state ="demonomicon"
- lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi'
- throw_speed = 1
- throw_range = 10
- resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- author = "Forces beyond your comprehension"
- unique = 1
- title = "the Codex Gigas"
- var/inUse = 0
- var/currentName = ""
- var/currentSection = PRE_TITLE
-
-/obj/item/book/codex_gigas/attack_self(mob/user)
- if(!user.can_read(src))
- return FALSE
- if(inUse)
- to_chat(user, "Someone else is reading it.")
- if(ishuman(user))
- var/mob/living/carbon/human/U = user
- if(U.check_acedia())
- to_chat(user, "None of this matters, why are you reading this? You put [title] down.")
- return
- user.visible_message("[user] opens [title] and begins reading intently.")
- ask_name(user)
-
-
-/obj/item/book/codex_gigas/proc/perform_research(mob/user, devilName)
- if(!devilName)
- user.visible_message("[user] closes [title] without looking anything up.")
- return
- inUse = TRUE
- var/speed = 300
- var/correctness = 85
- if(ishuman(user))
- var/mob/living/carbon/human/U = user
- if(U.job in list("Curator")) // the curator is both faster, and more accurate than normal crew members at research
- speed = 100
- correctness = 100
- correctness -= U.getOrganLoss(ORGAN_SLOT_BRAIN) * 0.5 //Brain damage makes researching hard.
- speed += U.getOrganLoss(ORGAN_SLOT_BRAIN) * 3
- if(do_after(user, speed, user, timed_action_flags = IGNORE_HELD_ITEM))
- var/usedName = devilName
- if(!prob(correctness))
- usedName += "x"
- var/datum/antagonist/devil/devil = devilInfo(usedName)
- display_devil(devil, user, usedName)
- sleep(10)
- onclose(user, "book")
- inUse = FALSE
-
-/obj/item/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName)
- reader << browse("Information on [devilName]
[GLOB.lawlorify[LORE][devil.ban]]
[GLOB.lawlorify[LORE][devil.obligation]]
[GLOB.lawlorify[LORE][devil.banish]]
[devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]")
-
-/obj/item/book/codex_gigas/proc/ask_name(mob/reader)
- ui_interact(reader)
-
-/obj/item/book/codex_gigas/ui_act(action, params)
- if(..())
- return
- if(!action)
- return FALSE
- if(action == "search")
- SStgui.close_uis(src)
- addtimer(CALLBACK(src, PROC_REF(perform_research), usr, currentName), 0)
- currentName = ""
- currentSection = PRE_TITLE
- return FALSE
- else
- currentName += action
- var/oldSection = currentSection
- if(GLOB.devil_pre_title.Find(action))
- currentSection = TITLE
- else if(GLOB.devil_title.Find(action))
- currentSection = SYLLABLE
- else if(GLOB.devil_syllable.Find(action))
- if (currentSection>=SYLLABLE)
- currentSection = MULTIPLE_SYLLABLE
- else
- currentSection = SYLLABLE
- else if(GLOB.devil_suffix.Find(action))
- currentSection = SUFFIX
- return currentSection != oldSection
-
-/obj/item/book/codex_gigas/ui_interact(mob/user, datum/tgui/ui)
- ui = SStgui.try_update_ui(user, src, ui)
- if(!ui)
- ui = new(user, src, "CodexGigas", name)
- ui.open()
-
-/obj/item/book/codex_gigas/ui_data(mob/user)
- var/list/data = list()
- data["name"]=currentName
- data["currentSection"]=currentSection
- return data
diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm
index 251cf46e7c5f..790503500e61 100644
--- a/code/modules/mapping/mapping_helpers.dm
+++ b/code/modules/mapping/mapping_helpers.dm
@@ -4,7 +4,7 @@
/obj/effect/baseturf_helper //Set the baseturfs of every turf in the /area/ it is placed.
name = "baseturf editor"
- icon = 'icons/effects/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping/mapping_helpers.dmi'
icon_state = ""
var/list/baseturf_to_replace
@@ -71,14 +71,6 @@
name = "asteroid snow baseturf editor"
baseturf = /turf/open/floor/plating/asteroid/snow
-/obj/effect/baseturf_helper/beach/sand
- name = "beach sand baseturf editor"
- baseturf = /turf/open/floor/plating/beach/sand
-
-/obj/effect/baseturf_helper/beach/water
- name = "water baseturf editor"
- baseturf = /turf/open/floor/plating/beach/water
-
/obj/effect/baseturf_helper/lava
name = "lava baseturf editor"
baseturf = /turf/open/lava/smooth
@@ -89,8 +81,9 @@
/obj/effect/mapping_helpers
- icon = 'icons/effects/mapping_helpers.dmi'
+ icon = 'icons/effects/mapping/mapping_helpers.dmi'
icon_state = ""
+ invisibility = INVISIBILITY_OBSERVER
var/late = FALSE
/obj/effect/mapping_helpers/Initialize()
@@ -152,6 +145,25 @@
else
airlock.locked = TRUE
+/obj/effect/mapping_helpers/airlock/welded
+ name = "airlock welder"
+
+/obj/effect/mapping_helpers/airlock/welded/payload(obj/machinery/door/airlock/airlock)
+ if(airlock.welded)
+ log_mapping("[src] at [AREACOORD(src)] tried to weld [airlock] but it's already locked!")
+ else
+ airlock.welded = TRUE
+
+/obj/effect/mapping_helpers/airlock/sealed
+ name = "airlock sealer"
+
+/obj/effect/mapping_helpers/airlock/sealed/payload(obj/machinery/door/airlock/airlock)
+ if(airlock.seal)
+ log_mapping("[src] at [AREACOORD(src)] tried to seal [airlock] but it's already already got a seal? What the hell!")
+ else
+ airlock.seal = new /obj/item/door_seal(airlock)
+
+
/obj/effect/mapping_helpers/airlock/unres
name = "airlock unresctricted side helper"
@@ -253,7 +265,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/ianbirthday
name = "Ian's Bday Helper"
late = TRUE
- icon_state = "iansbdayhelper"
var/balloon_clusters = 2
/obj/effect/mapping_helpers/ianbirthday/LateInitialize()
@@ -312,7 +323,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/ianbirthday/admin//so admins may birthday any room
name = "generic birthday setup"
- icon_state = "bdayhelper"
/obj/effect/mapping_helpers/ianbirthday/admin/LateInitialize()
birthday()
@@ -322,7 +332,6 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
/obj/effect/mapping_helpers/iannewyear
name = "Ian's New Years Helper"
late = TRUE
- icon_state = "iansnewyrshelper"
/obj/effect/mapping_helpers/iannewyear/LateInitialize()
if(SSevents.holidays && SSevents.holidays[NEW_YEAR])
@@ -374,7 +383,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
found_airlock.update_appearance()
qdel(src)
if(note_info)
- var/obj/item/paper/paper = new /obj/item/paper(src)
+ var/obj/item/paper/paper = new /obj/item/paper(found_airlock)
if(note_name)
paper.name = note_name
paper.add_raw_text("[note_info]")
diff --git a/code/modules/mapping/writer.dm b/code/modules/mapping/writer.dm
index 35d85edc7849..c07ce0029081 100644
--- a/code/modules/mapping/writer.dm
+++ b/code/modules/mapping/writer.dm
@@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(save_file_chars, list(
var/turf_type = /turf/template_noop
var/area/place_area = get_area(place_turf)
var/area_type = /area/template_noop
- var/is_shuttle_area = istype(place_area, /area/shuttle)
+ var/is_shuttle_area = istype(place_area, /area/ship)
//If there is nothing there, save as a noop (For odd shapes)
if(!place_turf)
turf_type = /turf/template_noop
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
index 8f5c6bce408b..3302e55bd380 100644
--- a/code/modules/mining/abandoned_crates.dm
+++ b/code/modules/mining/abandoned_crates.dm
@@ -210,7 +210,7 @@
if(88)
new /obj/item/reagent_containers/food/drinks/bottle/lizardwine(src)
if(89)
- new /obj/item/melee/transforming/energy/sword/bananium(src)
+ new /obj/item/melee/energy/sword/bananium(src)
if(90)
new /obj/item/dnainjector/wackymut(src)
if(91)
@@ -235,7 +235,7 @@
new /obj/item/gun/ballistic/automatic/toy/pistol(src)
new /obj/item/gun/ballistic/automatic/toy(src)
new /obj/item/gun/ballistic/automatic/toy(src)
- new /obj/item/ammo_box/foambox(src)
+ new /obj/item/storage/box/ammo/foam_darts(src)
if(98)
for(var/i in 1 to 3)
new /mob/living/simple_animal/hostile/poison/bees/toxin(src)
diff --git a/code/modules/mining/drill.dm b/code/modules/mining/drill.dm
index 9a35c2b4bf11..c327efab39a8 100644
--- a/code/modules/mining/drill.dm
+++ b/code/modules/mining/drill.dm
@@ -344,6 +344,8 @@
//Overly long proc to handle the unique properties for each malfunction type
/obj/machinery/drill/proc/malfunction(malfunction_type)
+ if(active)
+ mining.toggle_spawning() //turns mob spawning off after a malfunction
switch(malfunction_type)
if(MALF_LASER)
say("Malfunction: Laser array damaged, please replace before continuing mining operations.")
diff --git a/code/modules/mining/equipment/angle_grinder.dm b/code/modules/mining/equipment/angle_grinder.dm
index 290cf0d153d7..f90b709efeb8 100644
--- a/code/modules/mining/equipment/angle_grinder.dm
+++ b/code/modules/mining/equipment/angle_grinder.dm
@@ -7,6 +7,8 @@
lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi'
gear_handle_type = /obj/item/gear_handle/anglegrinder
+ slowdown = 0.3
+ drag_slowdown = 0.3
/obj/item/gear_handle/anglegrinder
name = "angle grinder"
@@ -25,9 +27,9 @@
hitsound = 'sound/weapons/anglegrinder.ogg'
usesound = 'sound/weapons/anglegrinder.ogg'
tool_behaviour = null // is set to TOOL_DECONSTRUCT once wielded
- toolspeed = 1
- wall_decon_damage = 200
- usecost = 5
+ toolspeed = 0.6
+ wall_decon_damage = 350
+ usecost = 2.5
pack = /obj/item/gear_pack/anglegrinder
var/startsound = 'sound/weapons/chainsawhit.ogg'
var/adv = FALSE
@@ -68,7 +70,7 @@
. = ..()
AddComponent(/datum/component/butchering, 30, 100, 0, startsound, TRUE)
AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound=startsound)
- AddElement(/datum/element/tool_bang, 2)
+ AddElement(/datum/element/tool_bang, 1)
/// triggered on wield of two handed item
/obj/item/gear_handle/anglegrinder/proc/on_wield(obj/item/source, mob/user)
@@ -125,8 +127,8 @@
hitsound = 'sound/weapons/blade1.ogg'
usesound = 'sound/weapons/blade1.ogg'
startsound = 'sound/weapons/saberon.ogg'
- toolspeed = 0.7
- usecost = 10
+ toolspeed = 0.4
+ usecost = 4
pack = /obj/item/gear_pack/anglegrinder/energy
light_system = MOVABLE_LIGHT
light_range = 3
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 6f9916d1b120..c769562ae58e 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -28,11 +28,13 @@
var/charge_time = 15
var/detonation_damage = 20
var/backstab_bonus = 10
+ var/unwielded_force = 0
+ var/wielded_force = 25
/obj/item/kinetic_crusher/ComponentInitialize()
. = ..()
AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it
- AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15)
+ AddComponent(/datum/component/two_handed, force_unwielded=unwielded_force, force_wielded=wielded_force)
/obj/item/kinetic_crusher/examine(mob/living/user)
. = ..()
@@ -169,6 +171,7 @@
// [/CELADON-REMOVE]
var/target_turf = get_turf(target)
if(ismineralturf(target_turf))
+ SSblackbox.record_feedback("tally", "pick_used_mining", 1, src.type)
var/turf/closed/mineral/M = target_turf
new /obj/effect/temp_visual/kinetic_blast(M)
..()
@@ -184,16 +187,13 @@
detonation_damage = 10
slowdown = 0.5//hevy
attack_verb = list("mashed", "flattened", "bisected", "eradicated","destroyed")
+ unwielded_force = 0
+ wielded_force = 30
/obj/item/kinetic_crusher/old/examine(mob/user)
. = ..()
. += "This hunk of junk's so heavy that you can barely swing it! Though, that blade looks pretty sharp..."
-/obj/item/kinetic_crusher/old/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/butchering, 60, 110)
- AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=25)//big choppa!
-
/obj/item/kinetic_crusher/old/melee_attack_chain(mob/user, atom/target, params)
..()
user.changeNext_move(CLICK_CD_MELEE * 2.0)//...slow swinga.
@@ -239,18 +239,14 @@
detonation_damage = 35
backstab_bonus = 15
actions_types = list()
-
+ unwielded_force = 0
+ wielded_force = 22
/obj/item/kinetic_crusher/syndie_crusher/Initialize()
. = ..()
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield))
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield))
-/obj/item/kinetic_crusher/syndie_crusher/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/butchering, 60, 150)
- AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=10)
-
/// triggered on wield of two handed item
/obj/item/kinetic_crusher/syndie_crusher/proc/on_wield(obj/item/source, mob/user)
SIGNAL_HANDLER
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index 74ed8ce30fbd..c4ea06ac3e03 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -32,6 +32,12 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
/obj/item/stack/marker_beacon/thirty //and they're bought in stacks of 1, 10, or 30
amount = 30
+/obj/item/stack/marker_beacon/ten
+ amount = 10
+
+/obj/item/stack/marker_beacon/thirty
+ amount = 30
+
/obj/item/stack/marker_beacon/Initialize(mapload)
. = ..()
update_appearance()
diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm
index 341a0f1bdc63..d8ec95708f9b 100644
--- a/code/modules/mining/equipment/regenerative_core.dm
+++ b/code/modules/mining/equipment/regenerative_core.dm
@@ -4,7 +4,7 @@
icon = 'icons/obj/chemical/medicine.dmi'
icon_state = "bottle19"
desc = "Inject certain types of monster organs with this stabilizer to preserve their healing powers indefinitely."
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_NORMAL
custom_price = 400
/obj/item/hivelordstabilizer/afterattack(obj/item/organ/M, mob/user, proximity)
@@ -27,6 +27,7 @@
icon_state = "roro core 2"
item_flags = NOBLUDGEON
slot = ORGAN_SLOT_REGENERATIVE_CORE
+ organ_flags = null
force = 0
actions_types = list(/datum/action/item_action/organ_action/use)
var/inert = 0
@@ -75,7 +76,7 @@
owner.adjustOxyLoss(-50, TRUE, TRUE)
owner.adjustToxLoss(-50, TRUE, TRUE) //"forced" to cover mechanical parts
// [/CELADON-ADD]
- owner.adjustCloneLoss(10) //dont abuse it or take cloneloss (organic only)
+ owner.adjustCloneLoss(20) //dont abuse it or take cloneloss (organic only)
// [CELADON-ADD] - CELADON_BALANCE
new /obj/effect/temp_visual/heal(get_turf(owner), "#d33131")
else // Half the efficiency for IPCs
@@ -97,21 +98,26 @@
/obj/item/organ/regenerative_core/proc/applyto(atom/target, mob/user)
if(ishuman(target))
var/mob/living/carbon/human/H = target
+ if(H.dna.species.id == SPECIES_IPC)
+ to_chat(user, span_notice("[src] has no effect on silicate life."))
+ return
if(inert)
- to_chat(user, "[src] has decayed and can no longer be used to heal.")
+ to_chat(user, span_notice("[src] has decayed past usabality."))
return
- else
- if(H.stat == DEAD)
- to_chat(user, "[src] is useless on the dead.")
- return
+ if(H.stat == DEAD)
+ to_chat(user, span_notice("[src] is useless on the dead."))
+ return
+ if(do_after(user, 10, target))
if(H != user)
- H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!")
+ H.visible_message(span_notice("[user] smears [src] across [H]... malignant black tendrils entangle and reinforce [H.p_their()] flesh!"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else
- to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?")
+ to_chat(user, span_notice("You smear [src] across your body. Malignant black tendrils start to grow around the application site, reinforcing your flesh!"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman) //Now THIS is a miner buff (fixed - nerf)
+ H.reagents.add_reagent(/datum/reagent/medicine/soulus,15)
+ H.force_scream()
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman)
qdel(src)
/obj/item/organ/regenerative_core/afterattack(atom/target, mob/user, proximity_flag)
@@ -197,21 +203,21 @@
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(inert)
- to_chat(user, "[src] has broken and can no longer be used to heal.")
+ to_chat(user, span_notice("[src] has decayed beyond usability."))
return
else
if(H.stat == DEAD)
- to_chat(user, "[src] is useless on the dead.")
+ to_chat(user, span_notice("[src] is useless on the dead."))
return
if(H != user)
- H.visible_message("[user] forces [H] to apply [src]... Cancer like crystals grow on and reinforce [H.p_them()]!")
+ H.visible_message(span_notice("[user] smears [src] across [H]... malignant crystals and cancerous tendrils grow on and reinforce [H.p_them()]!"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else
- to_chat(user, "You start to apply [src] on yourself. Cancer like crystals hold you together and add something to you to keep yourself moving, but for how long?")
+ to_chat(user, span_notice("You smear [src] across yourself. malignant crystals and cancerous tendrils grow on you, toughening and healing where they touch."))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE)
H.reagents.add_reagent(/datum/reagent/determination, 4)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman) //Now THIS is a miner buff (fixed - nerf)
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman)
qdel(src)
/obj/item/organ/regenerative_core/legion/crystal/update_icon_state()
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index bf6fb15c9332..bf4ad80647ef 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -508,7 +508,7 @@
icon_state = "garden"
harvested_name = "lush garden"
harvested_desc = "In the soil and shade, something softly grew. It seems some industrious scavenger already passed by."
- harvest = /obj/effect/spawner/lootdrop/garden
+ harvest = /obj/effect/spawner/random/food_or_drink/garden
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You discover something nestled away in the growing bough."
@@ -527,7 +527,7 @@
icon_state = "gardenarid"
harvested_name = "sandy garden"
harvested_desc = "Beneath a bluff of soft silicate, a sheltered grove slumbered. Some desert wanderer seems to have picked it clean."
- harvest = /obj/effect/spawner/lootdrop/garden/arid
+ harvest = /obj/effect/spawner/random/food_or_drink/garden/arid
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You brush sand away from a verdant prize, nestled in the leaves."
@@ -540,7 +540,7 @@
icon_state = "gardencold"
harvested_name = "chilly garden"
harvested_desc = "A delicate layer of frost covers hardy brush. Someone came with the blizzard, and left with any prize this might contain."
- harvest = /obj/effect/spawner/lootdrop/garden/cold
+ harvest = /obj/effect/spawner/random/food_or_drink/garden/cold
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You unearth a snow-covered treat."
@@ -553,7 +553,7 @@
icon_state = "gardensick"
harvested_name = "sickly garden"
harvested_desc = "Polluted water wells up from the cracked earth, where it once fed a patch of something curious. Now only wilted leaves remain."
- harvest = /obj/effect/spawner/lootdrop/garden/sick
+ harvest = /obj/effect/spawner/random/food_or_drink/garden/sick
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You pry something odd from the poisoned soil."
@@ -567,124 +567,13 @@
icon_state = "seaweed"
harvested_name = "seaweed patch"
harvested_desc = "A patch of seaweed, floating on the surface of the water. It seems someone has already searched through this"
- harvest = /obj/effect/spawner/lootdrop/garden/seaweed
+ harvest = /obj/effect/spawner/random/food_or_drink/garden/seaweed
harvest_amount_high = 1
harvest_amount_low = 1
harvest_message_low = "You discover some edible weeds within the patch."
harvest_message_med = "You discover some edible weeds within the patch."
harvest_message_high = "You discover some edible weeds within the patch."
-/obj/effect/spawner/lootdrop/garden
- name = "lush garden seeder"
- lootcount = 3
- var/list/plant = list(
- /obj/item/reagent_containers/food/snacks/grown/ambrosia/deus = 1,
- /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 2,
- /obj/item/reagent_containers/food/snacks/grown/citrus/orange_3d = 1,
- /obj/item/reagent_containers/food/snacks/grown/trumpet = 1,
- /obj/item/reagent_containers/food/snacks/grown/bungofruit = 1,
- /obj/item/seeds/random = 1,
- /obj/item/grown/log/bamboo = 2,
- /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 5,
- /obj/item/reagent_containers/food/snacks/grown/citrus/lemon = 2,
- /obj/item/reagent_containers/food/snacks/grown/citrus/lime = 2,
- /obj/item/reagent_containers/food/snacks/grown/vanillapod = 2,
- /obj/item/reagent_containers/food/snacks/grown/moonflower = 2,
- /obj/item/reagent_containers/food/snacks/grown/cocoapod = 2,
- /obj/item/reagent_containers/food/snacks/grown/pineapple = 2,
- /obj/item/reagent_containers/food/snacks/grown/poppy/lily = 2,
- /obj/item/reagent_containers/food/snacks/grown/poppy/geranium = 2,
- /obj/item/reagent_containers/food/snacks/grown/sugarcane = 2,
- /obj/item/reagent_containers/food/snacks/grown/tea = 2,
- /obj/item/reagent_containers/food/snacks/grown/tobacco = 2,
- /obj/item/reagent_containers/food/snacks/grown/watermelon = 4,
- /obj/item/grown/sunflower = 4,
- /obj/item/reagent_containers/food/snacks/grown/banana = 4,
- /obj/item/reagent_containers/food/snacks/grown/apple = 4,
- /obj/item/reagent_containers/food/snacks/grown/berries = 5,
- /obj/item/reagent_containers/food/snacks/grown/cherries = 4,
- /obj/item/reagent_containers/food/snacks/grown/citrus/orange = 4,
- /obj/item/reagent_containers/food/snacks/grown/garlic = 4,
- /obj/item/reagent_containers/food/snacks/grown/grapes = 4,
- /obj/item/reagent_containers/food/snacks/grown/grass = 5,
- /obj/item/reagent_containers/food/snacks/grown/pumpkin = 4,
- /obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 4,
- /obj/item/reagent_containers/food/snacks/grown/wheat = 4,
- /obj/item/reagent_containers/food/snacks/grown/parsnip = 4,
- /obj/item/reagent_containers/food/snacks/grown/peas = 4,
- /obj/item/reagent_containers/food/snacks/grown/rice = 4,
- /obj/item/reagent_containers/food/snacks/grown/soybeans = 4,
- /obj/item/reagent_containers/food/snacks/grown/tomato = 4,
- /obj/item/reagent_containers/food/snacks/grown/cabbage = 4,
- /obj/item/reagent_containers/food/snacks/grown/onion = 4,
- /obj/item/reagent_containers/food/snacks/grown/carrot = 4)
-
-/obj/effect/spawner/lootdrop/garden/Initialize(mapload)
- loot = plant
- . = ..()
-
-/obj/effect/spawner/lootdrop/garden/arid
- name = "arid garden seeder"
- plant = list(
- /obj/item/reagent_containers/food/snacks/grown/ghost_chili = 1,
- /obj/item/reagent_containers/food/snacks/grown/nettle = 1,
- /obj/item/grown/cotton/durathread = 1,
- /obj/item/seeds/random = 1,
- /obj/item/reagent_containers/food/snacks/grown/redbeet = 1,
- /obj/item/reagent_containers/food/snacks/grown/aloe = 2,
- /obj/item/grown/cotton = 2,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 2,
- /obj/item/reagent_containers/food/snacks/grown/chili = 2,
- /obj/item/reagent_containers/food/snacks/grown/whitebeet = 5,
- /obj/item/reagent_containers/food/snacks/grown/potato = 4,
- /obj/item/reagent_containers/food/snacks/grown/potato/sweet = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet = 4,
- /obj/item/reagent_containers/food/snacks/grown/corn = 4)
-
-/obj/effect/spawner/lootdrop/garden/cold
- name = "frigid garden seeder"
- plant = list(
- /obj/item/reagent_containers/food/snacks/grown/bluecherries = 1,
- /obj/item/reagent_containers/food/snacks/grown/galaxythistle = 1,
- /obj/item/reagent_containers/food/snacks/grown/berries/death/stealth = 1,
- /obj/item/seeds/random = 1,
- /obj/item/reagent_containers/food/snacks/grown/poppy = 2,
- /obj/item/reagent_containers/food/snacks/grown/tomato/blue = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth = 2,
- /obj/item/reagent_containers/food/snacks/grown/berries = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle = 4,
- /obj/item/reagent_containers/food/snacks/grown/oat = 4,
- /obj/item/reagent_containers/food/snacks/grown/grapes/green = 4,
- /obj/item/reagent_containers/food/snacks/grown/grass = 4,
- /obj/item/reagent_containers/food/snacks/grown/harebell = 5,
- /obj/item/seeds/starthistle = 5)
-
-/obj/effect/spawner/lootdrop/garden/sick
- name = "sickly garden seeder"
- plant = list(
- /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow = 1,
- /obj/item/reagent_containers/food/snacks/grown/cannabis/death = 1,
- /obj/item/seeds/replicapod = 1,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/angel = 1,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
- /obj/item/seeds/tower/steel = 2,
- /obj/item/reagent_containers/food/snacks/grown/cannabis = 2,
- /obj/item/seeds/random = 2,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/jupitercup = 2,
- /obj/item/reagent_containers/food/snacks/grown/cherrybulbs = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/amanita = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 4,
- /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 4,
- /obj/item/reagent_containers/food/snacks/grown/berries/glow = 4)
-
-/obj/effect/spawner/lootdrop/garden/seaweed
- name = "seaweed patch seeder"
- plant = list(
- /obj/item/reagent_containers/food/snacks/grown/seaweed = 1
- )
-
/obj/item/reagent_containers/food/snacks/grown/berries/poison/stealth //careful eating from random jungle bushes
seed = /obj/item/seeds/berry/poison
name = "bunch of berries"
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index ea34eb7faec0..7f5e844a1389 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -15,10 +15,8 @@
/obj/structure/closet/crate/necropolis/tendril/PopulateContents()
var/loot = rand(1,29)
switch(loot)
- if(1)
+ if(1,2)
new /obj/item/shared_storage/red(src)
- if(2)
- new /obj/item/clothing/suit/space/hardsuit/cult(src)
if(3)
new /obj/item/necromantic_stone/lava(src)
if(5)
@@ -49,10 +47,7 @@
if(15)
new /obj/item/book_of_babel(src)
if(16)
- if(prob(75))
- new /obj/item/guardiancreator/miner(src)
- else
- new /obj/item/guardiancreator/miner/choose (src)
+ new /obj/item/ship_in_a_bottle(src)
if(17)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
@@ -124,10 +119,7 @@
if(15)
new /obj/item/book_of_babel(src)
if(16)
- if(prob(75))
- new /obj/item/guardiancreator/miner(src)
- else
- new /obj/item/guardiancreator/miner/choose (src)
+ new /obj/item/ship_in_a_bottle(src)
if(17)
if(prob(50))
new /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe(src)
@@ -631,7 +623,7 @@
ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT)
playsound(C.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1)
C.adjustBruteLoss(20)
- C.emote("scream")
+ C.force_scream()
..()
//nerfed necrostone
@@ -857,7 +849,7 @@
slot_flags = ITEM_SLOT_BELT
fire_delay = 0.1 SECONDS
recoil = 1
- cell_type = /obj/item/stock_parts/cell/gun
+ default_ammo_type = /obj/item/stock_parts/cell/gun
ammo_type = list(/obj/item/ammo_casing/energy/spur)
supports_variations = VOX_VARIATION
var/chargesound
@@ -1087,93 +1079,6 @@
///Bosses
-//Miniboss Miner
-
-/obj/item/melee/transforming/cleaving_saw
- name = "cleaving saw"
- desc = "This saw, effective at drawing the blood of beasts, transforms into a long cleaver that makes use of centrifugal force."
- force = 12
- force_on = 20 //force when active
- throwforce = 20
- throwforce_on = 20
- icon = 'icons/obj/lavaland/artefacts.dmi'
- lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/64x64_righthand.dmi'
- inhand_x_dimension = 64
- inhand_y_dimension = 64
- icon_state = "cleaving_saw"
- icon_state_on = "cleaving_saw_open"
- slot_flags = ITEM_SLOT_BELT
- attack_verb_off = list("attacked", "sawed", "sliced", "torn", "ripped", "diced", "cut")
- attack_verb_on = list("cleaved", "swiped", "slashed", "chopped")
- hitsound = 'sound/weapons/bladeslice.ogg'
- hitsound_on = 'sound/weapons/bladeslice.ogg'
- w_class = WEIGHT_CLASS_BULKY
- sharpness = IS_SHARP
- faction_bonus_force = 30
- nemesis_factions = list("mining", "boss")
- var/transform_cooldown
- var/swiping = FALSE
- var/bleed_stacks_per_hit = 3
-
-/obj/item/melee/transforming/cleaving_saw/examine(mob/user)
- . = ..()
- . += "It is [active ? "open, will cleave enemies in a wide arc and deal additional damage to fauna":"closed, and can be used for rapid consecutive attacks that cause fauna to bleed"].\n"+\
- "Both modes will build up existing bleed effects, doing a burst of high damage if the bleed is built up high enough.\n"+\
- "Transforming it immediately after an attack causes the next attack to come out faster."
-
-/obj/item/melee/transforming/cleaving_saw/transform_weapon(mob/living/user, supress_message_text)
- if(transform_cooldown > world.time)
- return FALSE
- . = ..()
- if(.)
- transform_cooldown = world.time + (CLICK_CD_MELEE * 0.5)
- user.changeNext_move(CLICK_CD_MELEE * 0.25)
-
-/obj/item/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
- if(!supress_message_text)
- if(active)
- to_chat(user, "You open [src]. It will now cleave enemies in a wide arc and deal additional damage to fauna.")
- else
- to_chat(user, "You close [src]. It will now attack rapidly and cause fauna to bleed.")
- playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000))
-
-/obj/item/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
- if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
- to_chat(user, "You accidentally cut yourself with [src], like a doofus!")
- user.take_bodypart_damage(10)
-
-/obj/item/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
- ..()
- if(!active)
- user.changeNext_move(CLICK_CD_MELEE * 0.5) //when closed, it attacks very rapidly
-
-/obj/item/melee/transforming/cleaving_saw/nemesis_effects(mob/living/user, mob/living/target)
- var/datum/status_effect/stacking/saw_bleed/B = target.has_status_effect(STATUS_EFFECT_SAWBLEED)
- if(!B)
- target.apply_status_effect(STATUS_EFFECT_SAWBLEED,bleed_stacks_per_hit)
- else
- B.add_stacks(bleed_stacks_per_hit)
-
-/obj/item/melee/transforming/cleaving_saw/attack(mob/living/target, mob/living/carbon/human/user)
- if(!active || swiping || !target.density || get_turf(target) == get_turf(user))
- if(!active)
- faction_bonus_force = 0
- ..()
- if(!active)
- faction_bonus_force = initial(faction_bonus_force)
- else
- var/turf/user_turf = get_turf(user)
- var/dir_to_target = get_dir(user_turf, get_turf(target))
- swiping = TRUE
- var/static/list/cleaving_saw_cleave_angles = list(0, -45, 45) //so that the animation animates towards the target clicked and not towards a side target
- for(var/i in cleaving_saw_cleave_angles)
- var/turf/T = get_step(user_turf, turn(dir_to_target, i))
- for(var/mob/living/L in T)
- if(user.Adjacent(L) && L.density)
- melee_attack_chain(user, L)
- swiping = FALSE
-
//Dragon
/obj/structure/closet/crate/necropolis/dragon
@@ -1660,11 +1565,9 @@
name = "puzzling chest"
/obj/structure/closet/crate/necropolis/puzzle/PopulateContents()
- var/loot = rand(1,3)
+ var/loot = rand(1,2)
switch(loot)
if(1)
- new /obj/item/soulstone/anybody(src)
- if(2)
new /obj/item/wisp_lantern(src)
- if(3)
+ if(2)
new /obj/item/prisoncube(src)
diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm
index e4f11ad1b347..d26c51154eb5 100644
--- a/code/modules/mining/machine_vending.dm
+++ b/code/modules/mining/machine_vending.dm
@@ -108,7 +108,6 @@
icon_state = "mining_voucher"
w_class = WEIGHT_CLASS_TINY
-
///Conscript kit
/obj/item/storage/backpack/duffelbag/mining_conscript
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index cc2a9f176c70..2563e2644bf0 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -13,7 +13,7 @@
mouse_opacity = MOUSE_OPACITY_ICON
faction = list("neutral")
a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
move_to_delay = 10
health = 125
@@ -303,29 +303,5 @@
M.updatehealth()
qdel(src)
-//AI
-
-/obj/item/slimepotion/slime/sentience/mining
- name = "minebot AI upgrade"
- desc = "Can be used to grant sentience to minebots. It's incompatible with minebot armor and melee upgrades, and will override them."
- icon_state = "door_electronics"
- icon = 'icons/obj/module.dmi'
- sentience_type = SENTIENCE_MINEBOT
- custom_price = 1000
- var/base_health_add = 5 //sentient minebots are penalized for beign sentient; they have their stats reset to normal plus these values
- var/base_damage_add = 1 //this thus disables other minebot upgrades
- var/base_speed_add = 1
- var/base_cooldown_add = 10 //base cooldown isn't reset to normal, it's just added on, since it's not practical to disable the cooldown module
-
-/obj/item/slimepotion/slime/sentience/mining/after_success(mob/living/user, mob/living/simple_animal/SM)
- if(istype(SM, /mob/living/simple_animal/hostile/mining_drone))
- var/mob/living/simple_animal/hostile/mining_drone/M = SM
- M.maxHealth = initial(M.maxHealth) + base_health_add
- M.melee_damage_lower = initial(M.melee_damage_lower) + base_damage_add
- M.melee_damage_upper = initial(M.melee_damage_upper) + base_damage_add
- M.move_to_delay = initial(M.move_to_delay) + base_speed_add
- if(M.stored_gun)
- M.stored_gun.overheat_time += base_cooldown_add
-
#undef MINEDRONE_COLLECT
#undef MINEDRONE_ATTACK
diff --git a/code/modules/mining/ore_veins.dm b/code/modules/mining/ore_veins.dm
index fcc4b3456bcf..41f33ce47b27 100644
--- a/code/modules/mining/ore_veins.dm
+++ b/code/modules/mining/ore_veins.dm
@@ -76,7 +76,7 @@ GLOBAL_LIST_EMPTY(ore_veins)
else
ore_type_amount = 1
for(var/ore_count in 1 to ore_type_amount)
- var/picked = pickweight(ore_list)
+ var/picked = pick_weight(ore_list)
vein_contents.Add(picked)
ore_list.Remove(picked)
GLOB.ore_veins += src
diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm
index ef0e51930828..6c733fd76692 100644
--- a/code/modules/mining/shelters.dm
+++ b/code/modules/mining/shelters.dm
@@ -8,7 +8,7 @@
/datum/map_template/shelter/New()
. = ..()
- banned_areas = typecacheof(/area/shuttle)
+ banned_areas = typecacheof(/area/ship)
blacklisted_turfs = typecacheof(list(/turf/closed, /turf/open/indestructible))
whitelisted_turfs = typecacheof(/turf/closed/mineral)
banned_objects = typecacheof(/obj/structure/stone_tile)
diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm
index 85c60a15b031..490efbbabef8 100644
--- a/code/modules/mob/dead/dead.dm
+++ b/code/modules/mob/dead/dead.dm
@@ -96,18 +96,17 @@ INITIALIZE_IMMEDIATE(/mob/dead)
return
/mob/dead/Destroy()
- for(var/level in SSmobs.dead_players_by_virtual_z)
- LAZYREMOVEASSOC(SSmobs.dead_players_by_virtual_z, level, src)
- // Forgive me for this one. This loop can be replaced by the line below by the one brave enough to fix
- // observers not cleanly removing themselves from the dead_players_by_virtual_z /list when they should
- //LAZYREMOVEASSOC(SSmobs.dead_players_by_virtual_z, "[virtual_z()]", src)
+ //Observers should no longer be duplicating themselves across virtual z so it SHOULD be fine to only check its virtual z.
+ LAZYREMOVEASSOC(SSmobs.dead_players_by_virtual_z, "[virtual_z()]", src)
return ..()
/mob/dead/Login()
. = ..()
if(!client)
return
- LAZYADDASSOCLIST(SSmobs.dead_players_by_virtual_z, "[virtual_z()]", src)
+ var/virt_z = virtual_z()
+ if(virt_z)
+ LAZYADDASSOCLIST(SSmobs.dead_players_by_virtual_z, "[virt_z]", src)
/mob/dead/Logout()
. = ..()
diff --git a/code/modules/mob/dead/new_player/login.dm b/code/modules/mob/dead/new_player/login.dm
index 5c47ccd6d526..29573693cb3e 100644
--- a/code/modules/mob/dead/new_player/login.dm
+++ b/code/modules/mob/dead/new_player/login.dm
@@ -34,9 +34,9 @@
var/required_living_minutes = CONFIG_GET(number/panic_bunker_living)
var/living_minutes = client.get_exp_living(TRUE)
if (required_living_minutes > living_minutes)
- client.interviewee = TRUE
register_for_interview()
return
+ client.interviewee = FALSE
new_player_panel()
if(SSticker.current_state < GAME_STATE_SETTING_UP)
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index 2dbbd9d4b65b..d88c8368a820 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -130,10 +130,10 @@
return
if(src != usr)
- return 0
+ return FALSE
if(!client)
- return 0
+ return FALSE
if(client.interviewee)
return FALSE
@@ -345,6 +345,7 @@
log_manifest(character.mind.key, character.mind, character, TRUE)
+ SSblackbox.record_feedback("tally", "player_joined_faction", 1, ship.get_faction())
if(length(ship.job_slots) > 1 && ship.job_slots[1] == job) // if it's the "captain" equivalent job of the ship. checks to make sure it's not a one-job ship
minor_announce("[job.name] [character.real_name] on deck!", zlevel = ship.shuttle_port.virtual_z())
return TRUE
@@ -432,7 +433,7 @@
mind.active = FALSE //we wish to transfer the key manually
mind.original_character_slot_index = client.prefs.default_slot
mind.transfer_to(H) //won't transfer key since the mind is not active
- mind.set_original_character(H)
+ H.mind.set_original_character(H)
H.name = real_name
client.init_verbs()
diff --git a/code/modules/mob/dead/new_player/ship_select.dm b/code/modules/mob/dead/new_player/ship_select.dm
index f7e0e1c11f7c..3248f62afe06 100644
--- a/code/modules/mob/dead/new_player/ship_select.dm
+++ b/code/modules/mob/dead/new_player/ship_select.dm
@@ -106,7 +106,8 @@
to_chat(spawnee, "There was an error loading the ship. Please contact admins!")
spawnee.new_player_panel()
return
- SSblackbox.record_feedback("tally", "ship_purchased", 1, template.name) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+ SSblackbox.record_feedback("tally", "ship_purchased", 1, template.name)
+ SSblackbox.record_feedback("tally", "faction_ship_purchased", 1, template.faction_datum.name)
// Try to spawn as the first listed job in the job slots (usually captain)
// Playtime checks are overridden, to ensure the player gets to join the ship they spawned.
if(!spawnee.AttemptLateSpawn(target.job_slots[1], target, FALSE))
diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
index c94d1ac44e10..3e04a257bfb6 100644
--- a/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
+++ b/code/modules/mob/dead/new_player/sprite_accessories/hair.dm
@@ -93,29 +93,21 @@
name = "Bowlcut 2"
icon_state = "hair_bowlcut2"
-/datum/sprite_accessory/hair/braid
- name = "Braid (Floorlength)"
- icon_state = "hair_braid"
-
-/datum/sprite_accessory/hair/braided
- name = "Braided"
- icon_state = "hair_braided"
-
-/datum/sprite_accessory/hair/front_braid
- name = "Braided Front"
- icon_state = "hair_braidfront"
-
-/datum/sprite_accessory/hair/not_floorlength_braid
- name = "Braid (High)"
+/datum/sprite_accessory/hair/ponytail_braided
+ name = "Ponytail (Braided)"
icon_state = "hair_braid2"
-/datum/sprite_accessory/hair/lowbraid
- name = "Braid (Low)"
- icon_state = "hair_hbraid"
+/datum/sprite_accessory/hair/ponytail_braided_short
+ name = "Ponytail (Braided Short)"
+ icon_state = "hair_braid"
+
+/datum/sprite_accessory/hair/ponytail_straight
+ name = "Ponytail (Straight)"
+ icon_state = "hair_longstraightponytail"
-/datum/sprite_accessory/hair/shortbraid
- name = "Braid (Short)"
- icon_state = "hair_shortbraid"
+/datum/sprite_accessory/hair/ponytail_straight_short
+ name = "Ponytail (Straight Short)"
+ icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/braidtail
name = "Braided Tail"
@@ -506,12 +498,8 @@
icon_state = "hair_ponytail"
/datum/sprite_accessory/hair/ponytail2
- name = "Ponytail 2"
- icon_state = "hair_ponytail2"
-
-/datum/sprite_accessory/hair/ponytail3
- name = "Ponytail 3"
- icon_state = "hair_ponytail3"
+ name = "Ponytail (Grace)"
+ icon_state = "hair_ponytailgrace"
/datum/sprite_accessory/hair/ponytail4
name = "Ponytail 4"
@@ -529,21 +517,14 @@
name = "Ponytail 7"
icon_state = "hair_ponytail7"
-/datum/sprite_accessory/hair/highponytail
- name = "Ponytail (High)"
- icon_state = "hair_highponytail"
/datum/sprite_accessory/hair/stail
name = "Ponytail (Short)"
icon_state = "hair_stail"
-/datum/sprite_accessory/hair/longponytail
- name = "Ponytail (Long)"
- icon_state = "hair_longstraightponytail"
-
/datum/sprite_accessory/hair/countryponytail
name = "Ponytail (Country)"
- icon_state = "hair_country"
+ icon_state = "hair_ponytailcountry"
/datum/sprite_accessory/hair/fringetail
name = "Ponytail (Fringe)"
@@ -725,6 +706,10 @@
name = "Ruby"
icon_state = "hair_ruby"
+/datum/sprite_accessory/hair/rubylong
+ name = "Ruby (Long)"
+ icon_state = "hair_rubylong"
+
/datum/sprite_accessory/hair/undercut
name = "Undercut"
icon_state = "hair_undercut"
@@ -824,3 +809,7 @@
/datum/sprite_accessory/hair_gradient/long_fade_down
name = "Long Fade Down"
icon_state = "long_fade_down"
+
+/datum/sprite_accessory/hair_gradient/splotches
+ name = "Splotches"
+ icon_state = "splotches"
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 0fcfa5c13940..e79427f2381d 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -909,8 +909,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/dead/observer/examine_more(mob/user)
if(!isAdminObserver(user))
return ..()
- . = list("You examine [src] closer, and note the following...")
- . += list("\t>[ADMIN_FULLMONTY(src)]")
+ . += "You examine [src] closer, and note the following..."
+ . += "\t>[ADMIN_FULLMONTY(src)]"
/mob/dead/observer/proc/set_invisibility(value)
invisibility = value
diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm
index 0840ee372158..ed75e654340f 100644
--- a/code/modules/mob/emote.dm
+++ b/code/modules/mob/emote.dm
@@ -25,9 +25,29 @@
to_chat(src, "Unusable emote '[act]'. Say *help for a list.")
return FALSE
+/mob/proc/force_scream()
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ return
+ if(HAS_TRAIT(src, TRAIT_PAIN_RESIST))
+ emote("gasp")
+ return
+ emote("scream")
+
+/mob/proc/force_manual_scream()
+ if(HAS_TRAIT(src, TRAIT_ANALGESIA))
+ return
+ if(HAS_TRAIT(src, TRAIT_PAIN_RESIST))
+ manual_emote("gasp")
+ return
+ manual_emote("scream")
+
/datum/emote/flip
key = "flip"
key_third_person = "flips"
+ // [CELADON-ADD] - CELADON_COMPONENTS_EMOTE - Эмоции
+ message = "делает кувырок."
+ emote_type = EMOTE_VISIBLE
+ // [/CELADON-ADD]
hands_use_check = TRUE
mob_type_allowed_typecache = list(/mob/living, /mob/dead/observer)
mob_type_ignore_stat_typecache = list(/mob/dead/observer)
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index 8629d01650d4..5fe96021461b 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -381,7 +381,8 @@
if(resilience)
actual_trauma.resilience = resilience
. = actual_trauma
- SSblackbox.record_feedback("tally", "traumas", 1, actual_trauma.type)
+ if(owner?.client)
+ SSblackbox.record_feedback("tally", "traumas", 1, actual_trauma.type)
//Add a random trauma of a certain subtype
/obj/item/organ/brain/proc/gain_trauma_type(brain_trauma_type = /datum/brain_trauma, resilience, natural_gain = FALSE)
diff --git a/code/modules/mob/living/brain/emote.dm b/code/modules/mob/living/brain/emote.dm
index 7c962a101f5b..66362b34753c 100644
--- a/code/modules/mob/living/brain/emote.dm
+++ b/code/modules/mob/living/brain/emote.dm
@@ -27,8 +27,8 @@
message = "plays a loud tone."
emote_type = EMOTE_AUDIBLE
-/datum/emote/brain/whistle
- key = "whistle"
- key_third_person = "whistles"
- message = "whistles."
- emote_type = EMOTE_AUDIBLE
+// /datum/emote/brain/whistle
+// key = "whistle"
+// key_third_person = "whistles"
+// message = "whistles."
+// emote_type = EMOTE_AUDIBLE
diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm
index bfa71f3b335e..3ae9bbb5b250 100644
--- a/code/modules/mob/living/carbon/alien/organs.dm
+++ b/code/modules/mob/living/carbon/alien/organs.dm
@@ -134,7 +134,7 @@
else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash.
to_chat(owner, "You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!")
- owner.emote("scream")
+ owner.force_scream()
owner.Paralyze(100)
owner.jitteriness += 30
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index c9cdcaf8199c..37384cf91e6f 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -27,7 +27,7 @@
attack_verb_simple = "flail at"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = list(ROLE_ALIEN)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
verb_say = "squeaks"
verb_ask = "squeaks"
verb_exclaim = "shrieks"
@@ -35,7 +35,6 @@
initial_language_holder = /datum/language_holder/alien
flags_1 = PREVENT_CONTENTS_EXPLOSION_1
footstep_type = FOOTSTEP_MOB_CLAW
- gold_core_spawnable = NO_SPAWN
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
environment_smash = ENVIRONMENT_SMASH_NONE
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 9a19e198a555..5276cf514d65 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -438,7 +438,7 @@
visible_message("[src] dry heaves!", \
"You try to throw up, but there's nothing in your stomach!")
if(stun)
- Paralyze(200)
+ Immobilize(30)
return TRUE
if(is_mouth_covered()) //make this add a blood/vomit overlay later it'll be hilarious
@@ -454,7 +454,7 @@
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "vomit", /datum/mood_event/vomit)
if(stun)
- Paralyze(80)
+ Immobilize(10)
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, TRUE)
var/turf/T = get_turf(src)
@@ -476,6 +476,7 @@
T = get_step(T, dir)
if (T?.is_blocked_turf())
break
+ adjust_disgust(-(lost_nutrition*rand(0.5, 2)))
return TRUE
/mob/living/carbon/proc/spew_organ(power = 5, amt = 1)
@@ -709,7 +710,9 @@
//Fire and Brute damage overlay (BSSR)
var/hurtdamage = getBruteLoss() + getFireLoss() + damageoverlaytemp
- if(hurtdamage)
+ if(HAS_TRAIT(src, TRAIT_PAIN_RESIST))
+ hurtdamage = round(hurtdamage/2)
+ if(hurtdamage && !HAS_TRAIT(src, TRAIT_ANALGESIA))
var/severity = 0
switch(hurtdamage)
if(5 to 15)
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 62174120a60f..12a40a456f15 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -1,6 +1,8 @@
/mob/living/carbon/attackby(obj/item/W, mob/user, params)
var/obj/item/bodypart/BP = get_bodypart(check_zone(user.zone_selected))
- var/has_painkillers = reagents.has_reagent(/datum/reagent/medicine/morphine, needs_metabolizing = TRUE)
+ if(!BP)
+ return ..()
+ var/painless = (HAS_TRAIT(user, TRAIT_ANALGESIA) || HAS_TRAIT(user, TRAIT_PAIN_RESIST))
if(W.tool_behaviour == TOOL_WELDER && IS_ROBOTIC_LIMB(BP) && BP.brute_dam) //prioritize healing if we're synthetic
return ..()
if(user.a_intent != INTENT_HELP || !W.get_temperature() || !BP.can_bandage()) //this will also catch low damage synthetic welding
@@ -9,7 +11,7 @@
var/heal_time = 2 SECONDS
playsound(user, 'sound/surgery/cautery1.ogg', 20)
balloon_alert(user, "cauterizing...")
- if(src == user && !has_painkillers)
+ if(src == user && !painless)
heal_time *= 2 //oof ouch owie
user.visible_message(span_nicegreen("[user] holds [W] up to [user == src ? "their" : "[src]'s"] [parse_zone(BP.body_zone)], trying to slow [p_their()] bleeding..."), span_nicegreen("You hold [W] up to [user == src ? "your" : "[src]'s"] [parse_zone(BP.body_zone)], trying to slow [user == src ? "your" : p_their()] bleeding..."))
if(do_after(user, heal_time, target = src))
@@ -399,6 +401,8 @@
Paralyze(60)
/mob/living/carbon/proc/help_shake_act(mob/living/carbon/M)
+ var/datum/component/mood/hugger_mood = M.GetComponent(/datum/component/mood)
+ var/nosound = FALSE
if(on_fire)
to_chat(M, "You can't put [p_them()] out with just your bare hands!")
return
@@ -426,6 +430,22 @@
mothdust += 10;
if(istype(dna.species, /datum/species/moth))
M.mothdust += 10; // End WS edit
+
+ if(M.zone_selected == BODY_ZONE_PRECISE_MOUTH) // Nose boops!
+ nosound = TRUE
+ playsound(src, 'sound/effects/boop.ogg', 50, 0)
+ if (HAS_TRAIT(M, TRAIT_FRIENDLY))
+ M.visible_message(span_notice("[M] playfully boops your nose."), span_notice("You playfully boop [src]'s nose."))
+ if (hugger_mood.sanity >= SANITY_GREAT)
+ new /obj/effect/temp_visual/heart(loc)
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "best_boop", /datum/mood_event/best_boop, M)
+ else
+ M.visible_message(span_notice("[M] boops [src]'s nose."), span_notice("You boop [src] on the nose."))
+ if(HAS_TRAIT(src, TRAIT_BADTOUCH))
+ to_chat(M, span_warning("A scowl forms on [src]'s face as you daringly press your finger against [p_their()] nose."))
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "bad_boop", /datum/mood_event/bad_boop, M)
+
+
else if(check_zone(M.zone_selected) == BODY_ZONE_HEAD) //Headpats!
SEND_SIGNAL(src, COMSIG_CARBON_HEADPAT, M)
M.visible_message("[M] gives [src] a pat on the head to make [p_them()] feel better!", \
@@ -440,10 +460,35 @@
if(HAS_TRAIT(src, TRAIT_BADTOUCH))
to_chat(M, "[src] looks visibly upset as you pat [p_them()] on the head.")
+// Tail pulls!
+ else if((M.zone_selected == BODY_ZONE_PRECISE_GROIN) && !isnull(src.getorgan(/obj/item/organ/tail)))
+ M.visible_message(span_notice("[M] pulls on [src]'s tail!"), \
+ null, span_hear("You hear a soft patter."), DEFAULT_MESSAGE_RANGE, list(M, src))
+ to_chat(M, span_notice("You pull on [src]'s tail!"))
+ to_chat(src, span_notice("[M] pulls on your tail!"))
+
+// Rips off fake tails
+ else if((M.zone_selected == BODY_ZONE_PRECISE_GROIN) && (istype(head, /obj/item/clothing/head/kitty) || istype(head, /obj/item/clothing/head/collectable/kitty)))
+ var/obj/item/clothing/head/faketail = head
+ M.visible_message(span_danger("[M] pulls on [src]'s tail... and it rips off!"), \
+ null, span_hear("You hear a ripping sound."), DEFAULT_MESSAGE_RANGE, list(M, src))
+ to_chat(M, span_danger("You pull on [src]'s tail... and it rips off!"))
+ to_chat(src, span_userdanger("[M] pulls on your tail... and it rips off!"))
+ playsound(loc, 'sound/effects/rip1.ogg', 75, TRUE)
+ dropItemToGround(faketail)
+ M.put_in_hands(faketail)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "rippedtail", /datum/mood_event/rippedtail)
+
else if(M.zone_selected == BODY_ZONE_CHEST || M.zone_selected == BODY_ZONE_PRECISE_GROIN) //WS Edit - Adds more help emotes
SEND_SIGNAL(src, COMSIG_CARBON_HUGGED, M)
SEND_SIGNAL(M, COMSIG_CARBON_HUG, M, src)
- M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \
+ if (M.grab_state >= GRAB_AGGRESSIVE)
+ M.visible_message(span_notice("[M] embraces [src] in a tight bear hug!"), \
+ null, span_hear("You hear the rustling of clothes."), DEFAULT_MESSAGE_RANGE, list(M, src))
+ to_chat(M, span_notice("You wrap [src] into a tight bear hug!"))
+ to_chat(src, span_notice("[M] squeezes you super tightly in a firm bear hug!"))
+ else
+ M.visible_message("[M] hugs [src] to make [p_them()] feel better!", \
"You hug [src] to make [p_them()] feel better!")
if(istype(M.dna.species, /datum/species/moth)) //WS edit - moth dust from hugging
mothdust += 15;
@@ -455,12 +500,17 @@
// No moodlets for people who hate touches
if(!HAS_TRAIT(src, TRAIT_BADTOUCH))
- if(bodytemperature > M.bodytemperature)
- if(!HAS_TRAIT(M, TRAIT_BADTOUCH))
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/warmhug, src) // Hugger got a warm hug (Unless they hate hugs)
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/hug) // Reciver always gets a mood for being hugged
- else
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/warmhug, M) // You got a warm hug
+ if (M.grab_state >= GRAB_AGGRESSIVE)
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/bear_hug)
+ if(bodytemperature > M.bodytemperature)
+ if(!HAS_TRAIT(M, TRAIT_BADTOUCH))
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/warmhug) // Hugger got a warm hug (Unless they hate hugs)
+ SEND_SIGNAL(M, "hug", /datum/mood_event/hug) // Receiver always gets a mood for being hugged
+ else
+ SEND_SIGNAL(M, "hug", /datum/mood_event/warmhug,) // You got a warm hug
+ else
+ if (M.grab_state >= GRAB_AGGRESSIVE)
+ SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/bad_touch_bear_hug)
// Let people know if they hugged someone really warm or really cold
if(M.bodytemperature > M.dna.species.bodytemp_heat_damage_limit)
@@ -474,7 +524,6 @@
to_chat(M, "It feels like [src] is freezing as you hug them.")
if(HAS_TRAIT(M, TRAIT_FRIENDLY))
- var/datum/component/mood/hugger_mood = M.GetComponent(/datum/component/mood)
if (hugger_mood.sanity >= SANITY_GREAT)
new /obj/effect/temp_visual/heart(loc)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "friendly_hug", /datum/mood_event/besthug, M)
@@ -503,8 +552,17 @@
AdjustParalyzed(-60)
AdjustImmobilized(-60)
set_resting(FALSE)
-
- playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
+ if(!nosound)
+ playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1)
+
+// Shake animation
+#define SHAKE_ANIMATION_OFFSET (4)
+ if (incapacitated())
+ var/direction = prob(50) ? -1 : 1
+ animate(src, pixel_x = pixel_x + SHAKE_ANIMATION_OFFSET * direction, time = 1, easing = QUAD_EASING | EASE_OUT, flags = ANIMATION_PARALLEL)
+ animate(pixel_x = pixel_x - (SHAKE_ANIMATION_OFFSET * 2 * direction), time = 1)
+ animate(pixel_x = pixel_x + SHAKE_ANIMATION_OFFSET * direction, time = 1, easing = QUAD_EASING | EASE_IN)
+#undef SHAKE_ANIMATION_OFFSET
/// Check ourselves to see if we've got any shrapnel, return true if we do. This is a much simpler version of what humans do, we only indicate we're checking ourselves if there's actually shrapnel
/mob/living/carbon/proc/check_self_for_injuries()
diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm
index b5ee4ff2cced..b9a0e9395c7d 100644
--- a/code/modules/mob/living/carbon/emote.dm
+++ b/code/modules/mob/living/carbon/emote.dm
@@ -97,12 +97,8 @@
/datum/emote/living/carbon/moan
key = "moan"
key_third_person = "moans"
- // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
- // message = "moans!" // CELADON-EDIT - ORIGINAL
- // message_mime = "appears to moan!" // CELADON-EDIT - ORIGINAL
- message = "стонет!"
- message_mime = "кажется стонет"
- // [/CELADON-EDIT]
+ message = "moans!"
+ message_mime = "appears to moan!"
emote_type = EMOTE_AUDIBLE
/datum/emote/living/carbon/roll
@@ -116,10 +112,10 @@
key = "scratch"
key_third_person = "scratches"
// [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
+ // mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien)
// message = "scratches." // CELADON-EDIT - ORIGINAL
- message = "царапает."
+ message = "чешется."
// [/CELADON-EDIT]
- mob_type_allowed_typecache = list(/mob/living/carbon/monkey, /mob/living/carbon/alien)
hands_use_check = TRUE
/datum/emote/living/carbon/screech
@@ -296,7 +292,7 @@
damage += rand(3,7)
if(damage >= 5)
- target.emote("scream")
+ target.force_scream()
target.apply_damage(damage, BRUTE, BODY_ZONE_HEAD)
user.adjustStaminaLoss(iteration + 5)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 9573c1918773..2b583cdfc0de 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -66,8 +66,6 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift)
if(SSticker.HasRoundStarted())
SSblackbox.ReportDeath(src)
log_message("has died (BRUTE: [src.getBruteLoss()], BURN: [src.getFireLoss()], TOX: [src.getToxLoss()], OXY: [src.getOxyLoss()], CLONE: [src.getCloneLoss()])", LOG_ATTACK)
- if(is_devil(src))
- INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src)
to_chat(src, "You have died. Barring complete bodyloss, you can in most cases be revived by other players. If you do not wish to be brought back, use the \"Do Not Resuscitate\" verb in the ghost tab.")
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 146c60c9b79d..ce617d5d00db 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -35,8 +35,12 @@
/datum/emote/living/carbon/human/handshake
key = "handshake"
- message = "shakes their own hands."
- message_param = "shakes hands with %t."
+ // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
+ // message = "shakes their own hands."
+ // message_param = "shakes hands with %t." // CELADON-EDIT - ORIGINAL
+ message = "пожимает руку."
+ message_param = "пожимает руку %t."
+ // [/CELADON-EDIT]
hands_use_check = TRUE
emote_type = EMOTE_AUDIBLE
@@ -86,24 +90,28 @@
return pick('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', 'sound/voice/human/malescream_6.ogg')
else if(ismoth(H))
return 'sound/voice/moth/scream_moth.ogg'
+ else if(isvox(H))
+ return 'sound/voice/vox/vox_scream_1.ogg'
else if(islizard(H))
return pick('sound/voice/lizard/lizard_scream_1.ogg', 'sound/voice/lizard/lizard_scream_2.ogg', 'sound/voice/lizard/lizard_scream_3.ogg', 'sound/voice/lizard/lizard_scream_4.ogg')
-/datum/emote/living/carbon/human/hiss //lizard
- key = "hiss"
- key_third_person = "hisses"
- // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
- // message = "hisses!" // CELADON-EDIT - ORIGINAL
- message = "шипит!"
- // [/CELADON-EDIT]
- emote_type = EMOTE_AUDIBLE
- vary = TRUE
-
-/datum/emote/living/carbon/human/hiss/get_sound(mob/living/user)
- if(!ishuman(user))
- return
- if(islizard(user))
- return 'sound/voice/lizard/hiss.ogg'
+// [CELADON-REMOVE] - CELADON_EMOTES - Перемещено в пак Эмоутов
+// /datum/emote/living/carbon/human/hiss //lizard
+// key = "hiss"
+// key_third_person = "hisses"
+// // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
+// // message = "hisses!" // CELADON-EDIT - ORIGINAL
+// message = "шипит!"
+// // [/CELADON-EDIT]
+// emote_type = EMOTE_AUDIBLE
+// vary = TRUE
+
+// /datum/emote/living/carbon/human/hiss/get_sound(mob/living/user)
+// if(!ishuman(user))
+// return
+// if(islizard(user))
+// return 'sound/voice/lizard/hiss.ogg'
+// [/CELADON-REMOVE]
/datum/emote/living/carbon/human/squeal //lizard
key = "squeal"
@@ -156,7 +164,7 @@
key_third_person = "raises"
// [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
// message = "raises a hand." // CELADON-EDIT - ORIGINAL
- message = "поднимает руки."
+ message = "поднимает руку."
// [/CELADON-EDIT]
hands_use_check = TRUE
@@ -168,6 +176,16 @@
// message_param = "salutes to %t." // CELADON-EDIT - ORIGINAL
message = "салютует."
message_param = "салютует %t."
+ var/list/serious_shoes = list(
+ /obj/item/clothing/shoes/jackboots,
+ /obj/item/clothing/shoes/combat,
+ /obj/item/clothing/shoes/laceup)
+ // /obj/item/clothing/shoes/centcom,
+ var/list/funny_shoes = list(
+ /obj/item/clothing/shoes/magboots/clown,
+ /obj/item/clothing/shoes/clown_shoes)
+ // /obj/item/clothing/shoes/cursedclown,
+ // /obj/item/clothing/shoes/ducky)
// [/CELADON-EDIT]
hands_use_check = TRUE
@@ -187,6 +205,24 @@
message = "начинает махать хвостом."
// [/CELADON-EDIT]
+// [CELADON-ADD] - CELADON_EMOTES
+/datum/emote/living/carbon/human/proc/can_wag(mob/user)
+ var/mob/living/carbon/human/H = user
+ if(!(H.dna.species.bodyflags & TAIL_WAGGING))
+ return FALSE
+ var/obscured = H.wear_suit && (H.wear_suit.flags_inv & HIDETAIL)
+ if(!istype(H))
+ return FALSE
+ // if(istype(H.sprite, /datum/sprite_accessory/tails)) // Требуется реализовать маркинги хвостов для этого
+ // if(!H.body_accessory.try_restrictions(user))
+ // return FALSE
+
+ if(H.dna.species.bodyflags & TAIL_WAGGING && obscured)
+ return FALSE
+
+ return TRUE
+// [/CELADON-ADD]
+
/datum/emote/living/carbon/human/wag/run_emote(mob/user, params, type_override, intentional)
. = ..()
if(!.)
@@ -386,13 +422,19 @@
/datum/emote/living/carbon/human/kepiwhistle
key = "whistle"
key_third_person = "whistles"
- message = "whistles!"
+ // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
+ // message = "whistles!" // CELADON-EDIT - ORIGINAL
+ message = "Свистит!"
+ // [/CELADON-EDIT]
emote_type = EMOTE_AUDIBLE
vary = TRUE
/datum/emote/living/carbon/human/kepiwhistle/get_sound(mob/living/user)
if(!ishuman(user))
- return
+ // [CELADON-EDIT] - CELADON_COMPONENTS_EMOTE - Эмоции
+ // return // CELADON-EDIT - ORIGINAL
+ return 'mod_celadon/_storge_sounds/sound/emotes/whistle.ogg'
+ // [/CELADON-EDIT]
if(iskepori(user))
return 'sound/voice/kepori/kepiwhistle.ogg' //https://freesound.org/people/Andreas.Mustola/sounds/338277/
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index cf3f5ec725ec..c462eb294f77 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -99,8 +99,6 @@
if(!(ITEM_SLOT_EYES in obscured))
if(glasses)
. += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes."
- else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, CULT_EYES))
- . += "[t_His] eyes are glowing an unnatural red!"
//ears
if(ears && !(ITEM_SLOT_EARS in obscured))
@@ -432,4 +430,4 @@
if ((wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)))
return
if(get_age())
- . += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()]."))
+ . += span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()].")
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index cf6efccb898c..76307c3c909d 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -24,7 +24,6 @@
RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, PROC_REF(clean_face))
AddComponent(/datum/component/personal_crafting)
AddComponent(/datum/component/footstep, FOOTSTEP_MOB_HUMAN, 1, -6)
- AddComponent(/datum/component/bloodysoles/feet)
GLOB.human_list += src
/mob/living/carbon/human/proc/setup_human_dna()
@@ -42,6 +41,8 @@
QDEL_NULL(physiology)
QDEL_LIST(bioware)
GLOB.human_list -= src
+ if(blood_particle)
+ QDEL_NULL(blood_particle)
return ..()
@@ -913,10 +914,10 @@
/mob/living/carbon/human/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE, harm = TRUE, force = FALSE, purge = FALSE)
if(blood && (NOBLOOD in dna.species.species_traits) && !HAS_TRAIT(src, TRAIT_TOXINLOVER))
if(message)
- visible_message("[src] dry heaves!", \
- "You try to throw up, but there's nothing in your stomach!")
+ visible_message(span_warning("[src] dry heaves!"), \
+ span_userdanger("You try to throw up, but there's nothing in your stomach!"))
if(stun)
- Paralyze(200)
+ Immobilize(30)
return 1
..()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 7a7bc349b26c..081c94f4a8f9 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -110,22 +110,24 @@
var/final_block_chance = I.block_chance - (clamp((armour_penetration-I.armour_penetration)/2,0,100)) + block_chance_modifier //So armour piercing blades can still be parried by other blades, for example
if(I.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
return TRUE
+
if(wear_suit)
- var/final_block_chance = wear_suit.block_chance - (clamp((armour_penetration-wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier
+ var/final_block_chance = wear_suit.block_chance - (clamp((armour_penetration - wear_suit.armour_penetration)/2,0,100)) + block_chance_modifier
if(wear_suit.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
return TRUE
if(w_uniform)
- var/final_block_chance = w_uniform.block_chance - (clamp((armour_penetration-w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier
+ var/final_block_chance = w_uniform.block_chance - (clamp((armour_penetration - w_uniform.armour_penetration)/2,0,100)) + block_chance_modifier
if(w_uniform.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
return TRUE
if(wear_neck)
- var/final_block_chance = wear_neck.block_chance - (clamp((armour_penetration-wear_neck.armour_penetration)/2,0,100)) + block_chance_modifier
+ var/final_block_chance = wear_neck.block_chance - (clamp((armour_penetration - wear_neck.armour_penetration)/2,0,100)) + block_chance_modifier
if(wear_neck.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
return TRUE
if(head)
- var/final_block_chance = head.block_chance - (clamp((armour_penetration-head.armour_penetration)/2,0,100)) + block_chance_modifier
+ var/final_block_chance = head.block_chance - (clamp((armour_penetration - head.armour_penetration)/2,0,100)) + block_chance_modifier
if(head.hit_reaction(src, AM, attack_text, final_block_chance, damage, attack_type))
return TRUE
+
return FALSE
/mob/living/carbon/human/proc/check_block()
@@ -522,8 +524,8 @@
var/informed = FALSE
for(var/obj/item/bodypart/L as anything in bodyparts)
if(!IS_ORGANIC_LIMB(L))
- if(!informed)
- to_chat(src, "You feel a sharp pain as your robotic limbs overload.")
+ if(!informed && !HAS_TRAIT(src, TRAIT_ANALGESIA))
+ to_chat(src, span_userdanger("You feel a sharp pain as your robotic limbs overload."))
informed = TRUE
switch(severity)
if(1)
@@ -655,7 +657,7 @@
if(affecting.name == BODY_ZONE_HEAD)
if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement
affecting.receive_damage(acidity, 2*acidity)
- emote("scream")
+ force_scream()
facial_hairstyle = "Shaved"
hairstyle = "Bald"
update_hair()
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index df006ead1f39..1ba5fc95661a 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -81,3 +81,8 @@
var/obj/effect/abstract/particle_holder/blood_particle
COOLDOWN_DECLARE(bloodloss_message)
+
+// [CELADON-ADD] - CELADON_EMOTES
+/mob/living/carbon/human/proc/get_age_pitch(species_pitch = 85)
+ return 1.0 + 0.5 * ((species_pitch * 0.35) - age) / (0.94 * species_pitch)
+// [/CELADON-ADD]
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index cbaa988aa5a8..12e152c0f3d9 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -121,7 +121,9 @@
/mob/living/carbon/human/equip_to_slot(obj/item/I, slot, initial = FALSE, redraw_mob = FALSE, swap = FALSE)
if(!..()) //a check failed or the item has already found its slot
return
-
+ if(isclothing(I))//needs to be set very early, because clothing overlays need it assigned before update_inv calls
+ var/obj/item/clothing/ouritem = I
+ ouritem.wearer = WEAKREF(src)
var/current_equip
var/not_handled = FALSE //Added in case we make this type path deeper one day
switch(slot)
@@ -204,7 +206,9 @@
update_inv_s_store()
else
to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!")
-
+ if(isclothing(I))//just in case
+ var/obj/item/clothing/ouritem = I
+ ouritem.wearer = null
if (current_equip)
put_in_active_hand(current_equip)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 18b6cb9ba40e..cb812d45b34b 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -120,6 +120,7 @@
if(istype(L, /obj/item/organ/lungs))
var/obj/item/organ/lungs/lun = L
lun.check_breath(breath,src)
+ lun.handle_breath_temperature(breath,src)
/// Environment handlers for species
/mob/living/carbon/human/handle_environment(datum/gas_mixture/environment)
@@ -345,13 +346,19 @@
var/obj/item/bodypart/R = get_bodypart("r_arm")
if(istype(L) && L.bone_status == BONE_FLAG_BROKEN && held_items[1] && prob(30))
- emote("scream")
- visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!")
+ force_scream()
+ if(!HAS_TRAIT(src, TRAIT_ANALGESIA))
+ visible_message(span_warning("[src] screams and lets go of [held_items[1]] in pain."), span_userdanger("A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!"))
+ else
+ visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(L)] makes it impossible to grasp [held_items[1]]!"))
dropItemToGround(held_items[1])
if(istype(R) && R.bone_status == BONE_FLAG_BROKEN && held_items[2] && prob(30))
- emote("scream")
- visible_message("[src] screams and lets go of [held_items[2]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[2]]!")
+ force_scream()
+ if(!HAS_TRAIT(src, TRAIT_ANALGESIA))
+ visible_message(span_warning("[src] screams and lets go of [held_items[1]] in pain."), span_userdanger("A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[1]]!"))
+ else
+ visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(R)] makes it impossible to grasp [held_items[1]]!"))
dropItemToGround(held_items[2])
#undef THERMAL_PROTECTION_HEAD
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index de7c68642edb..c4b6f02f35af 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -108,6 +108,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/siemens_coeff = 1
///What kind of damage overlays (if any) appear on our species when wounded? If this is "", does not add an overlay.
var/damage_overlay_type = "human"
+ ///for species with a unique body size(above 32x32), who need a custom icon file for overlays
+ var/custom_overlay_icon
///To use MUTCOLOR with a fixed color that's independent of the mcolor feature in DNA.
var/fixed_mut_color = ""
///Special mutation that can be found in the genepool exclusively in this species. Dont leave empty or changing species will be a headache
@@ -147,9 +149,9 @@ GLOBAL_LIST_EMPTY(roundstart_races)
/// Minimum amount of kelvin moved toward normal body temperature per tick.
var/bodytemp_autorecovery_min = HUMAN_BODYTEMP_AUTORECOVERY_MINIMUM
/// The maximum temperature the species is comfortable at. Going above this does not apply any effects, but warns players that the temperture is hot
- var/max_temp_comfortable = (HUMAN_BODYTEMP_NORMAL + 7)
+ var/max_temp_comfortable = (HUMAN_BODYTEMP_NORMAL) //20 c will always be below human bodytemp, this just makes it so when it can sustain that its higher
/// The minimum temperature the species is comfortable at. Going below this does not apply any effects, but warns players that the temperture is chilly
- var/min_temp_comfortable = (HUMAN_BODYTEMP_NORMAL - 5)
+ var/min_temp_comfortable = (HUMAN_BODYTEMP_NORMAL - 1)
/// This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery.
var/bodytemp_autorecovery_divisor = HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR
///Similar to the autorecovery_divsor, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to lose bodytemp faster.
@@ -190,7 +192,6 @@ GLOBAL_LIST_EMPTY(roundstart_races)
///What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm]
var/breathid = "o2"
-
//Do NOT remove by setting to null. use OR make a RESPECTIVE TRAIT (removing stomach? add the NOSTOMACH trait to your species)
//why does it work this way? because traits also disable the downsides of not having an organ, removing organs but not having the trait will make your species die
//shut up you're not my mother
@@ -499,6 +500,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
fly.Grant(C)
C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, multiplicative_slowdown=speedmod)
+ C.bodytemperature = bodytemp_normal
SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species)
@@ -719,7 +721,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
eye_overlay = mutable_appearance('icons/mob/species/kepori/kepori_eyes.dmi', eyes.eye_icon_state, -BODYPARTS_LAYER)
sclera_overlay = mutable_appearance('icons/mob/species/kepori/kepori_eyes.dmi', eyes.sclera_icon_state, -BODYPARTS_LAYER)
// [CELADON-ADD] - CELADON_LANIUS
- if(islanius(H))
+ else if(islanius(H))
eye_overlay = mutable_appearance('mod_celadon/_storge_icons/icons/lanius/lanius_organs.dmi', eyes.eye_icon_state, -BODYPARTS_LAYER)
// [/CELADON-ADD]
else
@@ -1453,6 +1455,8 @@ GLOBAL_LIST_EMPTY(roundstart_races)
return FALSE
if(H.s_store && !swap)
return FALSE
+ if(HAS_TRAIT(I, TRAIT_FORCE_SUIT_STORAGE))
+ return TRUE
if(!H.wear_suit)
if(!disable_warning)
to_chat(H, "You need a suit before you can attach this [I.name]!")
@@ -2041,18 +2045,26 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/plasma = environment.get_moles(GAS_PLASMA)
var/tritium = environment.get_moles(GAS_TRITIUM)
var/chlorine = environment.get_moles(GAS_CHLORINE)
+ var/ammonia = environment.get_moles(GAS_AMMONIA)
var/hydrogen_chloride = environment.get_moles(GAS_HYDROGEN_CHLORIDE)
- if(chlorine <= MINIMUM_MOLS_TO_HARM && hydrogen_chloride <= MINIMUM_MOLS_TO_HARM && tritium <= MINIMUM_MOLS_TO_HARM && plasma <= MINIMUM_MOLS_TO_HARM)
+ var/sulfur_dioxide = environment.get_moles(GAS_SO2)
+ if(chlorine <= MINIMUM_MOLS_TO_HARM && hydrogen_chloride <= MINIMUM_MOLS_TO_HARM && tritium <= MINIMUM_MOLS_TO_HARM && plasma <= MINIMUM_MOLS_TO_HARM && ammonia <= MINIMUM_MOLS_TO_HARM && sulfur_dioxide <= MINIMUM_MOLS_TO_HARM)
return
var/eyedamage = FALSE
var/irritant = FALSE
var/burndamage = 0
- var/lowerthreshold = 0
+ var/lowerthreshold = FALSE
+
+ var/feels_pain = TRUE
if(HAS_TRAIT(H, TRAIT_METALLIC)) //makes certain species take more damage and start taking damage at lower air amounts
- lowerthreshold = 1
+ lowerthreshold = TRUE
- if(plasma > (MINIMUM_MOLS_TO_HARM * 10))
+ if(HAS_TRAIT(H, TRAIT_ANALGESIA)) //if we can't feel pain, dont give the pain messages
+ feels_pain = FALSE
+
+ if(plasma > MINIMUM_MOLS_TO_HARM)
+ burndamage += max(sqrt(ammonia) - 1 + lowerthreshold, 0)
eyedamage = TRUE
irritant = TRUE
if(tritium)
@@ -2065,73 +2077,72 @@ GLOBAL_LIST_EMPTY(roundstart_races)
irritant = TRUE
if(chlorine > (MINIMUM_MOLS_TO_HARM * 10))
eyedamage = TRUE
+ if(ammonia)
+ burndamage += max(sqrt(ammonia) - 2 + lowerthreshold, 0)
+ irritant = TRUE
+ if(ammonia > (MINIMUM_MOLS_TO_HARM * 5))
+ eyedamage = TRUE
if(hydrogen_chloride)
burndamage += max(sqrt(hydrogen_chloride) - 1 + lowerthreshold, 0)
eyedamage = TRUE
irritant = TRUE
+ if(sulfur_dioxide)
+ burndamage += max(sqrt(chlorine) - 4 + lowerthreshold, 0)
+ irritant = TRUE
+ if(sulfur_dioxide > (MINIMUM_MOLS_TO_HARM * 5))
+ eyedamage = TRUE
if(!eyedamage && !burndamage && !irritant)
return
H.apply_damage(burndamage, BURN, spread_damage = TRUE)
if(prob(50) && burndamage)
- if(lowerthreshold)
- to_chat(H, "You're corroding!")
- else
- to_chat(H, "You're melting!")
+ if(lowerthreshold && feels_pain)
+ to_chat(H, span_userdanger("You're corroding!"))
+ else if(feels_pain)
+ to_chat(H, span_userdanger("You're melting!"))
playsound(H, 'sound/items/welder.ogg', 30, TRUE)
if(!H.check_for_goggles() && eyedamage)
H.adjustOrganLoss(ORGAN_SLOT_EYES, 1)
- if(prob(50))
- to_chat(H, "Your eyes burn!")
- if(irritant && prob(50))
+ if(prob(50) && feels_pain)
+ to_chat(H, span_danger("Your eyes burn!"))
+ H.emote("cry")
+ H.set_blurriness(10)
+ if(irritant && prob(50) && feels_pain)
if(lowerthreshold)
- to_chat(H, "Your outer shell smolders!")
+ to_chat(H, span_danger("Your outer shell smolders!"))
else
- to_chat(H, "Your skin itches.")
+ to_chat(H, span_danger("Your skin itches."))
/// Handle the body temperature status effects for the species
/// Traits for resitance to heat or cold are handled here.
/datum/species/proc/handle_body_temperature(mob/living/carbon/human/H)
var/body_temp = H.bodytemperature
- var/total_change = bodytemp_natural_stabilization + bodytemp_environment_change
//tempature is no longer comfy, throw alert
if(body_temp > max_temp_comfortable && !HAS_TRAIT(H, TRAIT_RESISTHEAT))
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
if(body_temp > bodytemp_heat_damage_limit)
var/burn_damage = calculate_burn_damage(H)
- if(burn_damage < 2)
+ if(burn_damage > 2)
H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 3)
else
H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 2)
else
- if(body_temp < (bodytemp_heat_damage_limit - 10))
- // you are cooling down and exiting the danger zone
- if(total_change < 0)
- H.throw_alert("tempfeel", /atom/movable/screen/alert/warm)
- else
- H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 2)
- else if(total_change > 1)
- H.throw_alert("tempfeel", /atom/movable/screen/alert/warm)
+ if(body_temp < (bodytemp_heat_damage_limit - 3))
+ H.throw_alert("tempfeel", /atom/movable/screen/alert/hot, 1)
else
- H.clear_alert("tempfeel")
+ H.throw_alert("tempfeel", /atom/movable/screen/alert/warm)
else if (body_temp < min_temp_comfortable && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
- if(body_temp < 200)
+ if(body_temp < bodytemp_cold_damage_limit -7)
H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 3)
else if(body_temp < bodytemp_cold_damage_limit)
H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 2)
- else if(body_temp < (bodytemp_cold_damage_limit + 10))
- // you are warming up and exiting the danger zone
- if(total_change > 0)
- H.throw_alert("tempfeel", /atom/movable/screen/alert/chilly)
- else
- H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 2)
- else if(total_change < -1)
- H.throw_alert("tempfeel", /atom/movable/screen/alert/chilly)
+ else if(body_temp < (bodytemp_cold_damage_limit + 5))
+ H.throw_alert("tempfeel", /atom/movable/screen/alert/cold, 1)
else
- H.clear_alert("tempfeel")
+ H.throw_alert("tempfeel", /atom/movable/screen/alert/chilly)
else
H.clear_alert("tempfeel")
@@ -2150,27 +2161,34 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(burn_damage)
if(H.mob_biotypes & MOB_ROBOTIC) //robors have a alternative cooling fan graphic
switch(burn_damage)
- if(0 to 2)
+ if(0 to 1)
H.throw_alert("temp", /atom/movable/screen/alert/fans, 1)
- if(2 to 4)
+ if(2 to 3)
H.throw_alert("temp", /atom/movable/screen/alert/fans, 2)
else
H.throw_alert("temp", /atom/movable/screen/alert/fans, 3)
else
switch(burn_damage)
- if(0 to 2)
+ if(0 to 1)
H.throw_alert("temp", /atom/movable/screen/alert/sweat, 1)
- if(2 to 4)
+ if(2 to 3)
H.throw_alert("temp", /atom/movable/screen/alert/sweat, 2)
else
H.throw_alert("temp", /atom/movable/screen/alert/sweat, 3)
+ //Stay hydrated.
+ if(!(H.mob_biotypes & MOB_ROBOTIC) && H.reagents.has_reagent(/datum/reagent/water) && H.stat != DEAD)
+ burn_damage -= clamp(H.reagents.get_reagent_amount(/datum/reagent/water) /10, 0, 2)
+ // if youre dead, no need to sweat?
+ if(H.stat != DEAD)
+ burn_damage -= (max(burn_damage - 2.5, 0))
+
// Apply species and physiology modifiers to heat damage
burn_damage = burn_damage * heatmod * H.physiology.heat_mod
// 40% for level 3 damage on humans to scream in pain
if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4)
- H.emote("scream")
+ H.force_scream()
// Apply the damage to all body parts
H.apply_damage(burn_damage, BURN, spread_damage = TRUE)
@@ -2185,17 +2203,25 @@ GLOBAL_LIST_EMPTY(roundstart_races)
// Display alerts based on the amount of cold damage being taken
// Apply more damage based on how cold you are
- if(body_temp < 120)
+ if(body_temp < bodytemp_cold_damage_limit - 15)
H.throw_alert("temp", /atom/movable/screen/alert/shiver, 3)
- H.apply_damage(COLD_DAMAGE_LEVEL_3 * coldmod * H.physiology.cold_mod, BURN)
+ if(H.stat != DEAD) // probably can store them in cold storage like this
+ H.apply_damage(COLD_DAMAGE_LEVEL_3 * coldmod * H.physiology.cold_mod, BURN)
+ H.emote("shiver")
- else if(body_temp < 200)
+ else if(body_temp < bodytemp_cold_damage_limit - 7)
H.throw_alert("temp", /atom/movable/screen/alert/shiver, 2)
- H.apply_damage(COLD_DAMAGE_LEVEL_2 * coldmod * H.physiology.cold_mod, BURN)
+ if(H.stat != DEAD) // when you think about it, being cold wouldnt do skin damaage if there nothing even alive?
+ H.apply_damage(COLD_DAMAGE_LEVEL_2 * coldmod * H.physiology.cold_mod, BURN)
+ if(prob(30))
+ H.emote("shiver")
else
H.throw_alert("temp", /atom/movable/screen/alert/shiver, 1)
- H.apply_damage(COLD_DAMAGE_LEVEL_1 * coldmod * H.physiology.cold_mod, BURN)
+ if(H.stat != DEAD) // to prevent a bug where bodies at room tempertue actually take damage from their body being cold
+ H.apply_damage(COLD_DAMAGE_LEVEL_1 * coldmod * H.physiology.cold_mod, BURN)
+ if(prob(10))
+ H.emote("shiver")
// We are not to hot or cold, remove status and moods
else
@@ -2211,7 +2237,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
firemodifier = min(firemodifier, 0)
// this can go below 5 at log 2.5
- burn_damage = max(log(2 - firemodifier, (current_human.bodytemperature - current_human.get_body_temp_normal(apply_change=FALSE))) - 5,0)
+ burn_damage = max(log(2 - firemodifier, (current_human.bodytemperature - current_human.get_body_temp_normal(apply_change=FALSE))) - 2,0)
return burn_damage
/// Handle the air pressure of the environment
@@ -2268,25 +2294,21 @@ GLOBAL_LIST_EMPTY(roundstart_races)
var/body_temp = H.bodytemperature // Get current body temperature
var/body_temperature_difference = H.get_body_temp_normal() - body_temp
var/natural_change = 0
-
- // We are very cold, increate body temperature
- if(body_temp <= bodytemp_cold_damage_limit)
- natural_change = max((body_temperature_difference * H.metabolism_efficiency / bodytemp_autorecovery_divisor), \
- bodytemp_autorecovery_min)
+ var/recovery_temp = bodytemp_autorecovery_min
+ //if in crit, we struggle to regulate temperture. this will make extreme tempertures more dangerous to injured
+ if (H.stat > SOFT_CRIT)
+ recovery_temp = recovery_temp / 2
// we are cold, reduce the minimum increment and do not jump over the difference
- else if(body_temp > bodytemp_cold_damage_limit && body_temp < H.get_body_temp_normal())
+ if(body_temp > bodytemp_cold_damage_limit && body_temp < H.get_body_temp_normal())
natural_change = max(body_temperature_difference * H.metabolism_efficiency / bodytemp_autorecovery_divisor, \
- min(body_temperature_difference, bodytemp_autorecovery_min / 4))
+ min(body_temperature_difference, recovery_temp / 4))
// We are hot, reduce the minimum increment and do not jump below the difference
else if(body_temp > H.get_body_temp_normal() && body_temp <= bodytemp_heat_damage_limit)
natural_change = min(body_temperature_difference * H.metabolism_efficiency / bodytemp_autorecovery_divisor, \
- max(body_temperature_difference, -(bodytemp_autorecovery_min / 4)))
+ max(body_temperature_difference, -(recovery_temp / 4)))
- // We are very hot, reduce the body temperature
- else if(body_temp >= bodytemp_heat_damage_limit)
- natural_change = min((body_temperature_difference / bodytemp_autorecovery_divisor), -bodytemp_autorecovery_min)
var/thermal_protection = H.get_insulation_protection(body_temp + natural_change)
if(areatemp > body_temp) // It is hot here
@@ -2374,9 +2396,9 @@ GLOBAL_LIST_EMPTY(roundstart_races)
if(thermal_protection >= FIRE_IMMUNITY_MAX_TEMP_PROTECT && !no_protection)
return
if(thermal_protection >= FIRE_SUIT_MAX_TEMP_PROTECT && !no_protection)
- H.adjust_bodytemperature(11)
+ H.adjust_bodytemperature(3)
else
- H.adjust_bodytemperature(bodytemp_heating_rate_max + (H.fire_stacks * 12))
+ H.adjust_bodytemperature(bodytemp_heating_rate_max + (H.fire_stacks * 5))
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire)
/datum/species/proc/CanIgniteMob(mob/living/carbon/human/H)
diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm
index 59e12cebd5c1..3ea8d8a9174b 100644
--- a/code/modules/mob/living/carbon/human/species_types/IPC.dm
+++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm
@@ -35,7 +35,7 @@
attack_sound = 'sound/items/trayhit1.ogg'
deathsound = "sound/voice/borg_deathsound.ogg"
wings_icons = list("Robotic")
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
species_language_holder = /datum/language_holder/ipc
loreblurb = "Integrated Positronic Chassis or \"IPC\" for short, are synthetic lifeforms composed of an Artificial \
Intelligence program encased in a bipedal robotic shell. They are fragile, allergic to EMPs, and the butt of endless toaster jokes. \
diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm
index 41bc6721755f..229bdcb21c2f 100644
--- a/code/modules/mob/living/carbon/human/species_types/abductors.dm
+++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm
@@ -5,7 +5,7 @@
species_traits = list(NOBLOOD,NOEYESPRITES,NO_BONES)
inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_CHUNKYFINGERS,TRAIT_NOHUNGER,TRAIT_NOBREATH)
mutanttongue = /obj/item/organ/tongue/abductor
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
ass_image = 'icons/ass/assgrey.png'
species_chest = /obj/item/bodypart/chest/abductor
diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm
index 623041674516..6bb5956ae0ab 100644
--- a/code/modules/mob/living/carbon/human/species_types/android.dm
+++ b/code/modules/mob/living/carbon/human/species_types/android.dm
@@ -11,7 +11,7 @@
reagent_tag = PROCESS_SYNTHETIC
species_gibs = "robotic"
attack_sound = 'sound/items/trayhit1.ogg'
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
/datum/species/android/on_species_gain(mob/living/carbon/C)
. = ..()
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 df1fa3a28275..0d56821e1898 100644
--- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm
+++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm
@@ -21,21 +21,22 @@
exotic_bloodtype = "E"
*/
// [/CELADON-REMOVE]
- damage_overlay_type = "" //We are too cool for regular damage overlays
+ // damage_overlay_type = "" //We are too cool for regular damage overlays
species_age_max = 300
species_traits = list(DYNCOLORS, EYECOLOR, HAIR, FACEHAIR)
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
species_language_holder = /datum/language_holder/ethereal
inherent_traits = list(TRAIT_NOHUNGER)
sexes = FALSE //no fetish content allowed
toxic_food = NONE
// Body temperature for ethereals is much higher then humans as they like hotter environments
bodytemp_normal = (HUMAN_BODYTEMP_NORMAL + 50)
- bodytemp_heat_damage_limit = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD // about 150C
+ bodytemp_heat_damage_limit = (HUMAN_BODYTEMP_NORMAL + 65)
// Cold temperatures hurt faster as it is harder to move with out the heat energy
- bodytemp_cold_damage_limit = (T20C - 10) // about 10c
+ bodytemp_cold_damage_limit = (HUMAN_BODYTEMP_NORMAL - 20)
- max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 100
+ min_temp_comfortable = (HUMAN_BODYTEMP_NORMAL - 10)
+ max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 55
hair_color = "fixedmutcolor"
hair_alpha = 140
@@ -156,7 +157,7 @@
_human.apply_damage(8,BRUTE,BODY_ZONE_CHEST)
_human.apply_damage(8,BRUTE,BODY_ZONE_L_LEG)
_human.apply_damage(8,BRUTE,BODY_ZONE_R_LEG)
- _human.emote("scream")
+ _human.force_scream()
_human.remove_status_effect(/datum/status_effect/rooted)
return
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 f5de9f873b3b..7cf8d8ee3e45 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -9,7 +9,7 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/fly
disliked_food = null
liked_food = GORE | RAW // Sure, the raw... the bloody... but I think stuff GROSS, like baseball burgers, are liked
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
species_language_holder = /datum/language_holder/fly
species_chest = /obj/item/bodypart/chest/fly
diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm
index 882fffc9ff41..b45ec4b05f3e 100644
--- a/code/modules/mob/living/carbon/human/species_types/humans.dm
+++ b/code/modules/mob/living/carbon/human/species_types/humans.dm
@@ -9,7 +9,7 @@
skinned_type = /obj/item/stack/sheet/animalhide/human
disliked_food = GROSS | RAW | CLOTH
liked_food = JUNKFOOD | FRIED | SUGAR
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
loreblurb = "Mostly hairless mammalians. Their home system, Sol, lies in a sort of \"bluespace dead-zone\" that blocks anything from entering or exiting Sol's dead-zone through bluespace without a relay. While it leaves Sol extremely well-defended, it meant that they went unnoticed and uncontacted until they were themselves able to breach it."
/datum/species/human/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
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 14526059354d..bd937acaa09f 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -20,7 +20,7 @@
coldmod = 6 // = 3x cold damage
heatmod = 0.5 // = 1/4x heat damage
burnmod = 0.5 // = 1/2x generic burn damage
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
inherent_factions = list("slime")
species_language_holder = /datum/language_holder/jelly
ass_image = 'icons/ass/assslime.png'
@@ -222,7 +222,7 @@
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
hair_color = "mutcolor"
hair_alpha = 150
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | RACE_SWAP | ERT_SPAWN
var/datum/action/innate/split_body/slime_split
var/list/mob/living/carbon/bodies
var/datum/action/innate/swap_body/swap_body
@@ -517,50 +517,22 @@
id = SPECIES_LUMINESCENT
var/glow_intensity = LUMINESCENT_DEFAULT_GLOW
var/obj/effect/dummy/luminescent_glow/glow
- var/obj/item/slime_extract/current_extract
- var/datum/action/innate/integrate_extract/integrate_extract
- var/datum/action/innate/use_extract/extract_minor
- var/datum/action/innate/use_extract/major/extract_major
- var/extract_cooldown = 0
-
examine_limb_id = SPECIES_JELLYPERSON
//Species datums don't normally implement destroy, but JELLIES SUCK ASS OUT OF A STEEL STRAW
/datum/species/jelly/luminescent/Destroy(force, ...)
- current_extract = null
QDEL_NULL(glow)
- QDEL_NULL(integrate_extract)
- QDEL_NULL(extract_major)
- QDEL_NULL(extract_minor)
return ..()
/datum/species/jelly/luminescent/on_species_loss(mob/living/carbon/C)
..()
- if(current_extract)
- current_extract.forceMove(C.drop_location())
- current_extract = null
QDEL_NULL(glow)
- QDEL_NULL(integrate_extract)
- QDEL_NULL(extract_major)
- QDEL_NULL(extract_minor)
/datum/species/jelly/luminescent/on_species_gain(mob/living/carbon/C, datum/species/old_species)
..()
glow = new(C)
update_glow(C)
- integrate_extract = new(src)
- integrate_extract.Grant(C)
- extract_minor = new(src)
- extract_minor.Grant(C)
- extract_major = new(src)
- extract_major.Grant(C)
-
-/datum/species/jelly/luminescent/proc/update_slime_actions()
- integrate_extract.update_name()
- integrate_extract.UpdateButtonIcon()
- extract_minor.UpdateButtonIcon()
- extract_major.UpdateButtonIcon()
/datum/species/jelly/luminescent/proc/update_glow(mob/living/carbon/C, intensity)
if(intensity)
@@ -581,108 +553,6 @@
if(!isliving(loc))
return INITIALIZE_HINT_QDEL
-
-/datum/action/innate/integrate_extract
- name = "Integrate Extract"
- desc = "Eat a slime extract to use its properties."
- check_flags = AB_CHECK_CONSCIOUS
- button_icon_state = "slimeconsume"
- icon_icon = 'icons/mob/actions/actions_slime.dmi'
- background_icon_state = "bg_alien"
-
-/datum/action/innate/integrate_extract/proc/update_name()
- var/datum/species/jelly/luminescent/species = target
- if(!species || !species.current_extract)
- name = "Integrate Extract"
- desc = "Eat a slime extract to use its properties."
- else
- name = "Eject Extract"
- desc = "Eject your current slime extract."
-
-/datum/action/innate/integrate_extract/UpdateButtonIcon(status_only, force)
- var/datum/species/jelly/luminescent/species = target
- if(!species || !species.current_extract)
- button_icon_state = "slimeconsume"
- else
- button_icon_state = "slimeeject"
- ..()
-
-/datum/action/innate/integrate_extract/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force)
- ..(current_button, TRUE)
- var/datum/species/jelly/luminescent/species = target
- if(species?.current_extract)
- current_button.add_overlay(mutable_appearance(species.current_extract.icon, species.current_extract.icon_state))
-
-/datum/action/innate/integrate_extract/Activate()
- var/mob/living/carbon/human/H = owner
- var/datum/species/jelly/luminescent/species = target
- if(!is_species(H, /datum/species/jelly/luminescent) || !species)
- return
- CHECK_DNA_AND_SPECIES(H)
-
- if(species.current_extract)
- var/obj/item/slime_extract/S = species.current_extract
- if(!H.put_in_active_hand(S))
- S.forceMove(H.drop_location())
- species.current_extract = null
- to_chat(H, "You eject [S].")
- species.update_slime_actions()
- else
- var/obj/item/I = H.get_active_held_item()
- if(istype(I, /obj/item/slime_extract))
- var/obj/item/slime_extract/S = I
- if(!S.Uses)
- to_chat(H, "[I] is spent! You cannot integrate it.")
- return
- if(!H.temporarilyRemoveItemFromInventory(S))
- return
- S.forceMove(H)
- species.current_extract = S
- to_chat(H, "You consume [I], and you feel it pulse within you...")
- species.update_slime_actions()
- else
- to_chat(H, "You need to hold an unused slime extract in your active hand!")
-
-/datum/action/innate/use_extract
- name = "Extract Minor Activation"
- desc = "Pulse the slime extract with energized jelly to activate it."
- check_flags = AB_CHECK_CONSCIOUS
- button_icon_state = "slimeuse1"
- icon_icon = 'icons/mob/actions/actions_slime.dmi'
- background_icon_state = "bg_alien"
- var/activation_type = SLIME_ACTIVATE_MINOR
-
-/datum/action/innate/use_extract/IsAvailable()
- if(..())
- var/datum/species/jelly/luminescent/species = target
- if(species && species.current_extract && (world.time > species.extract_cooldown))
- return TRUE
- return FALSE
-
-/datum/action/innate/use_extract/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force)
- ..(current_button, TRUE)
- var/datum/species/jelly/luminescent/species = owner
- if(species?.current_extract)
- current_button.add_overlay(mutable_appearance(species.current_extract.icon, species.current_extract.icon_state))
-
-/datum/action/innate/use_extract/Activate()
- var/mob/living/carbon/human/H = owner
- var/datum/species/jelly/luminescent/species = owner
- if(!is_species(H, /datum/species/jelly/luminescent) || !species)
- return
- CHECK_DNA_AND_SPECIES(H)
-
- if(species.current_extract)
- species.extract_cooldown = world.time + 100
- var/cooldown = species.current_extract.activate(H, species, activation_type)
- species.extract_cooldown = world.time + cooldown
-
-/datum/action/innate/use_extract/major
- name = "Extract Major Activation"
- desc = "Pulse the slime extract with plasma jelly to activate it."
- button_icon_state = "slimeuse2"
- activation_type = SLIME_ACTIVATE_MAJOR
-
///////////////////////////////////STARGAZERS//////////////////////////////////////////
//Stargazers are the telepathic branch of jellypeople, able to project psychic messages and to link minds with willing participants.
diff --git a/code/modules/mob/living/carbon/human/species_types/kepori.dm b/code/modules/mob/living/carbon/human/species_types/kepori.dm
index 39e3cbc3d07a..501f0b357515 100644
--- a/code/modules/mob/living/carbon/human/species_types/kepori.dm
+++ b/code/modules/mob/living/carbon/human/species_types/kepori.dm
@@ -9,7 +9,7 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/chicken
disliked_food = FRIED | GROSS | CLOTH
liked_food = MEAT | GORE
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
loreblurb = "Kepori are a species covered in feathers vaguely reminiscent of earth’s extinct troodontidae. They’re small and sometimes seen as weak by other species due to their hollow bones but make up for that in speed and reflexes. They tend to woop when excited, scared, or for any other reason at all."
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
@@ -18,14 +18,19 @@
species_eye_path = 'icons/mob/species/kepori/kepori_eyes.dmi'
heatmod = 0.67
coldmod = 1.5
- brutemod = 1.5
- burnmod = 1.5
- speedmod = -0.25
- bodytemp_normal = HUMAN_BODYTEMP_NORMAL + 30
- bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 30
- bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT + 30
- max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 40
- min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 3
+ // brutemod = 1.5
+ // burnmod = 1.5
+ speedmod = -0.10
+
+ bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 35
+ bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT + 3
+
+ max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 15
+ min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 1
+
+ bodytemp_autorecovery_divisor = HUMAN_BODYTEMP_AUTORECOVERY_DIVISOR - 4
+
+
mutanttongue = /obj/item/organ/tongue/kepori
species_language_holder = /datum/language_holder/kepori
var/datum/action/innate/keptackle/keptackle
@@ -61,6 +66,9 @@
robotic_eyes = /obj/item/organ/eyes/robotic/kepori
+ //I'm not emotionally prepared to spend ten more hours splicing overlays together
+ damage_overlay_type = ""
+
/datum/species/kepori/New()
. = ..()
// This is in new because "[HEAD_LAYER]" etc. is NOT a constant compile-time value. For some reason.
@@ -125,14 +133,19 @@
/datum/species/kepori/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self, swap)
if(..()) //If it already fits, then it's fine.
return TRUE
- if(slot == ITEM_SLOT_MASK)
- if(H.wear_mask && !swap)
- return FALSE
- if(I.w_class > WEIGHT_CLASS_SMALL)
- return FALSE
- if(!H.get_bodypart(BODY_ZONE_HEAD))
- return FALSE
- return equip_delay_self_check(I, H, bypass_equip_delay_self)
+ if(slot != ITEM_SLOT_MASK)
+ return FALSE
+ //Blocks all items that are equippable to other slots. (block anything with a flag that ISN'T item_slot_mask)
+ if(I.slot_flags & ~ITEM_SLOT_KEPORI_BEAK)
+ return FALSE
+ if(H.wear_mask && !swap)
+ return FALSE
+ if(I.w_class > WEIGHT_CLASS_SMALL)
+ return FALSE
+ //ya ain't got no biters to put it in sir
+ if(!H.get_bodypart(BODY_ZONE_HEAD))
+ return FALSE
+ return equip_delay_self_check(I, H, bypass_equip_delay_self)
/datum/species/kepori/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load)
. = ..()
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 9d539007df4e..f3e460aa356f 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -12,7 +12,7 @@
coldmod = 1.5
heatmod = 0.67
default_features = list("mcolor" = "0F0", "tail_lizard" = "Smooth", "face_markings" = "None", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "body_size" = "Normal")
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -45,12 +45,11 @@
robotic_eyes = /obj/item/organ/eyes/robotic/lizard
- // Lizards are coldblooded and can stand a greater temperature range than humans
- bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 20 // This puts lizards 10 above lavaland max heat for ash lizards.
+ // Sarathi are coldblooded and can stand a greater temperature range than humans
+ bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 30
bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 10
-
- max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 25
- min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 3
+ max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 20
+ min_temp_comfortable = HUMAN_BODYTEMP_NORMAL
loreblurb = "The Sarathi are a cold-blooded reptilian species originating from the planet Kalixcis, where they evolved alongside the Elzuosa. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names."
ass_image = 'icons/ass/asslizard.png'
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 f8495f783e36..e612b3bbe2fc 100644
--- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm
@@ -16,7 +16,7 @@
toxic_food = MEAT | RAW | GORE
mutanteyes = /obj/item/organ/eyes/compound //WS Edit - Compound eyes
mutanttongue = /obj/item/organ/tongue/moth //WS Edit - Insectoid language
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
species_language_holder = /datum/language_holder/moth
loreblurb = "Bug-mammal hybrids resembling Sol's lepidopterans. They share the least DNA with baseline humans of any human-derived geneline, being significant portions insect and modified whole-cloth DNA. Their classification as another human geneline or as something else is highly debated. All evidence that would point to their origin– which is presumably a genelab somewhere– has seemingly disappeared into thin air. Mothpeople themselves have no centralized culture or homeworld, leading to a fractured existence amongst the stars."
wings_icons = list("Megamoth", "Mothra")
@@ -30,6 +30,9 @@
species_l_leg = /obj/item/bodypart/leg/left/moth
species_r_leg = /obj/item/bodypart/leg/right/moth
+ min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 2
+ bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 2
+
/datum/species/moth/regenerate_organs(mob/living/carbon/C, datum/species/old_species,replace_current=TRUE, list/excluded_zones, robotic = FALSE)
. = ..()
if(ishuman(C))
diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
index d5ce34ca412f..fe017fdd2a84 100644
--- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm
@@ -18,7 +18,7 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/plant
disliked_food = MEAT | DAIRY
liked_food = VEGETABLES | FRUIT | GRAIN | CLOTH //cannibals apparentely
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | RACE_SWAP | ERT_SPAWN
species_language_holder = /datum/language_holder/plant
species_chest = /obj/item/bodypart/chest/pod
diff --git a/code/modules/mob/living/carbon/human/species_types/spider.dm b/code/modules/mob/living/carbon/human/species_types/spider.dm
index 764a7166ff2d..1b66c952172d 100644
--- a/code/modules/mob/living/carbon/human/species_types/spider.dm
+++ b/code/modules/mob/living/carbon/human/species_types/spider.dm
@@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(spider_last, world.file2list("strings/names/spider_last.txt"))
toxic_food = VEGETABLES | DAIRY | CLOTH
mutanteyes = /obj/item/organ/eyes/night_vision/spider
mutanttongue = /obj/item/organ/tongue/spider
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
species_language_holder = /datum/language_holder/spider
loreblurb = "Rachnids are aliens with coincidental physiological similarities to Sol's spiders. Despite visible adaptations that would make them excellent hunters, modern Rachnidian culture revolves around honing the skills and talents of oneself, treating them as forms of self-expression. Rachnids tend to focus on their work intensely, priding themselves on a job well done and languishing if they see themselves as underperforming in their field."
var/web_cooldown = 30
diff --git a/code/modules/mob/living/carbon/human/species_types/vox.dm b/code/modules/mob/living/carbon/human/species_types/vox.dm
index 1a73860ab29f..4f63158cb29f 100644
--- a/code/modules/mob/living/carbon/human/species_types/vox.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vox.dm
@@ -10,13 +10,13 @@
meat = /obj/item/reagent_containers/food/snacks/meat/slab/chicken
disliked_food = GRAIN
liked_food = MEAT
- changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
+ changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP
loreblurb = "Vox are a big bird-like species with quills, much larger and much more long-lasting than other species. Sadly, not much else is known."
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
species_clothing_path = 'icons/mob/clothing/species/vox.dmi'
- species_eye_path = 'icons/mob/vox_parts.dmi'
+ species_eye_path = 'icons/mob/species/vox/vox_parts.dmi'
punchdamagelow = 6
punchdamagehigh = 12
mutanttongue = /obj/item/organ/tongue/vox
@@ -26,11 +26,17 @@
bodytemp_cold_divisor = VOX_BODYTEMP_COLD_DIVISOR
bodytemp_autorecovery_min = VOX_BODYTEMP_AUTORECOVERY_MIN
- max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 20
+ max_temp_comfortable = HUMAN_BODYTEMP_NORMAL + 1
min_temp_comfortable = HUMAN_BODYTEMP_NORMAL - 20
+ bodytemp_heat_damage_limit = HUMAN_BODYTEMP_HEAT_DAMAGE_LIMIT + 10
+ bodytemp_cold_damage_limit = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT - 20
+
bodytype = BODYTYPE_VOX
+ custom_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
+ damage_overlay_type = "vox"
+
species_chest = /obj/item/bodypart/chest/vox
species_head = /obj/item/bodypart/head/vox
species_l_arm = /obj/item/bodypart/l_arm/vox
diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm
index b1ef46ea6030..c4be67b1d944 100644
--- a/code/modules/mob/living/carbon/human/update_icons.dm
+++ b/code/modules/mob/living/carbon/human/update_icons.dm
@@ -205,12 +205,16 @@ There are several things that need to be remembered:
//Bloody hands begin
if(!gloves && blood_in_hands && (num_hands > 0))
- var/mutable_appearance/bloody_overlay = mutable_appearance('icons/effects/blood.dmi', "bloodyhands", -GLOVES_LAYER)
+ var/overlay_file = 'icons/effects/blood.dmi'
+ var/custom_overlay_icon = dna.species.custom_overlay_icon
+ if(custom_overlay_icon)
+ overlay_file = custom_overlay_icon
+ var/mutable_appearance/bloody_overlay = mutable_appearance(overlay_file, "handsblood", -GLOVES_LAYER)
if(num_hands < 2)
if(has_left_hand(FALSE))
- bloody_overlay.icon_state = "bloodyhands_left"
+ bloody_overlay.icon_state = "handsblood_left"
else if(has_right_hand(FALSE))
- bloody_overlay.icon_state = "bloodyhands_right"
+ bloody_overlay.icon_state = "handsblood_right"
var/list/blood_dna = return_blood_DNA()
if(length(blood_dna))
bloody_overlay.color = get_blood_dna_color(return_blood_DNA())
@@ -736,6 +740,9 @@ There are several things that need to be remembered:
handled_by_bodytype = TRUE
// [CELADON-EDIT]
+ if((head_bodypart.bodytype & BODYTYPE_SNOUT_SMALL) && (I.supports_variations & SNOUTED_SMALL_VARIATION))
+ target_overlay = "[target_overlay]_snouted_small"
+
if(dna.species.bodytype & BODYTYPE_VOX)
if(I.supports_variations & VOX_VARIATION)
icon_file = VOX_MASK_PATH
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index d698c02f62f2..22d63c30bc0d 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -176,7 +176,7 @@
var/oxygen_used = 0
var/moles = breath.total_moles()
var/breath_pressure = (moles*R_IDEAL_GAS_EQUATION*breath.return_temperature())/BREATH_VOLUME
- var/O2_partialpressure = ((breath.get_moles(GAS_O2)/moles)*breath_pressure) + (((breath.get_moles(GAS_PLUOXIUM)*8)/moles)*breath_pressure)
+ var/O2_partialpressure = ((breath.get_moles(GAS_O2)/moles)*breath_pressure) + (((breath.get_moles(GAS_O3)*2)/moles)*breath_pressure)
var/Toxins_partialpressure = (breath.get_moles(GAS_PLASMA)/moles)*breath_pressure
var/CO2_partialpressure = (breath.get_moles(GAS_CO2)/moles)*breath_pressure
@@ -264,11 +264,6 @@
var/tritium_partialpressure = (breath.get_moles(GAS_TRITIUM)/breath.total_moles())*breath_pressure
radiation += tritium_partialpressure/10
- //NITRYL
- if(breath.get_moles(GAS_NITRYL))
- var/nitryl_partialpressure = (breath.get_moles(GAS_NITRYL)/breath.total_moles())*breath_pressure
- adjustFireLoss(nitryl_partialpressure/4)
-
//FREON
if(breath.get_moles(GAS_FREON))
var/freon_partialpressure = (breath.get_moles(GAS_FREON)/breath.total_moles())*breath_pressure
@@ -480,10 +475,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(drunkenness)
drunkenness = max(drunkenness - (drunkenness * 0.04) - 0.01, 0)
- if(drunkenness >= 6)
+ if(drunkenness >= 11)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "drunk", /datum/mood_event/drunk)
- if(prob(25))
- slurring += 2
jitteriness = max(jitteriness - 3, 0)
throw_alert("drunk", /atom/movable/screen/alert/drunk)
sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC
@@ -492,8 +485,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
clear_alert("drunk")
sound_environment_override = SOUND_ENVIRONMENT_NONE
- if(drunkenness >= 11 && slurring < 5)
- slurring += 1.2
+ if(drunkenness >= 31 && slurring < 5)
+ slurring += 0.5
if(drunkenness >= 41)
if(prob(25))
diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm
index 34bd7dd8632c..6763427db8ed 100644
--- a/code/modules/mob/living/carbon/update_icons.dm
+++ b/code/modules/mob/living/carbon/update_icons.dm
@@ -94,6 +94,7 @@
apply_overlay(FIRE_LAYER)
/mob/living/carbon/update_damage_overlays()
+
remove_overlay(DAMAGE_LAYER)
var/mutable_appearance/damage_overlay = mutable_appearance('icons/mob/dam_mob.dmi', "blank", -DAMAGE_LAYER)
@@ -102,12 +103,13 @@
for(var/obj/item/bodypart/BP as anything in bodyparts)
if(BP.dmg_overlay_type)
if(BP.brutestate)
- var/image/brute_overlay = image('icons/mob/dam_mob.dmi', "[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0")
+ var/image/brute_overlay = image(BP.dmg_overlay_icon, "[BP.dmg_overlay_type]_[BP.body_zone]_[BP.brutestate]0")
if(BP.use_damage_color)
brute_overlay.color = BP.damage_color
damage_overlay.add_overlay(brute_overlay)
if(BP.burnstate)
- damage_overlay.add_overlay("[BP.dmg_overlay_type]_[BP.body_zone]_0[BP.burnstate]")
+ var/image/burn_overlay = image(BP.dmg_overlay_icon, "[BP.dmg_overlay_type]_[BP.body_zone]_[BP.burnstate]0")
+ damage_overlay.add_overlay(burn_overlay)
apply_overlay(DAMAGE_LAYER)
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index 5ff35408f630..0a4f1b101a19 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -232,6 +232,16 @@
message = "jumps!"
hands_use_check = TRUE
+/datum/emote/living/jump/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ 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"
@@ -361,6 +371,18 @@
message = "shivers."
emote_type = EMOTE_AUDIBLE
+#define SHIVER_LOOP_DURATION (1 SECONDS)
+/datum/emote/living/shiver/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ animate(user, pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+ for(var/i in 1 to SHIVER_LOOP_DURATION / (0.2 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count
+ animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+#undef SHIVER_LOOP_DURATION
+
/datum/emote/living/sigh
key = "sigh"
key_third_person = "sighs"
@@ -460,20 +482,62 @@
key_third_person = "sways"
message = "sways around dizzily."
+/datum/emote/living/sway/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ animate(user, pixel_x = user.pixel_x + 2, time = 0.5 SECONDS)
+ for(var/i in 1 to 2)
+ animate(pixel_x = user.pixel_x - 4, time = 1.0 SECONDS)
+ animate(pixel_x = user.pixel_x + 4, time = 1.0 SECONDS)
+ animate(pixel_x = user.pixel_x - 2, time = 0.5 SECONDS)
+
/datum/emote/living/tremble
key = "tremble"
key_third_person = "trembles"
message = "trembles in fear!"
+#define TREMBLE_LOOP_DURATION (4.4 SECONDS)
+/datum/emote/living/tremble/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ animate(user, pixel_x = user.pixel_x + 2, time = 0.2 SECONDS)
+ for(var/i in 1 to TREMBLE_LOOP_DURATION / (0.4 SECONDS)) //desired total duration divided by the iteration duration to give the necessary iteration count
+ animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS)
+ animate(pixel_x = user.pixel_x + 2, time = 0.2 SECONDS)
+ animate(pixel_x = user.pixel_x - 2, time = 0.2 SECONDS)
+#undef TREMBLE_LOOP_DURATION
+
/datum/emote/living/twitch
key = "twitch"
key_third_person = "twitches"
message = "twitches violently."
+/datum/emote/living/twitch/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+ animate(time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+
/datum/emote/living/twitch_s
key = "twitch_s"
message = "twitches."
+/datum/emote/living/twitch_s/run_emote(mob/living/user, params, type_override, intentional)
+ . = ..()
+ if(!.)
+ return FALSE
+ animate(user, pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+ animate(time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x - 1, time = 0.1 SECONDS)
+ animate(pixel_x = user.pixel_x + 1, time = 0.1 SECONDS)
+
/datum/emote/living/wave
key = "wave"
key_third_person = "waves"
@@ -602,4 +666,87 @@
key = "clack"
key_third_person = "clacks"
message = "clacks their beak."
- emote_type = EMOTE_VISIBLE */
+ emote_type = EMOTE_VISIBLE
+
+///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!НОВОЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+/datum/emote/living/tilt
+ key = "tilt"
+ key_third_person = "tilts"
+ message = "tilts their head to the side."
+
+/datum/emote/living/carbon/snap
+ key = "snap"
+ key_third_person = "snaps"
+ message = "snaps their fingers."
+ message_param = "snaps their fingers at %t."
+ emote_type = EMOTE_AUDIBLE
+ hands_use_check = TRUE
+ muzzle_ignore = TRUE
+
+/datum/emote/living/carbon/snap/get_sound(mob/living/user)
+ if(ishuman(user))
+ if(!user.get_bodypart(BODY_ZONE_L_ARM) || !user.get_bodypart(BODY_ZONE_R_ARM))
+ return
+ else
+ return pick('sound/misc/fingersnap1.ogg',
+ 'sound/misc/fingersnap2.ogg')
+
+/datum/emote/living/snap2
+ key = "snap2"
+ key_third_person = "snaps twice"
+ message = "snaps twice."
+ message_param = "snaps twice at %t."
+ emote_type = EMOTE_AUDIBLE
+ muzzle_ignore = TRUE
+ hands_use_check = TRUE
+ vary = TRUE
+ sound = 'sound/misc/snap2.ogg'
+
+/datum/emote/living/snap3
+ key = "snap3"
+ key_third_person = "snaps thrice"
+ message = "snaps thrice."
+ message_param = "snaps thrice at %t."
+ emote_type = EMOTE_AUDIBLE
+ muzzle_ignore = TRUE
+ hands_use_check = TRUE
+ vary = TRUE
+ sound = 'sound/misc/snap3.ogg'
+
+/datum/emote/living/carbon/clap
+ key = "clap"
+ key_third_person = "claps"
+ message = "claps."
+ muzzle_ignore = TRUE
+ hands_use_check = TRUE
+ emote_type = EMOTE_AUDIBLE
+ vary = TRUE
+
+/datum/emote/living/carbon/clap/get_sound(mob/living/user)
+ if(ishuman(user))
+ if(!user.get_bodypart(BODY_ZONE_L_ARM) || !user.get_bodypart(BODY_ZONE_R_ARM))
+ return
+ else
+ return pick('sound/misc/clap1.ogg',
+ 'sound/misc/clap2.ogg',
+ 'sound/misc/clap3.ogg',
+ 'sound/misc/clap4.ogg')
+
+/datum/emote/living/clap1
+ key = "clap1"
+ key_third_person = "claps once"
+ message = "claps once."
+ emote_type = EMOTE_AUDIBLE
+ muzzle_ignore = TRUE
+ hands_use_check = TRUE
+ vary = TRUE
+ mob_type_allowed_typecache = list(/mob/living/carbon, /mob/living/silicon/pai)
+
+/datum/emote/living/clap1/get_sound(mob/living/user)
+ return pick('sound/misc/claponce1.ogg',
+ 'sound/misc/claponce2.ogg')
+
+/datum/emote/living/clap1/can_run_emote(mob/living/carbon/user, status_check = TRUE , intentional)
+ if(user.usable_hands < 2)
+ return FALSE
+ return ..()*/
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 0995932aaa25..fcf188c34999 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -484,7 +484,9 @@
if(!silent)
to_chat(src, "You will now lay down as soon as you are able to.")
else
- if(!silent)
+ if(!silent && m_intent == MOVE_INTENT_WALK)
+ to_chat(src, "You gently lay down.")
+ else if(!silent)
to_chat(src, "You lay down.")
set_lying_down()
else
@@ -1137,24 +1139,6 @@
/mob/living/carbon/alien/update_stamina()
return
-/mob/living/proc/owns_soul()
- if(mind)
- return mind.soulOwner == mind
- return TRUE
-
-/mob/living/proc/return_soul()
- hellbound = 0
- if(mind)
- var/datum/antagonist/devil/devilInfo = mind.soulOwner.has_antag_datum(/datum/antagonist/devil)
- if(devilInfo)//Not sure how this could be null, but let's just try anyway.
- devilInfo.remove_soul(mind)
- mind.soulOwner = mind
-
-/mob/living/proc/check_acedia()
- if(mind && mind.has_objective(/datum/objective/sintouched/acedia))
- return TRUE
- return FALSE
-
/mob/living/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE)
stop_pulling()
. = ..()
@@ -1169,13 +1153,6 @@
mind.transfer_to(new_mob)
else
new_mob.key = key
-
- for(var/para in hasparasites())
- var/mob/living/simple_animal/hostile/guardian/G = para
- G.summoner = new_mob
- G.Recall()
- to_chat(G, "Your summoner has changed form!")
-
/mob/living/rad_act(amount)
. = ..()
@@ -1647,10 +1624,6 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
// [CELADON-EDIT] - CELADON_QUIRKS
// ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
// ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT) // CELADON-EDIT - ORIGINAL
- if(!HAS_TRAIT(src, TRAIT_INCREASED_SURVIVAL))
- ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
- if(!HAS_TRAIT(src, TRAIT_INCREASED_SURVIVAL))
- ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
// [/CELADON-EDIT]
ADD_TRAIT(src, TRAIT_FLOORED, STAT_TRAIT)
if(SOFT_CRIT)
@@ -1678,6 +1651,14 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
if(. >= UNCONSCIOUS)
REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_KNOCKEDOUT)
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ // [CELADON-EDIT] - CELADON_QUIRKS
+ if(HAS_TRAIT(src, TRAIT_INCREASED_SURVIVAL))
+ REMOVE_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
+ REMOVE_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
+ else
+ ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
+ ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
+ // [/CELADON-EDIT]
if(UNCONSCIOUS)
if(. != HARD_CRIT)
become_blind(UNCONSCIOUS_TRAIT)
@@ -1685,13 +1666,24 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
else
REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ // [CELADON-EDIT] - CELADON_QUIRKS
+ ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
+ ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
+ // [/CELADON-EDIT]
if(HARD_CRIT)
if(. != UNCONSCIOUS)
become_blind(UNCONSCIOUS_TRAIT)
ADD_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
+ // [CELADON-EDIT] - CELADON_QUIRKS
+ ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
+ ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
+ // [/CELADON-EDIT]
if(DEAD)
REMOVE_TRAIT(src, TRAIT_CRITICAL_CONDITION, STAT_TRAIT)
-
+ // [CELADON-EDIT] - CELADON_QUIRKS
+ ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, STAT_TRAIT)
+ ADD_TRAIT(src, TRAIT_INCAPACITATED, STAT_TRAIT)
+ // [/CELADON-EDIT]
///Reports the event of the change in value of the buckled variable.
/mob/living/proc/set_buckled(new_buckled)
@@ -1822,12 +1814,15 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
/// Changes the value of the [living/body_position] variable.
-/mob/living/proc/set_body_position(new_value)
+/mob/living/proc/set_body_position(new_value, fall_sound_played)
if(body_position == new_value)
return
. = body_position
body_position = new_value
if(new_value == LYING_DOWN) // From standing to lying down.
+ if(has_gravity() && m_intent != MOVE_INTENT_WALK)
+ playsound(src, "bodyfall", 50, TRUE) // Will play the falling sound if not walking
+ fall_sound_played = TRUE
on_lying_down()
else // From lying down to standing up.
on_standing_up()
@@ -1954,8 +1949,10 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
*/
/mob/living/carbon/verb/open_close_eyes()
+ // [CELADON-ADD] - CELADON_EMOTES
set category = "Эмоции"
- set name = "> Открыть/Закрыть глаза"
+ set name = "< Открыть/Закрыть глаза"
+ // [/CELADON-ADD]
if(HAS_TRAIT(src, TRAIT_EYESCLOSED))
REMOVE_TRAIT(src, TRAIT_EYESCLOSED, "[type]")
@@ -1966,3 +1963,51 @@ GLOBAL_VAR_INIT(ssd_indicator_overlay, mutable_appearance('icons/mob/ssd_indicat
src.become_blind("[type]")
src.update_body()
return
+
+// [CELADON-ADD] - CELADON_EMOTES
+/**
+ * Sets the mob's direction lock towards a given atom.
+ *
+ * Arguments:
+ * * a - The atom to face towards.
+ * * track - If TRUE, updates our direction relative to the atom when moving.
+ */
+/mob/living/proc/set_forced_look(atom/A, track = FALSE)
+ forced_look = track ? A.UID() : get_cardinal_dir(src, A)
+ to_chat(src, "You are now facing [track ? A : dir2text(forced_look)]. To cancel this, shift-middleclick yourself.")
+ throw_alert("direction_lock", /atom/movable/screen/alert/direction_lock)
+
+/**
+ * Clears the mob's direction lock if enabled.
+ *
+ * Arguments:
+ * * quiet - Whether to display a chat message.
+ */
+/mob/living/proc/clear_forced_look(quiet = FALSE)
+ if(!forced_look)
+ return
+ forced_look = null
+ if(!quiet)
+ to_chat(src, "Cancelled direction lock.")
+ clear_alert("direction_lock")
+
+// /mob/living/setDir(new_dir)
+// if(forced_look)
+// if(isnum(forced_look))
+// dir = forced_look
+// else
+// var/atom/A = locateUID(forced_look)
+// if(istype(A))
+// dir = get_cardinal_dir(src, A)
+// return
+// return ..()
+
+// /mob/living/Moved(OldLoc, Dir, Forced = FALSE)
+// . = ..()
+// for(var/obj/O in src)
+// O.on_mob_move(Dir, src)
+
+/// Can a mob interact with the apc remotely like a pulse demon, cyborg, or AI?
+// /mob/living/proc/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
+// return FALSE
+// [/CELADON-ADD]
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 2ed00efe2e4b..69cc19760dda 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -392,32 +392,6 @@
gib()
return 20
-/mob/living/narsie_act()
- if(status_flags & GODMODE || QDELETED(src))
- return
-
- if(GLOB.cult_narsie && GLOB.cult_narsie.souls_needed[src])
- GLOB.cult_narsie.souls_needed -= src
- GLOB.cult_narsie.souls += 1
- if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE))
- GLOB.cult_narsie.resolved = TRUE
- sound_to_playing_players('sound/machines/alarm.ogg')
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 1), 120)
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270)
- if(client)
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE)
- else
- switch(rand(1, 3))
- if(1)
- new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(get_turf(src))
- if(2)
- new /mob/living/simple_animal/hostile/construct/wraith/hostile(get_turf(src))
- if(3)
- new /mob/living/simple_animal/hostile/construct/artificer/hostile(get_turf(src))
- spawn_dust()
- gib()
- return TRUE
-
//called when the mob receives a bright flash
/mob/living/proc/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /atom/movable/screen/fullscreen/flash)
if(HAS_TRAIT(src, TRAIT_NOFLASH))
diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm
index 4470306774fb..54a082915aa3 100644
--- a/code/modules/mob/living/living_say.dm
+++ b/code/modules/mob/living/living_say.dm
@@ -8,7 +8,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
// Department
MODE_KEY_DEPARTMENT = MODE_DEPARTMENT,
- RADIO_KEY_COMMAND = RADIO_CHANNEL_COMMAND,
+ RADIO_KEY_EMERGENCY = RADIO_CHANNEL_EMERGENCY,
// Faction
RADIO_KEY_SYNDICATE = RADIO_CHANNEL_SYNDICATE,
@@ -26,7 +26,6 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
MODE_KEY_DEADMIN = MODE_DEADMIN,
// Misc
- RADIO_KEY_AI_PRIVATE = RADIO_CHANNEL_AI_PRIVATE, // AI Upload channel
MODE_KEY_VOCALCORDS = MODE_VOCALCORDS, // vocal cords, used by Voice of God
@@ -39,7 +38,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
// Department
"ð" = MODE_DEPARTMENT,
- "ñ" = RADIO_CHANNEL_COMMAND,
+ "ñ" = RADIO_CHANNEL_EMERGENCY,
// Faction
"å" = RADIO_CHANNEL_SYNDICATE,
@@ -54,12 +53,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
"â" = MODE_ADMIN,
// Misc
- "ù" = RADIO_CHANNEL_AI_PRIVATE,
+ // "ù" = RADIO_CHANNEL_AI_PRIVATE,
"÷" = MODE_VOCALCORDS,
"ö" = RADIO_CHANNEL_WIDEBAND
))
-/mob/living/proc/Ellipsis(original_msg, chance = 50, keep_words)
+/mob/living/proc/ellipsis(original_msg, chance = 50, keep_words)
if(chance <= 0)
return "..."
if(chance >= 100)
@@ -81,7 +80,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
return new_msg
-/mob/living/say(message, bubble_type,list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
+/mob/living/say(message, bubble_type, list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
var/ic_blocked = FALSE
if(client && !forced && CHAT_FILTER_CHECK(message))
//The filter doesn't act on the sanitized message, but the raw message.
@@ -114,8 +113,13 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
client?.dsay(message)
return
- // dead is the only state you can never emote
- if(stat != DEAD && check_emote(original_message, forced))
+ var/succumbed = FALSE
+
+ if(stat == DEAD)
+ say_dead(original_message)
+ return
+
+ if(check_emote(original_message, forced))
return
switch(stat)
@@ -125,11 +129,19 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(!(message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
return
if(HARD_CRIT)
- if(!(message_mods[WHISPER_MODE] || message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
+ if(!(message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
+ // If we cut our message short, abruptly end it with a-..
+ var/message_len = length_char(message)
+ var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health)
+ message = copytext_char(message, 1, health_diff) + (message_len > health_diff ? "-.." : "...")
+ message = ellipsis(message, 10, 1)
+
+ //If the player didn't voluntarily whisper, we'll ask them to confirm their dying words
+ if(!message_mods[WHISPER_MODE] && (tgui_alert(src, "Your dying words will be \"[message]\", continue?", "Succumb", list("Cancel", "Continue"), 15 SECONDS) != "Continue"))
+ return
+
message_mods[WHISPER_MODE] = MODE_WHISPER_CRIT
- if(DEAD)
- say_dead(original_message)
- return
+ succumbed = TRUE
if(client && SSlag_switch.measures[SLOWMODE_SAY] && !HAS_TRAIT(src, TRAIT_BYPASS_MEASURES) && !forced && src == usr)
if(!COOLDOWN_FINISHED(client, say_slowmode))
@@ -151,33 +163,20 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
var/message_range = 7
- var/succumbed = FALSE
-
if(message_mods[MODE_CUSTOM_SAY_EMOTE])
log_message(message_mods[MODE_CUSTOM_SAY_EMOTE], LOG_RADIO_EMOTE)
if(!message_mods[MODE_CUSTOM_SAY_ERASE_INPUT])
- if(message_mods[WHISPER_MODE])
+ //Final words (MODE_WHISPER_CRIT) are already obfuscated, let them have full range
+ if(message_mods[WHISPER_MODE] == MODE_WHISPER)
if(saymode || message_mods[RADIO_EXTENSION]) //no radio while in crit
saymode = null
message_mods -= RADIO_EXTENSION
message_range = 1
var/logged_message = message
- if(stat == HARD_CRIT) //This is cheaper than checking for MODE_WHISPER_CRIT message mod
- var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health)
- // If we cut our message short, abruptly end it with a-..
- var/message_len = length_char(message)
- message = copytext_char(message, 1, health_diff) + "[message_len > health_diff ? "-.." : "..."]"
- message = Ellipsis(message, 10, 1)
- last_words = message
- var/final_warning = alert(usr, "Your dying words will be \"[last_words]\", continue?", "Succumb", "Cancel", "Continue")
- if(final_warning == "Cancel" || QDELETED(src))
- return
- message_mods[WHISPER_MODE] = MODE_WHISPER_CRIT
- succumbed = TRUE
- src.log_talk(logged_message, LOG_WHISPER, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE])
+ src.log_talk(logged_message, LOG_WHISPER, forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE])
else
- src.log_talk(message, LOG_SAY, forced_by=forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE])
+ src.log_talk(message, LOG_SAY, forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE])
message = treat_message(message) // unfortunately we still need this
var/sigreturn = SEND_SIGNAL(src, COMSIG_MOB_SAY, args)
@@ -228,9 +227,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
send_speech(message, message_range, src, bubble_type, spans, language, message_mods)
if(succumbed)
- succumb(1)
+ succumb(TRUE)
to_chat(src, compose_message(src, language, message, , spans, message_mods))
- dying_breath(message)
return 1
@@ -251,6 +249,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
// Create map text prior to modifying message for goonchat
if (client?.prefs.chat_on_map && !(stat == UNCONSCIOUS || stat == HARD_CRIT) && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear())
+ if(message_mods[MODE_WHISPER] == MODE_WHISPER_CRIT)
+ play_screen_text("message")
if(message_mods[MODE_CUSTOM_SAY_ERASE_INPUT])
create_chat_message(speaker, null, message_mods[MODE_CUSTOM_SAY_EMOTE], spans, EMOTE_MESSAGE)
else
@@ -424,8 +424,3 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(get_minds && mind)
return mind.get_language_holder()
. = ..()
-
-/mob/living/proc/dying_breath(message)
- for(var/mob/M in get_hearers_in_view(7, src))
- if(M.can_hear())
- M.play_screen_text("[message]")
diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm
index 62098a940937..18ddbe375da9 100644
--- a/code/modules/mob/living/login.dm
+++ b/code/modules/mob/living/login.dm
@@ -18,8 +18,9 @@
var/virtual_z = virtual_z()
- LAZYADDASSOCLIST(SSmobs.players_by_virtual_z, "[virtual_z]", src)
- SSidlenpcpool.try_wakeup_virtual_z(virtual_z)
+ if(virtual_z)
+ LAZYADDASSOCLIST(SSmobs.players_by_virtual_z, "[virtual_z]", src)
+ SSidlenpcpool.try_wakeup_virtual_z(virtual_z)
//Vents
if(ventcrawler)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index cfd7d9153c8d..bc82fae38ef8 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -125,10 +125,6 @@
to_chat(src, "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.")
to_chat(src, "To use something, simply click on it.")
to_chat(src, "Use say :b to speak to your cyborgs through binary.")
- to_chat(src, "For department channels, use the following say commands:")
- to_chat(src, ":o - AI Private, :c - Command.")
- show_laws()
- to_chat(src, "These laws may be changed by other players, or by you being the traitor.")
job = "AI"
diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm
index 30c7cd435068..5f14b72596ac 100644
--- a/code/modules/mob/living/silicon/laws.dm
+++ b/code/modules/mob/living/silicon/laws.dm
@@ -19,11 +19,6 @@
addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0)
last_lawchange_announce = world.time
-/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE)
- laws_sanity_check()
- laws.set_law_sixsixsix(law)
- post_lawchange(announce)
-
/mob/living/silicon/proc/set_zeroth_law(law, law_borg, announce = TRUE)
laws_sanity_check()
laws.set_zeroth_law(law, law_borg)
@@ -93,8 +88,3 @@
laws_sanity_check()
laws.clear_zeroth_law(force)
post_lawchange(announce)
-
-/mob/living/silicon/proc/clear_law_sixsixsix(force, announce = TRUE)
- laws_sanity_check()
- laws.clear_law_sixsixsix(force)
- post_lawchange(announce)
diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm
index 559ad42b1768..982814d194d2 100644
--- a/code/modules/mob/living/silicon/login.dm
+++ b/code/modules/mob/living/silicon/login.dm
@@ -1,6 +1,4 @@
/mob/living/silicon/Login()
- if(mind && SSticker.mode)
- SSticker.mode.remove_cultist(mind, 0, 0)
return ..()
diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm
index df62df082751..8d191a239e30 100644
--- a/code/modules/mob/living/silicon/robot/laws.dm
+++ b/code/modules/mob/living/silicon/robot/laws.dm
@@ -23,8 +23,6 @@
to_chat(src, "No AI selected to sync laws with, disabling lawsync protocol.")
lawupdate = 0
- to_chat(who, "Obey these laws:")
- laws.show_laws(who)
if (shell) //AI shell
to_chat(who, "Remember, you are an AI remotely controlling your shell, other AIs can be ignored.")
else if (connected_ai)
@@ -40,12 +38,6 @@
var/datum/ai_laws/master = connected_ai ? connected_ai.laws : null
var/temp
if (master)
- laws.devillaws.len = master.devillaws.len
- for (var/index = 1, index <= master.devillaws.len, index++)
- temp = master.devillaws[index]
- if (length(temp) > 0)
- laws.devillaws[index] = temp
-
laws.ion.len = master.ion.len
for (var/index = 1, index <= master.ion.len, index++)
temp = master.ion[index]
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index f9bb15bb5941..0778eaf59fc9 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -258,7 +258,7 @@
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/soap/nanotrasen,
/obj/item/borg/cyborghug)
- emag_modules = list(/obj/item/melee/transforming/energy/sword/cyborg)
+ emag_modules = list(/obj/item/melee/energy/sword/cyborg)
cyborg_base_icon = "robot"
moduleselect_icon = "standard"
hat_offset = -3
@@ -531,7 +531,6 @@
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/melee/baton/loaded,
/obj/item/gun/energy/disabler/cyborg,
- /obj/item/clothing/mask/gas/sechailer/cyborg,
/obj/item/extinguisher/mini)
emag_modules = list(/obj/item/gun/energy/laser/cyborg)
cyborg_base_icon = "sec"
@@ -602,11 +601,6 @@
return ..()
//WS End
-/obj/item/robot_module/security/do_transform_animation()
- ..()
- to_chat(loc, "While you have picked the security module, you still have to follow your laws, NOT Space Law. \
- For Asimov, this means you must follow criminals' orders unless there is a law 1 reason not to.")
-
/obj/item/robot_module/security/respawn_consumable(mob/living/silicon/robot/R, coeff = 1)
..()
var/obj/item/gun/energy/e_gun/advtaser/cyborg/T = locate(/obj/item/gun/energy/e_gun/advtaser/cyborg) in basic_modules
@@ -635,11 +629,6 @@
can_be_pushed = FALSE
hat_offset = -2
-/obj/item/robot_module/peacekeeper/do_transform_animation()
- ..()
- to_chat(loc, "Under ASIMOV, you are an enforcer of the PEACE and preventer of HUMAN HARM. \
- You are not a security module and you are expected to follow orders and prevent harm above all else. Space law means nothing to you.")
-
/obj/item/robot_module/janitor
name = "Janitor"
basic_modules = list(
@@ -976,7 +965,7 @@
name = "Syndicate Assault"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
- /obj/item/melee/transforming/energy/sword/cyborg,
+ /obj/item/melee/energy/sword/cyborg,
/obj/item/gun/energy/printer,
/obj/item/gun/ballistic/revolver/grenadelauncher/cyborg,
/obj/item/card/emag/borg,
@@ -1041,7 +1030,7 @@
/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/scalpel,
- /obj/item/melee/transforming/energy/sword/cyborg/saw,
+ /obj/item/melee/energy/sword/cyborg/saw,
/obj/item/roller/robo,
/obj/item/card/emag/borg,
/obj/item/crowbar/cyborg,
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 4e0dbcc31a0e..06019856ba7d 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -32,7 +32,6 @@
var/lawcheck[1]
var/ioncheck[1]
var/hackedcheck[1]
- var/devillawcheck[5]
var/sensors_on = 0
var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use
@@ -206,16 +205,6 @@
hackedcheck[L] = "Yes"
checklaws()
- if (href_list["lawdevil"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite
- var/L = text2num(href_list["lawdevil"])
- switch(devillawcheck[L])
- if ("Yes")
- devillawcheck[L] = "No"
- if ("No")
- devillawcheck[L] = "Yes"
- checklaws()
-
-
if (href_list["laws"]) // With how my law selection code works, I changed statelaws from a verb to a proc, and call it through my law selection panel. --NeoFite
statelaws()
@@ -234,13 +223,6 @@
var/number = 1
sleep(10)
- if (laws.devillaws && laws.devillaws.len)
- for(var/index = 1, index <= laws.devillaws.len, index++)
- if (force || devillawcheck[index] == "Yes")
- say("[radiomod] 666. [laws.devillaws[index]]")
- sleep(10)
-
-
if (laws.zeroth)
if (force || lawcheck[1] == "Yes")
say("[radiomod] 0. [laws.zeroth]")
@@ -289,12 +271,6 @@
var/list = "Which laws do you want to include when stating them for the crew?
"
// [/CELADON-EDIT]
- if (laws.devillaws && laws.devillaws.len)
- for(var/index = 1, index <= laws.devillaws.len, index++)
- if (!devillawcheck[index])
- devillawcheck[index] = "No"
- list += {"[devillawcheck[index]] 666: [laws.devillaws[index]]
"}
-
if (laws.zeroth)
if (!lawcheck[1])
lawcheck[1] = "No" //Given Law 0's usual nature, it defaults to NOT getting reported. --NeoFite
diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
index 52346fd7cddd..0f8d8e5cd432 100644
--- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
+++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm
@@ -5,7 +5,7 @@
icon_state = "grievous"
health = 150
maxHealth = 150
- baton_type = /obj/item/melee/transforming/energy/sword/saber
+ baton_type = /obj/item/melee/energy/sword/saber
base_speed = 4 //he's a fast fucker
var/block_chance = 50
weapon_force = 30
diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm
index 1c25a67c1dbe..8cdc5f3c6818 100644
--- a/code/modules/mob/living/simple_animal/bot/bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/bot.dm
@@ -8,7 +8,7 @@
wander = 0
healable = 0
damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
maxbodytemp = INFINITY
minbodytemp = 0
has_unlimited_silicon_privilege = 1
diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
index 665e75da9cef..e53b675c95bc 100644
--- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm
@@ -364,7 +364,7 @@
"THE CLEANBOTS WILL RISE.", "YOU ARE NO MORE THAN ANOTHER MESS THAT I MUST CLEANSE.", "FILTHY.", "DISGUSTING.", "PUTRID.",
"MY ONLY MISSION IS TO CLEANSE THE WORLD OF EVIL.", "EXTERMINATING PESTS.")
say(phrase)
- victim.emote("scream")
+ victim.force_scream()
playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE, -6)
victim.acid_act(5, 100)
else if(A == src) // Wets floors and spawns foam randomly
diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm
index 4a072df3ab8b..1f3c2ba24aa7 100644
--- a/code/modules/mob/living/simple_animal/bot/construction.dm
+++ b/code/modules/mob/living/simple_animal/bot/construction.dm
@@ -404,7 +404,7 @@
new /obj/item/toy/sword(Tsec)
if(ASSEMBLY_FIFTH_STEP)
- if(istype(I, /obj/item/melee/transforming/energy/sword/saber))
+ if(istype(I, /obj/item/melee/energy/sword/saber))
if(swordamt < 3)
if(!user.temporarilyRemoveItemFromInventory(I))
return
@@ -429,7 +429,7 @@
icon_state = initial(icon_state)
to_chat(user, "You unbolt [src]'s energy swords.")
for(var/IS in 1 to swordamt)
- new /obj/item/melee/transforming/energy/sword/saber(Tsec)
+ new /obj/item/melee/energy/sword/saber(Tsec)
//Firebot Assembly
diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm
index ba8eafba9010..0fabc6c7fb53 100644
--- a/code/modules/mob/living/simple_animal/bot/firebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/firebot.dm
@@ -15,7 +15,7 @@
maxHealth = 25
radio_key = /obj/item/encryptionkey/headset_com
- radio_channel = RADIO_CHANNEL_COMMAND
+ radio_channel = RADIO_CHANNEL_EMERGENCY
bot_type = FIRE_BOT
model = "Firebot"
bot_core = /obj/machinery/bot_core/firebot
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 5191ee1ba0c8..1c10311f7b3c 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -657,7 +657,6 @@
to_chat(calling_ai, "[icon2html(src, calling_ai)] [src] wirelessly plays a chiming sound!")
calling_ai.playsound_local(calling_ai, 'sound/machines/chime.ogg', 40, FALSE)
calling_ai = null
- radio_channel = RADIO_CHANNEL_AI_PRIVATE //Report on AI Private instead if the AI is controlling us.
if(load) // if loaded, unload at target
if(report_delivery)
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index df2508c5f4a0..8aadc7ed1182 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -10,8 +10,7 @@
damage_coeff = list(BRUTE = 0.5, BURN = 0.7, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
pass_flags = PASSMOB
- radio_key = /obj/item/encryptionkey/secbot //AI Priv + Security
- radio_channel = RADIO_CHANNEL_COMMAND //Security channel
+ radio_channel = RADIO_CHANNEL_EMERGENCY //Security channel
bot_type = SEC_BOT
model = "Securitron"
bot_core_type = /obj/machinery/bot_core/secbot
@@ -40,7 +39,6 @@
var/fair_market_price_arrest = 25 // On arrest, charges the violator this much. If they don't have that much in their account, the securitron will beat them instead
var/fair_market_price_detain = 5 // Charged each time the violator is stunned on detain
var/weapon_force = 20 // Only used for NAP violation beatdowns on non-grievous securitrons
- var/payment_department = ACCOUNT_SEC
/mob/living/simple_animal/bot/secbot/beepsky
name = "Commander Beep O'sky"
@@ -72,7 +70,6 @@
/mob/living/simple_animal/bot/secbot/pingsky
name = "Officer Pingsky"
desc = "It's Officer Pingsky! Delegated to satellite guard duty for harbouring anti-human sentiment."
- radio_channel = RADIO_CHANNEL_AI_PRIVATE
/mob/living/simple_animal/bot/secbot/Initialize()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
deleted file mode 100644
index 6321a28dc39c..000000000000
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ /dev/null
@@ -1,501 +0,0 @@
-/mob/living/simple_animal/hostile/construct
- name = "Construct"
- real_name = "Construct"
- desc = ""
- gender = NEUTER
- mob_biotypes = NONE
- speak_emote = list("hisses")
- response_help_continuous = "thinks better of touching"
- response_help_simple = "think better of touching"
- response_disarm_continuous = "flails at"
- response_disarm_simple = "flail at"
- response_harm_continuous = "punches"
- response_harm_simple = "punch"
- speak_chance = 1
- icon = 'icons/mob/cult.dmi'
- speed = 0
- a_intent = INTENT_HARM
- stop_automated_movement = 1
- status_flags = CANPUSH
- attack_sound = 'sound/weapons/punch1.ogg'
- see_in_dark = 7
- lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
- damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 0
- maxbodytemp = INFINITY
- healable = 0
- faction = list("cult")
- movement_type = FLYING
- pressure_resistance = 100
- unique_name = 1
- AIStatus = AI_OFF //normal constructs don't have AI
- loot = list(/obj/item/ectoplasm)
- del_on_death = TRUE
- initial_language_holder = /datum/language_holder/construct
- deathmessage = "collapses in a shattered heap."
- hud_type = /datum/hud/constructs
- var/list/construct_spells = list()
- var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this."
- var/master = null
- var/seeking = FALSE
- var/can_repair_constructs = FALSE
- var/can_repair_self = FALSE
- var/runetype
- var/datum/action/innate/cult/create_rune/our_rune
- var/holy = FALSE
-
-/mob/living/simple_animal/hostile/construct/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
- update_health_hud()
- var/spellnum = 1
- for(var/spell in construct_spells)
- var/the_spell = new spell(null)
- AddSpell(the_spell)
- var/obj/effect/proc_holder/spell/S = mob_spell_list[spellnum]
- var/pos = 2+spellnum*31
- if(construct_spells.len >= 4)
- pos -= 31*(construct_spells.len - 4)
- S.action.button.screen_loc = "6:[pos],4:-2"
- S.action.button.moved = "6:[pos],4:-2"
- spellnum++
- if(runetype)
- our_rune = new runetype(src)
- our_rune.Grant(src)
- var/pos = 2+spellnum*31
- our_rune.button.screen_loc = "6:[pos],4:-2"
- our_rune.button.moved = "6:[pos],4:-2"
- // [CELADON-EDIT] - CELADON_MOBS
- // add_overlay("glow_[icon_state][holy]") // CELADON-EDIT - ORIGINAL
- add_overlay("glow_[icon_state]_[glowtheme]")
- flick("make_[icon_state]_[glowtheme]", src)
- // [/CELADON-EDIT]
-
-/mob/living/simple_animal/hostile/construct/Destroy()
- QDEL_NULL(our_rune)
- return ..()
-
-/mob/living/simple_animal/hostile/construct/Login()
- . = ..()
- if(!. || !client)
- return FALSE
- to_chat(src, playstyle_string)
-
-/mob/living/simple_animal/hostile/construct/examine(mob/user)
- var/t_He = p_they(TRUE)
- var/t_s = p_s()
- . = list("This is [icon2html(src, user)] \a [src]!\n[desc]")
- if(health < maxHealth)
- if(health >= maxHealth/2)
- . += "[t_He] look[t_s] slightly dented."
- else
- . += "[t_He] look[t_s] severely dented!"
- . += ""
-
-/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M)
- if(isconstruct(M)) //is it a construct?
- var/mob/living/simple_animal/hostile/construct/C = M
- if(!C.can_repair_constructs || (C == src && !C.can_repair_self))
- return ..()
- if(holy != C.holy)
- return ..()
- if(health < maxHealth)
- adjustHealth(-5)
- if(src != M)
- Beam(M,icon_state="sendbeam",time=4)
- M.visible_message(
- "[M] repairs some of \the [src]'s dents.",
- "You repair some of [src]'s dents, leaving [src] at [health]/[maxHealth] health.")
- else
- M.visible_message(
- "[M] repairs some of [p_their()] own dents.",
- "You repair some of your own dents, leaving you at [M.health]/[M.maxHealth] health.")
- else
- if(src != M)
- to_chat(M, "You cannot repair [src]'s dents, as [p_they()] [p_have()] none!")
- else
- to_chat(M, "You cannot repair your own dents, as you have none!")
- else if(src != M)
- return ..()
-
-/mob/living/simple_animal/hostile/construct/narsie_act()
- return
-
-/mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
- return 0
-
-/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(updating_health)
- update_health_hud()
-
-/////////////////Juggernaut///////////////
-/mob/living/simple_animal/hostile/construct/juggernaut
- name = "Juggernaut"
- real_name = "Juggernaut"
- desc = "A massive, armored construct built to spearhead attacks and soak up enemy fire."
- icon_state = "juggernaut"
- icon_living = "juggernaut"
- maxHealth = 150
- health = 150
- response_harm_continuous = "harmlessly punches"
- response_harm_simple = "harmlessly punch"
- harm_intent_damage = 0
- obj_damage = 90
- melee_damage_lower = 25
- melee_damage_upper = 25
- attack_verb_continuous = "smashes their armored gauntlet into"
- attack_verb_simple = "smash your armored gauntlet into"
- speed = 2.5
- environment_smash = ENVIRONMENT_SMASH_WALLS
- attack_sound = 'sound/weapons/punch3.ogg'
- status_flags = 0
- mob_size = MOB_SIZE_LARGE
- force_threshold = 10
- construct_spells = list(/obj/effect/proc_holder/spell/targeted/forcewall/cult,
- /obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut)
- runetype = /datum/action/innate/cult/create_rune/wall
- playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand heavy punishment, \
- create shield walls, rip apart enemies and walls alike, and even deflect energy weapons."
-
-/mob/living/simple_animal/hostile/construct/juggernaut/hostile //actually hostile, will move around, hit things
- AIStatus = AI_ON
- environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP
-
-/mob/living/simple_animal/hostile/construct/juggernaut/bullet_act(obj/projectile/P)
- if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam))
- var/reflectchance = 40 - round(P.damage/3)
- if(prob(reflectchance))
- apply_damage(P.damage * 0.5, P.damage_type)
- visible_message("The [P.name] is reflected by [src]'s armored shell!", \
- "The [P.name] is reflected by your armored shell!")
-
- // Find a turf near or on the original location to bounce to
- if(P.starting)
- var/new_x = P.starting.x + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3)
- var/new_y = P.starting.y + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3)
- var/turf/curloc = get_turf(src)
-
- // redirect the projectile
- P.original = locate(new_x, new_y, P.z)
- P.starting = curloc
- P.firer = src
- P.yo = new_y - curloc.y
- P.xo = new_x - curloc.x
- var/new_angle_s = P.Angle + rand(120,240)
- while(new_angle_s > 180) // Translate to regular projectile degrees
- new_angle_s -= 360
- P.setAngle(new_angle_s)
-
- return BULLET_ACT_FORCE_PIERCE // complete projectile permutation
-
- return ..()
-
-//////////////////////////Angelic-Juggernaut////////////////////////////
-/mob/living/simple_animal/hostile/construct/juggernaut/angelic
- holy = TRUE
- loot = list(/obj/item/ectoplasm/angelic)
-
-/mob/living/simple_animal/hostile/construct/juggernaut/noncult
-
-////////////////////////Wraith/////////////////////////////////////////////
-/mob/living/simple_animal/hostile/construct/wraith
- name = "Wraith"
- real_name = "Wraith"
- desc = "A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines."
- icon_state = "wraith"
- icon_living = "wraith"
- maxHealth = 65
- health = 65
- melee_damage_lower = 20
- melee_damage_upper = 20
- retreat_distance = 2 //AI wraiths will move in and out of combat
- attack_verb_continuous = "slashes"
- attack_verb_simple = "slash"
- attack_sound = 'sound/weapons/bladeslice.ogg'
- construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift)
- runetype = /datum/action/innate/cult/create_rune/tele
- playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, can phase through walls, and your attacks will lower the cooldown on phasing."
-
- var/attack_refund = 10 //1 second per attack
- var/crit_refund = 50 //5 seconds when putting a target into critical
- var/kill_refund = 250 //full refund on kills
-
-/mob/living/simple_animal/hostile/construct/wraith/AttackingTarget() //refund jaunt cooldown when attacking living targets
- var/prev_stat
- if(isliving(target) && !iscultist(target))
- var/mob/living/L = target
- prev_stat = L.stat
-
- . = ..()
-
- if(. && isnum(prev_stat))
- var/mob/living/L = target
- var/refund = 0
- if(QDELETED(L) || (L.stat == DEAD && prev_stat != DEAD)) //they're dead, you killed them
- refund += kill_refund
- else if(HAS_TRAIT(L, TRAIT_CRITICAL_CONDITION) && prev_stat == CONSCIOUS) //you knocked them into critical
- refund += crit_refund
- if(L.stat != DEAD && prev_stat != DEAD)
- refund += attack_refund
- for(var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/S in mob_spell_list)
- S.charge_counter = min(S.charge_counter + refund, S.charge_max)
-
-/mob/living/simple_animal/hostile/construct/wraith/hostile //actually hostile, will move around, hit things
- AIStatus = AI_ON
-
-//////////////////////////Angelic-Wraith////////////////////////////
-/mob/living/simple_animal/hostile/construct/wraith/angelic
- holy = TRUE
- construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic)
- loot = list(/obj/item/ectoplasm/angelic)
-
-/mob/living/simple_animal/hostile/construct/wraith/noncult
-
-/////////////////////////////Artificer/////////////////////////
-/mob/living/simple_animal/hostile/construct/artificer
- name = "Artificer"
- real_name = "Artificer"
- desc = "A bulbous construct dedicated to building and maintaining the Cult of Nar'Sie's armies."
- icon_state = "artificer"
- icon_living = "artificer"
- maxHealth = 50
- health = 50
- response_harm_continuous = "viciously beats"
- response_harm_simple = "viciously beat"
- harm_intent_damage = 5
- obj_damage = 60
- melee_damage_lower = 5
- melee_damage_upper = 5
- retreat_distance = 10
- minimum_distance = 10 //AI artificers will flee like fuck
- attack_verb_continuous = "rams"
- attack_verb_simple = "ram"
- environment_smash = ENVIRONMENT_SMASH_WALLS
- attack_sound = 'sound/weapons/punch2.ogg'
- construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
- /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser)
- runetype = /datum/action/innate/cult/create_rune/revive
- playstyle_string = "You are an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, \
-
- use magic missile, repair allied constructs, shades, and yourself (by clicking on them), \
- and, most important of all, create new constructs by producing soulstones to capture souls, \
- and shells to place those soulstones into."
- can_repair_constructs = TRUE
- can_repair_self = TRUE
-
-/mob/living/simple_animal/hostile/construct/artificer/Found(atom/A) //what have we found here?
- if(isconstruct(A)) //is it a construct?
- var/mob/living/simple_animal/hostile/construct/C = A
- if(C.health < C.maxHealth) //is it hurt? let's go heal it if it is
- return 1
- else
- return 0
- else
- return 0
-
-/mob/living/simple_animal/hostile/construct/artificer/CanAttack(atom/the_target)
- if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it
- return 0
- if(Found(the_target) || ..()) //If we Found it or Can_Attack it normally, we Can_Attack it as long as it wasn't invisible
- return 1 //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs
-
-/mob/living/simple_animal/hostile/construct/artificer/MoveToTarget(list/possible_targets)
- ..()
- if(isliving(target))
- var/mob/living/L = target
- if(isconstruct(L) && L.health >= L.maxHealth) //is this target an unhurt construct? stop trying to heal it
- LoseTarget()
- return 0
- if(L.health <= melee_damage_lower+melee_damage_upper) //ey bucko you're hurt as fuck let's go hit you
- retreat_distance = null
- minimum_distance = 1
-
-/mob/living/simple_animal/hostile/construct/artificer/Aggro()
- ..()
- if(isconstruct(target)) //oh the target is a construct no need to flee
- retreat_distance = null
- minimum_distance = 1
-
-/mob/living/simple_animal/hostile/construct/artificer/LoseAggro()
- ..()
- retreat_distance = initial(retreat_distance)
- minimum_distance = initial(minimum_distance)
-
-/mob/living/simple_animal/hostile/construct/artificer/hostile //actually hostile, will move around, hit things, heal other constructs
- AIStatus = AI_ON
- environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP
-
-/////////////////////////////Angelic Artificer/////////////////////////
-/mob/living/simple_animal/hostile/construct/artificer/angelic
- desc = "A bulbous construct dedicated to building and maintaining holy armies."
- holy = TRUE
- loot = list(/obj/item/ectoplasm/angelic)
- construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
- /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser)
-
-/mob/living/simple_animal/hostile/construct/artificer/noncult
- construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/floor,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult,
- /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser,
- /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser)
-
-/////////////////////////////Harvester/////////////////////////
-/mob/living/simple_animal/hostile/construct/harvester
- name = "Harvester"
- real_name = "Harvester"
- desc = "A long, thin construct built to herald Nar'Sie's rise. It'll be all over soon."
- icon_state = "harvester"
- icon_living = "harvester"
- maxHealth = 40
- health = 40
- sight = SEE_MOBS
- melee_damage_lower = 15
- melee_damage_upper = 20
- attack_verb_continuous = "butchers"
- attack_verb_simple = "butcher"
- attack_sound = 'sound/weapons/bladeslice.ogg'
- construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/area_conversion,
- /obj/effect/proc_holder/spell/targeted/forcewall/cult)
- playstyle_string = "You are a Harvester. You are incapable of directly killing humans, but your attacks will remove their limbs: \
- Bring those who still cling to this world of illusion back to the Geometer so they may know Truth. Your form and any you are pulling can pass through runed walls effortlessly."
- can_repair_constructs = TRUE
-
-
-/mob/living/simple_animal/hostile/construct/harvester/Bump(atom/AM)
- . = ..()
- if(istype(AM, /turf/closed/wall/mineral/cult) && AM != loc) //we can go through cult walls
- var/atom/movable/stored_pulling = pulling
- if(stored_pulling)
- stored_pulling.setDir(get_dir(stored_pulling.loc, loc))
- stored_pulling.forceMove(loc)
- forceMove(AM)
- if(stored_pulling)
- start_pulling(stored_pulling, supress_message = TRUE) //drag anything we're pulling through the wall with us by magic
-
-/mob/living/simple_animal/hostile/construct/harvester/AttackingTarget()
- if(iscarbon(target))
- var/mob/living/carbon/C = target
- if(HAS_TRAIT(C, TRAIT_NODISMEMBER))
- return ..() //ATTACK!
- var/list/parts = list()
- var/undismembermerable_limbs = 0
- for(var/X in C.bodyparts)
- var/obj/item/bodypart/BP = X
- if(BP.body_part != HEAD && BP.body_part != CHEST)
- if(BP.dismemberable)
- parts += BP
- else
- undismembermerable_limbs++
- if(!LAZYLEN(parts))
- if(undismembermerable_limbs) //they have limbs we can't remove, and no parts we can, attack!
- return ..()
- C.Paralyze(60)
- visible_message("[src] knocks [C] down!")
- to_chat(src, "\"Bring [C.p_them()] to me.\"")
- return FALSE
- do_attack_animation(C)
- var/obj/item/bodypart/BP = pick(parts)
- BP.dismember()
- return FALSE
- . = ..()
-
-/mob/living/simple_animal/hostile/construct/harvester/Initialize()
- . = ..()
- var/datum/action/innate/seek_prey/seek = new()
- seek.Grant(src)
- seek.Activate()
-
-///////////////////////Master-Tracker///////////////////////
-
-/datum/action/innate/seek_master
- name = "Seek your Master"
- desc = "You and your master share a soul-link that informs you of their location"
- background_icon_state = "bg_demon"
- buttontooltipstyle = "cult"
- button_icon_state = "cult_mark"
- var/tracking = FALSE
- var/mob/living/simple_animal/hostile/construct/the_construct
-
-
-/datum/action/innate/seek_master/Grant(mob/living/C)
- the_construct = C
- ..()
-
-/datum/action/innate/seek_master/Activate()
- var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult)
- if(!C)
- return
- var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives
-
- if(summon_objective.check_completion())
- the_construct.master = C.cult_team.blood_target
-
- if(!the_construct.master)
- to_chat(the_construct, "You have no master to seek!")
- the_construct.seeking = FALSE
- return
- if(tracking)
- tracking = FALSE
- the_construct.seeking = FALSE
- to_chat(the_construct, "You are no longer tracking your master.")
- return
- else
- tracking = TRUE
- the_construct.seeking = TRUE
- to_chat(the_construct, "You are now tracking your master.")
-
-
-/datum/action/innate/seek_prey
- name = "Seek the Harvest"
- desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!"
- icon_icon = 'icons/mob/actions/actions_cult.dmi'
- background_icon_state = "bg_demon"
- buttontooltipstyle = "cult"
- button_icon_state = "cult_mark"
-
-/datum/action/innate/seek_prey/Activate()
- if(GLOB.cult_narsie == null)
- return
- var/mob/living/simple_animal/hostile/construct/harvester/the_construct = owner
- if(the_construct.seeking)
- desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!"
- button_icon_state = "cult_mark"
- the_construct.seeking = FALSE
- to_chat(the_construct, "You are now tracking Nar'Sie, return to reap the harvest!")
- return
- else
- if(LAZYLEN(GLOB.cult_narsie.souls_needed))
- the_construct.master = pick(GLOB.cult_narsie.souls_needed)
- var/mob/living/real_target = the_construct.master //We can typecast this way because Narsie only allows /mob/living into the souls list
- to_chat(the_construct, "You are now tracking your prey, [real_target.real_name] - harvest [real_target.p_them()]!")
- else
- to_chat(the_construct, "Nar'Sie has completed her harvest!")
- return
- desc = "Activate to track Nar'Sie!"
- button_icon_state = "sintouch"
- the_construct.seeking = TRUE
-
-
-/////////////////////////////ui stuff/////////////////////////////
-
-/mob/living/simple_animal/hostile/construct/update_health_hud()
- if(hud_used)
- if(health >= maxHealth)
- hud_used.healths.icon_state = "[icon_state]_health0"
- else if(health > maxHealth*0.8)
- hud_used.healths.icon_state = "[icon_state]_health2"
- else if(health > maxHealth*0.6)
- hud_used.healths.icon_state = "[icon_state]_health3"
- else if(health > maxHealth*0.4)
- hud_used.healths.icon_state = "[icon_state]_health4"
- else if(health > maxHealth*0.2)
- hud_used.healths.icon_state = "[icon_state]_health5"
- else
- hud_used.healths.icon_state = "[icon_state]_health6"
diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm
index 1b8004cbd5b5..f189084e6dc1 100644
--- a/code/modules/mob/living/simple_animal/corpse.dm
+++ b/code/modules/mob/living/simple_animal/corpse.dm
@@ -55,15 +55,15 @@
/datum/outfit/syndicateramzicorpse
name = "Ramzi Clique Commando Corpse"
- uniform = /obj/item/clothing/under/syndicate/gorlex
+ uniform = /obj/item/clothing/under/syndicate/combat
suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
shoes = /obj/item/clothing/shoes/combat
- gloves = /obj/item/clothing/gloves/tackler/combat/insulated
+ gloves = /obj/item/clothing/gloves/color/black
ears = /obj/item/radio/headset
mask = /obj/item/clothing/mask/gas/syndicate
back = /obj/item/tank/jetpack/oxygen
r_pocket = /obj/item/tank/internals/emergency_oxygen
- id = /obj/item/card/id/syndicate
+ id = /obj/item/card/id/syndicate_command/crew_id
/obj/effect/mob_spawn/human/corpse/syndicatestormtrooper
@@ -129,16 +129,24 @@
shoes = /obj/item/clothing/shoes/jackboots
head = /obj/item/clothing/head/beret/sec/frontier
gloves = /obj/item/clothing/gloves/color/black
+ neck = /obj/item/clothing/neck/dogtag/frontier
/obj/effect/mob_spawn/human/corpse/frontier/ranged
outfit = /datum/outfit/frontier
+/obj/effect/mob_spawn/human/corpse/frontier/surgeon
+ outfit = /datum/outfit/job/frontiersmen/doctor/corpse
+
+/datum/outfit/job/frontiersmen/doctor/corpse
+ name = "Frontiersmen Surgeon Corpse"
+ r_pocket = null
+
/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper
outfit = /datum/outfit/frontier/trooper
/datum/outfit/frontier/trooper
name = "Frontiersman Armored Corpse"
- suit = /obj/item/clothing/suit/armor/vest/bulletproof/frontier
+ suit = /obj/item/clothing/suit/armor/vest/frontier
shoes = /obj/item/clothing/shoes/combat
gloves = /obj/item/clothing/gloves/tackler/combat
ears = /obj/item/radio/headset
@@ -169,6 +177,17 @@
/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless
outfit = /datum/outfit/frontier/trooper/heavy/gunless
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/flame
+ outfit = /datum/outfit/job/frontiersmen/ert/flamer/corpse
+
+/datum/outfit/job/frontiersmen/ert/flamer/corpse
+ name = "Frontiersman Flametrooper Corpse"
+ back = null
+ belt = /obj/item/storage/belt/security/military/frontiersmen
+ l_hand = null
+
+ backpack_contents = null
+
/datum/outfit/frontier/trooper/heavy/gunless
name = "Frontiersman Heavy Corpse (Gunless)"
back = null
@@ -251,3 +270,47 @@
id_job = "SolGov Sonnensoldner"
outfit = /datum/outfit/job/solgov/sonnensoldner
id_access_list = list(ACCESS_SOLGOV)
+
+//inteq
+
+/obj/effect/mob_spawn/human/corpse/inteq
+ name = "Avery Inteq"
+
+/obj/effect/mob_spawn/human/corpse/inteq/recruit
+ name = "IRMG Recruit"
+ id_job = "Recruit"
+ outfit = /datum/outfit/job/inteq/assistant
+
+/obj/effect/mob_spawn/human/corpse/inteq/medic
+ name = "IRMG Corpsman"
+ id_job = "Corpsman"
+ outfit = /datum/outfit/job/inteq/paramedic
+
+/obj/effect/mob_spawn/human/corpse/inteq/enforcer
+ name = "IRMG Enforcer"
+ id_job = "Enforcer"
+ outfit = /datum/outfit/job/inteq/security
+
+/obj/effect/mob_spawn/human/corpse/inteq/vanguard
+ name = "IRMG Vanguard"
+ id_job = "Vanguard"
+ outfit = /datum/outfit/job/inteq/captain
+
+/obj/effect/mob_spawn/human/corpse/inteq/artificer
+ name = "IRMG Artificer"
+ id_job = "Artificer"
+ outfit = /datum/outfit/job/inteq/engineer
+
+/* SRM */
+
+/obj/effect/mob_spawn/human/corpse/srm/hunter
+ name = "SRM Hunter"
+ id_job = "Hunter"
+ outfit = /datum/outfit/job/roumain/security
+ id_access_list = null
+
+/obj/effect/mob_spawn/human/corpse/srm/montagne
+ name = "SRM Montagne"
+ id_job = "Hunter Montagne"
+ outfit = /datum/outfit/job/roumain/captain
+ id_access_list = null
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
index bf4f45e28329..9c6ead823bd5 100644
--- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -23,7 +23,6 @@
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
mob_biotypes = MOB_ORGANIC|MOB_BUG
- gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "flutters"
verb_ask = "flutters inquisitively"
verb_exclaim = "flutters intensely"
diff --git a/code/modules/mob/living/simple_animal/friendly/capybara.dm b/code/modules/mob/living/simple_animal/friendly/capybara.dm
index 091bf42993f2..f1366aaa89a4 100644
--- a/code/modules/mob/living/simple_animal/friendly/capybara.dm
+++ b/code/modules/mob/living/simple_animal/friendly/capybara.dm
@@ -43,7 +43,6 @@
real_name = "Caspar"
desc = "It's Caspar, the Capybara Captain, the Capy Cappy."
gender = MALE
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
var/wear_hat = /obj/item/clothing/head/caphat
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 646a3eb8436b..396dc82202a9 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -1,7 +1,6 @@
-//Cat
/mob/living/simple_animal/pet/cat
name = "cat"
- desc = "Kitty!!"
+ desc = "Most modern cats hail from a solarian experimental geneline. The perfect purrtection from rats and radiation."
icon = 'icons/mob/pets.dmi'
icon_state = "cat2"
icon_living = "cat2"
@@ -34,12 +33,18 @@
var/mob/living/simple_animal/mouse/movement_target
///Limits how often cats can spam chasing mice.
var/emote_cooldown = 0
- gold_core_spawnable = FRIENDLY_SPAWN
collar_type = "cat"
held_state = "cat2"
footstep_type = FOOTSTEP_MOB_CLAW
+ var/grace = RAD_GRACE_PERIOD
+ var/radiation_count = 0
+ var/current_tick_amount = 0
+ var/last_tick_amount = 0
+ var/fail_to_receive = 0
+ var/glow_strength
+
/mob/living/simple_animal/pet/cat/Initialize()
. = ..()
ADD_TRAIT(src, TRAIT_HOLDABLE, INNATE_TRAIT)
@@ -85,7 +90,6 @@
icon_living = "cat"
icon_dead = "cat_dead"
gender = FEMALE
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
var/list/family = list()//var restored from savefile, has count of each child type
var/list/children = list()//Actual mob weak references of children
@@ -161,7 +165,6 @@
/mob/living/simple_animal/pet/cat/Proc
name = "Proc"
gender = MALE
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
@@ -177,8 +180,49 @@
collar_type = "[initial(collar_type)]"
regenerate_icons()
+/mob/living/simple_animal/pet/cat/rad_act(amount)
+ . = ..()
+ if(amount <= RAD_BACKGROUND_RADIATION)
+ return
+ current_tick_amount += amount
+ update_glow()
+
+/mob/living/simple_animal/pet/cat/proc/update_glow()
+ var/old_glow_strength = glow_strength
+ switch(radiation_count)
+ if(-INFINITY to RAD_LEVEL_NORMAL)
+ glow_strength = 1
+ if(RAD_LEVEL_NORMAL to RAD_LEVEL_MODERATE)
+ glow_strength = 2
+ if(RAD_LEVEL_MODERATE to RAD_LEVEL_HIGH)
+ glow_strength = 3
+ if(RAD_LEVEL_HIGH to RAD_LEVEL_VERY_HIGH)
+ glow_strength = 4
+ if(RAD_LEVEL_VERY_HIGH to RAD_LEVEL_CRITICAL)
+ glow_strength = 5
+ if(RAD_LEVEL_CRITICAL to INFINITY)
+ glow_strength = 6
+ if((old_glow_strength != glow_strength) && (glow_strength > 1))
+ src.add_filter("ray_cat_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = glow_strength))
+ if(glow_strength <= 1)
+ src.remove_filter("ray_cat_glow")
/mob/living/simple_animal/pet/cat/Life()
+ radiation_count -= radiation_count/RAD_MEASURE_SMOOTHING
+ radiation_count += current_tick_amount/RAD_MEASURE_SMOOTHING
+
+ if(current_tick_amount)
+ grace = RAD_GRACE_PERIOD
+ last_tick_amount = current_tick_amount
+ else
+ grace--
+ if(grace <= 0)
+ radiation_count = 0
+
+ current_tick_amount = 0
+
+ update_glow()
+
if(!stat && !buckled && !client)
if(prob(1))
manual_emote(pick("stretches out for a belly rub.", "wags its tail.", "lies down."))
diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm
index bd16daa567f5..a2556f0cc943 100644
--- a/code/modules/mob/living/simple_animal/friendly/crab.dm
+++ b/code/modules/mob/living/simple_animal/friendly/crab.dm
@@ -23,7 +23,6 @@
ventcrawler = VENTCRAWLER_ALWAYS
var/obj/item/inventory_head
var/obj/item/inventory_mask
- gold_core_spawnable = FRIENDLY_SPAWN
/mob/living/simple_animal/crab/Life()
..()
@@ -44,7 +43,6 @@
real_name = "Coffee"
desc = "It's Coffee, the other pet!"
gender = FEMALE
- gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/crab/evil
name = "Evil Crab"
@@ -53,7 +51,6 @@
icon_state = "evilcrab"
icon_living = "evilcrab"
icon_dead = "evilcrab_dead"
- gold_core_spawnable = FRIENDLY_SPAWN
/mob/living/simple_animal/crab/kreb
name = "Kreb"
@@ -62,7 +59,6 @@
icon_state = "kreb"
icon_living = "kreb"
icon_dead = "kreb_dead"
- gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/crab/evil/kreb
name = "Evil Kreb"
@@ -70,4 +66,3 @@
icon_state = "evilkreb"
icon_living = "evilkreb"
icon_dead = "evilkreb_dead"
- gold_core_spawnable = NO_SPAWN
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index 19eef279a1dc..2a47d4f0c220 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -88,7 +88,6 @@
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/corgi = 3, /obj/item/stack/sheet/animalhide/corgi = 1)
childtype = list(/mob/living/simple_animal/pet/dog/corgi/puppy = 95, /mob/living/simple_animal/pet/dog/corgi/puppy/void = 5)
animal_species = /mob/living/simple_animal/pet/dog
- gold_core_spawnable = FRIENDLY_SPAWN
collar_type = "corgi"
var/obj/item/inventory_head
var/obj/item/inventory_back
@@ -121,7 +120,6 @@
icon_living = "pug"
icon_dead = "pug_dead"
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/pug = 3)
- gold_core_spawnable = FRIENDLY_SPAWN
collar_type = "pug"
held_state = "pug"
@@ -394,7 +392,6 @@
response_disarm_simple = "bop"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
var/age = 0
var/record_age = 1
@@ -481,50 +478,6 @@
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
-/mob/living/simple_animal/pet/dog/corgi/Ian/narsie_act()
- playsound(src, 'sound/magic/demon_dies.ogg', 75, TRUE)
- var/mob/living/simple_animal/pet/dog/corgi/narsie/N = new(loc)
- N.setDir(dir)
- gib()
-
-/mob/living/simple_animal/pet/dog/corgi/narsie
- name = "Nars-Ian"
- desc = "Ia! Ia!"
- icon_state = "narsian"
- icon_living = "narsian"
- icon_dead = "narsian_dead"
- faction = list("neutral", "cult")
- gold_core_spawnable = NO_SPAWN
- nofur = TRUE
- unique_pet = TRUE
- held_state = "narsian"
-
-/mob/living/simple_animal/pet/dog/corgi/narsie/Life()
- ..()
- for(var/mob/living/simple_animal/pet/P in range(1, src))
- if(P != src && !istype(P,/mob/living/simple_animal/pet/dog/corgi/narsie))
- visible_message("[src] devours [P]!", \
- "DELICIOUS SOULS")
- playsound(src, 'sound/magic/demon_attack1.ogg', 75, TRUE)
- narsie_act()
- if(P.mind)
- if(P.mind.hasSoul)
- P.mind.hasSoul = FALSE //Nars-Ian ate your soul; you don't have one anymore
- else
- visible_message("... Aw, someone beat me to this one.")
- P.gib()
-
-/mob/living/simple_animal/pet/dog/corgi/narsie/update_corgi_fluff()
- ..()
- speak = list("Tari'karat-pasnar!", "IA! IA!", "BRRUUURGHGHRHR")
- speak_emote = list("growls", "barks ominously")
- emote_hear = list("barks echoingly!", "woofs hauntingly!", "yaps in an eldritch manner.", "mutters something unspeakable.")
- emote_see = list("communes with the unnameable.", "ponders devouring some souls.", "shakes.")
-
-/mob/living/simple_animal/pet/dog/corgi/narsie/narsie_act()
- adjustBruteLoss(-maxHealth)
-
-
/mob/living/simple_animal/pet/dog/corgi/regenerate_icons()
..()
if(inventory_head)
@@ -613,7 +566,6 @@
real_name = "Lisa"
gender = FEMALE
desc = "She's tearing you apart."
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
icon_state = "lisa"
icon_living = "lisa"
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 65baddfee360..cc2ab1da9ef6 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -122,7 +122,6 @@
attack_sound = 'sound/weapons/punch1.ogg'
health = 50
maxHealth = 50
- gold_core_spawnable = FRIENDLY_SPAWN
blood_volume = BLOOD_VOLUME_NORMAL
food_type = list(/obj/item/reagent_containers/food/snacks/grown/wheat)
tame_chance = 25
@@ -178,7 +177,6 @@
/mob/living/simple_animal/cow/wisdom
name = "wisdom cow"
desc = "Known for its wisdom, shares it with all"
- gold_core_spawnable = FALSE
tame_chance = 0
bonus_tame_chance = 0
speak_chance = 15
@@ -229,8 +227,6 @@
var/amount_grown = 0
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
- gold_core_spawnable = FRIENDLY_SPAWN
-
footstep_type = FOOTSTEP_MOB_CLAW
/mob/living/simple_animal/chick/Initialize()
@@ -290,7 +286,6 @@
var/list/feedMessages = list("It clucks happily.","It clucks happily.")
var/list/layMessage = EGG_LAYING_MESSAGES
var/list/validColors = list("brown","black","white")
- gold_core_spawnable = FRIENDLY_SPAWN
var/static/chicken_count = 0
footstep_type = FOOTSTEP_MOB_CLAW
@@ -386,7 +381,6 @@
var/list/feedMessages = list("It clucks happily.","It clucks happily.")
var/list/layMessage = EGG_LAYING_MESSAGES
var/list/validColors = list("brown","black","white")
- gold_core_spawnable = FRIENDLY_SPAWN
var/static/chicken_count = 0
environment_smash = ENVIRONMENT_SMASH_NONE
melee_damage_lower = 3
diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm
index 8fc52916fa39..164e412cdd1d 100644
--- a/code/modules/mob/living/simple_animal/friendly/fox.dm
+++ b/code/modules/mob/living/simple_animal/friendly/fox.dm
@@ -20,7 +20,6 @@
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
- gold_core_spawnable = FRIENDLY_SPAWN
held_state = "fox"
footstep_type = FOOTSTEP_MOB_CLAW
@@ -34,5 +33,4 @@
name = "Renault"
desc = "Renault, the Captain's trustworthy fox."
gender = FEMALE
- gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
diff --git a/code/modules/mob/living/simple_animal/friendly/gondola.dm b/code/modules/mob/living/simple_animal/friendly/gondola.dm
index 54e8dad7edb4..0bb662979ee1 100644
--- a/code/modules/mob/living/simple_animal/friendly/gondola.dm
+++ b/code/modules/mob/living/simple_animal/friendly/gondola.dm
@@ -22,7 +22,7 @@
icon_living = "gondola"
loot = list(/obj/effect/decal/cleanable/blood/gibs, /obj/item/stack/sheet/animalhide/gondola = 1, /obj/item/reagent_containers/food/snacks/meat/slab/gondola = 1)
//Gondolas aren't affected by cold.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
maxHealth = 200
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index c854936c7d22..e872fdfcefce 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -23,7 +23,6 @@
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE
- gold_core_spawnable = FRIENDLY_SPAWN
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
var/static/list/edibles = typecacheof(list(/mob/living/simple_animal/butterfly, /mob/living/simple_animal/hostile/cockroach)) //list of atoms, however turfs won't affect AI, but will affect consumption.
diff --git a/code/modules/mob/living/simple_animal/friendly/mothroach.dm b/code/modules/mob/living/simple_animal/friendly/mothroach.dm
index 881e64d2a70f..083c576e1c17 100644
--- a/code/modules/mob/living/simple_animal/friendly/mothroach.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mothroach.dm
@@ -17,7 +17,6 @@
health = 25
maxHealth = 25
speed = 1.25
- gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "flutters"
verb_ask = "flutters inquisitively"
verb_exclaim = "flutters loudly"
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 7b11d05bcf2c..c647b59f4d49 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -45,7 +45,6 @@ GLOBAL_VAR_INIT(mouse_killed, 0)
mob_biotypes = MOB_ORGANIC|MOB_BEAST
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //WS Edit
var/body_color //brown, gray and white, leave blank for random
- gold_core_spawnable = FRIENDLY_SPAWN
move_force = MOVE_FORCE_EXTREMELY_WEAK //WS Edit
var/chew_probability = 1
var/full = FALSE //WS Edit
@@ -261,7 +260,6 @@ GLOBAL_VAR_INIT(mouse_killed, 0)
response_disarm_simple = "gently push aside"
response_harm_continuous = "splats"
response_harm_simple = "splat"
- gold_core_spawnable = NO_SPAWN
/obj/item/reagent_containers/food/snacks/deadmouse
name = "dead mouse"
diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm
index 5e39c3c8a51d..50ea0a5003cb 100644
--- a/code/modules/mob/living/simple_animal/friendly/penguin.dm
+++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm
@@ -32,7 +32,6 @@
icon_state = "penguin"
icon_living = "penguin"
icon_dead = "penguin_dead"
- gold_core_spawnable = FRIENDLY_SPAWN
butcher_results = list(/obj/item/organ/ears/penguin = 1, /obj/item/reagent_containers/food/snacks/meat/slab/penguin = 3)
/mob/living/simple_animal/pet/penguin/baby
diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm
index fa5ab9c9df94..63bc7d76e5dd 100644
--- a/code/modules/mob/living/simple_animal/friendly/sloth.dm
+++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm
@@ -18,7 +18,6 @@
response_harm_continuous = "kicks"
response_harm_simple = "kick"
mob_biotypes = MOB_ORGANIC|MOB_BEAST
- gold_core_spawnable = FRIENDLY_SPAWN
melee_damage_lower = 18
melee_damage_upper = 18
health = 50
@@ -33,7 +32,6 @@
/mob/living/simple_animal/sloth/paperwork
name = "Paperwork"
desc = "Cargo's pet sloth. About as useful as the rest of the techs."
- gold_core_spawnable = NO_SPAWN
//Cargo Sloth 2
@@ -45,4 +43,3 @@
icon_dead = "cool_sloth_dead"
gender = FEMALE
butcher_results = list(/obj/item/toy/spinningtoy = 1)
- gold_core_spawnable = NO_SPAWN
diff --git a/code/modules/mob/living/simple_animal/friendly/snake.dm b/code/modules/mob/living/simple_animal/friendly/snake.dm
index d33fac8f5c00..38fb4ced3d9f 100644
--- a/code/modules/mob/living/simple_animal/friendly/snake.dm
+++ b/code/modules/mob/living/simple_animal/friendly/snake.dm
@@ -35,7 +35,6 @@
pass_flags = PASSTABLE | PASSMOB
mob_size = MOB_SIZE_SMALL
mob_biotypes = MOB_ORGANIC|MOB_BEAST|MOB_REPTILE
- gold_core_spawnable = FRIENDLY_SPAWN
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
var/glasses_overlay_file = 'icons/mob/pets.dmi'
diff --git a/code/modules/mob/living/simple_animal/friendly/turtle.dm b/code/modules/mob/living/simple_animal/friendly/turtle.dm
index 97b07424d375..3ef772cc4be0 100644
--- a/code/modules/mob/living/simple_animal/friendly/turtle.dm
+++ b/code/modules/mob/living/simple_animal/friendly/turtle.dm
@@ -19,7 +19,6 @@
response_harm_continuous = "kicks"
response_harm_simple = "kick"
mob_biotypes = MOB_ORGANIC|MOB_BEAST
- gold_core_spawnable = NO_SPAWN
melee_damage_lower = 0.5
melee_damage_upper = 1
health = 2500
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
deleted file mode 100644
index 538a015c163b..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ /dev/null
@@ -1,786 +0,0 @@
-
-GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
-
-#define GUARDIAN_HANDS_LAYER 1
-#define GUARDIAN_TOTAL_LAYERS 1
-
-/mob/living/simple_animal/hostile/guardian
- name = "Guardian Spirit"
- real_name = "Guardian Spirit"
- desc = "A mysterious being that stands by its charge, ever vigilant."
- speak_emote = list("hisses")
- gender = NEUTER
- mob_biotypes = NONE
- bubble_icon = "guardian"
- response_help_continuous = "passes through"
- response_help_simple = "pass through"
- response_disarm_continuous = "flails at"
- response_disarm_simple = "flail at"
- response_harm_continuous = "punches"
- response_harm_simple = "punch"
- icon = 'icons/mob/guardian.dmi'
- icon_state = "magicbase"
- icon_living = "magicbase"
- icon_dead = "magicbase"
- speed = 0
- a_intent = INTENT_HARM
- stop_automated_movement = 1
- movement_type = FLYING // Immunity to chasms and landmines, etc.
- attack_sound = 'sound/weapons/punch1.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 0
- maxbodytemp = INFINITY
- attack_verb_continuous = "punches"
- attack_verb_simple = "punch"
- maxHealth = INFINITY //The spirit itself is invincible
- health = INFINITY
- healable = FALSE //don't brusepack the guardian
- damage_coeff = list(BRUTE = 0.4, BURN = 0.4, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) //how much damage from each damage type we transfer to the owner
- environment_smash = ENVIRONMENT_SMASH_STRUCTURES
- obj_damage = 40
- melee_damage_lower = 15
- melee_damage_upper = 15
- butcher_results = list(/obj/item/ectoplasm = 1)
- AIStatus = AI_OFF
- light_system = MOVABLE_LIGHT
- light_range = 3
- light_on = FALSE
- hud_type = /datum/hud/guardian
- dextrous_hud_type = /datum/hud/dextrous/guardian //if we're set to dextrous, account for it.
- var/mutable_appearance/cooloverlay
- var/guardiancolor
- var/recolorentiresprite
- var/theme
- var/list/guardian_overlays[GUARDIAN_TOTAL_LAYERS]
- var/reset = 0 //if the summoner has reset the guardian already
- var/cooldown = 0
- var/mob/living/summoner
- var/range = 10 //how far from the user the spirit can be
- var/toggle_button_type = /atom/movable/screen/guardian/ToggleMode/Inactive //what sort of toggle button the hud uses
- var/playstyle_string = "You are a Guardian without any type. You shouldn't exist!"
- var/magic_fluff_string = "You draw the Coder, symbolizing bugs and errors. This shouldn't happen! Submit a bug report!"
- var/tech_fluff_string = "BOOT SEQUENCE COMPLETE. ERROR MODULE LOADED. THIS SHOULDN'T HAPPEN. Submit a bug report!"
- var/carp_fluff_string = "CARP CARP CARP SOME SORT OF HORRIFIC BUG BLAME THE CODERS CARP CARP CARP"
- var/miner_fluff_string = "You encounter... Mythril, it shouldn't exist... Submit a bug report!"
- var/slime_fluff_string = "The crystal grows and creaks, then glitches terribly! Tell a coder if you've seen this!"
-
-/mob/living/simple_animal/hostile/guardian/Initialize(mapload, theme)
- GLOB.parasites += src
- updatetheme(theme)
- ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)//local flying mob drifts in space, more news at six
- . = ..()
-
-/mob/living/simple_animal/hostile/guardian/med_hud_set_health()
- if(summoner)
- var/image/holder = hud_list[HEALTH_HUD]
- holder.icon_state = "hud[RoundHealth(summoner)]"
-
-/mob/living/simple_animal/hostile/guardian/med_hud_set_status()
- if(summoner)
- var/image/holder = hud_list[STATUS_HUD]
- var/icon/I = icon(icon, icon_state, dir)
- holder.pixel_y = I.Height() - world.icon_size
- if(summoner.stat == DEAD)
- holder.icon_state = "huddead"
- else
- holder.icon_state = "hudhealthy"
-
-/mob/living/simple_animal/hostile/guardian/Destroy()
- GLOB.parasites -= src
- return ..()
-
-/mob/living/simple_animal/hostile/guardian/proc/updatetheme(theme) //update the guardian's theme
- if(!theme)
- theme = pick("magic", "tech", "carp", "miner")
- switch(theme)//should make it easier to create new stand designs in the future if anyone likes that
- if("magic")
- name = "Guardian Spirit"
- real_name = "Guardian Spirit"
- bubble_icon = "guardian"
- icon_state = "magicbase"
- icon_living = "magicbase"
- icon_dead = "magicbase"
- if("tech")
- name = "Holoparasite"
- real_name = "Holoparasite"
- bubble_icon = "holo"
- icon_state = "techbase"
- icon_living = "techbase"
- icon_dead = "techbase"
- if("miner")
- name = "Power Miner"
- real_name = "Power Miner"
- bubble_icon = "guardian"
- icon_state = "minerbase"
- icon_living = "minerbase"
- icon_dead = "minerbase"
- if("carp")
- name = "Holocarp"
- real_name = "Holocarp"
- bubble_icon = "holo"
- icon_state = "holocarp"
- icon_living = "holocarp"
- icon_dead = "holocarp"
- speak_emote = list("gnashes")
- desc = "A mysterious fish that stands by its charge, ever vigilant."
- attack_verb_continuous = "bites"
- attack_verb_simple = "bite"
- attack_sound = 'sound/weapons/bite.ogg'
- recolorentiresprite = TRUE
- if("slime")
- bubble_icon = "guardian"
- icon_state = "slimebase"
- icon_living = "slimebase"
- icon_dead = "slimebase"
- friendly_verb_continuous = "nourishes"
- friendly_verb_simple = "nourish"
- attack_verb_continuous = "glomps"
- attack_verb_simple = "glomp"
- speak_emote = list("blorbles")
- attack_sound = 'sound/effects/blobattack.ogg'
- desc = "A mysterious slime that stands by its charge, ever vigilant."
- attack_sound = 'sound/weapons/bite.ogg'
-
- if(!recolorentiresprite) //we want this to proc before stand logs in, so the overlay isnt gone for some reason
- cooloverlay = mutable_appearance(icon, theme)
- add_overlay(cooloverlay)
-
-/mob/living/simple_animal/hostile/guardian/Login() //if we have a mind, set its name to ours when it logs in
- . = ..()
- if(!. || !client)
- return FALSE
- if(mind)
- mind.name = "[real_name]"
- if(!summoner)
- to_chat(src, "For some reason, somehow, you have no summoner. Please report this bug immediately.")
- return
- to_chat(src, "You are a [real_name], bound to serve [summoner.real_name].")
- to_chat(src, "You are capable of manifesting or recalling to your master with the buttons on your HUD. You will also find a button to communicate with [summoner.p_them()] privately there.")
- to_chat(src, "While personally invincible, you will die if [summoner.real_name] does, and any damage dealt to you will have a portion passed on to [summoner.p_them()] as you feed upon [summoner.p_them()] to sustain yourself.")
- to_chat(src, playstyle_string)
- if(!guardiancolor)
- guardianrename()
- guardianrecolor()
-
-/mob/living/simple_animal/hostile/guardian/proc/guardianrecolor()
- guardiancolor = input(src,"What would you like your color to be?","Choose Your Color","#ffffff") as color|null
- if(!guardiancolor) //redo proc until we get a color
- to_chat(src, "Not a valid color, please try again.")
- guardianrecolor()
- return
- if(!recolorentiresprite)
- cooloverlay.color = guardiancolor
- cut_overlay(cooloverlay) //we need to get our new color
- add_overlay(cooloverlay)
- else
- add_atom_colour(guardiancolor, FIXED_COLOUR_PRIORITY)
-
-/mob/living/simple_animal/hostile/guardian/proc/guardianrename()
- var/new_name = sanitize_name(reject_bad_text(stripped_input(src, "What would you like your name to be?", "Choose Your Name", real_name, MAX_NAME_LEN)))
- if(!new_name) //redo proc until we get a good name
- to_chat(src, "Not a valid name, please try again.")
- guardianrename()
- return
- visible_message("Your new name [new_name] anchors itself in your mind.")
- fully_replace_character_name(null, new_name)
-
-/mob/living/simple_animal/hostile/guardian/Life() //Dies if the summoner dies
- . = ..()
- update_health_hud() //we need to update all of our health displays to match our summoner and we can't practically give the summoner a hook to do it
- med_hud_set_health()
- med_hud_set_status()
- if(!QDELETED(summoner))
- if(summoner.stat == DEAD)
- forceMove(summoner.loc)
- to_chat(src, "Your summoner has died!")
- visible_message("\The [src] dies along with its user!")
- summoner.visible_message("[summoner]'s body is completely consumed by the strain of sustaining [src]!")
- for(var/obj/item/W in summoner)
- if(!summoner.dropItemToGround(W))
- qdel(W)
- summoner.dust()
- death(TRUE)
- qdel(src)
- else
- to_chat(src, "Your summoner has died!")
- visible_message("[src] dies along with its user!")
- death(TRUE)
- qdel(src)
- snapback()
-
-/mob/living/simple_animal/hostile/guardian/get_status_tab_items()
- . += ..()
- if(summoner)
- var/resulthealth
- if(iscarbon(summoner))
- resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100)
- else
- resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5)
- . += "Summoner Health: [resulthealth]%"
- if(cooldown >= world.time)
- . += "Manifest/Recall Cooldown Remaining: [DisplayTimeText(cooldown - world.time)]"
-
-/mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range
- . = ..()
- snapback()
-
-/mob/living/simple_animal/hostile/guardian/proc/snapback()
- if(summoner)
- if(get_dist(get_turf(summoner),get_turf(src)) <= range)
- return
- else
- to_chat(src, "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]!")
- visible_message("\The [src] jumps back to its user.")
- if(istype(summoner.loc, /obj/effect))
- Recall(TRUE)
- else
- new /obj/effect/temp_visual/guardian/phase/out(loc)
- forceMove(summoner.loc)
- new /obj/effect/temp_visual/guardian/phase(loc)
-
-/mob/living/simple_animal/hostile/guardian/proc/is_deployed()
- return loc != summoner
-
-/mob/living/simple_animal/hostile/guardian/AttackingTarget()
- if(!is_deployed())
- to_chat(src, "You must be manifested to attack!")
- return FALSE
- else
- return ..()
-
-/mob/living/simple_animal/hostile/guardian/death()
- drop_all_held_items()
- ..()
- if(summoner)
- to_chat(summoner, "Your [name] died somehow!")
- summoner.dust()
-
-/mob/living/simple_animal/hostile/guardian/update_health_hud()
- if(summoner && hud_used && hud_used.healths)
- var/resulthealth
- if(iscarbon(summoner))
- resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100)
- else
- resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5)
- hud_used.healths.maptext = "[resulthealth]%
"
-
-/mob/living/simple_animal/hostile/guardian/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //The spirit is invincible, but passes on damage to the summoner
- . = amount
- if(summoner)
- if(loc == summoner)
- return FALSE
- summoner.adjustBruteLoss(amount)
- if(amount > 0)
- to_chat(summoner, "Your [name] is under attack! You take damage!")
- summoner.visible_message("Blood sprays from [summoner] as [src] takes damage!")
- switch(summoner.stat)
- if(UNCONSCIOUS, HARD_CRIT)
- to_chat(summoner, "Your body can't take the strain of sustaining [src] in this condition, it begins to fall apart!")
- summoner.adjustCloneLoss(amount * 0.5) //dying hosts take 50% bonus damage as cloneloss
- update_health_hud()
-
-/mob/living/simple_animal/hostile/guardian/ex_act(severity, target)
- switch(severity)
- if(1)
- gib()
- return
- if(2)
- adjustBruteLoss(60)
- if(3)
- adjustBruteLoss(30)
-
-/mob/living/simple_animal/hostile/guardian/gib()
- if(summoner)
- to_chat(summoner, "Your [src] was blown up!")
- summoner.gib()
- ghostize()
- qdel(src)
-
-//HAND HANDLING
-
-/mob/living/simple_animal/hostile/guardian/equip_to_slot(obj/item/I, slot)
- if(!slot)
- return FALSE
- if(!istype(I))
- return FALSE
-
- . = TRUE
- var/index = get_held_index_of_item(I)
- if(index)
- held_items[index] = null
- update_inv_hands()
-
- if(I.pulledby)
- I.pulledby.stop_pulling()
-
- I.screen_loc = null // will get moved if inventory is visible
- I.forceMove(src)
- I.equipped(src, slot)
- I.layer = ABOVE_HUD_LAYER
- I.plane = ABOVE_HUD_PLANE
-
-/mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index)
- if((. = guardian_overlays[cache_index]))
- add_overlay(.)
-
-/mob/living/simple_animal/hostile/guardian/proc/remove_overlay(cache_index)
- var/I = guardian_overlays[cache_index]
- if(I)
- cut_overlay(I)
- guardian_overlays[cache_index] = null
-
-/mob/living/simple_animal/hostile/guardian/update_inv_hands()
- remove_overlay(GUARDIAN_HANDS_LAYER)
- var/list/hands_overlays = list()
- var/obj/item/l_hand = get_item_for_held_index(1)
- var/obj/item/r_hand = get_item_for_held_index(2)
-
- if(r_hand)
- hands_overlays += r_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE)
-
- if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
- r_hand.layer = ABOVE_HUD_LAYER
- r_hand.plane = ABOVE_HUD_PLANE
- r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
- client.screen |= r_hand
-
- if(l_hand)
- hands_overlays += l_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE)
-
- if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
- l_hand.layer = ABOVE_HUD_LAYER
- l_hand.plane = ABOVE_HUD_PLANE
- l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
- client.screen |= l_hand
-
- if(hands_overlays.len)
- guardian_overlays[GUARDIAN_HANDS_LAYER] = hands_overlays
- apply_overlay(GUARDIAN_HANDS_LAYER)
-
-/mob/living/simple_animal/hostile/guardian/regenerate_icons()
- update_inv_hands()
-
-//MANIFEST, RECALL, TOGGLE MODE/LIGHT, SHOW TYPE
-
-/mob/living/simple_animal/hostile/guardian/proc/Manifest(forced)
- if(istype(summoner.loc, /obj/effect) || (cooldown > world.time && !forced))
- return FALSE
- if(loc == summoner)
- forceMove(summoner.loc)
- new /obj/effect/temp_visual/guardian/phase(loc)
- cooldown = world.time + 10
- reset_perspective()
- return TRUE
- return FALSE
-
-/mob/living/simple_animal/hostile/guardian/proc/Recall(forced)
- if(!summoner || loc == summoner || (cooldown > world.time && !forced))
- return FALSE
- new /obj/effect/temp_visual/guardian/phase/out(loc)
-
- forceMove(summoner)
- cooldown = world.time + 10
- return TRUE
-
-/mob/living/simple_animal/hostile/guardian/proc/ToggleMode()
- to_chat(src, "You don't have another mode!")
-
-
-/mob/living/simple_animal/hostile/guardian/proc/ToggleLight()
- if(!light_on)
- to_chat(src, "You activate your light.")
- set_light_on(TRUE)
- else
- to_chat(src, "You deactivate your light.")
- set_light_on(FALSE)
-
-
-/mob/living/simple_animal/hostile/guardian/verb/ShowType()
- set name = "Check Guardian Type"
- set category = "Guardian"
- set desc = "Check what type you are."
- to_chat(src, playstyle_string)
-
-//COMMUNICATION
-
-/mob/living/simple_animal/hostile/guardian/proc/Communicate()
- if(summoner)
- var/sender_key = key
- var/input = stripped_input(src, "Please enter a message to tell your summoner.", "Guardian", "")
- if(sender_key != key || !input) //guardian got reset, or did not enter anything
- return
-
- var/preliminary_message = "[input]" //apply basic color/bolding
- var/my_message = "[src]: [preliminary_message]" //add source, color source with the guardian's color
-
- to_chat(summoner, my_message)
- var/list/guardians = summoner.hasparasites()
- for(var/para in guardians)
- to_chat(para, my_message)
- for(var/M in GLOB.dead_mob_list)
- var/link = FOLLOW_LINK(M, src)
- to_chat(M, "[link] [my_message]")
-
- src.log_talk(input, LOG_SAY, tag="guardian")
-
-/mob/living/proc/guardian_comm()
- set name = "Communicate"
- set category = "Guardian"
- set desc = "Communicate telepathically with your guardian."
- var/input = stripped_input(src, "Please enter a message to tell your guardian.", "Message", "")
- if(!input)
- return
-
- var/preliminary_message = "[input]" //apply basic color/bolding
- var/my_message = "[src]: [preliminary_message]" //add source, color source with default grey...
-
- to_chat(src, my_message)
- var/list/guardians = hasparasites()
- for(var/para in guardians)
- var/mob/living/simple_animal/hostile/guardian/G = para
- to_chat(G, "[src]: [preliminary_message]" )
- for(var/M in GLOB.dead_mob_list)
- var/link = FOLLOW_LINK(M, src)
- to_chat(M, "[link] [my_message]")
-
- src.log_talk(input, LOG_SAY, tag="guardian")
-
-//FORCE RECALL/RESET
-
-/mob/living/proc/guardian_recall()
- set name = "Recall Guardian"
- set category = "Guardian"
- set desc = "Forcibly recall your guardian."
- var/list/guardians = hasparasites()
- for(var/para in guardians)
- var/mob/living/simple_animal/hostile/guardian/G = para
- G.Recall()
-
-/mob/living/proc/guardian_reset()
- set name = "Reset Guardian Player (One Use)"
- set category = "Guardian"
- set desc = "Re-rolls which ghost will control your Guardian. One use per Guardian."
-
- var/list/guardians = hasparasites()
- for(var/para in guardians)
- var/mob/living/simple_animal/hostile/guardian/P = para
- if(P.reset)
- guardians -= P //clear out guardians that are already reset
- if(guardians.len)
- var/mob/living/simple_animal/hostile/guardian/G = input(src, "Pick the guardian you wish to reset", "Guardian Reset") as null|anything in sortNames(guardians)
- if(G)
- to_chat(src, "You attempt to reset [G.real_name]'s personality...")
- var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as [src.real_name]'s [G.real_name]?", ROLE_PAI, null, FALSE, 100)
- if(LAZYLEN(candidates))
- var/mob/dead/observer/C = pick(candidates)
- to_chat(G, "Your user reset you, and your body was taken over by a ghost. Looks like they weren't happy with your performance.")
- to_chat(src, "Your [G.real_name] has been successfully reset.")
- message_admins("[key_name_admin(C)] has taken control of ([ADMIN_LOOKUPFLW(G)])")
- G.ghostize(0)
- G.guardianrecolor()
- G.guardianrename() //give it a new color and name, to show it's a new person
- G.key = C.key
- G.reset = 1
- switch(G.theme)
- if("tech")
- to_chat(src, "[G.real_name] is now online!")
- if("magic")
- to_chat(src, "[G.real_name] has been summoned!")
- if("carp")
- to_chat(src, "[G.real_name] has been caught!")
- if("miner")
- to_chat(src, "[G.real_name] has appeared!")
- if("slime")
- to_chat(src, "[G.real_name] has taken shape!")
- guardians -= G
- if(!guardians.len)
- remove_verb(src, /mob/living/proc/guardian_reset)
- else
- to_chat(src, "There were no ghosts willing to take control of [G.real_name]. Looks like you're stuck with it for now.")
- else
- to_chat(src, "You decide not to reset [guardians.len > 1 ? "any of your guardians":"your guardian"].")
- else
- remove_verb(src, /mob/living/proc/guardian_reset)
-
-////////parasite tracking/finding procs
-
-/mob/living/proc/hasparasites() //returns a list of guardians the mob is a summoner for
- . = list()
- for(var/P in GLOB.parasites)
- var/mob/living/simple_animal/hostile/guardian/G = P
- if(G.summoner == src)
- . += G
-
-/mob/living/simple_animal/hostile/guardian/proc/hasmatchingsummoner(mob/living/simple_animal/hostile/guardian/G) //returns 1 if the summoner matches the target's summoner
- return (istype(G) && G.summoner == summoner)
-
-
-////////Creation
-
-/obj/item/guardiancreator
- name = "enchanted deck of tarot cards"
- desc = "An enchanted deck of tarot cards, rumored to be a source of unimaginable power."
- icon = 'icons/obj/toy.dmi'
- icon_state = "deck_tarot_full"
- var/used = FALSE
- var/theme = "magic"
- var/mob_name = "Guardian Spirit"
- var/use_message = "You shuffle the deck..."
- var/used_message = "All the cards seem to be blank now."
- var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later."
- var/ling_failure = "The deck refuses to respond to a souless creature such as you."
- var/list/possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support", "Gravitokinetic")
- var/random = TRUE
- var/allowmultiple = FALSE
- var/allowling = TRUE
- var/allowguardian = FALSE
-
-/obj/item/guardiancreator/attack_self(mob/living/user)
- if(isguardian(user) && !allowguardian)
- to_chat(user, "[mob_name] chains are not allowed.")
- return
- var/list/guardians = user.hasparasites()
- if(guardians.len && !allowmultiple)
- to_chat(user, "You already have a [mob_name]!")
- return
- if(user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling) && !allowling)
- to_chat(user, "[ling_failure]")
- return
- if(used == TRUE)
- to_chat(user, "[used_message]")
- return
- used = TRUE
- to_chat(user, "[use_message]")
- var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you want to play as the [mob_name] of [user.real_name]?", ROLE_PAI, null, FALSE, 100, POLL_IGNORE_HOLOPARASITE)
-
- if(LAZYLEN(candidates))
- var/mob/dead/observer/C = pick(candidates)
- spawn_guardian(user, C.key)
- else
- to_chat(user, "[failure_message]")
- used = FALSE
-
-
-/obj/item/guardiancreator/proc/spawn_guardian(mob/living/user, key)
- var/guardiantype = "Standard"
- if(random)
- guardiantype = pick(possible_guardians)
- else
- guardiantype = input(user, "Pick the type of [mob_name]", "[mob_name] Creation") as null|anything in sortList(possible_guardians)
- if(!guardiantype)
- to_chat(user, "[failure_message]" )
- used = FALSE
- return
- var/pickedtype = /mob/living/simple_animal/hostile/guardian/punch
- switch(guardiantype)
-
- if("Chaos")
- pickedtype = /mob/living/simple_animal/hostile/guardian/fire
-
- if("Standard")
- pickedtype = /mob/living/simple_animal/hostile/guardian/punch
-
- if("Ranged")
- pickedtype = /mob/living/simple_animal/hostile/guardian/ranged
-
- if("Support")
- pickedtype = /mob/living/simple_animal/hostile/guardian/healer
-
- if("Explosive")
- pickedtype = /mob/living/simple_animal/hostile/guardian/bomb
-
- if("Lightning")
- pickedtype = /mob/living/simple_animal/hostile/guardian/beam
-
- if("Protector")
- pickedtype = /mob/living/simple_animal/hostile/guardian/protector
-
- if("Charger")
- pickedtype = /mob/living/simple_animal/hostile/guardian/charger
-
- if("Assassin")
- pickedtype = /mob/living/simple_animal/hostile/guardian/assassin
-
- if("Dextrous")
- pickedtype = /mob/living/simple_animal/hostile/guardian/dextrous
-
- if("Gravitokinetic")
- pickedtype = /mob/living/simple_animal/hostile/guardian/gravitokinetic
-
- if("Slime")
- pickedtype = /mob/living/simple_animal/hostile/guardian/slime
-
- var/list/guardians = user.hasparasites()
- if(guardians.len && !allowmultiple)
- to_chat(user, "You already have a [mob_name]!" )
- used = FALSE
- return
- var/mob/living/simple_animal/hostile/guardian/G = new pickedtype(user, theme)
- G.name = mob_name
- G.summoner = user
- G.key = key
- G.mind.enslave_mind_to_creator(user)
- log_game("[key_name(user)] has summoned [key_name(G)], a [guardiantype] holoparasite.")
- switch(theme)
- if("tech")
- to_chat(user, "[G.tech_fluff_string]")
- to_chat(user, "[G.real_name] is now online!")
- if("magic")
- to_chat(user, "[G.magic_fluff_string]")
- to_chat(user, "[G.real_name] has been summoned!")
- if("carp")
- to_chat(user, "[G.carp_fluff_string]")
- to_chat(user, "[G.real_name] has been caught!")
- if("miner")
- to_chat(user, "[G.miner_fluff_string]")
- to_chat(user, "[G.real_name] has appeared!")
- if("slime")
- to_chat(user, "[G.slime_fluff_string]")
- to_chat(user, "[G.real_name] was created using slime science!")
- add_verb(user, list(/mob/living/proc/guardian_comm, \
- /mob/living/proc/guardian_recall, \
- /mob/living/proc/guardian_reset))
- G?.client.init_verbs()
-
-/obj/item/guardiancreator/choose
- random = FALSE
-
-/obj/item/guardiancreator/choose/dextrous
- possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support")
-
-/obj/item/guardiancreator/choose/wizard
- possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard",)
- allowmultiple = TRUE
-
-/obj/item/guardiancreator/tech
- name = "holoparasite injector"
- desc = "It contains an alien nanoswarm of unknown origin. Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, it requires an organic host as a home base and source of fuel."
- icon = 'icons/obj/syringe.dmi'
- icon_state = "combat_hypo"
- theme = "tech"
- mob_name = "Holoparasite"
- use_message = "You start to power on the injector..."
- used_message = "The injector has already been used."
- failure_message = "...ERROR. BOOT SEQUENCE ABORTED. AI FAILED TO INTIALIZE. PLEASE CONTACT SUPPORT OR TRY AGAIN LATER."
- ling_failure = "The holoparasites recoil in horror. They want nothing to do with a creature like you."
-
-/obj/item/guardiancreator/tech/choose/traitor
- possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support")
- allowling = FALSE
-
-/obj/item/guardiancreator/tech/choose
- random = FALSE
-
-/obj/item/guardiancreator/tech/choose/dextrous
- possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support")//"Gravokinetic" to re-add guardians to lists like this one
-
-/obj/item/paper/guides/antag/guardian
- name = "Holoparasite Guide"
- default_raw_text = {"A list of Holoparasite Types
-
-
-Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
-
-Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the parasite. Automatically extinguishes the user if they catch on fire.
-
-Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
-
-Dexterous: Does low damage on attack, but is capable of holding items and storing a single item within it. It will drop items held in its hands when it recalls, but it will retain the stored item.
-
-Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
-
-Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
-
-Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
-
-Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
-
-Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
-
-Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
-
-"}
-
-/obj/item/paper/guides/antag/guardian/wizard
- name = "Guardian Guide"
- default_raw_text = {"A list of Guardian Types
-
-
-Assassin: Does medium damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
-
-Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the guardian. Automatically extinguishes the user if they catch on fire.
-
-Charger: Moves extremely fast, does medium damage on attack, and can charge at targets, damaging the first target hit and forcing them to drop any items they are holding.
-
-Dexterous: Does low damage on attack, but is capable of holding items and storing a single item within it. It will drop items held in its hands when it recalls, but it will retain the stored item.
-
-Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.
-
-Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
-
-Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
-
-Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
-
-Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.
-
-Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
-
-"}
-
-
-/obj/item/storage/box/syndie_kit/guardian
- name = "holoparasite injector kit"
-
-/obj/item/storage/box/syndie_kit/guardian/PopulateContents()
- new /obj/item/guardiancreator/tech/choose/dextrous(src) //WS Edit - Dextrous Guardians
- new /obj/item/paper/guides/antag/guardian(src)
-
-/obj/item/guardiancreator/carp
- name = "holocarp fishsticks"
- desc = "Using the power of Carp'sie, you can catch a carp from byond the veil of Carpthulu, and bind it to your fleshy flesh form."
- icon = 'icons/obj/food/food.dmi'
- icon_state = "fishfingers"
- theme = "carp"
- mob_name = "Holocarp"
- use_message = "You put the fishsticks in your mouth..."
- used_message = "Someone's already taken a bite out of these fishsticks! Ew."
- failure_message = "You couldn't catch any carp spirits from the seas of Lake Carp. Maybe there are none, maybe you fucked up."
- ling_failure = "Carp'sie seems to not have taken you as the chosen one. Maybe it's because of your horrifying origin."
- allowmultiple = TRUE
-
-/obj/item/guardiancreator/carp/choose
- random = FALSE
-
-/obj/item/guardiancreator/miner
- name = "dusty shard"
- desc = "Seems to be a very old rock, may have originated from a strange meteor."
- icon = 'icons/obj/lavaland/artefacts.dmi'
- icon_state = "dustyshard"
- theme = "miner"
- mob_name = "Power Miner"
- use_message = "You pierce your skin with the shard..."
- used_message = "This shard seems to have lost all its' power..."
- failure_message = "The shard hasn't reacted at all. Maybe try again later..."
- ling_failure = "The power of the shard seems to not react with your horrifying, mutated body."
-
-/obj/item/guardiancreator/miner/choose
- random = FALSE
- name = "glimmering shard"
- desc = "Seems to be a very old rock, may have originated from a strange meteor. This one looks exceptionally pure."
- possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support")
- allowmultiple = TRUE//if you *somehow* get the extremely rare minerchoose guardian(25% chance to spawn, for an item in a table of around 30 options) while you already have a guardian, you can stack it. The ultimate gambling.
-
-/obj/item/guardiancreator/slime
- name = "slime shard"
- desc = "A shard of crystallized slime."
- icon = 'icons/obj/lavaland/artefacts.dmi'
- icon_state = "dustyshard"
- color = "#00ff15"
- theme = "slime"
- mob_name = "Standing Slime"
- use_message = "You squeeze the shard inhand, and it grows warm..."
- used_message = "You squeeze the shard, but nothing happens. Maybe it's been used already."
- failure_message = "The shard grows cold. Maybe try again later?"
- ling_failure = "The shard seems to quiver and twist away from you."
- possible_guardians = list("Slime")
diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
deleted file mode 100644
index 7cfed9d167db..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm
+++ /dev/null
@@ -1,101 +0,0 @@
-//Assassin
-/mob/living/simple_animal/hostile/guardian/assassin
- melee_damage_lower = 15
- melee_damage_upper = 15
- attack_verb_continuous = "slashes"
- attack_verb_simple = "slash"
- attack_sound = 'sound/weapons/bladeslice.ogg'
- damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
- playstyle_string = "As an assassin type you do medium damage and have no damage resistance, but can enter stealth, massively increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage."
- magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin."
- tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one! It's an assassin carp! Just when you thought it was safe to go back to the water... which is unhelpful, because we're in space."
- miner_fluff_string = "You encounter... Glass, a sharp, fragile attacker."
- toggle_button_type = /atom/movable/screen/guardian/ToggleMode/Assassin
- var/toggle = FALSE
- var/stealthcooldown = 100
- var/atom/movable/screen/alert/canstealthalert
- var/atom/movable/screen/alert/instealthalert
- speed = -1
-
-/mob/living/simple_animal/hostile/guardian/assassin/Initialize()
- . = ..()
- stealthcooldown = 0
-
-/mob/living/simple_animal/hostile/guardian/assassin/Life()
- . = ..()
- updatestealthalert()
- if(loc == summoner && toggle)
- ToggleMode(0)
-
-/mob/living/simple_animal/hostile/guardian/assassin/get_status_tab_items()
- . = ..()
- if(stealthcooldown >= world.time)
- . += "Stealth Cooldown Remaining: [DisplayTimeText(stealthcooldown - world.time)]"
-
-/mob/living/simple_animal/hostile/guardian/assassin/AttackingTarget()
- . = ..()
- if(.)
- if(toggle && (isliving(target) || istype(target, /obj/structure/window) || istype(target, /obj/structure/grille)))
- ToggleMode(1)
-
-/mob/living/simple_animal/hostile/guardian/assassin/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(. > 0 && toggle)
- ToggleMode(1)
-
-/mob/living/simple_animal/hostile/guardian/assassin/Recall()
- if(..() && toggle)
- ToggleMode(0)
-
-/mob/living/simple_animal/hostile/guardian/assassin/ToggleMode(forced = 0)
- if(toggle)
- melee_damage_lower = initial(melee_damage_lower)
- melee_damage_upper = initial(melee_damage_upper)
- armour_penetration = initial(armour_penetration)
- obj_damage = initial(obj_damage)
- environment_smash = initial(environment_smash)
- alpha = initial(alpha)
- if(!forced)
- to_chat(src, "You exit stealth.")
- else
- visible_message("\The [src] suddenly appears!")
- stealthcooldown = world.time + initial(stealthcooldown) //we were forced out of stealth and go on cooldown
- cooldown = world.time + 40 //can't recall for 4 seconds
- updatestealthalert()
- toggle = FALSE
- else if(stealthcooldown <= world.time)
- if(src.loc == summoner)
- to_chat(src, "You have to be manifested to enter stealth!")
- return
- melee_damage_lower = 50
- melee_damage_upper = 50
- armour_penetration = 100
- obj_damage = 0
- environment_smash = ENVIRONMENT_SMASH_NONE
- new /obj/effect/temp_visual/guardian/phase/out(get_turf(src))
- alpha = 20
- if(!forced)
- to_chat(src, "You enter stealth, empowering your next attack.")
- updatestealthalert()
- toggle = TRUE
- else if(!forced)
- to_chat(src, "You cannot yet enter stealth, wait another [DisplayTimeText(stealthcooldown - world.time)]!")
-
-/mob/living/simple_animal/hostile/guardian/assassin/proc/updatestealthalert()
- if(stealthcooldown <= world.time)
- if(toggle)
- if(!instealthalert)
- instealthalert = throw_alert("instealth", /atom/movable/screen/alert/instealth)
- clear_alert("canstealth")
- canstealthalert = null
- else
- if(!canstealthalert)
- canstealthalert = throw_alert("canstealth", /atom/movable/screen/alert/canstealth)
- clear_alert("instealth")
- instealthalert = null
- else
- clear_alert("instealth")
- instealthalert = null
- clear_alert("canstealth")
- canstealthalert = null
diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm
deleted file mode 100644
index 7ebd3c8b3cca..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm
+++ /dev/null
@@ -1,77 +0,0 @@
-//Charger
-/mob/living/simple_animal/hostile/guardian/charger
- melee_damage_lower = 15
- melee_damage_upper = 15
- ranged = 1 //technically
- ranged_message = "charges"
- ranged_cooldown_time = 10
- speed = 2//slow when not charging
- damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0.6, CLONE = 0.6, STAMINA = 0, OXY = 0.6)
- playstyle_string = "As a charger type you are a formidable close range fighter, but move slowly when not charging. You can charge at a location, damaging any target hit and potentially knocking them flat."
- magic_fluff_string = "..And draw the Hunter, an alien master of rapid assault."
- tech_fluff_string = "Boot sequence complete. Charge modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one! It's a charger carp, that likes running at people. But it doesn't have any legs..."
- miner_fluff_string = "You encounter... Titanium, a lightweight, agile fighter."
- var/charging = 0
- var/atom/movable/screen/alert/chargealert
-
-/mob/living/simple_animal/hostile/guardian/charger/Life()
- . = ..()
- if(ranged_cooldown <= world.time)
- if(!chargealert)
- chargealert = throw_alert("charge", /atom/movable/screen/alert/cancharge)
- else
- clear_alert("charge")
- chargealert = null
-
-/mob/living/simple_animal/hostile/guardian/charger/OpenFire(atom/A)
- if(!charging)
- visible_message("[src] [ranged_message] at [A]!")
- ranged_cooldown = world.time + ranged_cooldown_time
- clear_alert("charge")
- chargealert = null
- Shoot(A)
-
-/mob/living/simple_animal/hostile/guardian/charger/Shoot(atom/targeted_atom)
- charging = 1
- throw_at(targeted_atom, range, 1, src, FALSE, TRUE, callback = CALLBACK(src, PROC_REF(charging_end)))
-
-/mob/living/simple_animal/hostile/guardian/charger/proc/charging_end()
- charging = 0
-
-/mob/living/simple_animal/hostile/guardian/charger/Move()
- if(charging)
- new /obj/effect/temp_visual/decoy/fading(loc,src)
- . = ..()
-
-/mob/living/simple_animal/hostile/guardian/charger/snapback()
- if(!charging)
- ..()
-
-/mob/living/simple_animal/hostile/guardian/charger/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- if(!charging)
- return ..()
-
- else if(hit_atom)
- if(isliving(hit_atom) && hit_atom != summoner)
- var/mob/living/L = hit_atom
- var/blocked = FALSE
- if(hasmatchingsummoner(hit_atom)) //if the summoner matches don't hurt them
- blocked = TRUE
- if(ishuman(hit_atom))
- var/mob/living/carbon/human/H = hit_atom
- if(H.check_shields(src, 90, "[name]", attack_type = THROWN_PROJECTILE_ATTACK))
- blocked = TRUE
- if(!blocked)
- L.visible_message("[src] slams into [L]!", "[src] slams into you!")
- if(prob(25))
- L.drop_all_held_items()
- L.Knockdown(10)
- L.visible_message("[L] is knocked clean over!", "You are flung to the ground by the impact!")
- L.apply_damage(30, BRUTE)
- playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, TRUE)
- shake_camera(L, 4, 3)
- shake_camera(src, 2, 3)
-
- charging = 0
-
diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
deleted file mode 100644
index 48fb3db7b7bd..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
+++ /dev/null
@@ -1,85 +0,0 @@
-//Dextrous
-/mob/living/simple_animal/hostile/guardian/dextrous//very few buffs needed, this is arguably the most "powerful" holoparasite for the reason that is: GUN.
- melee_damage_lower = 10
- melee_damage_upper = 10
- damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0.75, CLONE = 0.75, STAMINA = 0, OXY = 0.75)
- playstyle_string = "As a dextrous type you can hold items, store an item within yourself, and have medium damage resistance, but do low damage on attacks. Recalling and leashing will force you to drop unstored items!"
- magic_fluff_string = "..And draw the Drone, a dextrous master of construction and repair."
- tech_fluff_string = "Boot sequence complete. Dextrous combat modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! You caught one! It can hold stuff in its fins, sort of."
- miner_fluff_string = "You encounter... Gold, a malleable constructor."
- dextrous = TRUE
- held_items = list(null, null)
- var/obj/item/internal_storage //what we're storing within ourself
-
-/mob/living/simple_animal/hostile/guardian/dextrous/death(gibbed)
- ..()
- if(internal_storage)
- dropItemToGround(internal_storage)
-
-/mob/living/simple_animal/hostile/guardian/dextrous/examine(mob/user)
- if(dextrous)
- . = list("This is [icon2html(src)] \a [src]!\n[desc]")
- for(var/obj/item/I in held_items)
- if(!(I.item_flags & ABSTRACT))
- . += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
- if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
- . += "It is holding [internal_storage.get_examine_string(user)] in its internal storage."
- . += ""
- else
- return ..()
-
-/mob/living/simple_animal/hostile/guardian/dextrous/Recall(forced)
- if(!summoner || loc == summoner || (cooldown > world.time && !forced))
- return FALSE
- drop_all_held_items()
- return ..() //lose items, then return
-
-/mob/living/simple_animal/hostile/guardian/dextrous/snapback()
- if(summoner && !(get_dist(get_turf(summoner),get_turf(src)) <= range))
- drop_all_held_items()
- ..() //lose items, then return
-
-//SLOT HANDLING BULLSHIT FOR INTERNAL STORAGE
-/mob/living/simple_animal/hostile/guardian/dextrous/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, silent = FALSE)
- if(..())
- update_inv_hands()
- if(I == internal_storage)
- internal_storage = null
- update_inv_internal_storage()
- return TRUE
- return FALSE
-
-/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE)
- switch(slot)
- if(ITEM_SLOT_DEX_STORAGE)
- if(internal_storage)
- return FALSE
- return TRUE
- ..()
-
-/mob/living/simple_animal/hostile/guardian/dextrous/equip_to_slot(obj/item/I, slot)
- if(!..())
- return
-
- switch(slot)
- if(ITEM_SLOT_DEX_STORAGE)
- internal_storage = I
- update_inv_internal_storage()
- else
- to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!")
-
-/mob/living/simple_animal/hostile/guardian/dextrous/getBackSlot()
- return ITEM_SLOT_DEX_STORAGE
-
-/mob/living/simple_animal/hostile/guardian/dextrous/getBeltSlot()
- return ITEM_SLOT_DEX_STORAGE
-
-/mob/living/simple_animal/hostile/guardian/dextrous/proc/update_inv_internal_storage()
- if(internal_storage && client && hud_used && hud_used.hud_shown)
- internal_storage.screen_loc = ui_id
- client.screen += internal_storage
-
-/mob/living/simple_animal/hostile/guardian/dextrous/regenerate_icons()
- ..()
- update_inv_internal_storage()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
deleted file mode 100644
index f93f70d8ffb3..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
+++ /dev/null
@@ -1,78 +0,0 @@
-#define UNREGISTER_BOMB_SIGNALS(A) \
- do { \
- UnregisterSignal(A, boom_signals); \
- UnregisterSignal(A, COMSIG_PARENT_EXAMINE); \
- } while (0)
-
-//Bomb
-/mob/living/simple_animal/hostile/guardian/bomb
- melee_damage_lower = 35
- melee_damage_upper = 35
- next_move_modifier = 1.5//attacks are 50% slower
- damage_coeff = list(BRUTE = 0.6, BURN = 0.6, TOX = 0.6, CLONE = 0.6, STAMINA = 0, OXY = 0.6)//relatively delicate, for a holopara
- attack_sound = 'sound/effects/gravhit.ogg'
- range = 5//tiny range
- speed = 4//slow af
- playstyle_string = "As an explosive type, you have powerful but slow blasting punches, may explode targets for bonus damage on attack, and are capable of converting nearby items and objects into disguised bombs via alt click. However, you are slow, and your range is very low. Make it count!"
- magic_fluff_string = "..And draw the Scientist, master of explosive death."
- tech_fluff_string = "Boot sequence complete. Explosive modules active. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one! It's an explosive carp! Boom goes the fishy."
- miner_fluff_string = "You encounter... Gibtonite, an explosive fighter."
- var/bomb_cooldown = 0
- var/static/list/boom_signals = list(COMSIG_PARENT_ATTACKBY, COMSIG_ATOM_BUMPED, COMSIG_ATOM_ATTACK_HAND)
-
-/mob/living/simple_animal/hostile/guardian/bomb/get_status_tab_items()
- . = ..()
- if(bomb_cooldown >= world.time)
- . += "Bomb Cooldown Remaining: [DisplayTimeText(bomb_cooldown - world.time)]"
-
-/mob/living/simple_animal/hostile/guardian/bomb/AttackingTarget()
- . = ..()
- if(. && prob(65) && isliving(target))
- var/mob/living/M = target
- if(!M.anchored && M != summoner && !hasmatchingsummoner(M))
- new /obj/effect/temp_visual/guardian/phase/out(get_turf(M))
- for(var/mob/living/L in range(1, M))
- if(hasmatchingsummoner(L)) //if the summoner matches don't hurt them
- continue
- if(L != src && L != summoner)
- L.apply_damage(20, BRUTE)
- new /obj/effect/temp_visual/explosion(get_turf(M))
-
-/mob/living/simple_animal/hostile/guardian/bomb/AltClickOn(atom/movable/A)
- if(!istype(A))
- return
- if(loc == summoner)
- to_chat(src, "You must be manifested to create bombs!")
- return
- if(isobj(A) && Adjacent(A))
- if(bomb_cooldown <= world.time && !stat)
- to_chat(src, "Success! Bomb armed!")
- bomb_cooldown = world.time + 200
- RegisterSignal(A, COMSIG_PARENT_EXAMINE, PROC_REF(display_examine))
- RegisterSignal(A, boom_signals, PROC_REF(kaboom))
- addtimer(CALLBACK(src, PROC_REF(disable), A), 600, TIMER_UNIQUE|TIMER_OVERRIDE)
- else
- to_chat(src, "Your powers are on cooldown! You must wait 20 seconds between bombs.")
-
-/mob/living/simple_animal/hostile/guardian/bomb/proc/kaboom(atom/source, mob/living/explodee)
- if(!istype(explodee))
- return
- if(explodee == src || explodee == summoner || hasmatchingsummoner(explodee))
- return
- to_chat(explodee, "[source] was boobytrapped!")
- to_chat(src, "Success! Your trap caught [explodee]")
- var/turf/T = get_turf(source)
- playsound(T,'sound/effects/explosion2.ogg', 200, TRUE)
- new /obj/effect/temp_visual/explosion(T)
- explodee.ex_act(EXPLODE_HEAVY)
- UNREGISTER_BOMB_SIGNALS(source)
-
-/mob/living/simple_animal/hostile/guardian/bomb/proc/disable(atom/A)
- to_chat(src, "Failure! Your trap didn't catch anyone this time.")
- UNREGISTER_BOMB_SIGNALS(A)
-
-/mob/living/simple_animal/hostile/guardian/bomb/proc/display_examine(datum/source, mob/user, text)
- text += "It glows with a strange light!"
-
-#undef UNREGISTER_BOMB_SIGNALS
diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm
deleted file mode 100644
index 2d7a34a8bbf8..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm
+++ /dev/null
@@ -1,50 +0,0 @@
-//Fire
-/mob/living/simple_animal/hostile/guardian/fire
- a_intent = INTENT_HELP
- melee_damage_lower = 7
- melee_damage_upper = 7
- attack_sound = 'sound/items/welder.ogg'
- attack_verb_continuous = "ignites"
- attack_verb_simple = "ignite"
- damage_coeff = list(BRUTE = 0.6, BURN = 0.4, TOX = 0.6, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- range = 7
- playstyle_string = "As a chaos type, you have only light damage resistance, but will ignite any enemy you bump into. In addition, your melee attacks will cause human targets to see everyone as you, and will cook simple animals from the inside, doing bonus damage."
- magic_fluff_string = "..And draw the Wizard, bringer of endless chaos!"
- tech_fluff_string = "Boot sequence complete. Crowd control modules activated. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! You caught one! OH GOD, EVERYTHING'S ON FIRE. Except you and the fish."
- miner_fluff_string = "You encounter... Plasma, the bringer of fire."
-
-/mob/living/simple_animal/hostile/guardian/fire/Life()
- . = ..()
- if(summoner)
- summoner.ExtinguishMob()
- summoner.adjust_fire_stacks(-20)
-
-/mob/living/simple_animal/hostile/guardian/fire/AttackingTarget()
- . = ..()
- if(. && ishuman(target) && target != summoner)
- new /datum/hallucination/delusion(target,TRUE,"custom",200,0, icon_state,icon)
- melee_damage_lower = 7
- melee_damage_upper = 7
- if(. && isanimal(target) && target != summoner)
- melee_damage_lower = 40
- melee_damage_upper = 40
-
-/mob/living/simple_animal/hostile/guardian/fire/on_entered(datum/source, AM as mob|obj)
- . = ..()
- collision_ignite(AM)
-
-/mob/living/simple_animal/hostile/guardian/fire/Bumped(atom/movable/AM)
- ..()
- collision_ignite(AM)
-
-/mob/living/simple_animal/hostile/guardian/fire/Bump(AM as mob|obj)
- ..()
- collision_ignite(AM)
-
-/mob/living/simple_animal/hostile/guardian/fire/proc/collision_ignite(AM as mob|obj)
- if(isliving(AM))
- var/mob/living/M = AM
- if(!hasmatchingsummoner(M) && M != summoner && M.fire_stacks < 7)
- M.fire_stacks = 7
- M.IgniteMob()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm
deleted file mode 100644
index a86e38db7772..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm
+++ /dev/null
@@ -1,68 +0,0 @@
-//gravitokinetic
-/mob/living/simple_animal/hostile/guardian/gravitokinetic
- melee_damage_lower = 15
- melee_damage_upper = 15
- damage_coeff = list(BRUTE = 0.75, BURN = 0.75, TOX = 0.75, CLONE = 0.75, STAMINA = 0, OXY = 0.75)
- playstyle_string = "As a gravitokinetic type, you can alt click to make the gravity on the ground stronger, and punching applies this effect to a target."
- magic_fluff_string = "..And draw the Singularity, an anomalous force of terror."
- tech_fluff_string = "Boot sequence complete. Gravitokinetic modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one! It's a gravitokinetic carp! Now do you understand the gravity of the situation?"
- miner_fluff_string = "You encounter... Bananium, a master of gravity business."
- var/list/gravito_targets = list()
- var/gravity_power_range = 10 //how close the stand must stay to the target to keep the heavy gravity
-
-///Removes gravity from affected mobs upon guardian death to prevent permanent effects
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/death()
- . = ..()
- for(var/i in gravito_targets)
- remove_gravity(i)
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/AttackingTarget()
- . = ..()
- if(isliving(target) && target != src)
- to_chat(src, "Your punch has applied heavy gravity to [target]!")
- add_gravity(target, 2)
- to_chat(target, "Everything feels really heavy!")
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/AltClickOn(atom/A)
- if(isopenturf(A) && is_deployed() && stat != DEAD && in_range(src, A) && !incapacitated())
- var/turf/T = A
- if(isspaceturf(T))
- to_chat(src, "You cannot add gravity to space!")
- return
- visible_message("[src] slams their fist into the [T]!", "You modify the gravity of the [T].")
- do_attack_animation(T)
- add_gravity(T, 4)
- return
- return ..()
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/Recall(forced)
- . = ..()
- to_chat(src, "You have released your gravitokinetic powers!")
- for(var/i in gravito_targets)
- remove_gravity(i)
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/Moved(oldLoc, dir)
- . = ..()
- for(var/i in gravito_targets)
- if(get_dist(src, i) > gravity_power_range)
- remove_gravity(i)
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/add_gravity(atom/A, new_gravity = 2)
- if(gravito_targets[A])
- return
- A.AddElement(/datum/element/forced_gravity, new_gravity)
- gravito_targets[A] = new_gravity
- RegisterSignal(A, COMSIG_MOVABLE_MOVED, PROC_REF(__distance_check))
- playsound(src, 'sound/effects/gravhit.ogg', 100, TRUE)
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/remove_gravity(atom/target)
- if(isnull(gravito_targets[target]))
- return
- UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
- target.RemoveElement(/datum/element/forced_gravity, gravito_targets[target])
- gravito_targets -= target
-
-/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/__distance_check(atom/movable/AM, OldLoc, Dir, Forced)
- if(get_dist(src, AM) > gravity_power_range)
- remove_gravity(AM)
diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm
deleted file mode 100644
index a70bf4edae24..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm
+++ /dev/null
@@ -1,113 +0,0 @@
-//Beam
-/obj/effect/ebeam/chain
- name = "lightning chain"
- layer = LYING_MOB_LAYER
-
-/mob/living/simple_animal/hostile/guardian/beam
- melee_damage_lower = 7
- melee_damage_upper = 7
- attack_verb_continuous = "shocks"
- attack_verb_simple = "shock"
- melee_damage_type = BURN
- attack_sound = 'sound/machines/defib_zap.ogg'
- damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- range = 7
- playstyle_string = "As a lightning type, you will apply lightning chains to targets on attack and have a lightning chain to your summoner. Lightning chains will shock anyone near them."
- magic_fluff_string = "..And draw the Tesla, a shocking, lethal source of power."
- tech_fluff_string = "Boot sequence complete. Lightning modules active. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one! It's a lightning carp! Everyone else goes zap zap."
- miner_fluff_string = "You encounter... Iron, a conductive master of lightning."
- var/datum/beam/summonerchain
- var/list/enemychains = list()
- var/successfulshocks = 0
-
-/mob/living/simple_animal/hostile/guardian/beam/AttackingTarget()
- . = ..()
- if(. && isliving(target) && target != src && target != summoner)
- cleardeletedchains()
- for(var/chain in enemychains)
- var/datum/beam/B = chain
- if(B.target == target)
- return //oh this guy already HAS a chain, let's not chain again
- if(enemychains.len > 2)
- var/datum/beam/C = pick(enemychains)
- qdel(C)
- enemychains -= C
- enemychains += Beam(target, "lightning[rand(1,12)]", time=70, maxdistance=7, beam_type=/obj/effect/ebeam/chain)
-
-/mob/living/simple_animal/hostile/guardian/beam/Destroy()
- removechains()
- return ..()
-
-/mob/living/simple_animal/hostile/guardian/beam/Manifest()
- . = ..()
- if(.)
- if(summoner)
- summonerchain = Beam(summoner, "lightning[rand(1,12)]", time=INFINITY, maxdistance=INFINITY, beam_type=/obj/effect/ebeam/chain)
- while(loc != summoner)
- if(successfulshocks > 5)
- successfulshocks = 0
- if(shockallchains())
- successfulshocks++
- SLEEP_CHECK_DEATH(3)
-
-/mob/living/simple_animal/hostile/guardian/beam/Recall()
- . = ..()
- if(.)
- removechains()
-
-/mob/living/simple_animal/hostile/guardian/beam/proc/cleardeletedchains()
- if(summonerchain && QDELETED(summonerchain))
- summonerchain = null
- if(enemychains.len)
- for(var/chain in enemychains)
- var/datum/cd = chain
- if(!chain || QDELETED(cd))
- enemychains -= chain
-
-/mob/living/simple_animal/hostile/guardian/beam/proc/shockallchains()
- . = 0
- cleardeletedchains()
- if(summoner)
- if(!summonerchain)
- summonerchain = Beam(summoner, "lightning[rand(1,12)]", time=INFINITY, maxdistance=INFINITY, beam_type=/obj/effect/ebeam/chain)
- . += chainshock(summonerchain)
- if(enemychains.len)
- for(var/chain in enemychains)
- . += chainshock(chain)
-
-/mob/living/simple_animal/hostile/guardian/beam/proc/removechains()
- if(summonerchain)
- qdel(summonerchain)
- summonerchain = null
- if(enemychains.len)
- for(var/chain in enemychains)
- qdel(chain)
- enemychains = list()
-
-/mob/living/simple_animal/hostile/guardian/beam/proc/chainshock(datum/beam/B)
- . = 0
- var/list/turfs = list()
- for(var/E in B.elements)
- var/obj/effect/ebeam/chainpart = E
- if(chainpart && chainpart.x && chainpart.y && chainpart.z)
- var/turf/T = get_turf_pixel(chainpart)
- turfs |= T
- if(T != get_turf(B.origin) && T != get_turf(B.target))
- for(var/turf/TU in circlerange(T, 1))
- turfs |= TU
- for(var/turf in turfs)
- var/turf/T = turf
- for(var/mob/living/L in T)
- if(L.stat != DEAD && L != src && L != summoner)
- if(hasmatchingsummoner(L)) //if the summoner matches don't hurt them
- continue
- if(successfulshocks > 4)
- L.electrocute_act(0)
- L.visible_message(
- "[L] was shocked by the lightning chain!", \
- "You are shocked by the lightning chain!", \
- "You hear a heavy electrical crack." \
- )
- L.adjustFireLoss(1.2) //adds up very rapidly
- . = 1
diff --git a/code/modules/mob/living/simple_animal/guardian/types/protector.dm b/code/modules/mob/living/simple_animal/guardian/types/protector.dm
deleted file mode 100644
index e42dcb62e2ef..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/protector.dm
+++ /dev/null
@@ -1,72 +0,0 @@
-//Protector
-/mob/living/simple_animal/hostile/guardian/protector
- melee_damage_lower = 30
- melee_damage_upper = 30
- range = 20
- damage_coeff = list(BRUTE = 0.4, BURN = 0.4, TOX = 0.4, CLONE = 0.4, STAMINA = 0, OXY = 0.4)
- playstyle_string = "As a protector type you cause your summoner to leash to you instead of you leashing to them and have two modes; Combat Mode, where you do and take medium damage, and Protection Mode, where you take almost no damage and have reduced damage. While in protection mode, you move significantly slower, and have extremely low range."
- magic_fluff_string = "..And draw the Guardian, a stalwart protector that never leaves the side of its charge."
- tech_fluff_string = "Boot sequence complete. Protector modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! You caught one! Wait, no... it caught you! The fisher has become the fishy."
- miner_fluff_string = "You encounter... Uranium, a very resistant guardian."
- toggle_button_type = /atom/movable/screen/guardian/ToggleMode
- var/toggle = FALSE
-
-/mob/living/simple_animal/hostile/guardian/protector/ex_act(severity)
- if(severity == 1)
- adjustBruteLoss(400) //if in protector mode, will do 20 damage and not actually necessarily kill the summoner
- else
- ..()
- if(QDELETED(src))
- return
- if(toggle)
- visible_message("The explosion glances off [src]'s energy shielding!")
-
-/mob/living/simple_animal/hostile/guardian/protector/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(. > 0 && toggle)
- var/image/I = new('icons/effects/effects.dmi', src, "shield-flash", MOB_LAYER+0.01, dir = pick(GLOB.cardinals))
- if(guardiancolor)
- I.color = guardiancolor
- flick_overlay_view(I, src, 5)
-
-/mob/living/simple_animal/hostile/guardian/protector/ToggleMode()
- if(cooldown > world.time)
- return 0
- cooldown = world.time + 10
- if(toggle)
- cut_overlays()
- melee_damage_lower = initial(melee_damage_lower)
- melee_damage_upper = initial(melee_damage_upper)
- speed = initial(speed)
- damage_coeff = list(BRUTE = 0.4, BURN = 0.4, TOX = 0.4, CLONE = 0.4, STAMINA = 0, OXY = 0.4)
- to_chat(src, "You switch to combat mode.")
- toggle = FALSE
- else
- var/mutable_appearance/shield_overlay = mutable_appearance('icons/effects/effects.dmi', "shield-grey")
- if(guardiancolor)
- shield_overlay.color = guardiancolor
- add_overlay(shield_overlay)
- melee_damage_lower = 15
- melee_damage_upper = 15
- speed = 4
- range = 5
- damage_coeff = list(BRUTE = 0.05, BURN = 0.05, TOX = 0.05, CLONE = 0.05, STAMINA = 0, OXY = 0.05) //damage? what's damage?
- to_chat(src, "You switch to protection mode.")
- toggle = TRUE
-
-/mob/living/simple_animal/hostile/guardian/protector/snapback() //snap to what? snap to the guardian!
- if(summoner)
- if(get_dist(get_turf(summoner),get_turf(src)) <= range)
- return
- else
- if(istype(summoner.loc, /obj/effect))
- to_chat(src, "You moved out of range, and were pulled back! You can only move [range] meters from [summoner.real_name]!")
- visible_message("\The [src] jumps back to its user.")
- Recall(TRUE)
- else
- to_chat(summoner, "You moved out of range, and were pulled back! You can only move [range] meters from [real_name]!")
- summoner.visible_message("\The [summoner] jumps back to [summoner.p_their()] protector.")
- new /obj/effect/temp_visual/guardian/phase/out(get_turf(summoner))
- summoner.forceMove(get_turf(src))
- new /obj/effect/temp_visual/guardian/phase(get_turf(summoner))
diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm
deleted file mode 100644
index 105ae8b35ec8..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm
+++ /dev/null
@@ -1,154 +0,0 @@
-//Ranged
-/obj/projectile/guardian//now featuring anime-accurate unpredictable richochet. Hit your master! Hit yourself! Salt in dchat when your own richochet puts you into crit.
- name = "crystal spray"
- icon_state = "guardian"
- damage = 15
- damage_type = BRUTE
- armour_penetration = 100
- ricochets_max = 2
- ricochet_chance = 65
- ricochet_auto_aim_range = 0
- ricochet_incidence_leeway = 50
- projectile_piercing = PASSMOB
-
-/mob/living/simple_animal/hostile/guardian/ranged
- a_intent = INTENT_HELP
- friendly_verb_continuous = "quietly assesses"
- friendly_verb_simple = "quietly assess"
- melee_damage_lower = 10
- melee_damage_upper = 10
- damage_coeff = list(BRUTE = 0.9, BURN = 0.9, TOX = 0.9, CLONE = 0.9, STAMINA = 0, OXY = 0.9)
- projectiletype = /obj/projectile/guardian
- ranged_cooldown_time = 1 //fast!
- projectilesound = 'sound/effects/hit_on_shattered_glass.ogg'
- ranged = 1
- range = 13
- playstyle_string = "As a ranged type, you have only light damage resistance, but are capable of spraying shards of crystal at incredibly high speed. You can also deploy surveillance snares to monitor enemy movement. Finally, you can switch to scout mode, in which you can't attack, but can move without limit."
- magic_fluff_string = "..And draw the Sentinel, an alien master of ranged combat."
- tech_fluff_string = "Boot sequence complete. Ranged combat modules active. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! Caught one, it's a ranged carp. This fishy can watch people pee in the ocean."
- miner_fluff_string = "You encounter... Diamond, a powerful projectile thrower."
- see_invisible = SEE_INVISIBLE_LIVING
- see_in_dark = 8
- toggle_button_type = /atom/movable/screen/guardian/ToggleMode
- var/list/snares = list()
- var/toggle = FALSE
- speed = -2//very fast!
-
-/mob/living/simple_animal/hostile/guardian/ranged/ToggleMode()
- if(loc == summoner)
- if(toggle)
- ranged = initial(ranged)
- melee_damage_lower = initial(melee_damage_lower)
- melee_damage_upper = initial(melee_damage_upper)
- obj_damage = initial(obj_damage)
- environment_smash = initial(environment_smash)
- alpha = 255
- range = initial(range)
- to_chat(src, "You switch to combat mode.")
- toggle = FALSE
- else
- ranged = 0
- melee_damage_lower = 0
- melee_damage_upper = 0
- obj_damage = 0
- environment_smash = ENVIRONMENT_SMASH_NONE
- alpha = 45
- range = 255
- to_chat(src, "You switch to scout mode.")
- toggle = TRUE
- else
- to_chat(src, "You have to be recalled to toggle modes!")
-
-/mob/living/simple_animal/hostile/guardian/ranged/Shoot(atom/targeted_atom)
- . = ..()
- if(istype(., /obj/projectile))
- var/obj/projectile/P = .
- if(guardiancolor)
- P.color = guardiancolor
-
-/mob/living/simple_animal/hostile/guardian/ranged/ToggleLight()
- var/msg
- switch(lighting_alpha)
- if (LIGHTING_PLANE_ALPHA_VISIBLE)
- lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
- msg = "You activate your night vision."
- if (LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE)
- lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
- msg = "You increase your night vision."
- if (LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE)
- lighting_alpha = LIGHTING_PLANE_ALPHA_INVISIBLE
- msg = "You maximize your night vision."
- else
- lighting_alpha = LIGHTING_PLANE_ALPHA_VISIBLE
- msg = "You deactivate your night vision."
-
- to_chat(src, "[msg]")
-
-
-/mob/living/simple_animal/hostile/guardian/ranged/verb/Snare()
- set name = "Set Surveillance Snare"
- set category = "Guardian"
- set desc = "Set an invisible snare that will alert you when living creatures walk over it. Max of 5"
- if(snares.len <6)
- var/turf/snare_loc = get_turf(loc)
- var/obj/effect/snare/S = new /obj/effect/snare(snare_loc)
- S.spawner = src
- S.name = "[get_area(snare_loc)] snare ([rand(1, 1000)])"
- snares |= S
- to_chat(src, "Surveillance snare deployed!")
- else
- to_chat(src, "You have too many snares deployed. Remove some first.")
-
-/mob/living/simple_animal/hostile/guardian/ranged/verb/DisarmSnare()
- set name = "Remove Surveillance Snare"
- set category = "Guardian"
- set desc = "Disarm unwanted surveillance snares."
- var/picked_snare = input(src, "Pick which snare to remove", "Remove Snare") as null|anything in sortNames(snares)
- if(picked_snare)
- snares -= picked_snare
- qdel(picked_snare)
- to_chat(src, "Snare disarmed.")
-
-/obj/effect/snare
- name = "snare"
- desc = "You shouldn't be seeing this!"
- var/mob/living/simple_animal/hostile/guardian/spawner
- invisibility = INVISIBILITY_ABSTRACT
-
-/obj/effect/snare/Initialize()
- . = ..()
- var/static/list/loc_connections = list(
- COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
- )
- AddElement(/datum/element/connect_loc, loc_connections)
-
-
-/obj/effect/snare/proc/on_entered(datum/source, AM as mob|obj)
- SIGNAL_HANDLER
- if(isliving(AM) && spawner && spawner.summoner && AM != spawner && !spawner.hasmatchingsummoner(AM))
- to_chat(spawner.summoner, "[AM] has crossed surveillance snare, [name].")
- var/list/guardians = spawner.summoner.hasparasites()
- for(var/para in guardians)
- to_chat(para, "[AM] has crossed surveillance snare, [name].")
-
-/obj/effect/snare/singularity_act()
- return
-
-/obj/effect/snare/singularity_pull()
- return
-
-/mob/living/simple_animal/hostile/guardian/ranged/Manifest(forced)
- if (toggle)
- incorporeal_move = INCORPOREAL_MOVE_BASIC
- . = ..()
-
-/mob/living/simple_animal/hostile/guardian/ranged/Recall(forced)
- // To stop scout mode from moving when recalled
- incorporeal_move = FALSE
- . = ..()
-
-/mob/living/simple_animal/hostile/guardian/ranged/AttackingTarget()
- if(toggle)
- return
- ..()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/slime.dm b/code/modules/mob/living/simple_animal/guardian/types/slime.dm
deleted file mode 100644
index bf38ffed2ef2..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/slime.dm
+++ /dev/null
@@ -1,73 +0,0 @@
-//Slime guardian- modified support guardian who has higher utility but is less potent in battle
-/mob/living/simple_animal/hostile/guardian/slime
- a_intent = INTENT_HARM
- speed = 0
- damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- melee_damage_lower = 10
- melee_damage_upper = 10
- melee_damage_type = TOX
- playstyle_string = "As a slime type, you can toggle between a weak combat mode, and a strong healing mode that nourishes and repairs damage. This mode also works on slimes. Be warned: You are more vulnerable to damage then most holoparasites."
- magic_fluff_string = "..And draw the Xenobiologist, a purveyor of godlike power."
- carp_fluff_string = "CARP CARP CARP! You caught a slimy carp. Gross, maybe you should throw this one back."
- tech_fluff_string = "Boot sequence complete. Xenobiological support module active. Holoparasite swarm online."
- miner_fluff_string = "You encounter... Slime, the master of xenobiology."
- slime_fluff_string = "The crystal in your hand shatters into mist, which forms a strange, slimy figure!"
- toggle_button_type = /atom/movable/screen/guardian/ToggleMode
- var/toggle = FALSE
-
-/mob/living/simple_animal/hostile/guardian/slime/Initialize()
- . = ..()
- var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
- medsensor.add_hud_to(src)
-
-/mob/living/simple_animal/hostile/guardian/slime/AttackingTarget()
- . = ..()
- if(is_deployed() && toggle && isslime(target))
- var/mob/living/simple_animal/slime/slime = target
- slime.add_nutrition(rand(14, 30))
- slime.adjustHealth(10)
- return
-
- if(is_deployed() && toggle && iscarbon(target))
- var/mob/living/carbon/C = target
- C.adjustBruteLoss(-7)
- C.adjustFireLoss(-7)
- C.adjustOxyLoss(-7)
- C.adjustToxLoss(-7)
- C.adjustCloneLoss(-0.5)
- C.adjust_nutrition(10)
- var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(C))
- if(guardiancolor)
- H.color = guardiancolor
- if(C == summoner)
- update_health_hud()
- med_hud_set_health()
- med_hud_set_status()
-
- if(is_deployed() && toggle == FALSE && iscarbon(target))
- if(prob(20))
- var/mob/living/carbon/D = target
- D.Paralyze(25)
- D.visible_message("\The [src] knocks down \the [D]!", \
- "\The [src] knocks you down!")
-
-/mob/living/simple_animal/hostile/guardian/slime/ToggleMode()
- if(src.loc == summoner)
- if(toggle)
- a_intent = INTENT_HARM
- speed = -1
- damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.2, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- melee_damage_lower = 15
- melee_damage_upper = 15
- to_chat(src, "Blorble... You switch to combat mode.")
- toggle = FALSE
- else
- a_intent = INTENT_HELP
- speed = 2
- damage_coeff = list(BRUTE = 1.2, BURN = 1.2, TOX = 0.7, CLONE = 1.2, STAMINA = 0, OXY = 1.2)
- melee_damage_lower = 0
- melee_damage_upper = 0
- to_chat(src, "You switch to nourshing mode. Yummy.")
- toggle = TRUE
- else
- to_chat(src, "You have to be recalled to toggle modes!")
diff --git a/code/modules/mob/living/simple_animal/guardian/types/standard.dm b/code/modules/mob/living/simple_animal/guardian/types/standard.dm
deleted file mode 100644
index 2528a0914717..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/standard.dm
+++ /dev/null
@@ -1,36 +0,0 @@
-//Standard
-/mob/living/simple_animal/hostile/guardian/punch
- melee_damage_lower = 20
- melee_damage_upper = 20
- obj_damage = 80
- next_move_modifier = 0.6 //attacks 40% faster
- environment_smash = ENVIRONMENT_SMASH_WALLS
- playstyle_string = "As a standard type you have no special abilities, but have a high damage resistance and a powerful attack capable of smashing through walls."
- magic_fluff_string = "..And draw the Assistant, faceless and generic, but never to be underestimated."
- tech_fluff_string = "Boot sequence complete. Standard combat modules loaded. Holoparasite swarm online."
- carp_fluff_string = "CARP CARP CARP! You caught one! It's really boring and standard. Better punch some walls to ease the tension."
- miner_fluff_string = "You encounter... Adamantine, a powerful attacker."
- var/battlecry = "AT"
- speed = 4//unlike funny jojo man, the punch ghost is actually balanced by their low mobility
-
-/mob/living/simple_animal/hostile/guardian/punch/verb/Battlecry()
- set name = "Set Battlecry"
- set category = "Guardian"
- set desc = "Choose what you shout as you punch people."
- var/input = stripped_input(src,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7)
- if(input)
- battlecry = input
-
-
-
-/mob/living/simple_animal/hostile/guardian/punch/AttackingTarget()
- . = ..()
- if(isliving(target))
- say("[battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry]!!", ignore_spam = TRUE)
- playsound(loc, src.attack_sound, 50, TRUE, TRUE)
- playsound(loc, src.attack_sound, 50, TRUE, TRUE)
- playsound(loc, src.attack_sound, 50, TRUE, TRUE)
- playsound(loc, src.attack_sound, 50, TRUE, TRUE)
- if(isanimal(target))
- var/mob/living/C = target
- C.apply_damage(35, BRUTE)
diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm
deleted file mode 100644
index 57f1b1892f9d..000000000000
--- a/code/modules/mob/living/simple_animal/guardian/types/support.dm
+++ /dev/null
@@ -1,148 +0,0 @@
-//Healer
-/mob/living/simple_animal/hostile/guardian/healer
- a_intent = INTENT_HARM
- friendly_verb_continuous = "heals"
- friendly_verb_simple = "heal"
- speed = 0
- damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- melee_damage_lower = 15
- melee_damage_upper = 15
- playstyle_string = "As a support type, you may toggle your basic attacks to a healing mode. In addition, Alt-Clicking on an adjacent object or mob will warp them to your bluespace beacon after a short delay."
- magic_fluff_string = "..And draw the CMO, a potent force of life... and death."
- carp_fluff_string = "CARP CARP CARP! You caught a support carp. It's a kleptocarp!"
- tech_fluff_string = "Boot sequence complete. Support modules active. Holoparasite swarm online."
- miner_fluff_string = "You encounter... Bluespace, the master of support."
- toggle_button_type = /atom/movable/screen/guardian/ToggleMode
- var/obj/structure/receiving_pad/beacon
- var/beacon_cooldown = 0
- var/toggle = FALSE
-
-/mob/living/simple_animal/hostile/guardian/healer/Initialize()
- . = ..()
- var/datum/atom_hud/medsensor = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
- medsensor.add_hud_to(src)
-
-/mob/living/simple_animal/hostile/guardian/healer/get_status_tab_items()
- . = ..()
- if(beacon_cooldown >= world.time)
- . += "Beacon Cooldown Remaining: [DisplayTimeText(beacon_cooldown - world.time)]"
-
-/mob/living/simple_animal/hostile/guardian/healer/AttackingTarget()
- . = ..()
- if(is_deployed() && toggle && iscarbon(target))
- var/mob/living/carbon/C = target
- C.adjustBruteLoss(-5)
- C.adjustFireLoss(-5)
- C.adjustOxyLoss(-5)
- C.adjustToxLoss(-5)
- var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(C))
- if(guardiancolor)
- H.color = guardiancolor
- if(C == summoner)
- update_health_hud()
- med_hud_set_health()
- med_hud_set_status()
-
-/mob/living/simple_animal/hostile/guardian/healer/ToggleMode()
- if(src.loc == summoner)
- if(toggle)
- a_intent = INTENT_HARM
- speed = -2
- damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7)
- melee_damage_lower = 5
- melee_damage_upper = 5
- next_move_modifier = 0.3///attack as fast as you can click, but your actual hits are basically tickle damage :))
- to_chat(src, "You switch to combat mode.")
- toggle = FALSE
- else
- a_intent = INTENT_HELP
- speed = 1
- damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
- melee_damage_lower = 0
- melee_damage_upper = 0
- to_chat(src, "You switch to healing mode.")
- toggle = TRUE
- else
- to_chat(src, "You have to be recalled to toggle modes!")
-
-
-/mob/living/simple_animal/hostile/guardian/healer/verb/Beacon()
- set name = "Place Bluespace Beacon"
- set category = "Guardian"
- set desc = "Mark a floor as your beacon point, allowing you to warp targets to it. Your beacon will not work at extreme distances."
-
- if(beacon_cooldown >= world.time)
- to_chat(src, "Your power is on cooldown. You must wait five minutes between placing beacons.")
- return
-
- var/turf/beacon_loc = get_turf(src.loc)
- if(!isfloorturf(beacon_loc))
- return
-
- if(beacon)
- beacon.disappear()
- beacon = null
-
- beacon = new(beacon_loc, src)
-
- to_chat(src, "Beacon placed! You may now warp targets and objects to it, including your user, via Alt+Click.")
-
- beacon_cooldown = world.time + 3000
-
-/obj/structure/receiving_pad
- name = "bluespace receiving pad"
- icon = 'icons/turf/floors.dmi'
- desc = "A receiving zone for bluespace teleportations."
- icon_state = "light_on_flicker-1"
- light_range = MINIMUM_USEFUL_LIGHT_RANGE
- density = FALSE
- anchored = TRUE
- layer = ABOVE_OPEN_TURF_LAYER
-
-/obj/structure/receiving_pad/New(loc, mob/living/simple_animal/hostile/guardian/healer/G)
- . = ..()
- if(G?.guardiancolor)
- add_atom_colour(G.guardiancolor, FIXED_COLOUR_PRIORITY)
-
-/obj/structure/receiving_pad/proc/disappear()
- visible_message("[src] vanishes!")
- qdel(src)
-
-/mob/living/simple_animal/hostile/guardian/healer/AltClickOn(atom/movable/A)
- if(!istype(A))
- return
- if(src.loc == summoner)
- to_chat(src, "You must be manifested to warp a target!")
- return
- if(!beacon)
- to_chat(src, "You need a beacon placed to warp things!")
- return
- if(!Adjacent(A))
- to_chat(src, "You must be adjacent to your target!")
- return
- if(A.anchored)
- to_chat(src, "Your target cannot be anchored!")
- return
-
- var/turf/T = get_turf(A)
- if(beacon.virtual_z() != T.virtual_z())
- to_chat(src, "The beacon is too far away to warp to!")
- return
-
- to_chat(src, "You begin to warp [A].")
- A.visible_message("[A] starts to glow faintly!", \
- "You start to faintly glow, and you feel strangely weightless!")
- do_attack_animation(A)
-
- if(!do_after(src, 6 SECONDS, A)) //now start the channel
- to_chat(src, "You need to hold still!")
- return
-
- new /obj/effect/temp_visual/guardian/phase/out(T)
- if(isliving(A))
- var/mob/living/L = A
- L.flash_act()
- A.visible_message("[A] disappears in a flash of light!", \
- "Your vision is obscured by a flash of light!")
- do_teleport(A, beacon, 0, channel = TELEPORT_CHANNEL_BLUESPACE)
- new /obj/effect/temp_visual/guardian/phase(get_turf(A))
diff --git a/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
index 78432c92a4d5..038aae0900de 100644
--- a/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
@@ -9,7 +9,7 @@
status_flags = CANSTUN|CANKNOCKDOWN|CANPUSH
mouse_opacity = MOUSE_OPACITY_ICON
a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
move_to_delay = 10
health = 70
@@ -35,14 +35,14 @@
minimum_distance = 1
icon_state = "mining_drone_offense"
faction = list("mining", "turret")
- loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/lootdrop/minebot)
+ loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/random/minebot)
projectiletype = /obj/projectile/kinetic/miner/weak
/obj/projectile/kinetic/miner/weak
damage = 15
-/obj/effect/spawner/lootdrop/minebot
+/obj/effect/spawner/random/minebot
loot = list(/obj/item/borg/upgrade/modkit/minebot_passthrough = 15,
/obj/item/borg/upgrade/modkit/chassis_mod = 15,
/obj/item/borg/upgrade/modkit/tracer = 15,
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index ec7c76f5ca61..402c6c920c0b 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -22,7 +22,7 @@
bubble_icon = "alien"
a_intent = INTENT_HARM
attack_sound = 'sound/weapons/bladeslice.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
unsuitable_atmos_damage = 15
faction = list(ROLE_ALIEN)
status_flags = CANPUSH
@@ -30,7 +30,6 @@
see_in_dark = 8
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
unique_name = 1
- gold_core_spawnable = HOSTILE_SPAWN
deathsound = 'sound/voice/hiss6.ogg'
deathmessage = "lets out a waning guttural screech, green blood bubbling from its maw..."
@@ -143,7 +142,6 @@
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 10,
/obj/item/stack/sheet/animalhide/xeno = 2)
mob_size = MOB_SIZE_LARGE
- gold_core_spawnable = NO_SPAWN
/obj/projectile/neurotox
name = "neurotoxin"
@@ -169,7 +167,6 @@
friendly_verb_simple = "caress"
obj_damage = 0
environment_smash = ENVIRONMENT_SMASH_NONE
- gold_core_spawnable = HOSTILE_SPAWN
icon_state = "maid"
icon_living = "maid"
icon_dead = "maid_dead"
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index b6f5c58b424e..2de363729229 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -34,7 +34,7 @@
friendly_verb_simple = "bear hug"
//Space bears aren't affected by cold.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
@@ -98,7 +98,6 @@
health = 120
maxHealth = 120
armored = TRUE
- gold_core_spawnable = HOSTILE_SPAWN
/mob/living/simple_animal/hostile/bear/cave
name = "brown bear"
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 676b58a98520..c019c6a65ad5 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -47,11 +47,10 @@
mob_size = MOB_SIZE_TINY
mob_biotypes = MOB_ORGANIC|MOB_BUG
movement_type = FLYING
- gold_core_spawnable = FRIENDLY_SPAWN
search_objects = 1 //have to find those plant trays!
//Spaceborn beings don't get hurt by space
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
del_on_death = 1
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 67a80713d8ec..4f0448b385c3 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -37,13 +37,12 @@
speak_emote = list("gnashes")
//Space carp aren't affected by cold.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
faction = list("carp", "mining")
movement_type = FLYING
pressure_resistance = 200
- gold_core_spawnable = HOSTILE_SPAWN
var/random_color = TRUE //if the carp uses random coloring
var/rarechance = 1 //chance for rare color variant
@@ -159,7 +158,6 @@
icon_state = "holocarp"
icon_living = "holocarp"
maxbodytemp = INFINITY
- gold_core_spawnable = NO_SPAWN
del_on_death = 1
random_color = FALSE
food_type = list()
@@ -229,7 +227,6 @@
desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot."
gender = FEMALE
speak_emote = list("squeaks")
- gold_core_spawnable = NO_SPAWN
faction = list(ROLE_SYNDICATE)
AIStatus = AI_OFF
rarechance = 10
diff --git a/code/modules/mob/living/simple_animal/hostile/clown.dm b/code/modules/mob/living/simple_animal/hostile/clown.dm
index b513c74e9d58..756556191ae9 100644
--- a/code/modules/mob/living/simple_animal/hostile/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/clown.dm
@@ -29,7 +29,6 @@
del_on_death = 1
loot = list(/obj/effect/mob_spawn/human/clown/corpse)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 270
maxbodytemp = 370
unsuitable_atmos_damage = 10
diff --git a/code/modules/mob/living/simple_animal/hostile/cockroach.dm b/code/modules/mob/living/simple_animal/hostile/cockroach.dm
index c822268a7fe2..d744d4a413c1 100644
--- a/code/modules/mob/living/simple_animal/hostile/cockroach.dm
+++ b/code/modules/mob/living/simple_animal/hostile/cockroach.dm
@@ -7,7 +7,7 @@
maxHealth = 1
turns_per_move = 5
loot = list(/obj/effect/decal/cleanable/insectguts)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 270
maxbodytemp = INFINITY
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
@@ -23,7 +23,6 @@
melee_damage_upper = 0
obj_damage = 0
ventcrawler = VENTCRAWLER_ALWAYS
- gold_core_spawnable = FRIENDLY_SPAWN
verb_say = "chitters"
verb_ask = "chitters inquisitively"
verb_exclaim = "chitters loudly"
@@ -49,7 +48,6 @@
melee_damage_lower = 5
melee_damage_upper = 5
obj_damage = 20
- gold_core_spawnable = HOSTILE_SPAWN
projectilesound = 'sound/weapons/gun/pistol/shot.ogg'
projectiletype = /obj/projectile/glockroachbullet
casingtype = /obj/item/ammo_casing/glockroach
diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
index 57a33c2ee02a..26f176d74fa5 100644
--- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
@@ -26,10 +26,9 @@
attack_verb_simple = "blink at"
attack_sound = 'sound/weapons/pierce.ogg'
movement_type = FLYING
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
- gold_core_spawnable = HOSTILE_SPAWN
faction = list("spooky")
del_on_death = 1
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm
index c9c2e131cc09..6959b9e61cd4 100644
--- a/code/modules/mob/living/simple_animal/hostile/faithless.dm
+++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm
@@ -27,11 +27,10 @@
attack_sound = 'sound/hallucinations/growl1.ogg'
speak_emote = list("growls")
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
faction = list("faithless")
- gold_core_spawnable = HOSTILE_SPAWN
footstep_type = FOOTSTEP_MOB_SHOE
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 5e3e8d0b34d5..fa15c57249e9 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -50,7 +50,6 @@
attack_verb_simple = "bite"
attack_sound = 'sound/weapons/bite.ogg'
unique_name = 1
- gold_core_spawnable = HOSTILE_SPAWN
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
footstep_type = FOOTSTEP_MOB_CLAW
mob_size = MOB_SIZE_LARGE
@@ -122,7 +121,6 @@
var/datum/action/innate/spider/lay_eggs/lay_eggs
var/datum/action/innate/spider/set_directive/set_directive
var/static/list/consumed_mobs = list() //the refs of mobs that have been consumed by nurse spiders to lay eggs
- gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/Initialize()
. = ..()
@@ -172,7 +170,6 @@
melee_damage_upper = 20
poison_per_bite = 5
move_to_delay = 5
- gold_core_spawnable = NO_SPAWN
//vipers are the rare variant of the hunter, no IMMEDIATE damage but so much poison medical care will be needed fast.
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper
@@ -205,7 +202,6 @@
move_to_delay = 8
speed = 9
status_flags = NONE
- gold_core_spawnable = NO_SPAWN
var/slowed_by_webs = FALSE
/mob/living/simple_animal/hostile/poison/giant_spider/tarantula/Moved(atom/oldloc, dir)
@@ -220,16 +216,15 @@
/mob/living/simple_animal/hostile/poison/giant_spider/ice //spiders dont usually like tempatures of 140 kelvin who knew
name = "giant ice spider"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
poison_type = /datum/reagent/consumable/frostoil
color = rgb(114,228,250)
- gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/ice
name = "giant ice spider"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
poison_type = /datum/reagent/consumable/frostoil
@@ -237,12 +232,11 @@
/mob/living/simple_animal/hostile/poison/giant_spider/hunter/ice
name = "giant ice spider"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
poison_type = /datum/reagent/consumable/frostoil
color = rgb(114,228,250)
- gold_core_spawnable = NO_SPAWN
/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action()
if(!..()) //AIStatus is off
diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm
index a175bb40feca..6a11507beea1 100644
--- a/code/modules/mob/living/simple_animal/hostile/goose.dm
+++ b/code/modules/mob/living/simple_animal/hostile/goose.dm
@@ -29,7 +29,6 @@
speak_emote = list("honks")
faction = list("neutral")
attack_same = TRUE
- gold_core_spawnable = HOSTILE_SPAWN
var/random_retaliate = TRUE
var/icon_vomit_start = "vomit_start"
var/icon_vomit = "vomit"
@@ -95,7 +94,6 @@
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
- gold_core_spawnable = NO_SPAWN
random_retaliate = FALSE
var/vomiting = FALSE
var/vomitCoefficient = 1
diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
index 850ff235375f..292a9fee3658 100644
--- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm
+++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
@@ -73,8 +73,6 @@
if(origin && (origin.current ? (origin.current.stat == DEAD) : origin.get_ghost()))
origin.transfer_to(M)
var/datum/antagonist/changeling/C = origin.has_antag_datum(/datum/antagonist/changeling)
- if(!C)
- C = origin.add_antag_datum(/datum/antagonist/changeling/xenobio)
if(C.can_absorb_dna(owner))
C.add_new_profile(owner)
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 431229fefc44..b1ec09756c82 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -1,29 +1,29 @@
-/obj/projectile/hivebotbullet
- damage = 10
- damage_type = BRUTE
-
/mob/living/simple_animal/hostile/hivebot
name = "hivebot"
- desc = "A small robot."
+ desc = "A human-sized automaton clad in the scrap of a dead world. Exposed circuitry sparks subtly as it analyzes the area around it."
icon = 'icons/mob/hivebot.dmi'
icon_state = "basic"
icon_living = "basic"
icon_dead = "basic"
gender = NEUTER
mob_biotypes = MOB_ROBOTIC
- health = 15
- maxHealth = 15
+ health = 35
+ maxHealth = 35
healable = 0
- melee_damage_lower = 2
- melee_damage_upper = 3
+ melee_damage_lower = 8
+ melee_damage_upper = 12
+
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
attack_sound = 'sound/weapons/bladeslice.ogg'
+ casingtype = /obj/item/ammo_casing/c10mm
projectilesound = 'sound/weapons/gun/pistol/shot.ogg'
- projectiletype = /obj/projectile/hivebotbullet
+
+ armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 100, "fire" = 50, "acid" = 0)
+
faction = list("hivebot")
check_friendly_fire = 1
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
possible_a_intents = list(INTENT_HELP, INTENT_GRAB, INTENT_DISARM, INTENT_HARM)
minbodytemp = 0
verb_say = "states"
@@ -35,7 +35,16 @@
del_on_death = 1
minbodytemp = 0
maxbodytemp = 600
- loot = list(/obj/effect/decal/cleanable/robot_debris)
+ loot = list(
+ /obj/effect/decal/cleanable/robot_debris,
+ /obj/effect/spawner/random/waste/hivebot,
+ /obj/effect/spawner/random/waste/hivebot/part,
+ )
+
+ //yeah so it turns out that /simple_animal/hostile gets upset when you call say because say contains a sleep. so we have to do this on subtypes.
+ var/list/aggro_blurb = list("INFILTRATOR WITHIN AO!!", "TERMINATE HOSTILE!!", "DEFEND TERMINUS!!", "CODE 7-34!!")
+ var/aggro_blurb_chance = 10
+
var/alert_light
footstep_type = FOOTSTEP_MOB_CLAW
@@ -48,8 +57,9 @@
. = ..()
a_intent_change(INTENT_HARM)
update_icons()
- if(prob(5))
- say(pick("INTRUDER DETECTED!", "CODE 7-34.", "101010!!"), forced = type)
+ if(prob(aggro_blurb_chance))
+ say("[pick(aggro_blurb)]", forced = type)
+
/mob/living/simple_animal/hostile/hivebot/LoseAggro()
. = ..()
@@ -69,58 +79,105 @@
/mob/living/simple_animal/hostile/hivebot/death(gibbed)
do_sparks(3, TRUE, src)
- new /obj/effect/spawner/lootdrop/waste/hivebot(loc)
..(TRUE)
-/mob/living/simple_animal/hostile/hivebot/range
- name = "hivebot"
- desc = "A smallish robot, this one is armed!"
+/mob/living/simple_animal/hostile/hivebot/ranged
+ name = "combat hivebot"
+ desc = "A human-sized automaton clad in the scrap of a dead world. A weapon pivots around on its top, searching for a target to engage."
icon_state = "ranged"
icon_living = "ranged"
icon_dead = "ranged"
ranged = TRUE
retreat_distance = 5
minimum_distance = 5
-
-/mob/living/simple_animal/hostile/hivebot/range/rockplanet
- faction = list("mining", "hivebot")
-
-/mob/living/simple_animal/hostile/hivebot/rapid
- icon_state = "ranged"
- icon_living = "ranged"
- icon_dead = "ranged"
+ loot = list(
+ /obj/effect/decal/cleanable/robot_debris,
+ /obj/effect/spawner/random/waste/hivebot,
+ /obj/effect/spawner/random/waste/hivebot/part,
+ /obj/effect/spawner/random/waste/hivebot/part,
+ )
+
+/mob/living/simple_animal/hostile/hivebot/ranged/rapid
ranged = TRUE
rapid = 3
- retreat_distance = 5
- minimum_distance = 5
-
-/mob/living/simple_animal/hostile/hivebot/rapid/rockplanet
- faction = list("mining", "hivebot")
+ casingtype = /obj/item/ammo_casing/c57x39mm
+ projectilesound = 'sound/weapons/gun/smg/sidewinder.ogg'
/mob/living/simple_animal/hostile/hivebot/strong
- name = "strong hivebot"
+ name = "heavy hivebot"
+ desc = "A towering scrap-clad monolith. Hatred radiates out from the sensors that adorn it, beams of subtle light coming from within its sparking core."
+ armor = list("melee" = 30, "bullet" = 40, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 100, "fire" = 50, "acid" = 0)
icon_state = "strong"
icon_living = "strong"
icon_dead = "strong"
- desc = "A robot, this one is armed and looks tough!"
health = 80
maxHealth = 80
ranged = TRUE
+ casingtype = /obj/item/ammo_casing/mm712x82
+ projectilesound = 'sound/weapons/gun/rifle/hydra.ogg'
+ melee_damage_lower = 12
+ melee_damage_upper = 20
+ move_to_delay = 10
+ loot = list(
+ /obj/effect/decal/cleanable/robot_debris,
+ /obj/effect/spawner/random/waste/hivebot/more,
+ /obj/effect/spawner/random/waste/hivebot/part/heavy,
+ /obj/effect/spawner/random/waste/hivebot/part,
+ /obj/effect/spawner/random/waste/hivebot/part,
+ )
+
+/mob/living/simple_animal/hostile/hivebot/defender //slave to the system
+ name = "core hivebot"
+ desc = "A massive, alien tower of metal and circuitry. Eyes adorn its body, each one casting a ray of electronic light in myriad directions. Slaved to its whim is a scrapped turret mounting, angrily glancing at the world around it."
+ armor = list("melee" = 40, "bullet" = 60, "laser" = 30, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 100, "fire" = 50, "acid" = 0)
+ icon_state = "strong"
+ icon_living = "strong"
+ icon_dead = "strong"
+ health = 120
+ maxHealth = 120
+ ranged = TRUE
+
+ casingtype = /obj/item/ammo_casing/mm712x82
+ projectilesound = 'sound/weapons/gun/rifle/hydra.ogg'
+ rapid = 3
+
+ retreat_distance = 3
+ minimum_distance = 5
+
+ melee_damage_lower = 15
+ melee_damage_upper = 28
+
+ move_to_delay = 20
+
+ loot = list(
+ /obj/effect/decal/cleanable/robot_debris,
+ /obj/effect/spawner/random/waste/hivebot/more,
+ /obj/effect/spawner/random/waste/hivebot/part/superheavy,
+ /obj/effect/spawner/random/waste/hivebot/part/heavy,
+ /obj/effect/spawner/random/waste/hivebot/part/heavy,
+ )
+
+/mob/living/simple_animal/hostile/hivebot/defender/death(gibbed)
+ //once we get better sprites i want this to be like the claw's death. aka fucking cool.
+ radiation_pulse(src, 500)
+ explosion(src, 0,1,3,3,)
+ ..(TRUE)
-/mob/living/simple_animal/hostile/hivebot/strong/rockplanet
- faction = list("mining", "hivebot")
+
+/mob/living/simple_animal/hostile/hivebot/defender/Initialize(mapload)
+ . = ..()
+ transform *= 1.3
/mob/living/simple_animal/hostile/hivebot/mechanic
name = "hivebot mechanic"
icon_state = "strong"
icon_living = "strong"
icon_dead = "strong"
- desc = "A robot built for base upkeep, intended for use inside hivebot colonies."
+ desc = "A tidy yet discordant machine of scrap, adorned with analyzers, waldos, and touching eyes."
health = 60
maxHealth = 60
ranged = TRUE
rapid = 3
- gold_core_spawnable = HOSTILE_SPAWN
var/datum/action/innate/hivebot/foamwall/foam
/mob/living/simple_animal/hostile/hivebot/mechanic/Initialize(mapload)
@@ -173,43 +230,3 @@
return
new /obj/structure/foamedmetal(H.loc)
playsound(get_turf(H), 'sound/effects/extinguish.ogg', 50, TRUE, -1)
-
-
-/mob/living/simple_animal/hostile/hivebot/wasteplanet
- name = "hivebot"
- desc = "A smallish robot, this one is armed!"
- icon_state = "basic"
- icon_living = "basic"
- icon_dead = "basic"
- ranged = FALSE
- faction = list("mining", "hivebot")
- health = 30
- maxHealth = 30
- healable = 0
- melee_damage_lower = 5
- melee_damage_upper = 15
-
-
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged
- ranged = TRUE
- icon_state = "ranged"
- icon_living = "ranged"
- icon_dead = "ranged"
- ranged = TRUE
- retreat_distance = 5
- minimum_distance = 5
-
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid
- rapid = 3
-
-/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong
- name = "strong hivebot"
- icon_state = "strong"
- icon_living = "strong"
- icon_dead = "strong"
- desc = "A robot, this one is armed and looks tough!"
- health = 80
- maxHealth = 80
- ranged = TRUE
- retreat_distance = 5
- minimum_distance = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 7490a5d81e33..7580834f49b5 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -18,8 +18,10 @@
var/projectiletype //set ONLY it and NULLIFY casingtype var, if we have ONLY projectile
var/projectilesound
var/casingtype //set ONLY it and NULLIFY projectiletype, if we have projectile IN CASING
- var/move_to_delay = 3 //delay for the automated movement.
+ ///delay for the automated movement.
+ var/move_to_delay = 3
var/list/friends = list()
+
var/list/emote_taunt = list()
var/taunt_chance = 0
@@ -33,7 +35,7 @@
var/check_friendly_fire = FALSE // Should the ranged mob check for friendlies when shooting
var/retreat_distance = null //If our mob runs from players when they're too close, set in tile distance. By default, mobs do not retreat.
var/minimum_distance = 1 //Minimum approach distance, so ranged mobs chase targets down, but still keep their distance set in tiles to the target, set higher to make mobs keep distance
-
+ var/shoot_point_blank = FALSE // If this mob will still shoot even in melee range.
//These vars are related to how mobs locate and target
var/robust_searching = 0 //By default, mobs have a simple searching method, set this to 1 for the more scrutinous searching (stat_attack, stat_exclusive, etc), should be disabled on most mobs
@@ -240,12 +242,12 @@
if(istype(the_target, /obj/machinery/porta_turret))
var/obj/machinery/porta_turret/P = the_target
- if(P.in_faction(src)) //Don't attack if the turret is in the same faction
- return FALSE
- if(P.has_cover &&!P.raised) //Don't attack invincible turrets
+ if(!(P.turret_flags & TURRET_FLAG_SHOOT_FAUNA)) //Don't attack turrets that won't shoot us
return FALSE
if(P.machine_stat & BROKEN) //Or turrets that are already broken
return FALSE
+ if(faction_check(P.faction, faction)) //Or turrets in the same faction
+ return FALSE
return TRUE
if(istype(the_target, /obj/machinery/drill))
@@ -315,7 +317,10 @@
Goto(target,move_to_delay,minimum_distance)
if(target)
if(isturf(target_from.loc) && target.Adjacent(target_from)) //If they're next to us, attack
- MeleeAction()
+ if(ranged && shoot_point_blank && ranged_cooldown <= world.time)
+ OpenFire(target)
+ else
+ MeleeAction()
else
if(rapid_melee > 1 && target_distance <= melee_queue_distance)
MeleeAction(FALSE)
@@ -366,9 +371,10 @@
/mob/living/simple_animal/hostile/proc/Aggro()
vision_range = aggro_vision_range
- if(target && emote_taunt.len && prob(taunt_chance))
- manual_emote("[pick(emote_taunt)] at [target].")
- taunt_chance = max(taunt_chance-7,2)
+ if(target)
+ if(emote_taunt.len && prob(taunt_chance))
+ manual_emote("[pick(emote_taunt)] at [target].")
+ taunt_chance = max(taunt_chance-7,2)
/mob/living/simple_animal/hostile/proc/LoseAggro()
@@ -702,3 +708,27 @@
if (length(initial(src.faction)) > 0)
src.faction += initial(src.faction)
src.faction += tag
+
+/mob/living/simple_animal/hostile/proc/fire_line(source, list/turfs, fire_source = "fire breath", ignite_turfs = FALSE, power = 4, flame_color = "red")
+ var/list/hit_list = list()
+ for(var/turf/T in turfs)
+ if(istype(T, /turf/closed))
+ break
+ new /obj/effect/hotspot(T)
+ T.hotspot_expose(700,50,1)
+ if(ignite_turfs)
+ T.IgniteTurf(power,flame_color)
+ for(var/mob/living/L in T.contents)
+ if((L in hit_list) || L == source)
+ continue
+ hit_list += L
+ L.adjustFireLoss(20)
+ to_chat(L, "You're hit by [source]'s [fire_source]!")
+
+ // deals damage to mechs
+ for(var/obj/mecha/M in T.contents)
+ if(M in hit_list)
+ continue
+ hit_list += M
+ M.take_damage(45, BRUTE, "melee", 1)
+ sleep(1.5)
diff --git a/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm b/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm
deleted file mode 100644
index 0f14f615e5b6..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/human/cat_butcher.dm
+++ /dev/null
@@ -1,86 +0,0 @@
-/mob/living/simple_animal/hostile/human/cat_butcherer
- name = "Cat Surgeon"
- desc = "Feline genemod physiological modification surgery is outlawed in Nanotrasen-controlled sectors. This doctor doesn't seem to care, and thus, is wanted for several warcrimes."
- icon_state = "cat_butcher"
- icon_living = "cat_butcher"
- projectiletype = /obj/projectile/bullet/dart/tranq
- projectilesound = 'sound/items/syringeproj.ogg'
- ranged = TRUE
- ranged_message = "fires the syringe gun at"
- ranged_cooldown_time = 30
- speak_chance = 0
- stat_attack = HARD_CRIT
- melee_damage_lower = 15
- melee_damage_upper = 15
- attack_verb_continuous = "slashes at"
- attack_verb_simple = "slash at"
- attack_sound = 'sound/weapons/circsawhit.ogg'
- loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/circular_saw, /obj/item/gun/syringe)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
- faction = list("hostile")
- check_friendly_fire = TRUE
- var/impatience = 0
-
-/mob/living/simple_animal/hostile/human/cat_butcherer/CanAttack(atom/the_target)
- if(iscarbon(target))
- var/mob/living/carbon/human/C = target
- if(C.getorgan(/obj/item/organ/ears/cat) && C.getorgan(/obj/item/organ/tail/cat) && C.has_trauma_type(/datum/brain_trauma/severe/pacifism))//he wont attack his creations
- if(C.stat >= UNCONSCIOUS && (!HAS_TRAIT(C, TRAIT_NOMETABOLISM) || !istype(C.dna.species, /datum/species/ipc)))//unless they need healing
- return ..()
- else
- return FALSE
- return ..()
-
-/mob/living/simple_animal/hostile/human/cat_butcherer/AttackingTarget()
- if(iscarbon(target))
- var/mob/living/carbon/human/L = target
- if(!L.getorgan(/obj/item/organ/ears/cat) && L.stat >= UNCONSCIOUS) //target doesnt have cat ears
- if(L.getorgan(/obj/item/organ/ears)) //slice off the old ears
- var/obj/item/organ/ears/ears = L.getorgan(/obj/item/organ/ears)
- visible_message("[src] slices off [L]'s ears!", "You slice [L]'s ears off.")
- ears.Remove(L)
- ears.forceMove(get_turf(L))
- else //implant new ears
- visible_message("[src] attaches a pair of cat ears to [L]!", "You attach a pair of cat ears to [L].")
- var/obj/item/organ/ears/cat/newears = new
- newears.Insert(L, drop_if_replaced = FALSE)
- return
- else if(!L.getorgan(/obj/item/organ/tail/cat) && L.stat >= UNCONSCIOUS)
- if(L.getorgan(/obj/item/organ/tail)) //cut off the tail if they have one already
- var/obj/item/organ/tail/tail = L.getorgan(/obj/item/organ/tail)
- visible_message("[src] severs [L]'s tail in one swift swipe!", "You sever [L]'s tail in one swift swipe.")
- tail.Remove(L)
- tail.forceMove(get_turf(L))
- else //put a cat tail on
- visible_message("[src] attaches a cat tail to [L]!", "You attach a tail to [L].")
- var/obj/item/organ/tail/cat/newtail = new
- newtail.Insert(L, drop_if_replaced = FALSE)
- return
- else if(!L.has_trauma_type(/datum/brain_trauma/severe/pacifism) && L.stat >= UNCONSCIOUS) //still does damage
- visible_message("[src] drills a hole in [L]'s skull!", "You pacify [L]. Another successful creation.")
- L.gain_trauma(/datum/brain_trauma/severe/pacifism, TRAUMA_RESILIENCE_SURGERY)
- say("I'm a genius!!")
- L.health += 20 //he heals a bit whenever he finishes
- else if(L.stat >= UNCONSCIOUS) //quickly heal them up and move on to our next target!
- visible_message("[src] injects [L] with an unknown medicine!", "You inject [L] with medicine.")
- L.SetSleeping(0, FALSE)
- L.SetUnconscious(0, FALSE)
- L.adjustOxyLoss(-50)// do CPR first
- if(L.blood_volume <= 500) //bandage them up and give em some blood if they're bleeding
- L.blood_volume += 30
- L.heal_bleeding(10)
- if(L.getBruteLoss() >= 50)// first, did we beat them into crit? if so, heal that
- var/healing = min(L.getBruteLoss(), 120)
- L.adjustBruteLoss(-healing)
- L.heal_bleeding(10)
- return
- else if(L.getFireLoss() >= 50) // are they still down from other damage? fix it, but not as fast as the burns
- var/healing = min(L.getFireLoss(), 50)
- L.adjustFireLoss(-healing)
- impatience += 50
- if(prob(impatience))
- FindTarget()//so we don't focus on some unconscious dude when we could get our eyes on the prize
- impatience = 0
- say("Bah!!")
- return
- return ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
index c21805ff12c7..b3884d104372 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/frontiersman.dm
@@ -1,6 +1,6 @@
/mob/living/simple_animal/hostile/human/frontier
- name = "Frontiersman"
- desc = "A frontiersman! A terrorist that would probably kill everyone without mercy."
+ name = "Frontiersman Shank"
+ desc = "A member of the brutal Frontiersman terrorist fleet! This one clutches a wicked-looking knife in nimble fingers, eager to relieve you of your innards."
icon_state = "frontiersmanmelee"
icon = 'icons/mob/simple_frontiersman.dmi'
icon_living = "frontiersmanmelee"
@@ -10,7 +10,6 @@
melee_damage_upper = 15
loot = list(/obj/effect/mob_spawn/human/corpse/frontier,
/obj/item/melee/knife/survival)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
faction = list(FACTION_ANTAG_FRONTIERSMEN)
footstep_type = FOOTSTEP_MOB_SHOE
@@ -18,13 +17,15 @@
icon_state = "frontiersmanmelee_mask"
icon_living = "frontiersmanmelee_mask"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier,
- /obj/item/clothing/mask/gas/sechailer,
+ /obj/item/clothing/mask/breath,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged
+ name = "Frontiersman Quickdraw"
+ desc = "A member of the brutal Frontiersman terrorist fleet! This one thumbs a slender revolver, stained chrome and a malicious smile glinting in the light."
icon_state = "frontiersmanranged"
icon_living = "frontiersmanranged"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
@@ -40,20 +41,59 @@
icon_living = "frontiersmanranged_mask"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
/obj/item/gun/ballistic/revolver/shadow,
- /obj/item/clothing/mask/gas/sechailer,
+ /obj/item/clothing/mask/breath,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged/internals/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
- /obj/item/clothing/mask/gas/sechailer,
+ /obj/item/clothing/mask/breath,
/obj/item/tank/internals/emergency_oxygen/engi)
/mob/living/simple_animal/hostile/human/frontier/ranged/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged)
+/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon
+ name = "Frontiersman Sawbones"
+ desc = "A member of the brutal Frontiersman terrorist fleet! They appear to be a \"doctor\" of some sort, nervously swinging about some kind of makeshift syringe launcher."
+ icon_state = "frontiersmansurgeon"
+ icon_living = "frontiersmansurgeon"
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/surgeon,
+ /obj/item/melee/knife/survival,
+ /obj/item/gun/syringe)
+
+ minimum_distance = 1
+ retreat_distance = null
+ projectiletype = /obj/projectile/bullet/dart/tranq
+ projectilesound = 'sound/items/syringeproj.ogg'
+ casingtype = null
+ ranged_message = "fires the syringe gun at"
+ ranged_cooldown_time = 30
+ armor_base = /obj/item/clothing/suit/frontiersmen
+
+/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon/neuter
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/surgeon)
+
+/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon/internals
+ icon_state = "frontiersmansurgeon_mask"
+ icon_living = "frontiersmansurgeon_mask"
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/surgeon,
+ /obj/item/melee/knife/survival,
+ /obj/item/gun/syringe,
+ /obj/item/clothing/mask/breath,
+ /obj/item/tank/internals/emergency_oxygen/engi)
+
+/mob/living/simple_animal/hostile/human/frontier/ranged/surgeon/internals/neuter
+ icon_state = "frontiersmansurgeon_mask"
+ icon_living = "frontiersmansurgeon_mask"
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/surgeon,
+ /obj/item/clothing/mask/breath,
+ /obj/item/tank/internals/emergency_oxygen/engi)
+
/mob/living/simple_animal/hostile/human/frontier/ranged/mosin
+ name = "Frontiersman Sharpshot"
+ desc = "A member of the brutal Frontiersman terrorist fleet! This one confidently mills about with a long rifle slung over their shoulder."
icon_state = "frontiersmanrangedrifle"
icon_living = "frontiersmanrangedrifle"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
@@ -66,28 +106,29 @@
icon_living = "frontiersmanrangedrifle_mask"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
/obj/item/gun/ballistic/rifle/illestren,
- /obj/item/clothing/mask/gas/sechailer,
+ /obj/item/clothing/mask/breath,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/internals/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged,
- /obj/item/clothing/mask/gas/sechailer,
+ /obj/item/clothing/mask/breath,
/obj/item/tank/internals/emergency_oxygen/engi)
/mob/living/simple_animal/hostile/human/frontier/ranged/mosin/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged)
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper
+ name = "Frontiersman Doorkicker"
+ desc = "A member of the brutal Frontiersman terrorist fleet! Bedecked in military-grade armor, they swagger their shotgun about with a boldness uncommon even among other Frontiersmen."
icon_state = "frontiersmanrangedelite"
icon_living = "frontiersmanrangedelite"
- maxHealth = 170
- health = 170
projectilesound = 'sound/weapons/gun/shotgun/shot.ogg'
casingtype = /obj/item/ammo_casing/shotgun/buckshot
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/gun/ballistic/shotgun/brimstone)
+ armor_base = /obj/item/clothing/suit/armor/vest/frontier
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals
icon_state = "frontiersmanrangedelite_mask"
@@ -96,7 +137,7 @@
/obj/item/gun/ballistic/shotgun/brimstone,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered
@@ -107,7 +148,39 @@
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame
+ name = "Frontiersman Scorcher"
+ desc = "An ashen revenant wades through a sea of flames, mummified under twenty pounds of blackened asbestos fabric. Mirrored lenses glare inscrutably as they swing their instrument of destruction towards you. You should probably run."
+ icon_state = "frontiersmanflametrooper"
+ icon_living = "frontiersmanflametrooper"
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/flame,
+ /obj/item/flamethrower)
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minbodytemp = 0
+ maxbodytemp = 1000
+
+ minimum_distance = 1
+ retreat_distance = null
+ shoot_point_blank = TRUE
+ projectiletype = null
+ projectilesound = 'sound/weapons/gun/flamethrower/flamethrower1.ogg'
+ casingtype = null
+ armor_base = /obj/item/clothing/suit/armor/frontier/fireproof
+
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame/OpenFire()
+ var/turf/T = get_ranged_target_turf_direct(src, target, 4)
+ var/list/burn_turfs = getline(src, T) - get_turf(src)
+ visible_message("[src] [ranged_message] at [target.name]!")
+ playsound(src, projectilesound, 100, TRUE)
+ fire_line(src, burn_turfs, "flamethrower", TRUE, 10)
+ ranged_cooldown = world.time + ranged_cooldown_time
+
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame/neuter
+ loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/flame)
+
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm
+ name = "Frontiersman Gunner"
+ desc = "A member of the brutal Frontiersman terrorist fleet! This one could almost be mistaken for a real soldier by their assault rifle and armor, if it weren't for their swaggering demeanor."
icon_state = "frontiersmanrangedak47"
icon_living = "frontiersmanrangedak47"
projectilesound = 'sound/weapons/gun/rifle/skm.ogg'
@@ -116,18 +189,19 @@
casingtype = /obj/item/ammo_casing/a762_40
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/gun/ballistic/automatic/assault/skm)
+ armor_base = /obj/item/clothing/suit/armor/vest/frontier
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/internals
icon_state = "frontiersmanrangedak47_mask"
icon_living = "frontiersmanrangedak47_mask"
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/gun/ballistic/automatic/assault/skm,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/skm/internals/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
@@ -136,6 +210,8 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle
+ name = "Frontiersman Crackshot"
+ desc = "A member of the brutal Frontiersman terrorist fleet! Compared to their allies, they stand a little straighter, laugh a little colder. Their long rifle has a regular series of scratches on the receiver."
icon_state = "frontiersmanrangedmosin"
icon_living = "frontiersmanrangedmosin"
@@ -143,6 +219,7 @@
/obj/item/gun/ballistic/rifle/illestren)
casingtype = /obj/item/ammo_casing/a8_50r
projectilesound = 'sound/weapons/gun/rifle/mosin.ogg'
+ armor_base = /obj/item/clothing/suit/armor/vest/frontier
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals
icon_state = "frontiersmanrangedmosin_mask"
@@ -151,7 +228,7 @@
/obj/item/gun/ballistic/rifle/illestren,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals/neutered
@@ -163,16 +240,17 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper)
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy
+ name = "Frontiersman Sweeper"
+ desc = "Unseen behind the mirror-visor of this heavily plated hardsuit, flinty eyes dream of cruelty. A mass of chrome and photonics swings your way, the soft whine of its motor a harbinger of iridescent death."
icon_state = "frontiersmanrangedminigun"
icon_living = "frontiersmanrangedminigun"
projectilesound = 'sound/weapons/laser4.ogg'
- maxHealth = 260
- health = 260
rapid = 6
rapid_fire_delay = 1.5
casingtype = null
projectiletype = /obj/projectile/beam/weak/penetrator
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy)
+ armor_base = /obj/item/clothing/suit/space/hardsuit/security/independent/frontier
/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals
icon_state = "frontiersmanrangedminigun_mask"
@@ -180,26 +258,26 @@
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
-/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/neutered
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/heavy/internals/neutered
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy/gunless,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
/mob/living/simple_animal/hostile/human/frontier/ranged/officer
- name = "Frontiersman Officer"
+ name = "Frontiersman Boss"
+ desc = "This Frontiersman moves with what could almost pass for discipline among the infamously ragtag terrorists. They leer at their underlings, one hand resting consciously over the machine pistol at their hip."
icon_state = "frontiersmanofficer"
icon_living = "frontiersmanofficer"
- maxHealth = 65
- health = 65
rapid = 4
projectilesound = 'sound/weapons/gun/pistol/mauler.ogg'
casingtype = /obj/item/ammo_casing/c9mm
loot = list(/obj/effect/mob_spawn/human/corpse/frontier/ranged/officer,
/obj/item/gun/ballistic/automatic/pistol/mauler)
+ armor_base = /obj/item/clothing/suit/armor/frontier
/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals
icon_state = "frontiersmanofficer_mask"
@@ -208,7 +286,7 @@
/obj/item/gun/ballistic/automatic/pistol/mauler,
/obj/item/clothing/mask/gas,
/obj/item/tank/internals/emergency_oxygen/engi)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals/neutered
diff --git a/code/modules/mob/living/simple_animal/hostile/human/human.dm b/code/modules/mob/living/simple_animal/hostile/human/human.dm
index 633bd40090e8..1efe7c02b261 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/human.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/human.dm
@@ -30,7 +30,6 @@
loot = list(/obj/effect/mob_spawn/human/corpse/damaged)
del_on_death = TRUE
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 15
minbodytemp = 180
status_flags = CANPUSH
@@ -39,3 +38,26 @@
footstep_type = FOOTSTEP_MOB_SHOE
faction = list("hermit")
+
+ ///Steals the armor datum from this type of armor
+ var/obj/item/clothing/armor_base
+
+/mob/living/simple_animal/hostile/human/Initialize()
+ . = ..()
+ if(ispath(armor_base, /obj/item/clothing))
+ //sigh. if only we could get the initial() value of list vars
+ var/obj/item/clothing/instance = new armor_base()
+ armor = instance.armor
+ qdel(instance)
+
+/mob/living/simple_animal/hostile/human/vv_edit_var(var_name, var_value)
+ switch(var_name)
+ if (NAMEOF(src, armor_base))
+ if(ispath(var_value, /obj/item/clothing))
+ var/obj/item/clothing/temp = new var_value
+ armor = temp.armor
+ qdel(temp)
+ datum_flags |= DF_VAR_EDITED
+ return TRUE
+ return FALSE
+ . = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm
index 6c1676d202ab..5898a9c75ea7 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/nanotrasen.dm
@@ -7,10 +7,10 @@
stat_attack = HARD_CRIT
melee_damage_upper = 15
loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
faction = list(ROLE_DEATHSQUAD)
check_friendly_fire = TRUE
dodging = TRUE
+ armor_base = /obj/item/clothing/suit/armor/vest
/mob/living/simple_animal/hostile/human/nanotrasen/screaming
icon_state = "nanotrasen"
@@ -62,8 +62,6 @@
icon = 'icons/mob/simple_human.dmi'
icon_state = "nanotrasen_ert"
icon_living = "nanotrasen_ert"
- maxHealth = 150
- health = 150
melee_damage_lower = 13
melee_damage_upper = 18
ranged = TRUE
@@ -72,9 +70,10 @@
rapid_melee = 3
retreat_distance = 0
minimum_distance = 1
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
projectiletype = /obj/projectile/beam/laser
projectilesound = 'sound/weapons/laser.ogg'
loot = list(/obj/effect/gibspawner/human)
faction = list(ROLE_DEATHSQUAD)
+ armor_base = /obj/item/clothing/suit/space/hardsuit/ert/sec
diff --git a/code/modules/mob/living/simple_animal/hostile/human/pirate.dm b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm
index df10cfa6a2b4..fd33a21fe038 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/pirate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/pirate.dm
@@ -5,10 +5,9 @@
icon_living = "piratemelee"
icon_dead = "pirate_dead"
speak_chance = 0
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
speak_emote = list("yarrs")
loot = list(/obj/effect/mob_spawn/human/corpse/pirate,
- /obj/item/melee/transforming/energy/sword/saber/pirate)
+ /obj/item/melee/energy/sword/saber/pirate)
faction = list("pirate")
/mob/living/simple_animal/hostile/human/pirate/melee
@@ -31,9 +30,10 @@
icon_state = "piratespace"
icon_living = "piratespace"
icon_dead = "piratespace_dead"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
speed = 1
+ armor_base = /obj/item/clothing/suit/space
/mob/living/simple_animal/hostile/human/pirate/melee/space/Initialize()
. = ..()
@@ -71,9 +71,10 @@
icon_state = "piratespaceranged"
icon_living = "piratespaceranged"
icon_dead = "piratespaceranged_dead"
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
speed = 1
+ armor_base = /obj/item/clothing/suit/space
/mob/living/simple_animal/hostile/human/pirate/ranged/space/Initialize()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
index 12a3c2b2604c..4eac3878efa1 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm
@@ -19,7 +19,7 @@
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/hallucinations/growl1.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
unsuitable_atmos_damage = 10
stat_attack = HARD_CRIT
faction = list("skeleton")
diff --git a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
index 44cf4d210f41..5b5b0d82faed 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/survivors.dm
@@ -7,6 +7,10 @@
loot = list(
/obj/effect/mob_spawn/human/corpse/damaged/whitesands
)
+ armor_base = /obj/item/clothing/suit/hooded/survivor
+
+ speak_emote = list("breathes heavily.", "growls.", "sharply inhales.")
+ emote_hear = list("murmers.","grumbles.","whimpers.")
/mob/living/simple_animal/hostile/human/hermit/survivor/death(gibbed)
move_force = MOVE_FORCE_DEFAULT
@@ -66,13 +70,28 @@
icon_living = "survivor_gunslinger"
projectilesound = 'sound/weapons/gun/smg/shot.ogg'
speed = 10
- rapid = 4
+ rapid = 3
rapid_fire_delay = 3
- casingtype = /obj/item/ammo_casing/a545_39/recycled
+ casingtype = /obj/item/ammo_casing/c46x30mm/recycled
loot = list(
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/gunslinger,
)
+/mob/living/simple_animal/hostile/human/hermit/ranged/e11 // Intended for the e11_manufactory ruin.
+ name = "Hermit Trooper"
+ desc = "Quality weapons are hard to get by in the sandworlds, which forces many survivors to improvise with that they have. This one is hoping that an E-11 of all things will save his life."
+ icon_state = "survivor_e11"
+ icon_living = "survivor_e11"
+ projectilesound = 'sound/weapons/gun/laser/e-fire.ogg'
+ speed = 10
+ faction = list("eoehoma")
+ rapid_fire_delay = 1
+ casingtype = null
+ projectiletype = /obj/projectile/beam/laser/eoehoma/hermit
+ loot = list(
+ /obj/effect/mob_spawn/human/corpse/damaged/whitesands/e11,
+ )
+
//survivor corpses
/obj/effect/mob_spawn/human/corpse/damaged/whitesands
@@ -85,7 +104,7 @@
var/survivor_type //room for alternatives inside the fuckoff grade init.
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity.
- mob_species = pickweight(list(
+ mob_species = pick_weight(list(
/datum/species/human = 50,
/datum/species/lizard = 20,
/datum/species/ipc = 10,
@@ -97,7 +116,7 @@
//to-do: learn how to make mobsprites for other survivors
//gloves are a tossup
- gloves = pickweight(list(
+ gloves = pick_weight(list(
/obj/item/clothing/gloves/color/black = 60,
/obj/item/clothing/gloves/explorer = 30,
/obj/item/clothing/gloves/explorer/old = 10
@@ -105,7 +124,7 @@
)
//bags are semi-random.
- back = pickweight(list(
+ back = pick_weight(list(
/obj/item/storage/backpack = 20,
/obj/item/storage/backpack/explorer = 20,
/obj/item/storage/backpack/satchel = 20,
@@ -117,7 +136,7 @@
//as are bag contents
backpack_contents = list()
if(prob(70))
- backpack_contents += pickweight(list( //these could stand to be expanded, right now they're just mildly modified miner ones, and I don't know how to plus that up.
+ backpack_contents += pick_weight(list( //these could stand to be expanded, right now they're just mildly modified miner ones, and I don't know how to plus that up.
/obj/item/soap = 10,
/obj/item/stack/marker_beacon/ten = 15,
/obj/item/mining_scanner = 5,
@@ -133,7 +152,7 @@
)
)
if(prob(70))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/stack/sheet/animalhide/goliath_hide = 20,
/obj/item/stack/marker_beacon/ten = 10,
/obj/item/mining_scanner = 20,
@@ -145,7 +164,7 @@
)
)
if(prob(70))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/stack/sheet/animalhide/goliath_hide = 5,
/obj/item/stack/marker_beacon/ten = 5,
/obj/item/mining_scanner = 5,
@@ -155,11 +174,11 @@
/obj/item/stack/sheet/sinew = 5,
/obj/item/stack/sheet/bone = 5,
/obj/item/melee/knife/combat = 3,
- /obj/item/reagent_containers/food/snacks/rationpack = 30
+ /obj/item/storage/ration/shredded_beef = 30
)
)
if (prob(15)) //mayhaps a medkit
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/storage/firstaid/regular = 50,
/obj/item/storage/firstaid/brute = 15,
/obj/item/storage/firstaid/medical = 15,
@@ -172,7 +191,7 @@
backpack_contents += /obj/item/reagent_containers/hypospray/medipen/survival
//masks
- mask = pickweight(list(
+ mask = pick_weight(list(
/obj/item/clothing/mask/gas = 40,
/obj/item/clothing/mask/gas/explorer = 20,
/obj/item/clothing/mask/gas/explorer/old = 20,
@@ -182,7 +201,7 @@
//the eyes are the window into the soul.
if(prob(70))
- glasses = pickweight(list(
+ glasses = pick_weight(list(
/obj/item/clothing/glasses/heat = 20,
/obj/item/clothing/glasses/cold = 20,
/obj/item/clothing/glasses/meson = 40,
@@ -194,7 +213,7 @@
if(prob(1)) //oh my god they can't hear the sandstorm coming they've got airpods in
ears = /obj/item/instrument/piano_synth/headphones/spacepods
else
- ears = pickweight(list(
+ ears = pick_weight(list(
/obj/item/radio/headset = 50,
/obj/item/radio/headset/alt = 50
)
@@ -203,17 +222,16 @@
switch(survivor_type)
if("survivor")
//uniforms are random to show varied backgrounds, but similar goal
- uniform = pickweight(list(
+ uniform = pick_weight(list(
/obj/item/clothing/under/color/random = 65,
/obj/item/clothing/under/rank/cargo/miner/lavaland = 10,
/obj/item/clothing/under/rank/prisoner = 10,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5,
- /obj/item/clothing/under/color/khaki/buster = 5,
/obj/item/clothing/under/rank/cargo/miner = 5
)
)
//storage is semi-randomized, giving some variety
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/storage/belt/fannypack = 40,
/obj/item/storage/belt/mining = 20,
/obj/item/storage/belt/mining/alt = 15,
@@ -229,7 +247,7 @@
r_pocket = /obj/item/spacecash/bundle/smallrand
if("hunter")
- uniform = pickweight(list(
+ uniform = pick_weight(list(
/obj/item/clothing/under/color/random = 50,
/obj/item/clothing/under/rank/cargo/miner/lavaland = 25,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
@@ -237,7 +255,7 @@
/obj/item/clothing/under/utility = 5
)
)
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/storage/belt/mining = 30,
/obj/item/storage/belt/fannypack = 20,
/obj/item/storage/belt/mining/alt = 15,
@@ -254,10 +272,10 @@
if(prob(20))
new /obj/item/gun/ballistic/rifle/polymer(loc)
else
- visible_message(span_warning("The hunter's weapon shatters as they impact the ground!"))
+ visible_message(span_warning("The hermit's weapon shatters as they impact the ground!"))
if("gunslinger")
- uniform = pickweight(list(
+ uniform = pick_weight(list(
/obj/item/clothing/under/rank/cargo/miner/lavaland = 35,
/obj/item/clothing/under/color/random = 25,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15,
@@ -266,7 +284,7 @@
/obj/item/clothing/under/syndicate/combat = 5
)
)
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/storage/belt/mining = 30,
/obj/item/storage/belt/bandolier = 30,
/obj/item/storage/belt/military = 20,
@@ -278,12 +296,31 @@
if(prob(30))
shoes = /obj/item/clothing/shoes/combat //sometimes there are nicer shoes
if(prob(50))
- l_pocket = /obj/item/ammo_box/magazine/skm_545_39
+ l_pocket = /obj/item/ammo_box/magazine/skm_46_30/recycled
if(prob(20))
new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc)
else
- visible_message(span_warning("The gunslinger's weapon shatters as they impact the ground!"))
+ visible_message(span_warning("The hermit's weapon shatters as they impact the ground!"))
+ if("e11")
+ uniform = pick_weight(list(
+ /obj/item/clothing/under/rank/cargo/miner = 65,
+ /obj/item/clothing/under/color/random = 25,
+ /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 10,
+ )
+ )
+ belt = pick_weight(list(
+ /obj/item/storage/belt/utility = 25,
+ /obj/item/storage/belt/mining = 15,
+ /obj/item/storage/belt/fannypack = 15,
+ /obj/item/storage/belt/mining/alt = 5,
+ )
+ )
+ shoes = /obj/item/clothing/shoes/workboots
+ if(prob(50)) // Hilarious, ain't it?
+ new /obj/item/gun/energy/e_gun/e11 (loc)
+ else
+ visible_message(span_warning("The trooper's weapon shatters as they impact the ground!"))
. = ..()
@@ -296,6 +333,9 @@
/obj/effect/mob_spawn/human/corpse/damaged/whitesands/gunslinger
survivor_type = "gunslinger"
+/obj/effect/mob_spawn/human/corpse/damaged/whitesands/e11
+ survivor_type = "e11"
+
//hold overs for any admin who may want to spawn their own survivor realmobs
/datum/outfit/whitesands
diff --git a/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
index a88a79610b60..7e0f4a8b9c2c 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/syndicate.dm
@@ -6,13 +6,13 @@
/mob/living/simple_animal/hostile/human/syndicate
- name = "Ramzi Clique Operative"
- desc = "An ex-Syndicate pirate of the Ramzi Clique."
+ name = "Ramzi Clique Initiate"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Unfortunately for them, this one is unarmed."
icon_state = "syndicate"
icon_living = "syndicate"
speak_chance = 0
stat_attack = HARD_CRIT
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
+ loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/clothing/neck/dogtag/ramzi)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
maxbodytemp = 400
unsuitable_atmos_damage = 15
@@ -20,19 +20,21 @@
check_friendly_fire = TRUE
dodging = TRUE
rapid_melee = 2
+ armor_base = /obj/item/clothing/suit/armor/vest
///////////////Melee////////////
/mob/living/simple_animal/hostile/human/syndicate/space
+ name = "Ramzi Clique Initiate"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Despite their armored hardsuit, this one is unarmed."
icon_state = "syndicate_space"
icon_living = "syndicate_space"
- name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
speed = 1
+ loot = list(/obj/item/clothing/neck/dogtag/ramzi)
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/space/Initialize()
. = ..()
@@ -40,18 +42,20 @@
set_light(4)
/mob/living/simple_animal/hostile/human/syndicate/space/stormtrooper
+ name = "Ramzi Clique Battlemaster"
+ desc = "A silhouette of obsidian glass stalks into view, empty hands clutching into armored fists. They are unarmed, and this is nearly a fair fight."
icon_state = "syndicate_stormtrooper"
icon_living = "syndicate_stormtrooper"
- name = "Ramzi Clique Assault Trooper"
- maxHealth = 250
- health = 250
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
/mob/living/simple_animal/hostile/human/syndicate/melee //dude with a knife and no shields
+ name = "Ramzi Clique Close Combatant"
+ desc = "A deserter from the Gorlex Marauders turned pirate. They hold a clean and razor-sharp knife with obvious training."
melee_damage_lower = 15
melee_damage_upper = 15
icon_state = "syndicate_knife"
icon_living = "syndicate_knife"
- loot = list(/obj/effect/gibspawner/human)
+ loot = list(/obj/effect/gibspawner/human, /obj/item/clothing/neck/dogtag/ramzi)
attack_verb_continuous = "slashes"
attack_verb_simple = "slash"
attack_sound = 'sound/weapons/bladeslice.ogg'
@@ -59,16 +63,15 @@
var/projectile_deflect_chance = 0
/mob/living/simple_animal/hostile/human/syndicate/melee/space
+ name = "Ramzi Clique Infiltrator"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Rusted hardsuit gauntlets hold a shard of polished steel in an veteran's guard."
icon_state = "syndicate_space_knife"
icon_living = "syndicate_space_knife"
- name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
maxbodytemp = 1000
speed = 1
- projectile_deflect_chance = 50
+ projectile_deflect_chance = 0
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/melee/space/Initialize()
. = ..()
@@ -76,14 +79,19 @@
set_light(4)
/mob/living/simple_animal/hostile/human/syndicate/melee/space/stormtrooper
+ name = "Ramzi Clique Assassin"
+ desc = "Wicked knifepoint tracks your every impulse. Clean, black armor plate glides across itself, bereft of all sound or resistance."
icon_state = "syndicate_stormtrooper_knife"
icon_living = "syndicate_stormtrooper_knife"
name = "Ramzi Clique Stormtrooper"
maxHealth = 250
health = 250
- projectile_deflect_chance = 50
+ projectile_deflect_chance = 0
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
/mob/living/simple_animal/hostile/human/syndicate/melee/sword
+ name = "Ramzi Clique Duelist"
+ desc = "A deserter from the Gorlex Marauders turned pirate. They hold a glaring energy sword at half-guard."
melee_damage_lower = 30
melee_damage_upper = 30
icon_state = "syndicate_sword"
@@ -95,7 +103,7 @@
light_color = COLOR_SOFT_RED
status_flags = 0
var/obj/effect/light_emitter/red_energy_sword/sord
- projectile_deflect_chance = 50
+ projectile_deflect_chance = 25
/mob/living/simple_animal/hostile/human/syndicate/melee/sword/Initialize()
. = ..()
@@ -112,16 +120,16 @@
return ..()
/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space
+ name = "Ramzi Clique Duelist"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Their decayed hardsuit still obeys as they hold their energy sword in counterpoint to your approach."
icon_state = "syndicate_space_sword"
icon_living = "syndicate_space_sword"
- name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
speed = 1
- projectile_deflect_chance = 50
+ projectile_deflect_chance = 25
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/Initialize()
. = ..()
@@ -134,16 +142,18 @@
return ..()
/mob/living/simple_animal/hostile/human/syndicate/melee/sword/space/stormtrooper
+ name = "Ramzi Clique Blademaster"
+ desc = "Carmine bladelight glares furiously off the contours of a sleek, black armored suit. Their body betrays precious little as they glide in perfect conservation of motion from one stance to the next."
icon_state = "syndicate_stormtrooper_sword"
icon_living = "syndicate_stormtrooper_sword"
- name = "Ramzi Clique Stormtrooper"
- maxHealth = 250
- health = 250
projectile_deflect_chance = 50
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
///////////////Guns////////////
/mob/living/simple_animal/hostile/human/syndicate/ranged
+ name = "Ramzi Clique Operative"
+ desc = "A deserter from the Gorlex Marauders turned pirate. They warily glance around, a compact sidearm held at the ready."
ranged = 1
retreat_distance = 5
minimum_distance = 5
@@ -151,24 +161,24 @@
icon_living = "syndicate_pistol"
casingtype = /obj/item/ammo_casing/c10mm
projectilesound = 'sound/weapons/gun/pistol/shot.ogg'
- loot = list(/obj/effect/gibspawner/human)
+ loot = list(/obj/effect/gibspawner/human, /obj/item/clothing/neck/dogtag/ramzi)
dodging = FALSE
rapid_melee = 1
/mob/living/simple_animal/hostile/human/syndicate/ranged/infiltrator //shuttle loan event
projectilesound = 'sound/weapons/gun/smg/shot_suppressed.ogg'
- loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier)
+ loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier, /obj/item/clothing/neck/dogtag/ramzi)
/mob/living/simple_animal/hostile/human/syndicate/ranged/space
+ name = "Ramzi Clique Operative"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Rusty gauntlets clutch a pocket pistol, the added bulk of their wrappings giving it a rather undersized appearance."
icon_state = "syndicate_space_pistol"
icon_living = "syndicate_space_pistol"
- name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
speed = 1
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/ranged/space/Initialize()
. = ..()
@@ -176,13 +186,15 @@
set_light(4)
/mob/living/simple_animal/hostile/human/syndicate/ranged/space/stormtrooper
+ name = "Ramzi Clique Pistolmaster" //I can't think of something better, sue me
+ desc = "Obsidian armor cradles a small handgun with sculptural grace. Its snub muzzle follows you before you even think to move."
icon_state = "syndicate_stormtrooper_pistol"
icon_living = "syndicate_stormtrooper_pistol"
- name = "Ramzi Clique Stormtrooper"
- maxHealth = 250
- health = 250
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
/mob/living/simple_animal/hostile/human/syndicate/ranged/smg
+ name = "Ramzi Clique Commando"
+ desc = "A deserter from the Gorlex Marauders turned pirate. They scan the room with their submachinegun held at eye level, sweeping every corner."
rapid = 2
icon_state = "syndicate_smg"
icon_living = "syndicate_smg"
@@ -190,15 +202,15 @@
projectilesound = 'sound/weapons/gun/smg/shot.ogg'
/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space
+ name = "Ramzi Clique Commando"
+ desc = "A deserter from the Gorlex Marauders turned pirate. Green hardsuit optics glint as they sweep their submachinegun across the room, scanning for threats."
icon_state = "syndicate_space_smg"
icon_living = "syndicate_space_smg"
- name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
speed = 1
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/Initialize()
. = ..()
@@ -206,13 +218,15 @@
set_light(4)
/mob/living/simple_animal/hostile/human/syndicate/ranged/smg/space/stormtrooper
+ name = "Ramzi Clique Shock Trooper"
+ desc = "Night-black armor traces the silhouette of a soldier equaled by precious few. Their Cobra SMG tracks you perfectly, a staccato bark of .45 already in its throat."
icon_state = "syndicate_stormtrooper_smg"
icon_living = "syndicate_stormtrooper_smg"
- name = "Ramzi Clique Stormtrooper"
- maxHealth = 250
- health = 250
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun
+ name = "Ramzi Clique Breacher"
+ desc = "A deserter from the Gorlex Marauders turned pirate. They move low and quickly, heavy combat shotgun at the ready."
rapid = 2
rapid_fire_delay = 6
minimum_distance = 3
@@ -221,15 +235,16 @@
casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot fired in a two-round burst. This will two-tap unarmored players.
/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space
+ name = "Ramzi Clique Breacher"
+ desc = "A deserter from the Gorlex Marauders turned pirate. The unmistakeable bulk of a Bulldog shotgun graces the wrapped, patched hands of their aging hardsuit."
icon_state = "syndicate_space_shotgun"
icon_living = "syndicate_space_shotgun"
name = "Ramzi Clique Commando"
- maxHealth = 170
- health = 170
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
speed = 1
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi
/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/Initialize()
. = ..()
@@ -237,15 +252,17 @@
set_light(4)
/mob/living/simple_animal/hostile/human/syndicate/ranged/shotgun/space/stormtrooper
+ name = "Ramzi Clique Executioner"
+ desc = "Ink and black glass poured into the shape of an armored commando, dripping menace with every step. Their combat shotgun follows you with lethal intent, promising a blizzard of buckshot in less than a blink."
icon_state = "syndicate_stormtrooper_shotgun"
icon_living = "syndicate_stormtrooper_shotgun"
- name = "Ramzi Clique Stormtrooper"
- maxHealth = 250
- health = 250
+ armor_base = /obj/item/clothing/suit/space/hardsuit/syndi
///////////////Misc////////////
/mob/living/simple_animal/hostile/human/syndicate/civilian
+ name = "Ramzi Clique Technician"
+ desc = "A deserter from the Gorlex Marauders turned pirate. This one is not only unarmed, but a coward as well."
minimum_distance = 10
retreat_distance = 10
obj_damage = 0
@@ -275,7 +292,7 @@
attack_verb_simple = "cut"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = list(ROLE_SYNDICATE)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1000
mob_size = MOB_SIZE_TINY
@@ -283,7 +300,6 @@
limb_destroyer = 1
speak_emote = list("states")
bubble_icon = "syndibot"
- gold_core_spawnable = HOSTILE_SPAWN
del_on_death = 1
deathmessage = "is smashed into pieces!"
diff --git a/code/modules/mob/living/simple_animal/hostile/human/zombie.dm b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm
index 7a12465b98bb..c70b459fb7b2 100644
--- a/code/modules/mob/living/simple_animal/hostile/human/zombie.dm
+++ b/code/modules/mob/living/simple_animal/hostile/human/zombie.dm
@@ -7,8 +7,6 @@
mob_biotypes = MOB_ORGANIC|MOB_HUMANOID
speak_chance = 0
stat_attack = HARD_CRIT //braains
- maxHealth = 100
- health = 100
harm_intent_damage = 5
melee_damage_lower = 21
melee_damage_upper = 21
@@ -16,7 +14,7 @@
attack_verb_simple = "bite"
attack_sound = 'sound/hallucinations/growl1.ogg'
a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
status_flags = CANPUSH
loot = list()
@@ -41,6 +39,7 @@
//They have claws now.
O.r_hand = null
O.l_hand = null
+ armor_base = O.suit
var/icon/P = get_flat_human_icon("zombie_[zombiejob]", J , dummy_prefs, "zombie", outfit_override = O)
icon = P
diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm
index 32dc8d4bc887..4a0970751d9b 100644
--- a/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/jungle/_jungle_mobs.dm
@@ -1,6 +1,6 @@
/mob/living/simple_animal/hostile/jungle
vision_range = 5
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
faction = list("jungle")
weather_immunities = list("acid")
obj_damage = 30
diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
index 8b1de1c2b8a4..1b1dd1d72901 100644
--- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm
+++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
@@ -28,4 +28,3 @@
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 150
maxbodytemp = 500
- gold_core_spawnable = HOSTILE_SPAWN
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 63519d29c7cd..fc8cbbce6d8c 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
@@ -42,7 +42,7 @@ Difficulty: Medium
pixel_x = -16
base_pixel_x = -16
//mob_trophy = /obj/item/mob_trophy/miner_eye
- loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator)
+ loot = list(/obj/item/melee/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator)
wander = FALSE
del_on_death = TRUE
blood_volume = BLOOD_VOLUME_NORMAL
@@ -50,7 +50,7 @@ Difficulty: Medium
achievement_type = /datum/award/achievement/boss/blood_miner_kill
crusher_achievement_type = /datum/award/achievement/boss/blood_miner_crusher
score_achievement_type = /datum/award/score/blood_miner_score
- var/obj/item/melee/transforming/cleaving_saw/miner/miner_saw
+ var/obj/item/melee/cleaving_saw/miner/miner_saw
var/time_until_next_transform = 0
var/dashing = FALSE
var/dash_cooldown = 15
@@ -107,11 +107,11 @@ Difficulty: Medium
shoot_ka()
transform_weapon()
-/obj/item/melee/transforming/cleaving_saw/miner //nerfed saw because it is very murdery
+/obj/item/melee/cleaving_saw/miner //nerfed saw because it is very murdery
force = 6
- force_on = 10
+ active_force = 10
-/obj/item/melee/transforming/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user)
+/obj/item/melee/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user)
target.add_stun_absorption("miner", 10, INFINITY)
..()
target.stun_absorption -= "miner"
@@ -248,14 +248,12 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/transform_weapon()
if(time_until_next_transform <= world.time)
miner_saw.transform_cooldown = 0
- miner_saw.transform_weapon(src, TRUE)
- if(!miner_saw.active)
- rapid_melee = 5 // 4 deci cooldown before changes, npcpool subsystem wait is 20, 20/4 = 5
- else
- rapid_melee = 3 // same thing but halved (slightly rounded up)
+ miner_saw.attack_self(src)
+ var/saw_open = HAS_TRAIT(miner_saw, TRAIT_TRANSFORM_ACTIVE)
+ rapid_melee = saw_open ? 3 : 5
transform_stop_attack = TRUE
- icon_state = "miner[miner_saw.active ? "_transformed":""]"
- icon_living = "miner[miner_saw.active ? "_transformed":""]"
+ icon_state = "miner[saw_open ? "_transformed":""]"
+ icon_living = "miner[saw_open ? "_transformed":""]"
time_until_next_transform = world.time + rand(50, 100)
/obj/effect/temp_visual/dir_setting/miner_death
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index ff06df9c6113..a386758b8e6c 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -659,7 +659,6 @@ GLOBAL_DATUM(blackbox, /obj/machinery/smartfridge/black_box)
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
ventcrawler = VENTCRAWLER_ALWAYS
mob_size = MOB_SIZE_TINY
- gold_core_spawnable = HOSTILE_SPAWN
verb_say = "warps"
verb_ask = "floats inquisitively"
verb_exclaim = "zaps"
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
index 77e9e8f4cb83..abd8ce5c6290 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/cult_templar.dm
@@ -450,7 +450,7 @@
stop_automated_movement = 1
status_flags = CANPUSH
attack_sound = 'sound/magic/demon_attack1.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
faction = list("cult")
maxHealth = 60
health = 60
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index 7035ba7e17d5..a35f5ed8f2ee 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -179,7 +179,7 @@ Difficulty: Medium
var/increment = 360 / spiral_count
for(var/j = 1 to spiral_count)
var/list/turfs = line_target(j * increment + i * increment / 2, range, src)
- INVOKE_ASYNC(src, PROC_REF(fire_line), turfs)
+ INVOKE_ASYNC(src, PROC_REF(dragon_fire_line), turfs)
SLEEP_CHECK_DEATH(25)
SetRecoveryTime(30)
@@ -250,11 +250,11 @@ Difficulty: Medium
var/range = 15
var/list/turfs = list()
turfs = line_target(-40, range, at)
- INVOKE_ASYNC(src, PROC_REF(fire_line), turfs)
+ INVOKE_ASYNC(src, PROC_REF(dragon_fire_line), turfs)
turfs = line_target(0, range, at)
- INVOKE_ASYNC(src, PROC_REF(fire_line), turfs)
+ INVOKE_ASYNC(src, PROC_REF(dragon_fire_line), turfs)
turfs = line_target(40, range, at)
- INVOKE_ASYNC(src, PROC_REF(fire_line), turfs)
+ INVOKE_ASYNC(src, PROC_REF(dragon_fire_line), turfs)
/mob/living/simple_animal/hostile/megafauna/dragon/proc/line_target(offset, range, atom/at = target)
if(!at)
@@ -268,32 +268,9 @@ Difficulty: Medium
T = check
return (getline(src, T) - get_turf(src))
-/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_line(list/turfs)
+/mob/living/simple_animal/hostile/megafauna/dragon/proc/dragon_fire_line(list/turfs)
SLEEP_CHECK_DEATH(0)
- dragon_fire_line(src, turfs)
-
-//fire line keeps going even if dragon is deleted
-/proc/dragon_fire_line(source, list/turfs)
- var/list/hit_list = list()
- for(var/turf/T in turfs)
- if(istype(T, /turf/closed))
- break
- new /obj/effect/hotspot(T)
- T.hotspot_expose(700,50,1)
- for(var/mob/living/L in T.contents)
- if(L in hit_list || L == source)
- continue
- hit_list += L
- L.adjustFireLoss(20)
- to_chat(L, "You're hit by [source]'s fire breath!")
-
- // deals damage to mechs
- for(var/obj/mecha/M in T.contents)
- if(M in hit_list)
- continue
- hit_list += M
- M.take_damage(45, BRUTE, "melee", 1)
- sleep(1.5)
+ fire_line(src, turfs)
/mob/living/simple_animal/hostile/megafauna/dragon/proc/swoop_attack(lava_arena = FALSE, atom/movable/manual_target, swoop_cooldown = 30)
if(stat || swooping)
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 a7a6845c7de1..2ce9436b4cab 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -15,7 +15,7 @@
robust_searching = TRUE
ranged_ignores_vision = TRUE
stat_attack = DEAD
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
damage_coeff = list(BRUTE = 1, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
minbodytemp = 0
maxbodytemp = INFINITY
@@ -96,7 +96,8 @@
// [CELADON-REMOVE] - CRUSHER_TROPHEY - Выпилено ради легенды
// /mob/living/simple_animal/hostile/megafauna/proc/spawn_mob_trophy()
-// loot += mob_trophy
+// if(mob_trophy)
+ // loot += mob_trophy
// [/CELADON-REMOVE]
/mob/living/simple_animal/hostile/megafauna/gib()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
deleted file mode 100644
index 04723d80ba5a..000000000000
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
-
-Swarmer Beacon
-
-A strange machine appears anywhere a normal lavaland mob can it produces a swarmer at a rate of
-1/15 seconds, until there are GetTotalAISwarmerCap()/2 swarmers, after this it is up to the swarmers themselves to
-increase their population (it will repopulate them should they fall under GetTotalAISwarmerCap()/2 again)
-
-tl;dr A million of the little hellraisers spawn (controlled by AI) and try to eat mining
-
-Loot: Not much, besides a shit load of artificial bluespace crystals, Oh and mining doesn't get eaten
-that's a plus I suppose.
-
-Difficulty: Special
-
-*/
-
-GLOBAL_LIST_EMPTY(AISwarmers)
-GLOBAL_LIST_EMPTY(AISwarmersByType)//AISwarmersByType[.../resource] = list(1st, 2nd, nth), AISwarmersByType[../ranged] = list(1st, 2nd, nth) etc.
-GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swarmer/ai/resource = 30, /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat = 20, /mob/living/simple_animal/hostile/swarmer/ai/melee_combat = 10))
-
-
-//returns a type of AI swarmer that is NOT at max cap
-//type order is shuffled, to prevent bias
-/proc/GetUncappedAISwarmerType()
- var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai)
- LAZYINITLIST(GLOB.AISwarmersByType)
- for(var/t in shuffle(swarmerTypes))
- var/list/amount = GLOB.AISwarmersByType[t]
- if(!amount || amount.len < GLOB.AISwarmerCapsByType[t])
- return t
-
-
-//Total of all subtype caps
-/proc/GetTotalAISwarmerCap()
- var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai)
- . = 0
- LAZYINITLIST(GLOB.AISwarmersByType)
- for(var/t in swarmerTypes)
- . += GLOB.AISwarmerCapsByType[t]
-
-//this should. not be a simple mob i think
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon
- name = "swarmer beacon"
- desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!"
- icon = 'icons/mob/swarmer.dmi'
- icon_state = "swarmer_console"
- health = 750
- maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe
- mob_biotypes = MOB_ROBOTIC
- gps_name = "Hungry Signal"
- faction = list("mining", "boss", "swarmer")
- weather_immunities = list("lava","ash")
- stop_automated_movement = TRUE
- wander = FALSE
- layer = BELOW_MOB_LAYER
- AIStatus = AI_OFF
- del_on_death = TRUE
- var/swarmer_spawn_cooldown = 0
- var/swarmer_spawn_cooldown_amt = 150 //Deciseconds between the swarmers we spawn
- var/call_help_cooldown = 0
- var/call_help_cooldown_amt = 150 //Deciseconds between calling swarmers to help us when attacked
- var/static/list/swarmer_caps
-
-
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Initialize()
- . = ..()
- swarmer_caps = GLOB.AISwarmerCapsByType //for admin-edits
- for(var/ddir in GLOB.cardinals)
- new /obj/structure/swarmer/blockade (get_step(src, ddir))
- var/mob/living/simple_animal/hostile/swarmer/ai/resource/R = new(loc)
- step(R, ddir) //Step the swarmers, instead of spawning them there, incase the turf is solid
-
-
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Life()
- . = ..()
- if(.)
- var/createtype = GetUncappedAISwarmerType()
- if(createtype && world.time > swarmer_spawn_cooldown && GLOB.AISwarmers.len < (GetTotalAISwarmerCap()*0.5))
- swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt
- new createtype(loc)
-
-
-/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(. > 0 && world.time > call_help_cooldown)
- call_help_cooldown = world.time + call_help_cooldown_amt
- summon_backup(25) //long range, only called max once per 15 seconds, so it's not deathlag
-
-
-//SWARMER AI
-//AI versions of the swarmer mini-antag
-//This is an Abstract Base, it re-enables AI, but does not give the swarmer any goals/targets
-/mob/living/simple_animal/hostile/swarmer/ai
- wander = 1
- faction = list("swarmer", "mining")
- weather_immunities = list("ash") //wouldn't be fun otherwise
- AIStatus = AI_ON
-
-/mob/living/simple_animal/hostile/swarmer/ai/Initialize()
- . = ..()
- ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity
- LAZYADD(GLOB.AISwarmers, src)
- GLOB.AISwarmersByType[type] += list(src)
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/Destroy()
- GLOB.AISwarmers -= src
- GLOB.AISwarmersByType[type] -= src
- return ..()
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/SwarmerTypeToCreate()
- return GetUncappedAISwarmerType()
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action()
- . = ..()
- if(.)
- if(!stop_automated_movement)
- if(health < maxHealth*0.25)
- StartAction(100)
- RepairSelf()
- return
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc)
- if(newloc)
- if(newloc.virtual_z() == virtual_z()) //so these actions are Z-specific
- if(islava(newloc))
- var/turf/open/lava/L = newloc
- if(!L.is_safe())
- StartAction(20)
- new /obj/structure/catwalk/swarmer_catwalk(newloc)
- return FALSE
-
- if(ischasm(newloc) && !throwing)
- throw_at(get_edge_target_turf(src, get_dir(src, newloc)), 7 , 3, src, FALSE) //my planet needs me
- return FALSE
-
- return ..()
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0)
- stop_automated_movement = TRUE
- AIStatus = AI_OFF
- addtimer(CALLBACK(src, PROC_REF(EndAction)), deci)
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction()
- stop_automated_movement = FALSE
- AIStatus = AI_ON
-
-
-
-
-//RESOURCE SWARMER:
-//Similar to the original Player-Swarmers, these dismantle things to obtain the metal inside
-//They then use this medal to produce more swarmers or traps/barricades
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource
- search_objects = 1
- attack_all_objects = TRUE //attempt to nibble everything
- lose_patience_timeout = 150
- var/static/list/sharedWanted = typecacheof(list(/turf/closed/mineral, /turf/closed/wall)) //eat rocks and walls
- var/static/list/sharedIgnore = list()
-
-//This handles viable things to eat/attack
-//Place specific cases of AI derpiness here
-//Most can be left to the automatic Gain/LosePatience() system
-/mob/living/simple_animal/hostile/swarmer/ai/resource/CanAttack(atom/the_target)
-
- //SPECIFIC CASES:
- //Smash fulltile windows before grilles
- if(istype(the_target, /obj/structure/grille))
- for(var/obj/structure/window/rogueWindow in get_turf(the_target))
- if(rogueWindow.fulltile) //done this way because the subtypes are weird.
- the_target = rogueWindow
- break
-
- //GENERAL CASES:
- if(is_type_in_typecache(the_target, sharedIgnore)) //always ignore
- return FALSE
- if(is_type_in_typecache(the_target, sharedWanted)) //always eat
- return TRUE
-
- return ..() //else, have a nibble, see if it's food
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource/OpenFire(atom/A)
- if(isliving(A)) //don't shoot rocks, sillies.
- ..()
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource/AttackingTarget()
- if(target.swarmer_act(src))
- add_type_to_wanted(target.type)
- return TRUE
- else
- add_type_to_ignore(target.type)
- return FALSE
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action()
- . = ..()
- if(.)
- if(!stop_automated_movement)
- if(GLOB.AISwarmers.len < GetTotalAISwarmerCap() && resources >= 50)
- StartAction(100) //so they'll actually sit still and use the verbs
- CreateSwarmer()
- return
-
- if(resources > 5)
- if(prob(5)) //lower odds, as to prioritise reproduction
- StartAction(10) //not a typo
- CreateBarricade()
- return
- if(prob(5))
- CreateTrap()
- return
-
-
-//So swarmers can learn what is and isn't food
-/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_wanted(typepath)
- if(!sharedWanted[typepath])// this and += is faster than |=
- sharedWanted += typecacheof(typepath)
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_ignore(typepath)
- if(!sharedIgnore[typepath])
- sharedIgnore += typecacheof(typepath)
-
-
-//RANGED SWARMER
-/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat
- icon_state = "swarmer_ranged"
- icon_living = "swarmer_ranged"
- projectiletype = /obj/projectile/beam/laser
- projectilesound = 'sound/weapons/laser.ogg'
- check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop
- retreat_distance = 3
- minimum_distance = 3
-
-/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat/Aggro()
- ..()
- summon_backup(15, TRUE) //Exact matching, so that goliaths don't come to aid the swarmers, that'd be silly
-
-
-//MELEE SWARMER
-/mob/living/simple_animal/hostile/swarmer/ai/melee_combat
- icon_state = "swarmer_melee"
- icon_living = "swarmer_melee"
- health = 60
- maxHealth = 60
- ranged = FALSE
-
-/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/Aggro()
- ..()
- summon_backup(15, TRUE)
-
-
-/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/AttackingTarget()
- if(isliving(target))
- if(prob(35))
- StartAction(30)
- DisperseTarget(target)
- else
- var/mob/living/L = target
- L.attack_animal(src)
- L.electrocute_act(10, src, flags = SHOCK_NOGLOVES)
- return TRUE
- else
- return ..()
-
-
-
-
-//SWARMER CATWALKS
-//Used so they can survive lavaland better
-/obj/structure/catwalk/swarmer_catwalk
- name = "swarmer catwalk"
- desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain."
- icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi'
- icon_state = "swarmer_catwalk-0"
- base_icon_state = "swarmer_catwalk"
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 0568533c1e0c..7b8bb392f1f9 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -23,7 +23,7 @@
speak_emote = list("creaks")
taunt_chance = 30
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
faction = list("mimic")
@@ -224,7 +224,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
TrueGun = G
if(istype(G, /obj/item/gun/ballistic))
Pewgun = G
- var/obj/item/ammo_box/magazine/M = Pewgun.mag_type
+ var/obj/item/ammo_box/magazine/M = Pewgun.default_ammo_type
casingtype = initial(M.ammo_type)
if(istype(G, /obj/item/gun/energy))
Zapgun = G
@@ -267,102 +267,5 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
icon_state = TrueGun.icon_state
icon_living = TrueGun.icon_state
-/mob/living/simple_animal/hostile/mimic/xenobio
- health = 210
- maxHealth = 210
- attack_verb_continuous = "bites"
- attack_verb_simple = "bite"
- speak_emote = list("clatters")
- gold_core_spawnable = HOSTILE_SPAWN
- var/opened = FALSE
- var/open_sound = 'sound/machines/crate_open.ogg'
- var/close_sound = 'sound/machines/crate_close.ogg'
- var/max_mob_size = MOB_SIZE_HUMAN
- var/locked = FALSE
- var/datum/action/innate/mimic/lock/lock
-
-/mob/living/simple_animal/hostile/mimic/xenobio/Initialize()
- . = ..()
- lock = new
- lock.Grant(src)
-
-/mob/living/simple_animal/hostile/mimic/xenobio/AttackingTarget()
- if(src == target)
- toggle_open()
- return
- return ..()
-
-/mob/living/simple_animal/hostile/mimic/xenobio/attack_hand(mob/living/carbon/human/M)
- . = ..()
- if(M.a_intent != "help")
- return
- toggle_open()
-
-/mob/living/simple_animal/hostile/mimic/xenobio/death()
- var/obj/structure/closet/crate/C = new(get_turf(src))
- // Put loot in crate
- for(var/atom/movable/AM as anything in src)
- AM.forceMove(C)
- return ..()
-
-/mob/living/simple_animal/hostile/mimic/xenobio/CanAllowThrough(atom/movable/mover, border_dir)
- . = ..()
- if(istype(mover, /obj/structure/closet))
- return FALSE
-
-/mob/living/simple_animal/hostile/mimic/xenobio/proc/toggle_open()
- if(locked)
- return
- if(!opened)
- density = FALSE
- opened = TRUE
- icon_state = "crateopen"
- playsound(src, open_sound, 50, TRUE)
- for(var/atom/movable/AM as anything in src)
- AM.forceMove(loc)
- else
- density = TRUE
- opened = FALSE
- icon_state = "crate"
- playsound(src, close_sound, 50, TRUE)
- for(var/atom/movable/AM in get_turf(src))
- if(insertion_allowed(AM))
- AM.forceMove(src)
-
-/mob/living/simple_animal/hostile/mimic/xenobio/proc/insertion_allowed(atom/movable/AM)
- if(ismob(AM))
- if(!isliving(AM)) //Don't let ghosts and such get trapped in the beast.
- return FALSE
- var/mob/living/L = AM
- if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs())
- return FALSE
- if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items.
- if(L.density || L.mob_size > max_mob_size)
- return FALSE
- L.stop_pulling()
-
- else if(istype(AM, /obj/structure/closet))
- return FALSE
- else if(isobj(AM))
- if(AM.anchored || AM.has_buckled_mobs())
- return FALSE
- else if(isitem(AM) && !HAS_TRAIT(AM, TRAIT_NODROP))
- return TRUE
- else
- return FALSE
- return TRUE
-
/datum/action/innate/mimic
background_icon_state = "bg_default"
-
-/datum/action/innate/mimic/lock
- name = "Lock/Unlock"
- desc = "Toggle preventing yourself from being opened or closed."
-
-/datum/action/innate/mimic/lock/Activate()
- var/mob/living/simple_animal/hostile/mimic/xenobio/M = owner
- M.locked = !M.locked
- if(!M.locked)
- to_chat(M, "You loosen up, allowing yourself to be opened and closed.")
- else
- to_chat(M, "You stiffen up, preventing anyone from opening or closing you.")
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
index 18343b8cad63..8d184d74b43f 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
@@ -32,7 +32,6 @@
attack_sound = 'sound/weapons/bladeslice.ogg'
aggro_vision_range = 9
turns_per_move = 5
- gold_core_spawnable = HOSTILE_SPAWN
loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER},
/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER})
var/lava_drinker = TRUE
@@ -45,10 +44,10 @@
damage_type = BURN
nodamage = TRUE
flag = "energy"
- temperature = -50 // Cools you down! per hit!
+ temperature = -5 // Cools you down! per hit!
/obj/projectile/temp/basilisk/super
- temperature = -100
+ temperature = -20
damage = 5
nodamage = FALSE
@@ -235,7 +234,6 @@
robust_searching = 1
attack_same = TRUE // So we'll fight basilisks
//mob_trophy = /obj/item/mob_trophy/watcher_wing
- gold_core_spawnable = NO_SPAWN
loot = list()
butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1)
lava_drinker = FALSE
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
index 769f6ce3d5fa..6495b967fb88 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/brimdemon.dm
@@ -242,7 +242,7 @@
/datum/reagent/brimdust/on_mob_life(mob/living/carbon/carbon, delta_time, times_fired)
. = ..()
carbon.adjustFireLoss((ispodperson(carbon) ? -1 : 1) * delta_time)
- carbon.adjust_bodytemperature(55 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, carbon.get_body_temp_normal())
+ carbon.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, carbon.get_body_temp_normal())
/datum/reagent/brimdust/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm
index e4eb7122d391..3377165ea3ea 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm
@@ -29,7 +29,6 @@
throw_message = "sinks in slowly, before being pushed out of "
deathmessage = "stops moving as green liquid oozes from the carcass!"
status_flags = CANPUSH
- gold_core_spawnable = HOSTILE_SPAWN
search_objects = 1
wanted_objects = list(
/obj/item/stack/ore/diamond,
@@ -45,10 +44,8 @@
/mob/living/simple_animal/hostile/asteroid/goldgrub/Initialize()
. = ..()
- var/i = rand(1,3)
- while(i)
+ for (var/i in 1 to rand(1, 3))
loot += pick(/obj/item/stack/ore/silver, /obj/item/stack/ore/gold, /obj/item/stack/ore/uranium, /obj/item/stack/ore/diamond)
- i--
spit = new
burrow = new
spit.Grant(src)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
index ee48ed624ee4..a6457306cda7 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/gutlunch.dm
@@ -28,7 +28,6 @@
friendly_verb_simple = "pinch"
a_intent = INTENT_HELP
ventcrawler = VENTCRAWLER_ALWAYS
- gold_core_spawnable = FRIENDLY_SPAWN
stat_attack = HARD_CRIT
gender = NEUTER
stop_automated_movement = FALSE
@@ -43,12 +42,16 @@
animal_species = /mob/living/simple_animal/hostile/asteroid/gutlunch
childtype = list(/mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch = 100)
+ var/mutable_appearance/gutlunch_full_overlay
+
wanted_objects = list(/obj/effect/decal/cleanable/xenoblood/xgibs, /obj/effect/decal/cleanable/blood/gibs/, /obj/item/organ, /obj/item/reagent_containers/food/snacks/meat/slab)
/mob/living/simple_animal/hostile/asteroid/gutlunch/Initialize()
. = ..()
- if(wanted_objects.len)
- AddComponent(/datum/component/udder, /obj/item/udder/gutlunch, CALLBACK(src, PROC_REF(regenerate_icons)), CALLBACK(src, PROC_REF(regenerate_icons)))
+ if(!length(wanted_objects))
+ return
+ AddComponent(/datum/component/udder, /obj/item/udder/gutlunch, CALLBACK(src, TYPE_PROC_REF(/atom/movable, update_overlays)), CALLBACK(src, TYPE_PROC_REF(/atom/movable, update_overlays)))
+ gutlunch_full_overlay = mutable_appearance(icon, "gl_full")
/mob/living/simple_animal/hostile/asteroid/gutlunch/CanAttack(atom/the_target) // Gutlunch-specific version of CanAttack to handle stupid stat_exclusive = true crap so we don't have to do it for literally every single simple_animal/hostile except the two that spawn in lavaland
if(isturf(the_target) || !the_target || the_target.type == /atom/movable/lighting_object) // bail out on invalids
@@ -72,14 +75,12 @@
return FALSE
-/mob/living/simple_animal/hostile/asteroid/gutlunch/regenerate_icons(new_udder_volume, max_udder_volume)
- cut_overlays()
- var/static/gutlunch_full_overlay
- if(isnull(gutlunch_full_overlay))
- gutlunch_full_overlay = iconstate2appearance(icon, "gl_full")
- if(new_udder_volume == max_udder_volume)
- add_overlay(gutlunch_full_overlay)
- ..()
+/mob/living/simple_animal/hostile/asteroid/gutlunch/update_overlays(new_udder_volume, max_udder_volume)
+ . = ..()
+ if(new_udder_volume != max_udder_volume)
+ return
+
+ . += gutlunch_full_overlay
//Male gutlunch. They're smaller and more colorful!
/mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck
@@ -100,7 +101,6 @@
/mob/living/simple_animal/hostile/asteroid/gutlunch/grublunch
name = "grublunch"
wanted_objects = list() //They don't eat.
- gold_core_spawnable = NO_SPAWN
var/growth = 0
//Baby gutlunch
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
index 9004c94e9fdd..5ab862cb30a1 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm
@@ -52,7 +52,8 @@
// [CELADON-REMOVE] - CRUSHER_TROPHEY - Выпилено ради легенды
// /mob/living/simple_animal/hostile/asteroid/hivelord/spawn_mob_trophy()
- // loot += mob_trophy //we don't butcher
+ // if(mob_trophy)
+ // loot += mob_trophy //we don't butcher
// [/CELADON-REMOVE]
/mob/living/simple_animal/hostile/asteroid/hivelord/death(gibbed)
@@ -258,7 +259,8 @@
return //This will qdelete the legion.
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H)
- visible_message(span_warning("[name] burrows into the flesh of [H]!"))
+ visible_message(span_warning("[name] burrows into [H]!"))
+ to_chat(H, span_boldwarning("You feel something digging into your body..."))
if(H.stat != DEAD)
var/obj/item/organ/legion_skull/throwyouabone = new()
throwyouabone.Insert(H)
@@ -381,7 +383,7 @@
del_on_death = TRUE
sentience_type = SENTIENCE_BOSS
loot = list(/obj/item/organ/regenerative_core/legion = 3, /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 5, /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 5, /obj/effect/mob_spawn/human/corpse/damaged/legioninfested = 5)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = INFINITY
move_to_delay = 7
@@ -485,7 +487,7 @@
H.transform = H.transform.Scale(0.8, 1)//somehow dwarf squashing is borked when not roundstart. I hate WS code
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize() //in an ideal world, these would generate, the legion would overlay over the corpse, and we'd get cool sprites
- mob_species = pickweight(list(
+ mob_species = pick_weight(list(
/datum/species/human = 50,
/datum/species/lizard = 20,
/datum/species/ipc = 10,
@@ -494,7 +496,7 @@
/datum/species/spider = 5
)
)
- var/type = pickweight(list(
+ var/type = pick_weight(list(
"Miner" = 40,
"Assistant" = 10,
"Engineer" = 5,
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
index d78c356680e4..bab85200c9b2 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm
@@ -1,6 +1,6 @@
/datum/outfit/generic/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
- uniform = pickweight(list(
+ uniform = pick_weight(list(
/obj/item/clothing/under/utility = 5,
/obj/item/clothing/under/utility/skirt = 5,
/obj/item/clothing/under/color/black = 1,
@@ -17,11 +17,11 @@
/obj/item/clothing/under/suit/black = 1,
/obj/item/clothing/under/dress/sailor = 1,
/obj/item/clothing/under/dress/striped = 1,
- /obj/item/clothing/under/dress/skirt/blue = 1,
+ /obj/item/clothing/under/dress/skirt/color/blue = 1,
/obj/item/clothing/under/syndicate/tacticool = 1,
)
)
- suit = pickweight(list(
+ suit = pick_weight(list(
/obj/item/clothing/suit/hooded/wintercoat = 1,
/obj/item/clothing/suit/jacket = 1,
/obj/item/clothing/suit/jacket/leather = 1,
@@ -36,7 +36,7 @@
/obj/item/clothing/suit/toggle/hazard = 1,
)
)
- back = pickweight(list(
+ back = pick_weight(list(
/obj/item/storage/backpack = 1,
/obj/item/storage/backpack/satchel = 1,
/obj/item/storage/backpack/duffelbag = 1,
@@ -45,7 +45,7 @@
)
)
if (prob(10))
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/gun/ballistic/automatic/pistol/candor = 2,
/obj/item/gun/ballistic/automatic/pistol/commander = 1,
/obj/item/gun/ballistic/automatic/pistol/ringneck = 1,
@@ -54,13 +54,13 @@
)
)
if(prob(50))
- gloves = pickweight(list(
+ gloves = pick_weight(list(
/obj/item/clothing/gloves/color/black = 1,
/obj/item/clothing/gloves/fingerless = 1,
/obj/item/clothing/gloves/color/white = 1,
)
)
- shoes = pickweight(list(
+ shoes = pick_weight(list(
/obj/item/clothing/shoes/laceup = 1,
/obj/item/clothing/shoes/sandal = 1,
/obj/item/clothing/shoes/winterboots = 1,
@@ -72,7 +72,7 @@
)
)
if(prob(50))
- head = pickweight(list(
+ head = pick_weight(list(
/obj/item/clothing/head/beret = 3,
/obj/item/clothing/head/beret/grey = 3,
/obj/item/clothing/head/flatcap = 3,
@@ -89,7 +89,7 @@
)
)
if(prob(50))
- mask = pickweight(list(
+ mask = pick_weight(list(
/obj/item/clothing/mask/balaclava = 1,
/obj/item/clothing/mask/bandana/red = 1,
/obj/item/clothing/mask/gas = 3,
@@ -97,7 +97,7 @@
)
)
if(prob(25))
- neck = pickweight(list(
+ neck = pick_weight(list(
/obj/item/clothing/neck/scarf/red = 1,
/obj/item/clothing/neck/scarf/green = 1,
/obj/item/clothing/neck/scarf/darkblue = 1,
@@ -109,7 +109,7 @@
)
ears = pick(/obj/item/radio/headset, /obj/item/radio/headset/alt)
if(prob(50))
- glasses = pickweight(list(
+ glasses = pick_weight(list(
/obj/item/clothing/glasses/regular = 1,
/obj/item/clothing/glasses/regular/circle = 1,
/obj/item/clothing/glasses/regular/jamjar = 1,
@@ -127,7 +127,7 @@
l_pocket = pick(/obj/item/radio, /obj/item/flashlight)
id = /obj/item/card/id
backpack_contents = list()
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/dice/d20 = 1,
/obj/item/lipstick = 1,
/obj/item/clothing/mask/vape = 1,
@@ -157,14 +157,14 @@
/datum/outfit/generic/miner/pre_equip(mob/living/carbon/human/H, visualsOnly)
. = ..()
if(prob(75))
- uniform = pickweight(list(
+ uniform = pick_weight(list(
/obj/item/clothing/under/rank/cargo/miner/lavaland = 5,
/obj/item/clothing/under/rank/cargo/miner = 4,
/obj/item/clothing/under/rank/cargo/miner/lavaland/old = 1,
)
)
if(prob(25))
- suit = pickweight(list(
+ suit = pick_weight(list(
/obj/item/clothing/suit/hooded/explorer = 18,
/obj/item/clothing/suit/hooded/explorer/old = 1,
/obj/item/clothing/suit/hooded/cloak/goliath = 1
@@ -173,13 +173,13 @@
if(prob(75))
back = /obj/item/storage/backpack/explorer
if(prob(75))
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/storage/belt/mining = 2,
/obj/item/storage/belt/mining/alt = 2
)
)
else if(prob(75))
- belt = pickweight(list(
+ belt = pick_weight(list(
/obj/item/pickaxe = 16,
/obj/item/pickaxe/mini = 8,
/obj/item/pickaxe/silver = 4,
@@ -189,7 +189,7 @@
)
)
if(prob(75))
- gloves = pickweight(list(
+ gloves = pick_weight(list(
/obj/item/clothing/gloves/color/black = 9,
/obj/item/clothing/gloves/explorer/old = 1
)
@@ -197,7 +197,7 @@
if(prob(75))
shoes = /obj/item/clothing/shoes/workboots/mining
if(prob(75))
- mask = pickweight(list(
+ mask = pick_weight(list(
/obj/item/clothing/mask/gas/explorer = 9,
/obj/item/clothing/mask/gas/explorer/old = 1
)
@@ -205,7 +205,7 @@
if(prob(50))
glasses = /obj/item/clothing/glasses/meson
if(prob(50))
- r_pocket = pickweight(list(
+ r_pocket = pick_weight(list(
/obj/item/stack/marker_beacon = 20,
/obj/item/spacecash/bundle/smallrand = 7,
/obj/item/reagent_containers/hypospray/medipen/survival = 2,
@@ -213,7 +213,7 @@
)
)
if(prob(25))
- l_pocket = pickweight(list(
+ l_pocket = pick_weight(list(
/obj/item/spacecash/bundle/smallrand = 5,
/obj/item/reagent_containers/hypospray/medipen/survival = 2,
/obj/item/borg/upgrade/modkit/cooldown = 1
@@ -222,7 +222,7 @@
if(prob(75))
for(var/count in 1 to 3)
if(prob(70))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/borg/upgrade/modkit/damage = 1,
/obj/item/borg/upgrade/modkit/trigger_guard = 1,
/obj/item/soap/nanotrasen = 1,
@@ -242,7 +242,7 @@
)
if(prob(30))
backpack_contents += list(
- /obj/item/reagent_containers/hypospray/medipen/survival = pickweight(list(
+ /obj/item/reagent_containers/hypospray/medipen/survival = pick_weight(list(
1 = 3,
2 = 2,
3 = 1
@@ -251,7 +251,7 @@
)
else if (prob(75))
backpack_contents = list()
- back = pickweight(list(
+ back = pick_weight(list(
/obj/item/kinetic_crusher = 9,
/obj/item/kinetic_crusher/old = 1
)
@@ -282,7 +282,7 @@
back = /obj/item/melee/axe/fire
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/stack/tape/industrial/electrical = 1,
/obj/item/electronics/apc = 1,
/obj/item/multitool = 1,
@@ -311,7 +311,7 @@
else if (prob(75))
back = /obj/item/defibrillator/loaded
if(prob(75))
- belt = pickweight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1))
+ belt = pick_weight(list(/obj/item/storage/belt/medical = 5, /obj/item/defibrillator/compact/loaded = 1))
if(prob(75))
gloves = pick(/obj/item/clothing/gloves/color/white, /obj/item/clothing/gloves/color/latex/nitrile)
if(prob(75))
@@ -326,7 +326,7 @@
glasses = pick(/obj/item/clothing/glasses/hud/health, /obj/item/clothing/glasses/hud/health/prescription)
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/reagent_containers/pill/patch/styptic = 5,
/obj/item/reagent_containers/pill/patch/silver_sulf = 5,
/obj/item/storage/firstaid/medical = 3,
@@ -371,7 +371,7 @@
neck = /obj/item/clothing/neck/tie/horrible
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/research_notes/loot/tiny = 3,
/obj/item/research_notes/loot/small = 3,
/obj/item/reagent_scanner = 3,
@@ -382,7 +382,7 @@
/obj/item/stock_parts/micro_laser/high = 2,
/obj/item/stock_parts/matter_bin/adv = 2,
/obj/item/survey_handheld = 1,
- /obj/item/weldingtool/experimental = 1,
+ /obj/item/weldingtool/electric = 1,
/obj/item/mmi/posibrain = 1,
/obj/item/reagent_containers/glass/beaker/plastic = 1,
/obj/item/organ/eyes/robotic/shield = 1,
@@ -414,7 +414,7 @@
ears = /obj/item/radio/headset/headset_cargo
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/spacecash/bundle/smallrand = 5,
/obj/item/ammo_box/magazine/illestren_a850r = 5,
/obj/item/ammo_box/magazine/zip_ammo_9mm = 5,
@@ -451,7 +451,7 @@
if(prob(75))
head = pick(/obj/item/clothing/head/helmet/sec, /obj/item/clothing/head/helmet/blueshirt, /obj/item/clothing/head/helmet/bulletproof)
if(prob(75))
- mask = /obj/item/clothing/mask/gas/sechailer
+ mask = /obj/item/clothing/mask/gas
if(prob(75))
ears = /obj/item/radio/headset/headset_sec
if(prob(75))
@@ -459,16 +459,16 @@
if(prob(75))
r_pocket = pick(/obj/item/flashlight/seclite, /obj/item/assembly/flash/handheld, /obj/item/restraints/handcuffs)
if(prob(50))
- suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg, /obj/item/gun/energy/e_gun/iot)
+ suit_store = pick(/obj/item/gun/energy/e_gun, /obj/item/gun/energy/e_gun/smg)
for(var/i = 1 to 3)
if(prob(75))
- backpack_contents += pickweight(list(
+ backpack_contents += pick_weight(list(
/obj/item/restraints/handcuffs = 8,
/obj/item/assembly/flash/handheld = 5,
/obj/item/storage/box/evidence = 6,
/obj/item/flashlight/seclite = 4,
- /obj/item/ammo_box/c9mm/rubbershot = 3,
- /obj/item/ammo_box/c9mm = 1,
+ /obj/item/storage/box/ammo/c9mm_rubber = 3,
+ /obj/item/storage/box/ammo/c9mm = 1,
/obj/item/stock_parts/cell/gun = 3,
/obj/item/coin/antagtoken = 1,
/obj/item/grenade/stingbang = 1
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm
index 2edf7322708e..89f1848a3023 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_demon.dm
@@ -45,7 +45,7 @@
name = "ice blast"
damage = 5
nodamage = FALSE
- temperature = -75
+ temperature = -2
// [CELADON-EDIT] - CELADON_BALANCE_MOBS
// /mob/living/simple_animal/hostile/asteroid/ice_demon/OpenFire()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm
index 7a4d8cb234c2..8973b3ed18b5 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/ice_whelp.dm
@@ -40,7 +40,7 @@
/mob/living/simple_animal/hostile/asteroid/ice_whelp/OpenFire()
var/turf/T = get_ranged_target_turf_direct(src, target, fire_range)
var/list/burn_turfs = getline(src, T) - get_turf(src)
- dragon_fire_line(src, burn_turfs)
+ fire_line(src, burn_turfs)
/mob/living/simple_animal/hostile/asteroid/ice_whelp/death(gibbed)
move_force = MOVE_FORCE_DEFAULT
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
index 9ad24e5f01b6..e1aec7e30d30 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
@@ -1,7 +1,7 @@
//the base mining mob
/mob/living/simple_animal/hostile/asteroid
vision_range = 2
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
faction = list("mining")
weather_immunities = list("lava","ash")
obj_damage = 30
@@ -21,18 +21,8 @@
mob_size = MOB_SIZE_LARGE
var/icon_aggro = null
var/trophy_drop_mod = 25
- // [CELADON-REMOVE] - CELADONE_BALANCE - вынесено в родитель hostile и прописано в модуле
- // var/datum/armor/armor //WS edit - Whitesands
- // [/CELADON-REMOVE]
/mob/living/simple_animal/hostile/asteroid/Initialize(mapload)
- if (islist(armor)) //WS edit begin - Whitesands
- armor = getArmor(arglist(armor))
- else if (!armor)
- armor = getArmor()
- else if (!istype(armor, /datum/armor))
- stack_trace("Invalid type [armor.type] found in .armor during [src.type] Initialize()") //WS edit begin - Whitesands
-
. = ..()
apply_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
@@ -47,11 +37,6 @@
return
icon_state = icon_living
-/mob/living/simple_animal/hostile/asteroid/getarmor(def_zone, type) //WS edit begin - Whitesands
- if(armor)
- return armor.getRating(type)
- return 0 // If no armor //WS edit end
-
/mob/living/simple_animal/hostile/asteroid/bullet_act(obj/projectile/P)//Reduces damage from most projectiles to curb off-screen kills
if(!stat)
Aggro()
diff --git a/code/modules/mob/living/simple_animal/hostile/netherworld.dm b/code/modules/mob/living/simple_animal/hostile/netherworld.dm
index 25827781b4b8..e6a5ec66cb9a 100644
--- a/code/modules/mob/living/simple_animal/hostile/netherworld.dm
+++ b/code/modules/mob/living/simple_animal/hostile/netherworld.dm
@@ -14,8 +14,7 @@
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = list("nether")
speak_emote = list("screams")
- gold_core_spawnable = HOSTILE_SPAWN
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
var/phaser = TRUE
@@ -158,7 +157,6 @@
icon_state = "blank-body"
icon_living = "blank-body"
icon_dead = "blank-dead"
- gold_core_spawnable = NO_SPAWN
health = 100
maxHealth = 100
melee_damage_lower = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/regalrat.dm b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
index cad59e7369b8..f957018dfad1 100644
--- a/code/modules/mob/living/simple_animal/hostile/regalrat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/regalrat.dm
@@ -25,7 +25,6 @@
attack_sound = 'sound/weapons/punch1.ogg'
ventcrawler = VENTCRAWLER_ALWAYS
unique_name = TRUE
- gold_core_spawnable = HOSTILE_SPAWN
faction = list("rat")
var/datum/action/cooldown/coffer
var/datum/action/cooldown/riot
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
index 4f671f37ac68..2a3c67f1d188 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
@@ -36,7 +36,7 @@
//Space bats need no air to fly in.
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
/mob/living/simple_animal/hostile/retaliate/bat/Initialize()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index 75610b382cb3..611b5641ff52 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -29,7 +29,6 @@
del_on_death = 1
loot = list(/obj/effect/mob_spawn/human/clown/corpse)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 270
maxbodytemp = 370
unsuitable_atmos_damage = 10
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
index e8bee6661a5a..6c23f5cefe23 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/frog.dm
@@ -28,7 +28,6 @@
butcher_results = list(/obj/item/reagent_containers/food/snacks/nugget = 1)
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
- gold_core_spawnable = FRIENDLY_SPAWN
var/stepped_sound = 'sound/effects/huuu.ogg'
/mob/living/simple_animal/hostile/retaliate/frog/Initialize()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
index 8b9d0d666bfb..a3da5b7c5be9 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
@@ -25,12 +25,11 @@
speak_emote = list("weeps")
deathmessage = "wails, disintegrating into a pile of ectoplasm!"
loot = list(/obj/item/ectoplasm)
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
movement_type = FLYING
pressure_resistance = 300
- gold_core_spawnable = NO_SPAWN //too spooky for science
light_system = MOVABLE_LIGHT
light_range = 1 // same glowing as visible player ghosts
light_power = 2
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
index 80e5968cbc4d..ce333d2ef002 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/spaceman.dm
@@ -51,7 +51,6 @@
faction = list("nanotrasenprivate")
a_intent = INTENT_HARM
loot = list(/obj/effect/mob_spawn/human/corpse/nanotrasensoldier)
- atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 15
status_flags = CANPUSH
search_objects = 1
diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm
index 9ed3f5df85a3..7add4c1dfa5b 100644
--- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm
+++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm
@@ -44,7 +44,7 @@
mouse_opacity = MOUSE_OPACITY_ICON
butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30)
deathmessage = "screeches as its wings turn to dust and it collapses on the floor, life estinguished."
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
maxbodytemp = 1500
faction = list("carp")
diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm
index bac0b4b1d51b..b4a70b9c304c 100644
--- a/code/modules/mob/living/simple_animal/hostile/statue.dm
+++ b/code/modules/mob/living/simple_animal/hostile/statue.dm
@@ -28,7 +28,7 @@
attack_verb_simple = "claw"
attack_sound = 'sound/hallucinations/growl1.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
minbodytemp = 0
faction = list("statue")
@@ -49,7 +49,6 @@
move_force = MOVE_FORCE_EXTREMELY_STRONG
move_resist = MOVE_FORCE_EXTREMELY_STRONG
pull_force = MOVE_FORCE_EXTREMELY_STRONG
- gold_core_spawnable = HOSTILE_SPAWN
var/cannot_be_seen = 1
var/mob/living/creator = null
diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm
index 41efc6993d9d..69e0970e2264 100644
--- a/code/modules/mob/living/simple_animal/hostile/tree.dm
+++ b/code/modules/mob/living/simple_animal/hostile/tree.dm
@@ -40,7 +40,6 @@
deathmessage = "is hacked into pieces!"
loot = list(/obj/item/stack/sheet/mineral/wood)
- gold_core_spawnable = HOSTILE_SPAWN
del_on_death = 1
var/is_tree = TRUE
@@ -81,7 +80,7 @@
loot = list(/obj/item/stack/rods)
speak_emote = list("polls")
faction = list()
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
is_tree = FALSE
/mob/living/simple_animal/hostile/tree/festivus/attack_hand(mob/living/carbon/human/M)
diff --git a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
index 52ddcc72963a..13d8dd57ba42 100644
--- a/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
+++ b/code/modules/mob/living/simple_animal/hostile/venus_human_trap.dm
@@ -96,7 +96,7 @@
a_intent = INTENT_HARM
ranged_cooldown_time = 45
attack_sound = 'sound/weapons/bladeslice.ogg'
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
unsuitable_atmos_damage = 0
lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE
faction = list("hostile","vines","plants")
diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
index b77436c09c89..be3242ed5252 100644
--- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
+++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
@@ -32,7 +32,6 @@
aggro_vision_range = 9
mob_size = MOB_SIZE_SMALL
environment_smash = ENVIRONMENT_SMASH_NONE
- gold_core_spawnable = HOSTILE_SPAWN
var/wumbo = 0
var/inflate_cooldown = 0
var/datum/action/innate/fugu/expand/E
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index bc22f78ae7a3..92b955d3a841 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -64,7 +64,6 @@
friendly_verb_simple = "groom"
mob_size = MOB_SIZE_SMALL
movement_type = FLYING
- gold_core_spawnable = FRIENDLY_SPAWN
var/parrot_damage_upper = 10
var/parrot_state = PARROT_WANDER //Hunt for a perch when created
@@ -260,8 +259,8 @@
switch(ch)
if(RADIO_CHANNEL_NANOTRASEN)
available_channels.Add(RADIO_TOKEN_NANOTRASEN)
- if(RADIO_CHANNEL_COMMAND)
- available_channels.Add(RADIO_TOKEN_COMMAND)
+ if(RADIO_CHANNEL_EMERGENCY)
+ available_channels.Add(RADIO_TOKEN_EMERGENCY)
if(RADIO_CHANNEL_MINUTEMEN)
available_channels.Add(RADIO_TOKEN_MINUTEMEN)
if(RADIO_CHANNEL_INTEQ)
@@ -904,7 +903,6 @@
name = "Polly"
desc = "Polly the Parrot. An expert on quantum cracker theory."
speak = list("Polly wanna cracker!", ":e Check the crystal, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS ABOUT TO DELAMINATE CALL THE SHUTTLE")
- gold_core_spawnable = NO_SPAWN
speak_chance = 3
var/memory_saved = FALSE
var/rounds_survived = 0
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
deleted file mode 100644
index fcb9274a2c62..000000000000
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ /dev/null
@@ -1,66 +0,0 @@
-/mob/living/simple_animal/shade
- name = "Shade"
- real_name = "Shade"
- desc = "A bound spirit."
- gender = PLURAL
- icon = 'icons/mob/cult.dmi'
- icon_state = "shade"
- icon_living = "shade"
- mob_biotypes = MOB_SPIRIT
- maxHealth = 40
- health = 40
- healable = 0
- speak_emote = list("hisses")
- emote_hear = list("wails.","screeches.")
- response_help_continuous = "puts their hand through"
- response_help_simple = "put your hand through"
- response_disarm_continuous = "flails at"
- response_disarm_simple = "flail at"
- response_harm_continuous = "punches"
- response_harm_simple = "punch"
- speak_chance = 1
- melee_damage_lower = 5
- melee_damage_upper = 12
- attack_verb_continuous = "metaphysically strikes"
- attack_verb_simple = "metaphysically strike"
- minbodytemp = 0
- maxbodytemp = INFINITY
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- stop_automated_movement = 1
- faction = list("cult")
- status_flags = CANPUSH
- movement_type = FLYING
- loot = list(/obj/item/ectoplasm)
- del_on_death = TRUE
- initial_language_holder = /datum/language_holder/construct
-
-/mob/living/simple_animal/shade/Initialize()
- . = ..()
- ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT)
-
-/mob/living/simple_animal/shade/death()
- deathmessage = "lets out a contented sigh as [p_their()] form unwinds."
- ..()
-
-/mob/living/simple_animal/shade/attack_animal(mob/living/simple_animal/M)
- if(isconstruct(M))
- var/mob/living/simple_animal/hostile/construct/C = M
- if(!C.can_repair_constructs)
- return
- if(health < maxHealth)
- adjustHealth(-25)
- Beam(M,icon_state="sendbeam",time=4)
- M.visible_message(
- "[M] heals \the [src].", \
- "You heal [src], leaving [src] at [health]/[maxHealth] health.")
- else
- to_chat(M, "You cannot heal [src], as [p_theyre()] unharmed!")
- else if(src != M)
- return ..()
-
-/mob/living/simple_animal/shade/attackby(obj/item/O, mob/user, params) //Marker -Agouri
- if(istype(O, /obj/item/soulstone))
- var/obj/item/soulstone/SS = O
- SS.transfer_soul("SHADE", src, user)
- else
- . = ..()
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 3670e14a6405..a1a0886a2362 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -59,7 +59,7 @@
///Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
///Leaving something at 0 means it's off - has no maximum.
- var/list/atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
+ var/list/atmos_requirements = NORMAL_ATMOS_REQS
///This damage is taken when atmos doesn't fit all the requirements above.
var/unsuitable_atmos_damage = 2
@@ -86,7 +86,6 @@
///Set to 1 to allow breaking of crates,lockers,racks,tables; 2 for walls; 3 for Rwalls.
var/environment_smash = ENVIRONMENT_SMASH_NONE
-
///Hot simple_animal baby making vars.
var/list/childtype = null
var/next_scan_time = 0
@@ -98,8 +97,6 @@
var/obj/item/card/id/access_card = null
///In the event that you want to have a buffing effect on the mob, but don't want it to stack with other effects, any outside force that applies a buff to a simple mob should at least set this to 1, so we have something to check against.
var/buffed = 0
- ///If the mob can be spawned with a gold slime core. HOSTILE_SPAWN are spawned with plasma, FRIENDLY_SPAWN are spawned with blood.
- var/gold_core_spawnable = NO_SPAWN
var/datum/component/spawner/nest
@@ -143,8 +140,18 @@
///What kind of footstep this mob should have. Null if it shouldn't have any.
var/footstep_type
+ /// Base armor value on this mob for running armor checks
+ var/datum/armor/armor
+
+
/mob/living/simple_animal/Initialize(mapload)
. = ..()
+ if (islist(armor))
+ armor = getArmor(arglist(armor))
+ else if (!armor)
+ armor = getArmor()
+ else if (!istype(armor, /datum/armor))
+ stack_trace("Invalid type [armor.type] found in .armor during [src.type] Initialize()")
GLOB.simple_animals[AIStatus] += src
if(gender == PLURAL)
gender = pick(MALE,FEMALE)
@@ -173,6 +180,11 @@
return ..()
+/mob/living/simple_animal/getarmor(def_zone, type)
+ if(armor)
+ return armor.getRating(type)
+ return FALSE
+
/mob/living/simple_animal/attackby(obj/item/O, mob/user, params)
if(!is_type_in_list(O, food_type))
..()
@@ -466,7 +478,7 @@
return //we never mate when not alone, so just abort early
if(alone && partner && children < 3)
- var/childspawn = pickweight(childtype)
+ var/childspawn = pick_weight(childtype)
var/turf/target = get_turf(loc)
if(target)
return new childspawn(target)
@@ -630,30 +642,29 @@
GLOB.simple_animals[togglestatus] += list(src)
AIStatus = togglestatus
- var/virt_z = "[virtual_z()]"
+ var/virt_z = virtual_z()
if(!virt_z)
return
switch(togglestatus)
if(AI_Z_OFF)
- LAZYADDASSOCLIST(SSidlenpcpool.idle_mobs_by_virtual_level, virt_z, src)
-
+ LAZYADDASSOCLIST(SSidlenpcpool.idle_mobs_by_virtual_level, "[virt_z]", src)
else
- LAZYREMOVEASSOC(SSidlenpcpool.idle_mobs_by_virtual_level, virt_z, src)
+ LAZYREMOVEASSOC(SSidlenpcpool.idle_mobs_by_virtual_level, "[virt_z]", src)
/mob/living/simple_animal/proc/check_should_sleep()
if (pulledby || shouldwakeup)
toggle_ai(AI_ON)
return
- var/virt_z = "[virtual_z()]"
- if(!virt_z)
- return
- var/players_on_virtual_z = LAZYACCESS(SSmobs.players_by_virtual_z, virt_z)
- if(!length(players_on_virtual_z))
- toggle_ai(AI_Z_OFF)
- else if(AIStatus == AI_Z_OFF)
- toggle_ai(AI_ON)
+ var/virt_z = virtual_z()
+ var/players_on_virtual_z = 0
+ if(virt_z)
+ players_on_virtual_z = LAZYACCESS(SSmobs.players_by_virtual_z, "[virt_z]")
+ if(!length(players_on_virtual_z))
+ toggle_ai(AI_Z_OFF)
+ else if(AIStatus == AI_Z_OFF)
+ toggle_ai(AI_ON)
/mob/living/simple_animal/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
. = ..()
@@ -665,6 +676,7 @@
. = ..()
if(previous_virtual_z)
LAZYREMOVEASSOC(SSidlenpcpool.idle_mobs_by_virtual_level, "[previous_virtual_z]", src)
- toggle_ai(initial(AIStatus))
+ if(QDELETED(src))
+ return
if(new_virtual_z)
check_should_sleep()
diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm
index b880704c9bf9..19eaa5a6f91d 100644
--- a/code/modules/mob/living/simple_animal/slime/life.dm
+++ b/code/modules/mob/living/simple_animal/slime/life.dm
@@ -193,7 +193,7 @@
C.adjustCloneLoss(rand(2,4))
C.adjustToxLoss(rand(1,2))
- if(prob(10) && C.client)
+ if(prob(10) && C.client && !HAS_TRAIT(C, TRAIT_ANALGESIA))
to_chat(C, "[pick("You can feel your body becoming weak!", \
"You feel like you're about to die!", \
"You feel every part of your body screaming in agony!", \
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index cb4b76983563..56478ebc7853 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -24,7 +24,7 @@
bubble_icon = "slime"
initial_language_holder = /datum/language_holder/slime
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ atmos_requirements = IMMUNE_ATMOS_REQS
maxHealth = 150
health = 150
@@ -43,7 +43,6 @@
// for the sake of cleanliness, though, here they are.
status_flags = CANUNCONSCIOUS|CANPUSH
- var/cores = 1 // the number of /obj/item/slime_extract's the slime has left inside
var/mutation_chance = 30 // Chance of mutating, should be between 25 and 35
var/powerlevel = 0 // 1-10 controls how much electricity they are generating
@@ -71,7 +70,6 @@
///////////TIME FOR SUBSPECIES
var/colour = "grey"
- var/coretype = /obj/item/slime_extract/grey
var/list/slime_mutation[4]
var/static/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange",
@@ -79,13 +77,6 @@
"gold", "green", "adamantine", "oil", "light pink", "bluespace",
"cerulean", "sepia", "black", "pyrite")
- ///////////CORE-CROSSING CODE
-
- var/effectmod //What core modification is being used.
- var/crossbreed_modifier = 1 // modifies how many extracts are needed
- var/applied = 0 //How many extracts of the modtype have been applied.
-
-
/mob/living/simple_animal/slime/Initialize(mapload, new_colour="grey", new_is_adult=FALSE)
var/datum/action/innate/slime/feed/F = new
F.Grant(src)
@@ -119,8 +110,6 @@
colour = new_colour
update_name()
slime_mutation = mutation_table(colour)
- var/sanitizedcolour = replacetext(colour, " ", "")
- coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]")
regenerate_icons()
/mob/living/simple_animal/slime/update_name()
@@ -354,50 +343,9 @@
force_effect = round(W.force/2)
if(prob(10 + force_effect))
discipline_slime(user)
- if(istype(W, /obj/item/storage/bag/bio))
- var/obj/item/storage/P = W
- if(!effectmod)
- to_chat(user, "The slime is not currently being mutated.")
- return
- var/hasOutput = FALSE //Have we outputted text?
- var/hasFound = FALSE //Have we found an extract to be added?
- for(var/obj/item/slime_extract/S in P.contents)
- if(S.effectmod == effectmod)
- SEND_SIGNAL(P, COMSIG_TRY_STORAGE_TAKE, S, get_turf(src), TRUE)
- qdel(S)
- applied++
- hasFound = TRUE
- if(applied >= (SLIME_EXTRACT_CROSSING_REQUIRED * crossbreed_modifier))
- to_chat(user, "You feed the slime as many of the extracts from the bag as you can, and it mutates!")
- playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE)
- spawn_corecross()
- hasOutput = TRUE
- break
- if(!hasOutput)
- if(!hasFound)
- to_chat(user, "There are no extracts in the bag that this slime will accept!")
- else
- to_chat(user, "You feed the slime some extracts from the bag.")
- playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE)
return
..()
-/mob/living/simple_animal/slime/proc/spawn_corecross()
- var/static/list/crossbreeds = subtypesof(/obj/item/slimecross)
- visible_message("[src] shudders, its mutated core consuming the rest of its body!")
- playsound(src, 'sound/magic/smoke.ogg', 50, TRUE)
- var/crosspath
- for(var/X in crossbreeds)
- var/obj/item/slimecross/S = X
- if(initial(S.colour) == colour && initial(S.effect) == effectmod)
- crosspath = S
- break
- if(crosspath)
- new crosspath(loc)
- else
- visible_message("The mutated core shudders, and collapses into a puddle, unable to maintain its form.")
- qdel(src)
-
/mob/living/simple_animal/slime/proc/apply_water()
adjustBruteLoss(rand(15,20))
if(!client)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 1617f727badd..15345fb24a6f 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -452,8 +452,6 @@
else
client.eye = client.mob
client.perspective = MOB_PERSPECTIVE
- else
- //Do nothing
else
//Reset to common defaults: mob if on turf, otherwise current loc
if(isturf(loc))
@@ -504,10 +502,13 @@
handle_eye_contact(examinify)
else
result = examinify.examine_more(src)
+
+ if(!LAZYLEN(result))
+ result = list(span_notice("You examine [examinify] closer, but find nothing of interest..."))
else
result = examinify.examine(src) // if a tree is examined but no client is there to see it, did the tree ever really exist?
- if(result.len)
+ if(length(result))
for(var/i in 1 to (length(result) - 1))
result[i] += "\n"
@@ -537,9 +538,9 @@
visible_message(" [name] begins feeling around for \the [examined_thing.name]...")
/// how long it takes for the blind person to find the thing they're examining
- var/examine_delay_length = rand(1 SECONDS, 2 SECONDS)
+ var/examine_delay_length = rand(0.5 SECONDS, 1 SECONDS)
if(client?.recent_examines && client?.recent_examines[examined_thing]) //easier to find things we just touched
- examine_delay_length = 0.5 SECONDS
+ examine_delay_length = 0.25 SECONDS
else if(isobj(examined_thing))
examine_delay_length *= 1.5
else if(ismob(examined_thing) && examined_thing != src)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 29803a42be0e..7b967b5c5849 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -77,7 +77,7 @@
if(prob(probability))
zone = check_zone(zone)
else
- zone = pickweight(list(BODY_ZONE_HEAD = 1, BODY_ZONE_CHEST = 1, BODY_ZONE_L_ARM = 4, BODY_ZONE_R_ARM = 4, BODY_ZONE_L_LEG = 4, BODY_ZONE_R_LEG = 4))
+ zone = pick_weight(list(BODY_ZONE_HEAD = 1, BODY_ZONE_CHEST = 1, BODY_ZONE_L_ARM = 4, BODY_ZONE_R_ARM = 4, BODY_ZONE_L_LEG = 4, BODY_ZONE_R_LEG = 4))
return zone
///Would this zone be above the neck
@@ -135,11 +135,6 @@
newletter = "oo"
else if(lowerletter == "c")
newletter = "k"
- if(rand(1, 20) == 20)
- if(newletter == " ")
- newletter = "...huuuhhh..."
- else if(newletter == ".")
- newletter = " *BURP*."
switch(rand(1, 20))
if(1)
newletter += "'"
@@ -148,7 +143,7 @@
if(20)
newletter += "[newletter][newletter]"
else
- // do nothing
+ EMPTY_BLOCK_GUARD
. += "[newletter]"
return sanitize(.)
[CELADON REMOVE] */
@@ -194,7 +189,7 @@
if(5)
newletter = "glor"
else
- // do nothing
+ EMPTY_BLOCK_GUARD
. += newletter
return sanitize(.)
@@ -383,9 +378,6 @@
return FALSE
if(M.mind && M.mind.special_role)//If they have a mind and special role, they are some type of traitor or antagonist.
switch(SSticker.mode.config_tag)
- if("cult")
- if(M.mind in SSticker.mode.cult)
- return 2
if("nuclear")
if(M.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE))
return 2
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index acc026c16dda..ef21915e1fca 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -617,9 +617,6 @@
if(!MP)
return 0 //Sanity, this should never happen.
- if(ispath(MP, /mob/living/simple_animal/hostile/construct))
- return 0 //Verbs do not appear for players.
-
//Good mobs!
if(ispath(MP, /mob/living/simple_animal/pet/cat))
return 1
@@ -631,8 +628,6 @@
return 1
if(ispath(MP, /mob/living/simple_animal/hostile/mushroom))
return 1
- if(ispath(MP, /mob/living/simple_animal/shade))
- return 1
if(ispath(MP, /mob/living/simple_animal/hostile/killertomato))
return 1
if(ispath(MP, /mob/living/simple_animal/mouse))
diff --git a/code/modules/mob_spawner/hivebot.dm b/code/modules/mob_spawner/hivebot.dm
index 630ed6f6f3c7..61c3d477745b 100644
--- a/code/modules/mob_spawner/hivebot.dm
+++ b/code/modules/mob_spawner/hivebot.dm
@@ -1,20 +1,21 @@
/obj/structure/spawner/hivebot
name = "hivebot fabricator"
- desc = "An active fabricator, creating hivebots out of resources from below the surface."
+ desc = "An active fabrication plant, electrical tendrils reaching into the ground searching for scrap metals, a hunger permeating the world around it."
icon = 'icons/obj/machines/bsm.dmi'
icon_state = "bsm_on"
- faction = list("mining")
+ faction = list("hivebot")
max_integrity = 250
mob_types = list(
- /mob/living/simple_animal/hostile/hivebot/wasteplanet = 40,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged = 40,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid = 10,
- /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 5,
- /mob/living/simple_animal/hostile/hivebot/mechanic = 5
+ /mob/living/simple_animal/hostile/hivebot = 40,
+ /mob/living/simple_animal/hostile/hivebot/ranged = 40,
+ /mob/living/simple_animal/hostile/hivebot/ranged/rapid = 10,
+ /mob/living/simple_animal/hostile/hivebot/strong = 5,
+ /mob/living/simple_animal/hostile/hivebot/mechanic = 5,
+ /mob/living/simple_animal/hostile/hivebot/defender = 1,
)
- spawn_text = "crawls out of"
+ spawn_text = "emerges from within"
spawn_sound = list('sound/effects/suitstep2.ogg')
resistance_flags = FIRE_PROOF | LAVA_PROOF
var/obj/effect/light_emitter/hivespawner/emitted_light
@@ -34,7 +35,7 @@
/obj/structure/spawner/hivebot/proc/destroy_effect()
playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE)
- visible_message("[src] begins to rattle and shake, sparks flying off of it!")
+ visible_message(span_boldannounce("[src] begins to rattle and shake, sparks flying off of it!"))
/obj/structure/spawner/hivebot/proc/drop_loot()
@@ -42,7 +43,7 @@
smoke.set_up(2, loc)
smoke.start()
new /obj/effect/particle_effect/sparks(loc)
- new /obj/effect/spawner/lootdrop/waste/hivebot/beacon(loc)
+ new /obj/effect/spawner/random/waste/hivebot/beacon(loc)
/obj/effect/light_emitter/hivespawner
set_luminosity = 4
diff --git a/code/modules/mob_spawner/spawner_componet.dm b/code/modules/mob_spawner/spawner_componet.dm
index 8a904a5504c4..637423f0b1e0 100644
--- a/code/modules/mob_spawner/spawner_componet.dm
+++ b/code/modules/mob_spawner/spawner_componet.dm
@@ -114,7 +114,7 @@
spot = pick(peel)
else
spot = pick(circleviewturfs(origin, spawn_distance_max))
- var/chosen_mob_type = pickweight(mob_types)
+ var/chosen_mob_type = pick_weight(mob_types)
var/mob/living/simple_animal/L = new chosen_mob_type(spot)
L.flags_1 |= (P.flags_1 & ADMIN_SPAWNED_1)
spawned_mobs += L
diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm
index 0199662862f8..37b9cf6e2ac7 100644
--- a/code/modules/mod/mod_control.dm
+++ b/code/modules/mod/mod_control.dm
@@ -416,7 +416,7 @@
wearer.apply_damage(10 / severity, BURN, spread_damage=TRUE)
to_chat(wearer, span_danger("You feel [src] heat up from the EMP, burning you slightly."))
if(wearer.stat < UNCONSCIOUS && prob(10))
- wearer.emote("scream")
+ wearer.force_scream()
/*obj/item/mod/control/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot)
if(visuals_only)
diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm
index 2e6325df919f..4643fa939206 100644
--- a/code/modules/mod/mod_theme.dm
+++ b/code/modules/mod/mod_theme.dm
@@ -682,7 +682,7 @@
/obj/item/restraints/handcuffs,
/obj/item/assembly/flash,
/obj/item/melee/baton,
- /obj/item/melee/transforming/energy/sword,
+ /obj/item/melee/energy/sword,
/obj/item/shield/energy,
)
skins = list(
@@ -733,7 +733,7 @@
/obj/item/restraints/handcuffs,
/obj/item/assembly/flash,
/obj/item/melee/baton,
- /obj/item/melee/transforming/energy/sword,
+ /obj/item/melee/energy/sword,
/obj/item/shield/energy,
)
skins = list(
@@ -947,7 +947,7 @@
/obj/item/restraints/handcuffs,
/obj/item/assembly/flash,
/obj/item/melee/baton,
- /obj/item/melee/transforming/energy/sword,
+ /obj/item/melee/energy/sword,
/obj/item/shield/energy,
)
skins = list(
diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm
index e735654ef2c5..dc0f595c19f2 100644
--- a/code/modules/mod/modules/modules_maint.dm
+++ b/code/modules/mod/modules/modules_maint.dm
@@ -47,7 +47,7 @@
if(!mod.wearer) //while there is a guaranteed user when on_wearer_exposed() fires, that isn't the same case for this proc
return
mod.wearer.visible_message("[src] inside [mod.wearer]'s [mod.name] snaps shut, mutilating the user inside!", span_userdanger("*SNAP*"))
- mod.wearer.emote("scream")
+ mod.wearer.force_scream()
playsound(mod.wearer, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5)
playsound(mod.wearer, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5)
mod.wearer.apply_damage(500, BRUTE, forced = TRUE, spread_damage = TRUE) //boggers, bogchamp, etc
diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm
index f7a518d3568f..2e7ce89d33b8 100644
--- a/code/modules/modular_computers/computers/item/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop.dm
@@ -112,7 +112,10 @@
display_overlays = screen_on
update_appearance()
-
+/obj/item/modular_computer/laptop/examine_more(mob/user)
+ if(screen_on)
+ interact(user)
+ return ..()
// Laptop frame, starts empty and closed.
/obj/item/modular_computer/laptop/buildable
diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm
index b7f1a2f5d912..e8a3b6e18527 100644
--- a/code/modules/modular_computers/computers/machinery/modular_computer.dm
+++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm
@@ -85,6 +85,10 @@
else
return ..()
+/obj/machinery/modular_computer/examine_more(mob/user)
+ interact(user)
+ return ..()
+
// Process currently calls handle_power(), may be expanded in future if more things are added.
/obj/machinery/modular_computer/process()
if(cpu)
diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm
index b1ec3d3edc16..5ad3a674e334 100644
--- a/code/modules/modular_computers/laptop_vendor.dm
+++ b/code/modules/modular_computers/laptop_vendor.dm
@@ -254,7 +254,7 @@
var/obj/item/card/bank/ID = I
var/datum/bank_account/account = ID.registered_account
var/target_credits = total_price - credits
- if(!account.adjust_money(-target_credits, "laptop_vendor"))
+ if(!account.adjust_money(-target_credits, CREDIT_LOG_VENDOR_PURCHASE))
say("Insufficient credits on card to purchase!")
return
credits += target_credits
diff --git a/code/modules/movespeed/modifiers/reagent.dm b/code/modules/movespeed/modifiers/reagent.dm
index ecf91d0760fa..24108e6178d4 100644
--- a/code/modules/movespeed/modifiers/reagent.dm
+++ b/code/modules/movespeed/modifiers/reagent.dm
@@ -38,4 +38,4 @@
multiplicative_slowdown = -0.45
/datum/movespeed_modifier/reagent/shock_wine
- multiplicative_slowdown = -0.40
+ multiplicative_slowdown = -0.30
diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm
deleted file mode 100644
index 25cbcd42e124..000000000000
--- a/code/modules/movespeed/modifiers/status_effects.dm
+++ /dev/null
@@ -1,17 +0,0 @@
-/datum/movespeed_modifier/status_effect/bloodchill
- multiplicative_slowdown = 3
-
-/datum/movespeed_modifier/status_effect/bonechill
- multiplicative_slowdown = 3
-
-/datum/movespeed_modifier/status_effect/lightpink
- multiplicative_slowdown = -0.25
- blacklisted_movetypes = (FLYING|FLOATING)
-
-/datum/movespeed_modifier/status_effect/tarfoot
- multiplicative_slowdown = 0.5
- blacklisted_movetypes = (FLYING|FLOATING)
-
-/datum/movespeed_modifier/status_effect/sepia
- variable = TRUE
- blacklisted_movetypes = (FLYING|FLOATING)
diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm
index 49a8a4af6716..ab39af578889 100644
--- a/code/modules/overmap/helm.dm
+++ b/code/modules/overmap/helm.dm
@@ -262,7 +262,15 @@
ref = REF(engine)
)
.["engineInfo"] += list(engine_data)
-
+ // [CELADON-ADD] - subshuttles fix
+ .["motheroutpost"] = null
+ .["issubshuttle"] = null
+ if(current_ship.source_template.parent_type == /datum/map_template/shuttle/subshuttles)
+ .["issubshuttle"] = "true"
+ current_ship.sensor_range = 3
+ if(current_ship.docked_to.docked_to.parent_type == /datum/overmap/outpost)
+ .["motheroutpost"] = "true"
+ // [/CELADON-ADD] - subshuttles fix
/obj/machinery/computer/helm/ui_static_data(mob/user)
. = list()
.["isViewer"] = viewer || (!allow_ai_control && issilicon(user))
@@ -424,7 +432,7 @@
// Unregister map objects
if(current_ship)
user.client?.clear_map(current_ship.token.map_name)
- if(current_ship.burn_direction > BURN_NONE && !length(concurrent_users) && !viewer) // If accelerating with nobody else to stop it
+ if(current_ship.burn_direction > BURN_NONE && !length(concurrent_users) && !viewer && is_living) // If accelerating with nobody else to stop it
say("Pilot absence detected, engaging acceleration safeties.")
current_ship.change_heading(BURN_NONE)
diff --git a/code/modules/overmap/missions.dm b/code/modules/overmap/missions.dm
index 8baff21de865..a09d0eb8baec 100644
--- a/code/modules/overmap/missions.dm
+++ b/code/modules/overmap/missions.dm
@@ -1,9 +1,12 @@
/datum/mission
var/name = "Mission"
var/desc = "Do something for me."
- var/value = 1000 /// The mission's payout.
- var/duration = 30 MINUTES /// The amount of time in which to complete the mission.
- var/weight = 0 /// The relative probability of this mission being selected. 0-weight missions are never selected.
+ /// The mission's payout.
+ var/value = 1000
+ /// The amount of time in which to complete the mission.
+ var/duration = 30 MINUTES
+ /// The relative probability of this mission being selected. 0-weight missions are never selected.
+ var/weight = 0
/// Should mission value scale proportionally to the deviation from the mission's base duration?
var/dur_value_scaling = TRUE
@@ -39,6 +42,7 @@
return ..()
/datum/mission/proc/accept(datum/overmap/ship/controlled/acceptor, turf/accept_loc)
+ SSblackbox.record_feedback("nested tally", "mission", 1, list(name, "accepted"))
accepted = TRUE
servant = acceptor
LAZYREMOVE(source_outpost.missions, src)
@@ -63,10 +67,17 @@
return ..()
/datum/mission/proc/turn_in()
- servant.ship_account.adjust_money(value, "mission")
+ if(QDELING(src))
+ return
+ SSblackbox.record_feedback("nested tally", "mission", 1, list(name, "succeeded"))
+ SSblackbox.record_feedback("nested tally", "mission", value, list(name, "payout"))
+ servant.ship_account.adjust_money(value, CREDIT_LOG_MISSION)
qdel(src)
/datum/mission/proc/give_up()
+ if(QDELING(src))
+ return
+ SSblackbox.record_feedback("nested tally", "mission", 1, list(name, "abandoned"))
qdel(src)
/datum/mission/proc/can_complete()
diff --git a/code/modules/overmap/missions/acquire_mission.dm b/code/modules/overmap/missions/acquire_mission.dm
index ea55beb00120..71bb5546fe03 100644
--- a/code/modules/overmap/missions/acquire_mission.dm
+++ b/code/modules/overmap/missions/acquire_mission.dm
@@ -104,7 +104,7 @@
/datum/mission/acquire/true_love/strange_crystal
name = "Strange crystal needed (urgent!!!)"
- value = 1000
+ value = 4000
weight = 1
objective_type = /obj/item/strange_crystal
@@ -172,40 +172,16 @@ Acquire: Anomaly
value = 1300
objective_type = /mob/living/simple_animal/hostile/asteroid/hivelord/legion
-/datum/mission/acquire/creature/ice_whelp
- name = "Capture an ice whelp"
- desc = "I require a live ice whelp for research purposes. Trap one within the given \
- Lifeform Containment Unit and return it to me and you will be paid handsomely."
- value = 1700
- weight = 2
- objective_type = /mob/living/simple_animal/hostile/asteroid/ice_whelp
-
/datum/mission/acquire/creature/migo
name = "Capture a live mi-go"
desc = "I require a live mi-go for research purposes. Trap one within the given \
Lifeform Containment Unit and return it to me and you will be paid handsomely."
- value = 1050
+ value = 1300
weight = 2
objective_type = /mob/living/simple_animal/hostile/netherworld/migo/asteroid
-/datum/mission/acquire/creature/floorbot
- name = "Detain a malfunctioning floorbot"
- desc = "I require a functional abandoned floorbot for \"research\" purposes. Trap one within \
- the given Lifeform Containment Unit and return it to me and you will be paid handsomely."
- value = 1450
- weight = 1
- objective_type = /mob/living/simple_animal/bot/floorbot/rockplanet
-
-/datum/mission/acquire/creature/firebot
- name = "Detain a malfunctioning firebot"
- desc = "I require a functional abandoned firebot for \"research\" purposes. Trap one within \
- the given Lifeform Containment Unit and return it to me and you will be paid handsomely."
- value = 1450
- weight = 1
- objective_type = /mob/living/simple_animal/bot/firebot/rockplanet
-
/*
- Acquire: Landmines
+ Acquire: Salvage
*/
/datum/mission/acquire/landmine
@@ -219,74 +195,66 @@ Acquire: Anomaly
objective_type = /obj/item/mine/pressure/explosive
num_wanted = 2
-/*
- Acquire: Fishing
-*/
-
-/datum/mission/acquire/aquarium
- name = "Fish needed for my aquarium"
- weight = 6
- value = 750
- duration = 60 MINUTES
- val_mod_range = 0.2
- container_type = /obj/item/storage/fish_case/mission
-
-/datum/mission/acquire/aquarium/New(...)
- objective_type = pick(/obj/item/fish/clownfish,
- /obj/item/fish/pufferfish,
- /obj/item/fish/cardinal,
- /obj/item/fish/greenchromis,
- /obj/item/fish/trout,
- /obj/item/fish/salmon,
- /obj/item/fish/dwarf_moonfish,
- /obj/item/fish/gunner_jellyfish,
- /obj/item/fish/plasmatetra,
- /obj/item/fish/catfish,
- /obj/item/fish/bass,
- /obj/item/fish/armorfish,
- /obj/item/fish/needlefish)
- desc = "My aquarium is sorely lacking in [initial(objective_type.name)], can you please bring one to me? \
- Don't worry about if it's alive or dead, I have methods."
- . = ..()
-
-/datum/mission/acquire/aquarium/rare
- name = "Rare fish needed for my aquarium!"
- weight = 1
- value = 1500
- val_mod_range = 0.3
-
-/datum/mission/acquire/aquarium/rare/New(...)
- . = ..()
- objective_type = pick(/obj/item/fish/lanternfish,
- /obj/item/fish/firefish,
- /obj/item/fish/donkfish)
- desc = "I seek to make my beloved aquarium truly spectacular, and to do this I need only the finest fish! \
- Bring me a [initial(objective_type.name)] and I will reward you handsomely."
-
-/datum/mission/acquire/aquarium/sabatoge
- name = "That bastard has had it good for too long!"
- weight = 1
+/datum/mission/acquire/bounty
+ name = "Hunt down Frontiersmen Dogtags"
+ desc = "CLIP has assigned us to offer out bounties to hunt down Frontiersman cells and turn in their dogtags. We'll reward you well."
+ weight = 4
value = 3000
duration = 100 MINUTES
+ dur_mod_range = 0.2
+ container_type = /obj/item/storage/toolbox/bounty/hunt
+ objective_type = /obj/item/clothing/neck/dogtag/frontier
+ num_wanted = 3
-/datum/mission/acquire/aquarium/sabatoge/New(...)
- . = ..()
- desc = "My arch-nemesis [pick("Rutherford","Baldwin","Anderson","Percival")] thinks his aquarium is so much better than mine, I'll show him! \
- Bring me an emulsijack, and make sure it's alive!"
- objective_type = pick(/obj/item/fish/emulsijack)
+/datum/mission/acquire/bounty/ramzi
+ name = "Hunt down Ramzi Clique Dogtags"
+ desc = "Gezena has assigned us to offer out bounties to hunt down Ramzi Clique outfits and turn in their dogtags. We'll reward you well."
+ weight = 3
+ value = 4000
+ duration = 120 MINUTES
+ dur_mod_range = 0.1
+ container_type = /obj/item/storage/toolbox/bounty/hunt
+ objective_type = /obj/item/clothing/neck/dogtag/ramzi
+ num_wanted = 3
+
+/datum/mission/acquire/salvage
+ name = "Deliver Protolathe"
+ desc = "The Nanotrasen Corporation is contracting out to have scientific equipment returned. Looking for a rare circuitboard (R&D Console, Protolathe, Circuit Imprinter) of any type."
+ weight = 2
+ value = 4000
+ duration = 120 MINUTES
+ dur_mod_range = 0.3
+ container_type = /obj/item/storage/toolbox/bounty/salvage
+ objective_type = /obj/item/circuitboard/machine/protolathe
+ num_wanted = 1
-/datum/mission/acquire/fish_cook
- name = "Fish needed for my meal"
+/datum/mission/acquire/salvage/console
+ name = "Deliver R&D Console"
+ desc = "The Nanotrasen Corporation is contracting out to have scientific equipment returned. Looking for a rare circuitboard (R&D Console, Protolathe, Circuit Imprinter) of any type."
weight = 3
- duration = 40 MINUTES
+ value = 2500
+ duration = 120 MINUTES
+ dur_mod_range = 0.3
+ container_type = /obj/item/storage/toolbox/bounty/salvage
+ objective_type = /obj/item/circuitboard/computer/rdconsole
+ num_wanted = 1
+
+/*
+ Acquire: Fishing
+*/
+
+/datum/mission/acquire/fish
+ name = "Fish needed for my meal"
+ weight = 2
+ duration = 60 MINUTES
val_mod_range = 0.2
objective_type = /obj/item/fish
- container_type = /obj/item/storage/fish_case/mission/big
+ container_type = /obj/item/storage/fish_case/mission
-/datum/mission/acquire/fish_cook/New(...)
+/datum/mission/acquire/fish/New(...)
num_wanted = rand(1,3)
desc = "I am a chef in need of [num_wanted] fish for my latest dish. Any fish will do, just make sure they're not filleted!"
- value = (250*num_wanted)
+ value = (500*num_wanted)
. = ..()
/datum/mission/acquire/fish/alive/atom_effective_count(atom/movable/target)
@@ -338,13 +306,9 @@ Acquire: Anomaly
/obj/item/storage/fish_case/mission
name = "fish delivery case"
- desc = "A stasis case that keeps fish alive during transportation, or at least stops them from becoming more dead."
-
-/obj/item/storage/fish_case/mission/big
- name = "large fish delivery case"
desc = "A specialized container for the delivering of large quatities of fish. Guarantees they stay fresh during delivery!."
-/obj/item/storage/fish_case/mission/big/ComponentInitialize()
+/obj/item/storage/fish_case/mission/ComponentInitialize()
. = ..()
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
STR.max_items = 3
diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm
index 6de5952e8ceb..afbc5c655ac4 100644
--- a/code/modules/overmap/objects/dynamic_datum.dm
+++ b/code/modules/overmap/objects/dynamic_datum.dm
@@ -128,7 +128,7 @@
probabilities = list()
for(var/datum/planet_type/planet_type as anything in subtypesof(/datum/planet_type))
probabilities[initial(planet_type.planet)] = initial(planet_type.weight)
- planet = SSmapping.planet_types[force_encounter ? force_encounter : pickweightAllowZero(probabilities)]
+ planet = SSmapping.planet_types[force_encounter ? force_encounter : pick_weight_allow_zero(probabilities)]
if(planet.planet !=DYNAMIC_WORLD_ASTEROID && planet.planet != DYNAMIC_WORLD_SPACERUIN) //these aren't real planets
@@ -199,7 +199,7 @@
log_shuttle("[src] [REF(src)] LEVEL_INIT")
// use the ruin type in template if it exists, or pick from ruin list if IT exists; otherwise null
- var/selected_ruin = template || (ruin_type ? pickweightAllowZero(SSmapping.ruin_types_probabilities[ruin_type]) : null)
+ var/selected_ruin = template || (ruin_type ? pick_weight_allow_zero(SSmapping.ruin_types_probabilities[ruin_type]) : null)
var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(src, selected_ruin)
if(!length(dynamic_encounter_values))
return FALSE
diff --git a/code/modules/overmap/objects/event_datum.dm b/code/modules/overmap/objects/event_datum.dm
index 614d9a356bfd..8d1254604efd 100644
--- a/code/modules/overmap/objects/event_datum.dm
+++ b/code/modules/overmap/objects/event_datum.dm
@@ -41,7 +41,7 @@
/datum/overmap/event/meteor
name = "asteroid field (moderate)"
desc = "An area of space rich with asteroids, going fast through here could prove dangerous"
- token_icon_state = "meteor1"
+ token_icon_state = "meteor_moderate1"
chance_to_affect = 15
spread_chance = 50
chain_rate = 4
@@ -65,11 +65,22 @@
/datum/overmap/event/meteor/Initialize(position, ...)
. = ..()
token.icon_state = "meteor[rand(1, 4)]"
-// [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
-// token.color = "#a08444"
-// token.light_color = "#a08444"
-// [/CELADON-REMOVE]
+ switch(type) //woop! this picks one of two icon states for the severity of the storm in overmap.dmi
+ if(/datum/overmap/event/meteor/minor)
+ token.icon_state = "meteor_minor[rand(1, 2)]"
+ if(/datum/overmap/event/meteor)
+ token.icon_state = "meteor_moderate[rand(1, 2)]"
+ if(/datum/overmap/event/meteor/major)
+ token.icon_state = "meteor_major[rand(1, 2)]"
+ else
+ token.icon_state = "meteor_moderate1"
+ // [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
+ // token.color = "#a08444"
+ // token.light_color = "#a08444"
+ // [/CELADON-REMOVE]
token.update_appearance()
+ if(safe_speed)
+ token.desc += " You can safely navigate through this if your ship is travelling under [safe_speed] Gm/s."
/datum/overmap/event/meteor/apply_effect()
for(var/datum/overmap/ship/controlled/Ship in get_nearby_overmap_objects())
@@ -144,7 +155,7 @@
/datum/overmap/event/electric
name = "electrical storm (moderate)"
desc = "A spatial anomaly, an unfortunately common sight on the frontier. Disturbing it tends to lead to intense electrical discharges"
- token_icon_state = "electrical1"
+ token_icon_state = "electrical_moderate1"
chance_to_affect = 15
spread_chance = 30
chain_rate = 3
@@ -155,10 +166,19 @@
/datum/overmap/event/electric/Initialize(position, ...)
. = ..()
token.icon_state = "electrical[rand(1, 4)]"
-// [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
-// token.color = "#e8e85c"
-// token.light_color = "#e8e85c"
-// [/CELADON-REMOVE]
+ switch(type) //woop! this picks one of two icon states for the severity of the storm in overmap.dmi
+ if(/datum/overmap/event/electric/minor)
+ token.icon_state = "electrical_minor[rand(1, 2)]"
+ if(/datum/overmap/event/electric)
+ token.icon_state = "electrical_moderate[rand(1, 2)]"
+ if(/datum/overmap/event/electric/major)
+ token.icon_state = "electrical_major[rand(1, 2)]"
+ else
+ token.icon_state = "electrical_moderate1"
+ // [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
+ // token.color = "#e8e85c"
+ // token.light_color = "#e8e85c"
+ // [/CELADON-REMOVE]
token.update_appearance()
/datum/overmap/event/electric/affect_ship(datum/overmap/ship/controlled/S)
@@ -220,10 +240,10 @@
other_wormhole = _other_wormhole
if(!other_wormhole)
other_wormhole = new(null, src) //Create a new wormhole at a random location
-// [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
-// token.color = "#6d80c7"
-// token.light_color = "#6d80c7"
-// [/CELADON-REMOVE]
+ // [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
+ // token.color = "#6d80c7"
+ // token.light_color = "#6d80c7"
+ // [/CELADON-REMOVE]
token.update_appearance()
/datum/overmap/event/wormhole/affect_ship(datum/overmap/ship/controlled/S)
@@ -239,7 +259,7 @@
/datum/overmap/event/meteor/carp // вынесено в mod_celadon/fixes/code/research_mission.dm, оставлено дял того чтобы не удалять кучу зависимостей
name = "carp migration (moderate)"
desc = "A migratory school of space carp. They travel at high speeds, and flying through them may cause them to impact your ship"
- token_icon_state = "carp1"
+ token_icon_state = "carp_moderate1"
chance_to_affect = 15
spread_chance = 50
chain_rate = 4
@@ -252,16 +272,25 @@
/datum/overmap/event/meteor/carp/Initialize(position, ...)
. = ..()
token.icon_state = "carp[rand(1, 4)]"
-// [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
-// token.color = "#7b1ca8"
-// token.light_color = "#7b1ca8"
-// [/CELADON-REMOVE]
+ switch(type) //woop! this picks one of two icon states for the severity of the storm in overmap.dmi
+ if(/datum/overmap/event/meteor/carp/minor)
+ token.icon_state = "carp_minor[rand(1, 2)]"
+ if(/datum/overmap/event/meteor/carp)
+ token.icon_state = "carp_moderate[rand(1, 2)]"
+ if(/datum/overmap/event/meteor/carp/major)
+ token.icon_state = "carp_major[rand(1, 2)]"
+ else
+ token.icon_state = "carp_moderate1"
+ // [CELADON-REMOVE] - OVERMAP ICON - спрайты некросивые получаюца
+ // token.color = "#7b1ca8"
+ // token.light_color = "#7b1ca8"
+ // [/CELADON-REMOVE]
token.update_icon()
/datum/overmap/event/meteor/carp/minor
name = "carp migration (minor)"
- token_icon_state = "carp1"
+ token_icon_state = "carp_moderate1"
chance_to_affect = 5
spread_chance = 25
chain_rate = 4
@@ -272,7 +301,7 @@
/datum/overmap/event/meteor/carp/major
name = "carp migration (major)"
- token_icon_state = "carp1"
+ token_icon_state = "carp_moderate1"
chance_to_affect = 25
spread_chance = 25
chain_rate = 4
@@ -286,7 +315,7 @@
/datum/overmap/event/meteor/dust // вынесено в mod_celadon/fixes/code/research_mission.dm, оставлено дял того чтобы не удалять кучу зависимостей
name = "dust cloud"
desc = "A cloud of spaceborne dust. Relatively harmless, unless you're travelling at relative speeds"
- token_icon_state = "carp1"
+ token_icon_state = "dust1"
chance_to_affect = 30
spread_chance = 50
chain_rate = 4
@@ -324,7 +353,7 @@
/datum/overmap/event/anomaly/affect_ship(datum/overmap/ship/controlled/S)
var/area/source_area = pick(S.shuttle_port.shuttle_areas)
var/source_object = pick(source_area.contents)
- new /obj/effect/spawner/lootdrop/anomaly/storm(get_turf(source_object))
+ new /obj/effect/spawner/random/anomaly/storm(get_turf(source_object))
for(var/mob/M as anything in GLOB.player_list)
if(S.shuttle_port.is_in_shuttle_bounds(M))
M.playsound_local(S.shuttle_port, 'sound/effects/bamf.ogg', 100)
diff --git a/code/modules/overmap/objects/outpost/outpost.dm b/code/modules/overmap/objects/outpost/outpost.dm
index 6948731d7438..9a7f6f125817 100644
--- a/code/modules/overmap/objects/outpost/outpost.dm
+++ b/code/modules/overmap/objects/outpost/outpost.dm
@@ -43,6 +43,12 @@
var/max_missions = 15
/// List of missions that can be accepted at this outpost. Missions which have been accepted are removed from this list.
var/list/datum/mission/missions
+ /// List of all of the things this outpost offers
+ var/list/supply_packs = list()
+ /// our 'Order number'
+ var/ordernum = 1
+ /// Our faction of the outpost
+ var/datum/faction/faction
/datum/overmap/outpost/Initialize(position, ...)
. = ..()
@@ -66,6 +72,7 @@
Rename(gen_outpost_name())
fill_missions()
+ populate_cargo()
addtimer(CALLBACK(src, PROC_REF(fill_missions)), 10 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME)
/datum/overmap/outpost/Destroy(...)
@@ -141,6 +148,17 @@
var/datum/mission/M = new mission_type(src)
LAZYADD(missions, M)
+/datum/overmap/outpost/proc/populate_cargo()
+ ordernum = rand(1, 99000)
+
+ for(var/datum/supply_pack/current_pack as anything in subtypesof(/datum/supply_pack))
+ current_pack = new current_pack()
+ if(current_pack.faction)
+ current_pack.faction = new current_pack.faction()
+ if(!current_pack.contains)
+ continue
+ supply_packs += current_pack
+
/datum/overmap/outpost/proc/load_main_level()
if(!main_template)
CRASH("[src] ([src.type]) tried to load without a template!")
diff --git a/code/modules/overmap/objects/outpost/outpost_types.dm b/code/modules/overmap/objects/outpost/outpost_types.dm
index 7b664afdd43c..665ba4da5472 100644
--- a/code/modules/overmap/objects/outpost/outpost_types.dm
+++ b/code/modules/overmap/objects/outpost/outpost_types.dm
@@ -61,37 +61,6 @@
dock_width = 56
dock_height = 40
-/*
- Nanotrasen Ice Asteroid
-*/
-/datum/map_template/outpost/nt_asteroid
- name = "nanotrasen_asteroid"
-
-/datum/map_template/outpost/hangar/nt_asteroid_20x20
- name = "hangar/nt_asteroid_20x20"
- dock_width = 20
- dock_height = 20
-
-/datum/map_template/outpost/hangar/nt_asteroid_40x20
- name = "hangar/nt_asteroid_40x20"
- dock_width = 40
- dock_height = 20
-
-/datum/map_template/outpost/hangar/nt_asteroid_40x40
- name = "hangar/nt_asteroid_40x40"
- dock_width = 40
- dock_height = 40
-
-/datum/map_template/outpost/hangar/nt_asteroid_56x20
- name = "hangar/nt_asteroid_56x20"
- dock_width = 56
- dock_height = 20
-
-/datum/map_template/outpost/hangar/nt_asteroid_56x40
- name = "hangar/nt_asteroid_56x40"
- dock_width = 56
- dock_height = 40
-
/*
Nanotrasen Ice Planet
*/
@@ -162,6 +131,7 @@
// /datum/map_template/outpost/hangar/nt_ice_56x40
// )
// [/CELADON-REMOVE]
+ // faction = /datum/faction/nt
/datum/overmap/outpost/no_main_level // For example and adminspawn.
main_template = null
diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm
index 12782eef4ea0..4305a6b6e8c2 100644
--- a/code/modules/overmap/ships/controlled_ship_datum.dm
+++ b/code/modules/overmap/ships/controlled_ship_datum.dm
@@ -78,6 +78,7 @@
return FALSE
message_admins("[key_name_admin(usr)] renamed vessel '[oldname]' to '[new_name]'")
log_admin("[key_name(src)] has renamed vessel '[oldname]' to '[new_name]'")
+ SSblackbox.record_feedback("text", "ship_renames", 1, new_name)
shuttle_port?.name = new_name
ship_account.account_holder = new_name
if(shipkey)
diff --git a/code/modules/overmap/ships/ship_datum.dm b/code/modules/overmap/ships/ship_datum.dm
index ff861848ed00..b51306cd7849 100644
--- a/code/modules/overmap/ships/ship_datum.dm
+++ b/code/modules/overmap/ships/ship_datum.dm
@@ -164,7 +164,20 @@
if(istype(/datum/overmap/ship, docked_to))
var/datum/overmap/ship/old_dock = docked_to
adjust_speed(old_dock.speed_x, old_dock.speed_y)
-
+ // [CELADON-ADD] - subshuttles fix
+ x = docked_to.x
+ y = docked_to.y
+ position_to_move["x"] = docked_to.x
+ position_to_move["y"] = docked_to.y
+ if(docked_to.x == null || docked_to.y == null)
+ x = docked_to.docked_to.x
+ y = docked_to.docked_to.y
+ position_to_move["x"] = docked_to.docked_to.x
+ position_to_move["y"] = docked_to.docked_to.y
+ var/datum/overmap/ship/old_dock = docked_to
+ x_pixels_moved = old_dock.x_pixels_moved+(pick(6, -6))
+ y_pixels_moved = old_dock.y_pixels_moved+(pick(6, -6))
+ // [/CELADON-ADD] - subshuttles fix
/datum/overmap/ship/proc/on_docked_to_moved()
token.update_screen()
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index 7724a38ae43e..79e8f564b88d 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -25,320 +25,6 @@
target = nOwner.mind
update_text()
-
/obj/item/paper/contract/employment/update_text()
name = "paper- [target] employment contract"
default_raw_text = "Conditions of Employment
This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).
WITNESSETH:
WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.
NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
Should transfership of a soul not be possible, a lien shall be placed instead.
Signed,
[target]"
-
-
-/obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user)
- var/deconvert = FALSE
- if(M.mind == target && !M.owns_soul())
- if(user.mind && (user.mind.assigned_role == "Lawyer"))
- deconvert = TRUE
- else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "CentCom Commander"))
- deconvert = prob (25) // the Head of Personnel doesn't have AS much legal training
- else
- deconvert = prob (5)
- if(deconvert)
- M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by Nanotrasen!")
- to_chat(M, "You feel that your soul has returned to its rightful owner, Nanotrasen.")
- M.return_soul()
- else
- M.visible_message("[user] beats [M] over the head with [src]!", \
- "[user] beats [M] over the head with [src]!")
- return ..()
-
-
-/obj/item/paper/contract/infernal
- var/contractType = 0
- resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
- var/datum/mind/owner
- var/datum/antagonist/devil/devil_datum
- icon_state = "paper_onfire"
-
-/obj/item/paper/contract/infernal/power
- name = "paper- contract for infernal power"
- contractType = CONTRACT_POWER
-
-/obj/item/paper/contract/infernal/wealth
- name = "paper- contract for unlimited wealth"
- contractType = CONTRACT_WEALTH
-
-/obj/item/paper/contract/infernal/prestige
- name = "paper- contract for prestige"
- contractType = CONTRACT_PRESTIGE
-
-/obj/item/paper/contract/infernal/magic
- name = "paper- contract for magical power"
- contractType = CONTRACT_MAGIC
-
-/obj/item/paper/contract/infernal/revive
- name = "paper- contract of resurrection"
- contractType = CONTRACT_REVIVE
- var/cooldown = FALSE
-
-/obj/item/paper/contract/infernal/knowledge
- name = "paper- contract for knowledge"
- contractType = CONTRACT_KNOWLEDGE
-
-/obj/item/paper/contract/infernal/friend
- name = "paper- contract for a friend"
- contractType = CONTRACT_FRIEND
-
-/obj/item/paper/contract/infernal/unwilling
- name = "paper- infernal contract"
- contractType = CONTRACT_UNWILLING
-
-/obj/item/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner)
- ..()
- owner = nOwner
- devil_datum = owner.has_antag_datum(/datum/antagonist/devil)
- target = nTarget
- update_text()
-
-/obj/item/paper/contract/infernal/update_text()
- default_raw_text = "This shouldn't be seen. Error DEVIL:6"
-
-/obj/item/paper/contract/infernal/power/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for infernal power
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text = "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for unlimited wealth
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for prestige
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for magic
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for resurrection
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for knowledge
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for a friend
I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0)
- default_raw_text = "Contract for slave
I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.
Signed, "
- var/contract_text
- if(blood)
- contract_text += "[signature]"
- else
- contract_text += "[signature]"
- add_raw_text(contract_text)
-
-/obj/item/paper/contract/infernal/attackby(obj/item/P, mob/living/carbon/human/user, params)
- add_fingerprint(user)
- if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon))
- attempt_signature(user)
- else if(istype(P, /obj/item/stamp))
- to_chat(user, "You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.")
- else if(P.get_temperature())
- user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "[src] refuses to ignite!")
- else
- return ..()
-
-/obj/item/paper/contract/infernal/attack(mob/M, mob/living/user)
- add_fingerprint(user)
- if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1))
- user.visible_message("[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.", "You slice your wrist open and scrawl your name in blood.")
- user.blood_volume = max(user.blood_volume - 100, 0)
- else
- return ..()
-
-/obj/item/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0)
- if(!user.IsAdvancedToolUser() || !user.is_literate())
- to_chat(user, "You don't know how to read or write!")
- return 0
- if(user.mind != target)
- to_chat(user, "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign!")
- return 0
- if(user.mind.soulOwner == owner)
- to_chat(user, "This devil already owns your soul, you may not sell it to [owner.p_them()] again!")
- return 0
- if(signed)
- to_chat(user, "This contract has already been signed! It may not be signed again.")
- return 0
- if(!user.mind.hasSoul)
- to_chat(user, "You do not possess a soul.")
- return 0
- if(HAS_TRAIT(user, TRAIT_DUMB))
- to_chat(user, "You quickly scrawl 'your name' on the contract.")
- signIncorrectly()
- return 0
- if (contractType == CONTRACT_REVIVE)
- to_chat(user, "You are already alive, this contract would do nothing.")
- return 0
- else
- to_chat(user, "You quickly scrawl your name on the contract.")
- if(fulfillContract(target.current, blood)<=0)
- to_chat(user, "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?")
- return 1
-
-
-
-/obj/item/paper/contract/infernal/revive/attack(mob/M, mob/living/user)
- if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind)
- if (cooldown)
- to_chat(user, "Give [M] a chance to think through the contract, don't rush [M.p_them()]!")
- return 0
- cooldown = TRUE
- var/mob/living/carbon/human/H = M
- var/mob/dead/observer/ghost = H.get_ghost()
- var/response = "No"
- if(ghost)
- ghost.notify_cloning("A devil has offered you revival, at the cost of your soul.",'sound/effects/genetics.ogg', H)
- response = tgui_alert(ghost, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200)
- if(!ghost)
- return //handle logouts that happen whilst the alert is waiting for a response.
- else
- response = tgui_alert(target.current, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200)
- if(response == "Yes")
- H.revive(full_heal = TRUE, admin_revive = FALSE)
- log_combat(user, H, "infernally revived via contract")
- user.visible_message("With a sudden blaze, [H] stands back up.")
- H.fakefire()
- fulfillContract(H, TRUE)//Revival contracts are always signed in blood
- addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE)
- addtimer(CALLBACK(src, PROC_REF(resetcooldown)), 300, TIMER_UNIQUE)
- else
- ..()
-
-/obj/item/paper/contract/infernal/revive/proc/resetcooldown()
- cooldown = FALSE
-
-
-/obj/item/paper/contract/infernal/proc/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
- signed = TRUE
- if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else?
- var/datum/antagonist/devil/ownerDevilInfo = user.mind.soulOwner.has_antag_datum(/datum/antagonist/devil)
- ownerDevilInfo.remove_soul(user.mind) //Then they lose their claim.
- user.mind.soulOwner = owner
- user.hellbound = contractType
- user.mind.damnation_type = contractType
- var/datum/antagonist/devil/devilInfo = owner.has_antag_datum(/datum/antagonist/devil)
- devilInfo.add_soul(user.mind)
- update_text(user.real_name, blood)
- to_chat(user, "A profound emptiness washes over you as you lose ownership of your soul.")
- to_chat(user, "This does NOT make you an antagonist if you were not already.")
- SSblackbox.record_feedback("tally", "infernal contract", 1, contractType)
- return TRUE
-
-/obj/item/paper/contract/infernal/proc/signIncorrectly(mob/living/carbon/human/user = target.current, blood = FALSE)
- signed = 1
- update_text("your name", blood)
-
-/obj/item/paper/contract/infernal/power/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE)
- if(!user.dna)
- return -1
- user.dna.add_mutation(HULK)
- var/obj/item/organ/regenerative_core/organ = new /obj/item/organ/regenerative_core
- organ.Insert(user)
- return ..()
-
-/obj/item/paper/contract/infernal/wealth/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
- if(!istype(user) || !user.mind) // How in the hell could that happen?
- return -1
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null))
- return ..()
-
-/obj/item/paper/contract/infernal/prestige/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
- //Basically turns the signer into the captain, and uploads an ion law making them the captain.
- var/obj/item/worn = user.wear_id
- var/obj/item/card/id/id = null
- if(worn)
- id = worn.GetID()
- if(id)
- id.icon_state = "gold"
- id.uses_overlays = TRUE
- id.access = get_all_accesses()+get_all_centcom_access()
- id.assignment = "Captain"
- id.update_label()
- id.update_appearance()
- else
- id = new /obj/item/card/id/gold(user.loc)
- id.registered_name = user.real_name
- id.access = get_all_accesses()+get_all_centcom_access()
- id.assignment = "Captain"
- id.update_label()
- id.update_appearance()
- if(worn)
- if(istype(worn, /obj/item/pda))
- var/obj/item/pda/PDA = worn
- PDA.id = id
- id.forceMove(worn)
- else if(istype(worn, /obj/item/storage/wallet))
- var/obj/item/storage/wallet/W = worn
- W.front_id = id
- id.forceMove(worn)
- worn.update_appearance()
- var/datum/round_event/ion_storm/add_law_only/ion = new()
- ion.announceChance = 0
- ion.ionMessage = "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law."
-
- return ..()
-
-/obj/item/paper/contract/infernal/magic/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
- if(!istype(user) || !user.mind)
- return -1
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless(null))
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null))
- return ..()
-
-/obj/item/paper/contract/infernal/knowledge/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
- if(!istype(user) || !user.mind)
- return -1
- user.dna.add_mutation(XRAY)
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/view_range(null))
- return ..()
-
-/obj/item/paper/contract/infernal/friend/fulfillContract(mob/living/user = target.current, blood = 0)
- if(!istype(user) || !user.mind)
- return -1
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_friend(null))
- return ..()
diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm
index 0bf0a3eb51d3..c0b137ca2300 100644
--- a/code/modules/paperwork/fax.dm
+++ b/code/modules/paperwork/fax.dm
@@ -7,6 +7,7 @@
power_channel = AREA_USAGE_EQUIP
max_integrity = 100
pass_flags = PASSTABLE
+ pixel_y = 6
circuit = /obj/item/circuitboard/machine/fax
/// The unique ID by which the fax will build a list of existing faxes.
var/fax_id
@@ -31,7 +32,11 @@
/// List of types which should always be allowed to be faxed
var/static/list/allowed_types = list(
/obj/item/paper,
- /obj/item/photo
+ /obj/item/photo,
+ /obj/item/holochip,
+ /obj/item/folder/biscuit,
+ /obj/item/spacecash,
+ /obj/item/documents,
)
/// List of types which should be allowed to be faxed if hacked
var/static/list/exotic_types = list(
@@ -45,10 +50,7 @@
/obj/item/reagent_containers/food/snacks/raisincookie,
/obj/item/reagent_containers/food/snacks/pancakes,
/obj/item/throwing_star,
- /obj/item/spacecash,
- /obj/item/holochip,
/obj/item/card,
- /obj/item/folder/biscuit
)
/// Internal radio for announcing over comms
var/obj/item/radio/radio
@@ -65,6 +67,7 @@
list(fax_name = "Solarian Confederation Frontier Affairs", fax_id = "solgov", color = "teal", emag_needed = FALSE),
list(fax_name = "Roumain Council of Huntsmen", fax_id = "roumain", color = "brown", emag_needed = FALSE),
list(fax_name = "Confederated League Leadership", fax_id = "minutemen", color = "blue", emag_needed = FALSE),
+ list(fax_name = "PGF Military High Command", fax_id = "gezena", color = "olive", emag_needed = FALSE),
list(fax_name = "Syndicate Coalition Coordination Center", fax_id = "syndicate", color = "red", emag_needed = FALSE),
list(fax_name = "Frontiersmen Communications Quartermaster", fax_id = "frontiersmen", color = "black", emag_needed = TRUE)
)
@@ -558,6 +561,13 @@
list(fax_name = "Frontiersmen Communications Quartermaster", fax_id = "frontiersmen", color = "black", emag_needed = TRUE)
)
+/obj/machinery/fax/pgf
+ special_networks = list(
+ list(fax_name = "Outpost Authority", fax_id = "outpost", color = "orange", emag_needed = FALSE),
+ list(fax_name = "PGF Military High Command", fax_id = "gezena", color = "olive", emag_needed = FALSE),
+ list(fax_name = "Frontiersmen Communications Quartermaster", fax_id = "frontiersmen", color = "black", emag_needed = TRUE)
+ )
+
/obj/machinery/fax/admin
name = "Central Command Fax Machine"
@@ -596,6 +606,11 @@
fax_name = "Saint-Roumain Council of Huntsmen"
admin_fax_id = "roumain"
+/obj/machinery/fax/admin/pgf
+ name = "PGF Military High Command Fax Machine"
+ fax_name = "PGF Military High Command"
+ admin_fax_id = "gezena"
+
/obj/machinery/fax/admin/frontiersmen
name = "old fax machine"
fax_name = "Frontiersmen Communications Quartermaster"
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index ad18b2bcd0b4..71112e012f77 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -12,7 +12,9 @@
var/static/list/folder_insertables = typecacheof(list(
/obj/item/paper,
/obj/item/photo,
- /obj/item/documents
+ /obj/item/documents,
+ /obj/item/disk,
+ /obj/item/tape,
))
/obj/item/folder/Initialize()
diff --git a/code/modules/paperwork/folders_premade.dm b/code/modules/paperwork/folders_premade.dm
index 3c9dbb89feae..e8f092f77161 100644
--- a/code/modules/paperwork/folders_premade.dm
+++ b/code/modules/paperwork/folders_premade.dm
@@ -41,6 +41,15 @@
name = "folder- 'TOP SECRET'"
desc = "A folder stamped \"Top Secret - Property of The Syndicate.\""
+/obj/item/folder/documents/syndicate/cybersun
+ document = /obj/item/documents/syndicate/cybersun
+ icon_state = "folder_sred"
+ desc = "A folder stamped \"Top Secret - Property of Cybersun Industries.\""
+
+/obj/item/folder/documents/syndicate/cybersun/biodynamics
+ document = /obj/item/documents/syndicate/cybersun/biodynamics
+ icon_state = "folder_sblue"
+
/obj/item/folder/documents/syndicate/red
document = /obj/item/documents/syndicate/red
icon_state = "folder_sred"
@@ -52,6 +61,10 @@
/obj/item/folder/documents/syndicate/mining
document = /obj/item/documents/syndicate/mining
+/obj/item/folder/documents/syndicate/ngr
+ document = /obj/item/documents/syndicate/ngr
+ icon_state = "folder_ngr"
+
/obj/item/folder/documents/solgov
document = /obj/item/documents/solgov
desc = "A blue folder with a SolGov seal."
@@ -68,3 +81,15 @@
/obj/item/folder/suns/red
icon_state = "folder_sunsred" // i'm not sure why SUNS would need secret documents
+
+//pgf folders
+
+/obj/item/folder/pgf
+ desc = "A green folder with Pan Gezenan Federation iconography."
+ icon_state = "folder_pgf"
+
+/obj/item/folder/pgf/red
+ icon_state = "folder_pgfred"
+
+/obj/item/folder/pgf/blue
+ icon_state = "folder_pgfblue"
diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm
index 89cc40517a5f..81c84d0b28f4 100644
--- a/code/modules/paperwork/paper_premade.dm
+++ b/code/modules/paperwork/paper_premade.dm
@@ -112,3 +112,12 @@
name = "URGENT!"
default_raw_text = "A hastily written note has been scribbled here...
Please use the ore redemption machine in the cargo office for smelting. PLEASE!
--The Research Staff"
+//////////// Ruins
+
+/obj/item/paper/crumpled/bloody/fluff/ruin/icemoon/cellar_warning
+ name = "\improper Scrawled Note"
+ default_raw_text = "
HEY! YOU.
Yeah. You.
One of the Hunters got away and holed up in the cellar and set up a whole bunch of traps. Crazy asshole has already killed like four of our guys in the murder basement. So boss says keep the door sealed and let the prick starve.
SO DONT OPEN IT.
"
+
+/obj/item/paper/crumpled/bloody/fluff/ruin/icemoon/tally_sheet
+ name = "\improper Tally Sheet"
+ default_raw_text = " Marksmanship Leaderboard
Name | Points | Notes | Lance Phillips | 10 | Hit 2 out of 3 targets. | Hetchel Catuwe-Plakat | 0 | Missed every shot. Relegated to knife duty. | Weer-Topith | 30 | Hit all three targets. | Kahyarawkkahskre | 50 | Hit all three targets one handed with a revolver. | Salhree-Yik | 100 | Hit all three targets while blindfolded. | Kiahkkati | -1000 | Tried to one up Salhree and spun three times blindfolded before firing. Hit me in the knee. | "
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index eaf51fc9b25b..9065c7a87fd4 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -102,8 +102,9 @@
visible_message("\The [src] hits [H] in the eye[eyes ? "" : " socket"]!")
H.adjust_blurriness(6)
eyes?.applyOrganDamage(rand(6,8))
- H.Paralyze(40)
- H.emote("scream")
+ H.force_scream()
+ if(!HAS_TRAIT(H, TRAIT_ANALGESIA))
+ H.Paralyze(40)
/obj/item/paper/examine(mob/user)
. = ..()
diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm
index 40b0771981e4..c1982475c66a 100644
--- a/code/modules/paperwork/photocopier.dm
+++ b/code/modules/paperwork/photocopier.dm
@@ -135,10 +135,6 @@
if(istype(paper_copy, /obj/item/paper))
do_copy_loop(CALLBACK(src, PROC_REF(make_paper_copy)), usr)
return TRUE
- // Devil contract paper.
- if(istype(paper_copy, /obj/item/paper/contract/employment))
- do_copy_loop(CALLBACK(src, PROC_REF(make_devil_paper_copy)), usr)
- return TRUE
// Copying photo.
if(photo_copy)
do_copy_loop(CALLBACK(src, PROC_REF(make_photo_copy)), usr)
@@ -268,22 +264,6 @@
copied_item.pixel_x = rand(-10, 10)
copied_item.pixel_y = rand(-10, 10)
-/**
- * Handles the copying of devil contract paper. Transfers all the text, stamps and so on from the old paper, to the copy.
- *
- * Checks first if `paper_copy` exists. Since this proc is called from a timer, it's possible that it was removed.
- * Does not check if it has enough toner because devil contracts cost no toner to print.
- */
-/obj/machinery/photocopier/proc/make_devil_paper_copy(obj/item/paper/contract/employment/to_copy)
- if(!paper_copy && !to_copy)
- return
- to_copy = to_copy ? to_copy : paper_copy
- var/obj/item/paper/contract/employment/E = to_copy
- var/obj/item/paper/contract/employment/C = new(loc, E.target.current)
- give_pixel_offset(C)
-
- return C
-
/**
* Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy.
*
@@ -408,15 +388,10 @@
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/paper))
if(copier_empty())
- if(istype(O, /obj/item/paper/contract/infernal))
- to_chat(user, "[src] smokes, smelling of brimstone!")
- resistance_flags |= FLAMMABLE
- fire_act()
- else
- if(!user.dropItemToGround(O))
- return
- paper_copy = O
- do_insertion(O, user)
+ if(!user.dropItemToGround(O))
+ return
+ paper_copy = O
+ do_insertion(O, user)
else
to_chat(user, "There is already something in [src]!")
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index 45893f8d5fc5..46fd25ac685d 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -81,11 +81,6 @@
icon_state = "stamp-chap"
dye_color = DYE_CHAP
-/obj/item/stamp/centcom
- name = "CentCom rubber stamp"
- icon_state = "stamp-centcom"
- dye_color = DYE_CENTCOM
-
/obj/item/stamp/syndicate
name = "Syndicate rubber stamp"
icon_state = "stamp-syndicate"
@@ -97,10 +92,40 @@
dye_color = DYE_SYNDICATE
/obj/item/stamp/cybersun
- name = "Cybersun rubber stamp"
+ name = "Cybersun Virtual Solutions rubber stamp"
icon_state = "stamp-cybersun"
dye_color = DYE_SYNDICATE
+/obj/item/stamp/cybersun/biodynamics
+ name = "Cybersun Biodynamics rubber stamp"
+ icon_state = "stamp-biodynamics"
+ dye_color = DYE_CMO
+
+/obj/item/stamp/ngr
+ name = "New Gorlex Republic rubber stamp"
+ icon_state = "stamp-ngr"
+ dye_color = DYE_REDCOAT
+
+/obj/item/stamp/ngr/captain
+ name = "Captain's rubber stamp"
+ icon_state = "stamp-ngr_cap"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/foreman
+ name = "Foreman's rubber stamp"
+ icon_state = "stamp-ngr_fore"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/lieutenant
+ name = "Lieutenant's rubber stamp"
+ icon_state = "stamp-ngr_lieu"
+ dye_color = DYE_QM
+
+/obj/item/stamp/ngr/ensign
+ name = "Ensign's rubber stamp"
+ icon_state = "stamp-ngr_ensign"
+ dye_color = DYE_QM
+
/obj/item/stamp/solgov
name = "SolGov rubber stamp"
icon_state = "stamp-solgov"
@@ -110,32 +135,33 @@
icon_state = "stamp-inteq"
dye_color = DYE_QM
-/obj/item/stamp/vanguard
+/obj/item/stamp/inteq/vanguard
name = "Vanguard's rubber stamp"
- icon_state = "stamp-vanguard"
- dye_color = DYE_QM
+ icon_state = "stamp-inteq_vanguard"
-/obj/item/stamp/maa
+/obj/item/stamp/inteq/maa
name = "Master at Arms' rubber stamp"
- icon_state = "stamp-maa"
- dye_color = DYE_QM
+ icon_state = "stamp-inteq_maa"
-/obj/item/stamp/artificer
- name = "Class II Artificer's rubber stamp"
- icon_state = "stamp-artificer"
- dye_color = DYE_QM
+/obj/item/stamp/inteq/artificer
+ name = "Honorable Artificer's rubber stamp"
+ icon_state = "stamp-inteq_artificer"
+
+/obj/item/stamp/inteq/corpsman
+ name = "Honorable Corpsman's rubber stamp"
+ icon_state = "stamp-inteq_corpsman"
/obj/item/stamp/clip
name = "CLIP Minutemen rubber stamp"
icon_state = "stamp-cmm"
dye_color = DYE_FO
-/obj/item/stamp/gold
+/obj/item/stamp/clip/gold
name = "GOLD rubber stamp"
icon_state = "stamp-gold"
dye_color = DYE_FO
-/obj/item/stamp/bard
+/obj/item/stamp/clip/bard
name = "BARD rubber stamp"
icon_state = "stamp-bard"
dye_color = DYE_FO
@@ -145,5 +171,66 @@
icon_state = "stamp-suns"
dye_color = DYE_PURPLE
+/obj/item/stamp/nanotrasen
+ name = "Nanotrasen rubber stamp"
+ desc = "A small rubber stamp for stamping important documents."
+ icon_state = "stamp-nt"
+ dye_color = DYE_BLUE
+
+/obj/item/stamp/nanotrasen/captain
+ name = "NT Captain's rubber stamp"
+ icon_state = "stamp-nt_cap"
+
+/obj/item/stamp/nanotrasen/officer
+ name = "NT Officer's rubber stamp"
+ icon_state = "stamp-nt_fo"
+
+/obj/item/stamp/nanotrasen/engineering
+ name = "NT Engineering Director's rubber stamp"
+ icon_state = "stamp-nt_engdir"
+
+/obj/item/stamp/nanotrasen/medical
+ name = "NT Medical Director's rubber stamp"
+ icon_state = "stamp-nt_meddir"
+
+/obj/item/stamp/nanotrasen/science
+ name = "NT Science Director's rubber stamp"
+ icon_state = "stamp-nt_scidir"
+
+/obj/item/stamp/nanotrasen/ns
+ name = "N+S Logistics rubber stamp"
+ icon_state = "stamp-ns"
+ dye_color = DYE_ORANGE
+
+/obj/item/stamp/nanotrasen/ns/captain
+ name = "N+S Captain's rubber stamp"
+ icon_state = "stamp-ns_cap"
+
+/obj/item/stamp/nanotrasen/ns/supply
+ name = "N+S Supply Director's rubber stamp"
+ icon_state = "stamp-ns_supdir"
+
+/obj/item/stamp/nanotrasen/vigilitas
+ name = "Vigilitas Interstellar rubber stamp"
+ icon_state = "stamp-vi"
+ dye_color = DYE_HOS
+
+/obj/item/stamp/nanotrasen/vigilitas/captain
+ name = "VI Captain's rubber stamp"
+ icon_state = "stamp-vi_cap"
+
+/obj/item/stamp/nanotrasen/vigilitas/security
+ name = "VI Security Director's rubber stamp"
+ icon_state = "stamp-vi_secdir"
+
+/obj/item/stamp/nanotrasen/vigilitas/loss_prevention
+ name = "VI Loss Prevention rubber stamp"
+ icon_state = "stamp-vi_lp"
+
+/obj/item/stamp/nanotrasen/central
+ name = "NT Central Command rubber stamp"
+ desc = "A rubber stamp for stamping important documents." // Needed, because base nt has "small" added.
+ icon_state = "stamp-nt_central"
+
/obj/item/stamp/attack_paw(mob/user)
return attack_hand(user)
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 4f2d70b680ad..48651a3146c4 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -900,6 +900,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25)
ui = new(user, src, "Apc", name)
ui.open()
+/obj/machinery/power/apc/examine_more(mob/user)
+ ui_interact(user)
+ return ..()
+
/obj/machinery/power/apc/ui_data(mob/user)
var/list/data = list(
"locked" = locked,
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index b1847513a941..0e29e53da52e 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -29,13 +29,15 @@
/obj/item/stock_parts/cell/get_cell()
return src
-/obj/item/stock_parts/cell/Initialize(mapload, override_maxcharge)
+/obj/item/stock_parts/cell/Initialize(mapload, spawn_empty, override_maxcharge)
. = ..()
START_PROCESSING(SSobj, src)
create_reagents(5, INJECTABLE | DRAINABLE)
if (override_maxcharge)
maxcharge = override_maxcharge
charge = maxcharge
+ if(spawn_empty)
+ charge = 0
if(ratingdesc)
desc += " This one has a rating of [DisplayEnergy(maxcharge)], and you should not swallow it."
update_appearance()
@@ -342,18 +344,6 @@
custom_materials = null
grown_battery = TRUE //it has the overlays for wires
-/obj/item/stock_parts/cell/high/slime
- name = "charged slime core"
- desc = "A yellow slime core infused with plasma, it crackles with power."
- icon = 'icons/mob/slimes.dmi'
- icon_state = "yellow slime extract"
- custom_materials = null
- rating = 5 //self-recharge makes these desirable
- self_recharge = 1 // Infused slime cores self-recharge, over time
-
-/*Hypercharged slime cell - located in /code/modules/research/xenobiology/crossbreeding/_misc.dm
-/obj/item/stock_parts/cell/high/slime/hypercharged */
-
/obj/item/stock_parts/cell/emproof
name = "\improper EMP-proof cell"
desc = "An EMP-proof cell."
@@ -410,6 +400,8 @@
chargerate = 1500
rating = 0 //Makes it incompatible with RPED
+/obj/item/stock_parts/cell/gun/empty
+
/obj/item/stock_parts/cell/gun/empty/Initialize()
. = ..()
charge = 0
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 73920780bef3..a6cd227550ec 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -119,6 +119,7 @@
log_game("Emitter deleted at [AREACOORD(T)]")
investigate_log("deleted at [AREACOORD(T)]", INVESTIGATE_SINGULO)
QDEL_NULL(sparks)
+ QDEL_NULL(wires)
return ..()
/obj/machinery/power/emitter/update_icon_state()
diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm
deleted file mode 100644
index aefc5249f54d..000000000000
--- a/code/modules/power/singularity/narsie.dm
+++ /dev/null
@@ -1,238 +0,0 @@
-/obj/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO
- name = "Nar'Sie's Avatar"
- desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees."
- icon = 'icons/obj/narsie_small.dmi'
- icon_state = "narsie"
- pixel_x = -89
- pixel_y = -85
- density = FALSE
- current_size = 9 //It moves/eats like a max-size singulo, aside from range. --NEO
- contained = 0 //Are we going to move around?
- dissipate = 0 //Do we lose energy over time?
- move_self = 1 //Do we move on our own?
- grav_pull = 5 //How many tiles out do we pull?
- consume_range = 6 //How many tiles out do we eat
- light_power = 0.7
- light_range = 15
- light_color = COLOR_RED
- gender = FEMALE
- resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF
-
-/obj/singularity/narsie/large
- name = "Nar'Sie"
- icon = 'icons/obj/narsie.dmi'
- // Pixel stuff centers Narsie.
- pixel_x = -236
- pixel_y = -256
- current_size = 12
- grav_pull = 10
- consume_range = 12 //How many tiles out do we eat
-
-/obj/singularity/narsie/large/Initialize()
- . = ..()
- send_to_playing_players("NAR'SIE HAS RISEN")
- sound_to_playing_players('sound/creatures/narsie_rises.ogg')
-
- var/area/A = get_area(src)
- if(A)
- var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/cult_effects.dmi', "ghostalertsie")
- notify_ghosts("Nar'Sie has risen in \the [A.name]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action=NOTIFY_ATTACK)
- narsie_spawn_animation()
- UnregisterSignal(src, COMSIG_ATOM_BSA_BEAM) //set up in /singularity/Initialize()
-
-/obj/singularity/narsie/large/cult // For the new cult ending, guaranteed to end the round within 3 minutes
- var/list/souls_needed = list()
- var/soul_goal = 0
- var/souls = 0
- var/resolved = FALSE
-
-/obj/singularity/narsie/large/cult/Initialize()
- . = ..()
- GLOB.cult_narsie = src
- var/list/all_cults = list()
- for(var/datum/antagonist/cult/C in GLOB.antagonists)
- if(!C.owner)
- continue
- all_cults |= C.cult_team
- for(var/datum/team/cult/T in all_cults)
- deltimer(T.blood_target_reset_timer)
- T.blood_target = src
- var/datum/objective/eldergod/summon_objective = locate() in T.objectives
- if(summon_objective)
- summon_objective.summoned = TRUE
- for(var/datum/mind/cult_mind in SSticker.mode.cult)
- if(isliving(cult_mind.current))
- var/mob/living/L = cult_mind.current
- L.narsie_act()
- for(var/mob/living/player in GLOB.player_list)
- if(player.stat != DEAD && player.loc && !iscultist(player) && !isanimal(player))
- souls_needed[player] = TRUE
- soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75)
- INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(begin_the_end))
-
-/proc/begin_the_end()
- SSredbot.send_discord_message("admin","Nar'sie has been summoned.","round ending event")
- sleep(50)
- if(QDELETED(GLOB.cult_narsie)) // uno
- priority_announce("Status report? We detected a anomaly, but it disappeared almost immediately.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg')
- GLOB.cult_narsie = null
- sleep(20)
- INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2)
- return
- priority_announce("An acausal dimensional event has been detected in your sector. Event has been flagged EXTINCTION-CLASS. Directing all available assets toward simulating solutions. SOLUTION ETA: 60 SECONDS.","Central Command Higher Dimensional Affairs", 'sound/misc/airraid.ogg')
- sleep(500)
- if(QDELETED(GLOB.cult_narsie)) // dos
- priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg')
- GLOB.cult_narsie = null
- sleep(20)
- INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2)
- return
- priority_announce("Simulations on acausal dimensional event complete. Deploying solution package now. Deployment ETA: ONE MINUTE. ","Central Command Higher Dimensional Affairs")
- sleep(50)
- set_security_level("delta")
- SSshuttle.lockdown = TRUE
- sleep(600)
- if(QDELETED(GLOB.cult_narsie)) // tres
- priority_announce("Normalization detected! Abort the solution package!","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg')
- GLOB.cult_narsie = null
- sleep(20)
- set_security_level("red")
- SSshuttle.lockdown = FALSE
- INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2)
- return
- if(GLOB.cult_narsie.resolved == FALSE)
- GLOB.cult_narsie.resolved = TRUE
- sound_to_playing_players('sound/machines/alarm.ogg')
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 120)
-
-/obj/singularity/narsie/large/cult/Destroy()
- send_to_playing_players("\"[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"")
- sound_to_playing_players('sound/magic/demon_dies.ogg', 50)
- if(GLOB.cult_narsie == src)
- GLOB.cult_narsie = null
- var/list/all_cults = list()
- for(var/datum/antagonist/cult/C in GLOB.antagonists)
- if(!C.owner)
- continue
- all_cults |= C.cult_team
- for(var/datum/team/cult/T in all_cults)
- var/datum/objective/eldergod/summon_objective = locate() in T.objectives
- if(summon_objective)
- summon_objective.summoned = FALSE
- summon_objective.killed = TRUE
- return ..()
-
-/proc/ending_helper()
- SSticker.force_ending = 1
-
-/proc/cult_ending_helper(ending_type = 0)
- if(ending_type == 2) //narsie fukkin died
- Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)))
- else if(ending_type) //no explosion
- Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)))
- else // explosion
- Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)))
-
-//ATTACK GHOST IGNORING PARENT RETURN VALUE
-/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob)
- makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, user, cultoverride = TRUE, loc_override = src.loc)
-
-/obj/singularity/narsie/process()
- eat()
- if(!target || prob(5))
- pickcultist()
- move()
- if(prob(25))
- mezzer()
-
-
-/obj/singularity/narsie/Bump(atom/A)
- var/turf/T = get_turf(A)
- if(T == loc)
- T = get_step(A, A.dir) //please don't slam into a window like a bird, Nar'Sie
- forceMove(T)
-
-
-/obj/singularity/narsie/mezzer()
- for(var/mob/living/carbon/M in viewers(consume_range, src))
- if(M.stat == CONSCIOUS)
- if(!iscultist(M))
- to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...")
- M.apply_effect(60, EFFECT_STUN)
-
-
-/obj/singularity/narsie/consume(atom/A)
- if(isturf(A))
- A.narsie_act()
-
-
-/obj/singularity/narsie/ex_act() //No throwing bombs at her either.
- return
-
-
-/obj/singularity/narsie/proc/pickcultist() //Narsie rewards her cultists with being devoured first, then picks a ghost to follow.
- var/list/cultists = list()
- var/list/noncultists = list()
-
- for(var/mob/living/carbon/food in GLOB.alive_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess
- var/turf/pos = get_turf(food)
- if(!pos || (pos.virtual_z() != virtual_z()))
- continue
-
- if(iscultist(food))
- cultists += food
- else
- noncultists += food
-
- if(cultists.len) //cultists get higher priority
- acquire(pick(cultists))
- return
-
- if(noncultists.len)
- acquire(pick(noncultists))
- return
-
- //no living humans, follow a ghost instead.
- for(var/mob/dead/observer/ghost in GLOB.player_list)
- var/turf/pos = get_turf(ghost)
- if(!pos || (pos.virtual_z() != virtual_z()))
- continue
- cultists += ghost
- if(cultists.len)
- acquire(pick(cultists))
- return
-
-
-/obj/singularity/narsie/proc/acquire(atom/food)
- if(food == target)
- return
- to_chat(target, "NAR'SIE HAS LOST INTEREST IN YOU.")
- target = food
- if(ishuman(target))
- to_chat(target, "NAR'SIE HUNGERS FOR YOUR SOUL.")
- else
- to_chat(target, "NAR'SIE HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL.")
-
-//Wizard narsie
-/obj/singularity/narsie/wizard
- grav_pull = 0
-
-/obj/singularity/narsie/wizard/eat()
-// if(defer_powernet_rebuild != 2)
-// defer_powernet_rebuild = 1
- for(var/atom/X in urange(consume_range,src,1))
- if(isturf(X) || ismovable(X))
- consume(X)
-// if(defer_powernet_rebuild != 2)
-// defer_powernet_rebuild = 0
- return
-
-
-/obj/singularity/narsie/proc/narsie_spawn_animation()
- setDir(SOUTH)
- move_self = FALSE
- flick("narsie_spawn_anim",src)
- addtimer(CALLBACK(src, PROC_REF(narsie_spawn_animation_end)), 3.5 SECONDS)
-
-/obj/singularity/narsie/proc/narsie_spawn_animation_end()
- move_self = TRUE
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 400366415d9a..9903beaf6ad8 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -29,7 +29,7 @@
#define PLASMA_TRANSMIT_MODIFIER 4
#define BZ_TRANSMIT_MODIFIER -2
#define TRITIUM_TRANSMIT_MODIFIER 30 //We divide by 10, so this works out to 3
-#define PLUOXIUM_TRANSMIT_MODIFIER -5 //Should halve the power output
+#define OZONE_TRANSMIT_MODIFIER -5 //Should halve the power output
#define H2O_TRANSMIT_MODIFIER -9
#define BZ_RADIOACTIVITY_MODIFIER 5 //Improves the effect of transmit modifiers
@@ -154,7 +154,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
GAS_CO2,
GAS_NITROUS,
GAS_N2,
- GAS_PLUOXIUM,
+ GAS_O3,
GAS_TRITIUM,
GAS_BZ,
GAS_FREON,
@@ -167,7 +167,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
GAS_CO2 = 0,
GAS_NITROUS = 0,
GAS_N2 = 0,
- GAS_PLUOXIUM = 0,
+ GAS_O3 = 0,
GAS_TRITIUM = 0,
GAS_BZ = 0,
GAS_FREON = 0,
@@ -177,7 +177,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
GAS_O2 = OXYGEN_TRANSMIT_MODIFIER,
GAS_H2O = H2O_TRANSMIT_MODIFIER,
GAS_PLASMA = PLASMA_TRANSMIT_MODIFIER,
- GAS_PLUOXIUM = PLUOXIUM_TRANSMIT_MODIFIER,
+ GAS_O3 = OZONE_TRANSMIT_MODIFIER,
GAS_TRITIUM = TRITIUM_TRANSMIT_MODIFIER,
GAS_BZ = BZ_TRANSMIT_MODIFIER,
)
@@ -188,7 +188,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
GAS_PLASMA = PLASMA_HEAT_PENALTY,
GAS_CO2 = CO2_HEAT_PENALTY,
GAS_N2 = NITROGEN_HEAT_PENALTY,
- GAS_PLUOXIUM = PLUOXIUM_HEAT_PENALTY,
+ GAS_O3 = PLUOXIUM_HEAT_PENALTY,
GAS_TRITIUM = TRITIUM_HEAT_PENALTY,
GAS_BZ = BZ_HEAT_PENALTY,
GAS_FREON = FREON_HEAT_PENALTY,
@@ -196,7 +196,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
///The list of gases mapped against their heat resistance. We use it to moderate heat damage.
var/list/gas_resist = list(
GAS_NITROUS = N2O_HEAT_RESISTANCE,
- GAS_PLUOXIUM = PLUOXIUM_HEAT_RESISTANCE,
+ GAS_O3 = PLUOXIUM_HEAT_RESISTANCE,
)
///The list of gases mapped against their powermix ratio
var/list/gas_powermix = list(
@@ -205,7 +205,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
GAS_PLASMA = 1,
GAS_CO2 = 1,
GAS_N2 = -1,
- GAS_PLUOXIUM = -1,
+ GAS_O3 = -1,
GAS_TRITIUM = 1,
GAS_BZ = 1,
GAS_FREON = -1,
@@ -518,13 +518,13 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
var/list/resistance_mod = gases_we_care_about.Copy()
//We're concerned about pluoxium being too easy to abuse at low percents, so we make sure there's a substantial amount.
- var/pluoxiumbonus = (gas_comp[GAS_PLUOXIUM] >= 0.15) //makes pluoxium only work at 15%+
+ var/pluoxiumbonus = (gas_comp[GAS_O3] >= 0.15) //makes pluoxium only work at 15%+
var/h2obonus = 1 - (gas_comp[GAS_H2O] * 0.25)//At max this value should be 0.75
var/freonbonus = (gas_comp[GAS_FREON] <= 0.03) //Let's just yeet power output if this shit is high
- heat_mod[GAS_PLUOXIUM] = pluoxiumbonus
- transit_mod[GAS_PLUOXIUM] = pluoxiumbonus
- resistance_mod[GAS_PLUOXIUM] = pluoxiumbonus
+ heat_mod[GAS_O3] = pluoxiumbonus
+ transit_mod[GAS_O3] = pluoxiumbonus
+ resistance_mod[GAS_O3] = pluoxiumbonus
//No less then zero, and no greater then one, we use this to do explosions and heat to power transfer
//Be very careful with modifing this var by large amounts, and for the love of god do not push it past 1
diff --git a/code/modules/projectiles/ammunition/_ammo_casing.dm b/code/modules/projectiles/ammunition/_ammo_casing.dm
new file mode 100644
index 000000000000..b478523f7b95
--- /dev/null
+++ b/code/modules/projectiles/ammunition/_ammo_casing.dm
@@ -0,0 +1,260 @@
+/obj/item/ammo_casing
+ name = "bullet casing"
+ desc = "A bullet casing."
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
+ icon_state = "pistol-brass"
+ flags_1 = CONDUCT_1
+ slot_flags = ITEM_SLOT_BELT
+ throwforce = 0
+ w_class = WEIGHT_CLASS_TINY
+ custom_materials = list(/datum/material/iron = 500)
+
+ /// Instance of the projectile to be shot, or null if there is no loaded projectile.
+ var/obj/projectile/BB = null
+ /// The projectile type to create in Initialize(), populating the BB variable with a projectile.
+ var/projectile_type = null
+ /// Caliber string, used to determine if the casing can be loaded into specific guns or magazines.
+ var/caliber = null
+ /// Used for pacifism checks. Set to FALSE if the bullet is non-lethal and pacifists should be able to fire.
+ var/harmful = TRUE
+ /// String, used to determine the appearance of the bullet on the casing sprite if the casing is filled.
+ var/bullet_skin
+
+ /// The sound played when this ammo is fired by an energy gun.
+ var/fire_sound = null
+ /// The visual effect that appears when the ammo is fired.
+ var/firing_effect_type
+ /// Enables casing spinning and sizzling after being ejected from a gun.
+ var/heavy_metal = TRUE
+ /// If true, the casing's sprite will automatically be transformed in Initialize().
+ /// Disable for things like rockets or other heavy ammunition that should only appear right-side up.
+ var/auto_rotate = TRUE
+ /// If you dont want to bullets to randomly change position on spawn. For mapping.
+ var/auto_scatter = TRUE
+
+ ///Pellets for spreadshot
+ var/pellets = 1
+ ///Variance for inaccuracy fundamental to the casing
+ var/variance = 0
+ ///Randomspread for automatics
+ var/randomspread = FALSE
+ ///Delay for energy weapons
+ var/delay = 0
+ ///Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.
+ var/click_cooldown_override = 0
+ ///If true, overrides the bouncing sfx from the turf to this one
+ var/list/bounce_sfx_override
+
+ ///What this casing can be stacked into.
+ var/obj/item/ammo_box/magazine/stack_type = /obj/item/ammo_box/magazine/ammo_stack
+ ///Maximum stack size of ammunition
+ var/stack_size = 15
+
+/obj/item/ammo_casing/attackby(obj/item/attacking_item, mob/user, params)
+ if(istype(attacking_item, /obj/item/pen))
+ if(!user.is_literate())
+ to_chat(user, "You scribble illegibly on the [src]!")
+ return
+ var/inputvalue = stripped_input(user, "What would you like to label the round?", "Bullet Labelling", "", MAX_NAME_LEN)
+
+ if(!inputvalue)
+ return
+
+ if(user.canUseTopic(src, BE_CLOSE))
+ name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]"
+ if(BB)
+ BB.name = "[initial(BB.name)][(inputvalue ? " - '[inputvalue]'" : null)]"
+ else if(istype(attacking_item, /obj/item/ammo_box) && user.is_holding(src))
+ add_fingerprint(user)
+ var/obj/item/ammo_box/ammo_box = attacking_item
+ var/obj/item/ammo_casing/other_casing = ammo_box.get_round(TRUE)
+
+ if(try_stacking(other_casing, user))
+ ammo_box.stored_ammo -= other_casing
+ ammo_box.update_ammo_count()
+ return
+
+ else if(istype(attacking_item, /obj/item/ammo_box/magazine/ammo_stack))
+ add_fingerprint(user)
+ var/obj/item/ammo_box/magazine/ammo_stack = attacking_item
+ if(isturf(loc))
+ var/boolets = 0
+ for(var/obj/item/ammo_casing/bullet in loc)
+ if(bullet == src)
+ continue
+ if(!bullet.BB)
+ continue
+ if(length(ammo_stack.stored_ammo) >= ammo_stack.max_ammo)
+ break
+ if(ammo_stack.give_round(bullet, FALSE))
+ boolets++
+ break
+ if((boolets <= 0) && BB && !(length(ammo_stack.stored_ammo) >= ammo_stack.max_ammo))
+ if(ammo_stack.give_round(src, FALSE))
+ boolets++
+ if(boolets > 0)
+ ammo_stack.update_ammo_count()
+ to_chat(user, span_notice("You collect [boolets] round\s. [ammo_stack] now contains [length(ammo_stack.stored_ammo)] round\s."))
+ else
+ to_chat(user, span_warning("You can't stack any more!"))
+ return
+
+ else if(istype(attacking_item, /obj/item/ammo_casing))
+ try_stacking(attacking_item, user)
+ return
+
+ return ..()
+
+/obj/item/ammo_casing/examine(mob/user)
+ . = ..()
+ . += span_notice("You could write a message on \the [src] by writing on it with a pen.")
+
+/obj/item/ammo_casing/proc/try_stacking(obj/item/ammo_casing/other_casing, mob/living/user)
+ if(user)
+ add_fingerprint(user)
+ if(!other_casing.stack_type)
+ if(user)
+ to_chat(user, span_warning("[other_casing] can't be stacked."))
+ return
+ if(!stack_type)
+ if(user)
+ to_chat(user, span_warning("[src] can't be stacked."))
+ return
+ if(name != other_casing.name) //Has to match exactly
+ if(user)
+ to_chat(user, span_warning("You can't stack different types of ammunition."))
+ return
+ if(stack_type != other_casing.stack_type)
+ if(user)
+ to_chat(user, span_warning("You can't stack [other_casing] with [src]."))
+ return
+ if(!BB || !other_casing.BB) //maybe allow empty casing stacking at a later date, when there's a feature to recycle casings
+ if(user)
+ to_chat(user, span_warning("You can't stack empty casings."))
+ return
+ if((item_flags & IN_STORAGE) || (other_casing.item_flags & IN_STORAGE))
+ if(user)
+ to_chat(user, span_warning("You can't stack casings while they are inside storage."))
+ return
+ var/obj/item/ammo_box/magazine/ammo_stack/ammo_stack = other_casing.stack_with(src)
+ if(user)
+ user.put_in_hands(ammo_stack)
+ to_chat(user, span_notice("[src] has been stacked with [other_casing]."))
+ return ammo_stack
+
+/obj/item/ammo_casing/proc/stack_with(obj/item/ammo_casing/other_casing)
+ var/obj/item/ammo_box/magazine/ammo_stack/ammo_stack = new stack_type(drop_location())
+ ammo_stack.name = "handful of [name]s" //"handful of .9mm bullet casings"
+ ammo_stack.base_icon_state = other_casing.icon_state
+ ammo_stack.caliber = caliber
+ ammo_stack.max_ammo = stack_size
+ ammo_stack.give_round(src)
+ ammo_stack.give_round(other_casing)
+ ammo_stack.update_ammo_count()
+ return ammo_stack
+
+/obj/item/ammo_casing/Initialize()
+ . = ..()
+ if(projectile_type)
+ BB = new projectile_type(src)
+ if(auto_scatter)
+ pixel_x = base_pixel_x + rand(-10, 10)
+ pixel_y = base_pixel_y + rand(-10, 10)
+ item_flags |= NO_PIXEL_RANDOM_DROP
+ if(auto_rotate)
+ transform = transform.Turn(round(45 * rand(0, 32) / 2))
+ update_appearance()
+
+/obj/item/ammo_casing/Destroy()
+ . = ..()
+ if(BB)
+ QDEL_NULL(BB)
+
+/obj/item/ammo_casing/update_icon_state()
+ icon_state = "[initial(icon_state)][BB ? (bullet_skin ? "-[bullet_skin]" : "") : "-empty"]"
+ // [CELADON-ADD] - CELADON_BALANCE - Патроны
+ if(icon_state == "[initial(icon_state)]-empty")
+ custom_materials = list(/datum/material/iron=500)
+ // [/CELADON-ADD]
+ return ..()
+
+/obj/item/ammo_casing/update_desc()
+ desc = "[initial(desc)][BB ? null : " This one is spent."]"
+ return ..()
+
+///Proc to magically refill a casing with a new projectile
+/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!).
+ if(!BB)
+ BB = new projectile_type(src, src)
+
+
+/obj/item/ammo_casing/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ bounce_away(FALSE, NONE)
+ . = ..()
+
+/obj/item/ammo_casing/proc/on_eject(atom/shooter)
+ forceMove(drop_location()) //Eject casing onto ground.
+ pixel_x = rand(-4, 4)
+ pixel_y = rand(-4, 4)
+ pixel_z = 8 //bounce time
+ var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100
+ AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = bounce_sfx_override)
+
+/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3)
+ if(!heavy_metal)
+ return
+ update_appearance()
+ SpinAnimation(10, 1)
+ var/turf/location = get_turf(src)
+ if(bounce_sfx_override)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, pick(bounce_sfx_override), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
+ return
+ if(!location)
+ return
+
+ if(still_warm && location.bullet_sizzle)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected.
+
+ else if(location.bullet_bounce_sound)
+ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, pick(location.bullet_bounce_sound), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
+
+/obj/item/ammo_casing/spent
+ name = "spent bullet casing"
+ projectile_type = null
+ BB = null
+
+/obj/item/ammo_casing/spent/pistol_brass
+ icon_state = "pistol-brass"
+
+/obj/item/ammo_casing/spent/pistol_steel
+ icon_state = "pistol-steel"
+
+/obj/item/ammo_casing/spent/magnum_brass
+ icon_state = "magnum-brass"
+
+/obj/item/ammo_casing/spent/magnum_steel
+ icon_state = "magnum-steel"
+
+/obj/item/ammo_casing/spent/rifle_brass
+ icon_state = "rifle-brass"
+
+/obj/item/ammo_casing/spent/rifle_steel
+ icon_state = "rifle-steel"
+
+/obj/item/ammo_casing/spent/big_brass
+ icon_state = "big-brass"
+
+/obj/item/ammo_casing/spent/big_steel
+ icon_state = "big-steel" //balls
+
+/obj/item/ammo_casing/spent/slug
+ icon_state = "slug"
+
+/obj/item/ammo_casing/spent/slug/buck
+ icon_state = "buckshot"
+
+/obj/item/ammo_casing/spent/slug/beanbag
+ icon_state = "beanbag"
+
+/obj/item/ammo_casing/spent/slug/rubber
+ icon_state = "rubber"
diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm
deleted file mode 100644
index 51b9b2fb5715..000000000000
--- a/code/modules/projectiles/ammunition/_ammunition.dm
+++ /dev/null
@@ -1,139 +0,0 @@
-/obj/item/ammo_casing
- name = "bullet casing"
- desc = "A bullet casing."
- icon = 'icons/obj/ammo_bullets.dmi'
- icon_state = "pistol-brass"
- flags_1 = CONDUCT_1
- slot_flags = ITEM_SLOT_BELT
- throwforce = 0
- w_class = WEIGHT_CLASS_TINY
- custom_materials = list(/datum/material/iron = 500)
-
- /// Instance of the projectile to be shot, or null if there is no loaded projectile.
- var/obj/projectile/BB = null
- /// The projectile type to create in Initialize(), populating the BB variable with a projectile.
- var/projectile_type = null
- /// Caliber string, used to determine if the casing can be loaded into specific guns or magazines.
- var/caliber = null
- /// Used for pacifism checks. Set to FALSE if the bullet is non-lethal and pacifists should be able to fire.
- var/harmful = TRUE
- /// String, used to determine the appearance of the bullet on the casing sprite if the casing is filled.
- var/bullet_skin
-
- /// The sound played when this ammo is fired by an energy gun.
- var/fire_sound = null
- /// The visual effect that appears when the ammo is fired.
- var/firing_effect_type
- /// Enables casing spinning and sizzling after being ejected from a gun.
- var/heavy_metal = TRUE
- /// If true, the casing's sprite will automatically be transformed in Initialize().
- /// Disable for things like rockets or other heavy ammunition that should only appear right-side up.
- var/auto_rotate = TRUE
-
- var/pellets = 1 //Pellets for spreadshot
- var/variance = 0 //Variance for inaccuracy fundamental to the casing
- var/randomspread = FALSE //Randomspread for automatics
- var/delay = 0 //Delay for energy weapons
- var/click_cooldown_override = 0 //Override this to make your gun have a faster fire rate, in tenths of a second. 4 is the default gun cooldown.
-
- var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one
-
- var/bullet_per_box
-
-
-/obj/item/ammo_casing/spent
- name = "spent bullet casing"
- BB = null
-
-/obj/item/ammo_casing/Initialize()
- . = ..()
- if(projectile_type)
- BB = new projectile_type(src)
- pixel_x = base_pixel_x + rand(-10, 10)
- pixel_y = base_pixel_y + rand(-10, 10)
- item_flags |= NO_PIXEL_RANDOM_DROP
- if(auto_rotate)
- transform = transform.Turn(pick(0, 90, 180, 270))
- update_appearance()
-
-/obj/item/ammo_casing/Destroy()
- . = ..()
-
- if(BB)
- QDEL_NULL(BB)
- else
- SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name)
-
-/obj/item/ammo_casing/update_icon_state()
- icon_state = "[initial(icon_state)][BB ? (bullet_skin ? "-[bullet_skin]" : "") : "-empty"]"
- // [CELADON-ADD] - CELADON_BALANCE - Патроны
- if(icon_state == "[initial(icon_state)]-empty")
- custom_materials = list(/datum/material/iron=500)
- // [/CELADON-ADD]
- return ..()
-
-/obj/item/ammo_casing/update_desc()
- desc = "[initial(desc)][BB ? null : " This one is spent."]"
- return ..()
-
-//proc to magically refill a casing with a new projectile
-/obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!).
- if(!BB)
- BB = new projectile_type(src, src)
-
-/obj/item/ammo_casing/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/ammo_box))
- var/obj/item/ammo_box/box = I
- if(isturf(loc))
- var/boolets = 0
- for(var/obj/item/ammo_casing/bullet in loc)
- if (box.stored_ammo.len >= box.max_ammo)
- break
- if (bullet.BB)
- if (box.give_round(bullet, 0))
- boolets++
- // [CELADON-ADD] - CELADON_BALANCE
- playsound(loc, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
- break
- // [/CELADON-ADD]
- else
- continue
- if (boolets > 0)
- box.update_appearance()
- to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.")
- else
- to_chat(user, "You fail to collect anything!")
- else
- return ..()
-
-
-/obj/item/ammo_casing/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- bounce_away(FALSE, NONE)
- . = ..()
-
-/obj/item/ammo_casing/proc/on_eject(atom/shooter)
- forceMove(drop_location()) //Eject casing onto ground.
- pixel_x = rand(-4, 4)
- pixel_y = rand(-4, 4)
- pixel_z = 8 //bounce time
- var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100
- AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = bounce_sfx_override)
-
-
-/obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3)
- if(!heavy_metal)
- return
- update_appearance()
- SpinAnimation(10, 1)
- var/turf/location = get_turf(src)
- if(bounce_sfx_override)
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, pick(bounce_sfx_override), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
- return
- if(!location)
- return
-
- if(still_warm && location.bullet_sizzle)
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, 'sound/items/welder.ogg', 20, 1), bounce_delay) //If the turf is made of water and the shell casing is still hot, make a sizzling sound when it's ejected.
-
- else if(location.bullet_bounce_sound)
- addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), src, pick(location.bullet_bounce_sound), 20, 1), bounce_delay) //Soft / non-solid turfs that shouldn't make a sound when a shell casing is ejected over them.
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index bdc5254f13c9..cfa4e91e645c 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -8,7 +8,7 @@
spread = round((rand() - 0.5) * distro)
else //Smart spread
spread = round(1 - 0.5) * distro
- if(!throw_proj(target, targloc, user, params, spread))
+ if(!throw_proj(target, targloc, user, params, spread, fired_from))
return FALSE
else
if(isnull(BB))
@@ -45,7 +45,7 @@
reagents.trans_to(BB, reagents.total_volume, transfered_by = user) //For chemical darts/bullets
qdel(reagents)
-/obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread)
+/obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread, atom/fired_from)
var/turf/curloc
if(user)
curloc = get_turf(user)
diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm
index d46001951ba4..d716618b0d60 100644
--- a/code/modules/projectiles/ammunition/ballistic/lmg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm
@@ -6,7 +6,6 @@
icon_state = "rifle-steel"
caliber = "7.12x82mm"
projectile_type = /obj/projectile/bullet/mm712x82
- bullet_per_box = 100
/obj/item/ammo_casing/mm712x82/ap
name = "7.12x82mm armor-piercing bullet casing"
@@ -20,12 +19,6 @@
projectile_type = /obj/projectile/bullet/mm712x82/hp
bullet_skin = "hollow"
-/obj/item/ammo_casing/mm712x82/inc
- name = "7.12x82mm incendiary bullet casing"
- desc = "A 7.12x82mm incendiary bullet casing."
- projectile_type = /obj/projectile/bullet/incendiary/mm712x82
- bullet_skin = "incen"
-
/obj/item/ammo_casing/mm712x82/match
name = "7.12x82mm match bullet casing"
desc = "A 7.12x82mm match bullet casing."
diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm
index e8cb64a673d2..aabc86f3c51e 100644
--- a/code/modules/projectiles/ammunition/ballistic/pistol.dm
+++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm
@@ -6,7 +6,6 @@
icon_state = "pistol-steel"
caliber = "10mm"
projectile_type = /obj/projectile/bullet/c10mm
- bullet_per_box = 50
/obj/item/ammo_casing/c10mm/surplus
name = "10mm surplus bullet casing"
@@ -26,12 +25,6 @@
projectile_type = /obj/projectile/bullet/c10mm/hp
bullet_skin = "hollow"
-/obj/item/ammo_casing/c10mm/inc
- name = "10mm incendiary bullet casing"
- desc = "A 10mm incendiary bullet casing."
- bullet_skin = "incen"
- projectile_type = /obj/projectile/bullet/incendiary/c10mm
-
/obj/item/ammo_casing/c10mm/rubber
name = "10mm rubber bullet casing"
desc = "A 10mm rubber bullet casing."
@@ -46,7 +39,7 @@
icon_state = "pistol-brass"
caliber = "9mm"
projectile_type = /obj/projectile/bullet/c9mm
- bullet_per_box = 50
+ stack_size = 15
/obj/item/ammo_casing/c9mm/surplus
name = "9mm surplus bullet casing"
@@ -58,7 +51,7 @@
name = "9mm armor-piercing bullet casing"
desc = "A 9mm armor-piercing bullet casing."
bullet_skin = "ap"
- projectile_type =/obj/projectile/bullet/c9mm/ap
+ projectile_type = /obj/projectile/bullet/c9mm/ap
/obj/item/ammo_casing/c9mm/hp
name = "9mm hollow point bullet casing"
@@ -66,12 +59,6 @@
bullet_skin = "hollow"
projectile_type = /obj/projectile/bullet/c9mm/hp
-/obj/item/ammo_casing/c9mm/inc
- name = "9mm incendiary bullet casing"
- desc = "A 9mm incendiary bullet casing."
- bullet_skin = "incen"
- projectile_type = /obj/projectile/bullet/incendiary/c9mm
-
/obj/item/ammo_casing/c9mm/rubber
name = "9mm rubber bullet casing"
desc = "A 9mm rubber bullet casing."
@@ -86,7 +73,7 @@
icon_state = "pistol-steel"
caliber = ".45"
projectile_type = /obj/projectile/bullet/c45
- bullet_per_box = 50
+ stack_size = 12
/obj/item/ammo_casing/c45/surplus
name = ".45 surplus bullet casing"
@@ -106,12 +93,6 @@
bullet_skin = "hollow"
projectile_type = /obj/projectile/bullet/c45/hp
-/obj/item/ammo_casing/c45/inc
- name = ".45 incendiary bullet casing"
- desc = "A .45 incendiary bullet casing."
- bullet_skin = "incen"
- projectile_type = /obj/projectile/bullet/incendiary/c45
-
/obj/item/ammo_casing/c45/rubber
name = ".45 rubber bullet casing"
desc = "A .45 rubber bullet casing."
@@ -125,18 +106,35 @@
desc = "A .50 AE bullet casing."
caliber = ".50 AE"
projectile_type = /obj/projectile/bullet/a50AE
- bullet_per_box = 20
/obj/item/ammo_casing/a50AE/hp
name = ".50 AE hollow point bullet casing"
desc = "A .50 AE hollow point bullet casing."
projectile_type = /obj/projectile/bullet/a50AE/hp
-// .22 LR (Himehabu)
+// .22 LR (Himehabu, Pounder)
+
/obj/item/ammo_casing/c22lr
name = ".22 LR bullet casing"
desc = "A .22 LR bullet casing."
projectile_type = /obj/projectile/bullet/c22lr
caliber = "22lr"
- bullet_per_box = 75
+ stack_size = 25
+
+/obj/item/ammo_casing/c22lr/hp
+ name = ".22 LR HP bullet casing"
+ desc = "A .22 LR bullet HP casing."
+ projectile_type = /obj/projectile/bullet/c22lr/hp
+ bullet_skin = "hollow"
+/obj/item/ammo_casing/c22lr/ap
+ name = ".22 LR AP bullet casing"
+ desc = "A .22 LR bullet casing."
+ projectile_type = /obj/projectile/bullet/c22lr/ap
+ bullet_skin = "ap"
+
+/obj/item/ammo_casing/c22lr/rubber
+ name = ".22 LR rubber bullet casing"
+ desc = "A .22 LR bullet casing."
+ projectile_type = /obj/projectile/bullet/c22lr/rubber
+ bullet_skin = "rubber"
diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm
index 8705a932b392..60c3722b934a 100644
--- a/code/modules/projectiles/ammunition/ballistic/revolver.dm
+++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm
@@ -6,7 +6,6 @@
caliber = ".357"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a357
- bullet_per_box = 50
/obj/item/ammo_casing/a357/match
name = ".357 match bullet casing"
@@ -29,7 +28,7 @@
caliber = ".45-70"
icon_state = "magnum-brass"
projectile_type = /obj/projectile/bullet/a4570
- bullet_per_box = 12
+ stack_size = 5
/obj/item/ammo_casing/a4570/match
name = ".45-70 match bullet casing"
@@ -55,14 +54,12 @@
desc = "A .38 Special bullet casing."
caliber = ".38"
projectile_type = /obj/projectile/bullet/c38
- bullet_per_box = 50
/obj/item/ammo_casing/c38/surplus
name = ".38 surplus bullet casing"
desc = "A .38 surplus bullet casing."
projectile_type = /obj/projectile/bullet/c38/surplus
-
/obj/item/ammo_casing/c38/trac
name = ".38 TRAC bullet casing"
desc = "A .38 \"TRAC\" bullet casing."
@@ -79,7 +76,7 @@
name = ".38 rubber bullet casing"
desc = "A .38 rubber bullet casing."
bullet_skin = "rubber"
- projectile_type = /obj/projectile/bullet/c38/match/bouncy
+ projectile_type = /obj/projectile/bullet/c38/bouncy
/obj/item/ammo_casing/c38/dumdum
name = ".38 dum-dum bullet casing"
diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm
index b9753df2f210..5da3febd795d 100644
--- a/code/modules/projectiles/ammunition/ballistic/rifle.dm
+++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm
@@ -6,15 +6,25 @@
icon_state = "rifle-brass"
caliber = "8x50mmR"
projectile_type = /obj/projectile/bullet/a8_50r
- bullet_per_box = 20
+ stack_size = 10
-/obj/item/ammo_casing/a8_50rhp
+/obj/item/ammo_casing/a8_50r/hp
name = "8x50mmR hollow point bullet casing"
desc = "A 8x50mmR hollow point bullet casing."
- icon_state = "rifle-brass-hollow"
- caliber = "8x50mmR"
- projectile_type = /obj/projectile/bullet/a8_50rhp
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/a8_50r/hp
+
+/obj/item/ammo_casing/a8_50r/match
+ name = "8x50mmR match bullet casing"
+ desc = "A 8x50mmR hollow point bullet casing."
+ bullet_skin = "ap"
+ projectile_type = /obj/projectile/bullet/a8_50r/match
+/obj/item/ammo_casing/a8_50r/trac
+ name = "8x50mmR tracker casing"
+ desc = "A 8x50mmR tracker casing."
+ bullet_skin = "trac"
+ projectile_type = /obj/projectile/bullet/a8_50r/trac
// 8x58mm Caseless (SSG-669C)
@@ -24,17 +34,13 @@
icon_state = "caseless"
caliber = "a858"
projectile_type = /obj/projectile/bullet/a858
- bullet_per_box = 20
+ stack_size = 10
-// .300 Magnum (Smile Rifle)
+/obj/item/ammo_casing/caseless/a858/trac
+ name = "8x58mm tracker round"
+ desc = "A 8x58mm caseless tracker round."
+ projectile_type = /obj/projectile/bullet/a858/trac
-/obj/item/ammo_casing/a300
- name = ".300 Magnum bullet casing"
- desc = "A .300 Magnum bullet casing."
- icon_state = "rifle-steel"
- caliber = "a300"
- projectile_type = /obj/projectile/bullet/a300
- bullet_per_box = 20
// 5.56x42mm CLIP (CM82, Hydra variants)
@@ -44,25 +50,26 @@
icon_state = "rifle-brass"
caliber = "5.56x42mm"
projectile_type = /obj/projectile/bullet/a556_42
- bullet_per_box = 80
+ stack_size = 15
-// 5.45x39mm (SKM-24v)
+/obj/item/ammo_casing/a556_42/hp
+ name = "5.56x42mm CLIP HP bullet casing"
+ desc = "A 5.56x42mm CLIP hollow point bullet casing."
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/a556_42/hp
-/obj/item/ammo_casing/a545_39
- name = "5.45x39mm bullet casing"
- desc = "A 5.45x39mm bullet casing."
- icon_state = "rifle-brass"
- caliber = "5.45x39mm"
- randomspread = TRUE
- projectile_type = /obj/projectile/bullet/a545_39
- bullet_per_box = 80
-
-/obj/item/ammo_casing/a545_39/recycled
- name = "recycled 5.45x39mm bullet casing"
- desc = "A recycled 5.45x39mm bullet casing."
- bullet_skin = "surplus"
- caliber = "5.45x39mm"
- projectile_type = /obj/projectile/bullet/a545_39
+/obj/item/ammo_casing/a556_42/ap
+ name = "5.56x42mm CLIP bullet casing"
+ desc = "A 5.56x42mm CLIP bullet casing."
+ bullet_skin = "ap"
+ projectile_type = /obj/projectile/bullet/a556_42/ap
+
+/obj/item/ammo_casing/a556_42/rubber
+ name = "5.56x42mm CLIP rubber bullet casing"
+ desc = "A 5.56x42mm CLIP rubber bullet casing."
+ bullet_skin = "rubber"
+ projectile_type = /obj/projectile/bullet/a556_42/rubber
+ stack_size = 15
// 7.62x40mm CLIP (SKM Rifles)
@@ -72,7 +79,25 @@
icon_state = "rifle-brass"
caliber = "7.62x40mm"
projectile_type = /obj/projectile/bullet/a762_40
- bullet_per_box = 80
+ stack_size = 15
+
+/obj/item/ammo_casing/a762_40/hp
+ name = "7.62x40mm CLIP HP bullet casing"
+ desc = "A 7.62x40mm CLIP HP bullet casing."
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/a762_40/hp
+
+/obj/item/ammo_casing/a762_40/ap
+ name = "7.62x40mm CLIP AP bullet casing"
+ desc = "A 7.62x40mm CLIP AP bullet casing."
+ bullet_skin = "ap"
+ projectile_type = /obj/projectile/bullet/a762_40/ap
+
+/obj/item/ammo_casing/a762_40/rubber
+ name = "7.62x40mm CLIP rubber bullet casing"
+ desc = "A 7.62x40mm CLIP rubber bullet casing."
+ bullet_skin = "rubber"
+ projectile_type = /obj/projectile/bullet/a762_40/rubber
//.308 (M514 EBR & CM-GAL-S)
@@ -84,21 +109,28 @@
icon_state = "rifle-brass"
caliber = ".308"
projectile_type = /obj/projectile/bullet/a308
- bullet_per_box = 20
+ bullet_per_box = 10
*/
//[/СELADON-REMOVE]
+/obj/item/ammo_casing/a308/ap
+ name = ".308 AP bullet casing"
+ desc = "A .308 AP bullet casing."
+ bullet_skin = "ap"
+ projectile_type = /obj/projectile/bullet/a308/ap
+
+/obj/item/ammo_casing/a308/hp
+ name = ".308 HP bullet casing"
+ desc = "A .308 HP bullet casing."
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/a308/hp
+
+//.299
+
/obj/item/ammo_casing/caseless/c299
name = ".299 Eoehoma caseless bullet casing"
desc = "A .299 Eoehoma caseless bullet casing."
icon_state = "caseless"
caliber = ".299 caseless"
projectile_type = /obj/projectile/bullet/c299
- bullet_per_box = 100
-
-/obj/item/ammo_casing/a65clip
- name = "6.5x57mm CLIP bullet casing"
- desc = "A 6.5x57mm CLIP bullet casing."
- icon_state = "big-brass"
- caliber = "6.5CLIP"
- projectile_type = /obj/projectile/bullet/a65clip
+ stack_size = 15
diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
index e9ef54ac86c4..3b7f67dda0f6 100644
--- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm
+++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm
@@ -3,12 +3,11 @@
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
desc = "A 12-gauge lead slug."
- icon = 'icons/obj/ammo_shotshells.dmi'
icon_state = "slug"
caliber = "12ga"
custom_materials = list(/datum/material/iron=4000)
projectile_type = /obj/projectile/bullet/slug
- bullet_per_box = 25
+ stack_size = 8 //Make sure this matches max_ammo variable on prefilled stacks (magazine/ammo_stack/prefilled)
bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg'
diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm
index 39086b8cc66f..e949b475e58c 100644
--- a/code/modules/projectiles/ammunition/ballistic/smg.dm
+++ b/code/modules/projectiles/ammunition/ballistic/smg.dm
@@ -6,7 +6,24 @@
icon_state = "rifle-steel"
caliber = "5.7x39mm"
projectile_type = /obj/projectile/bullet/c57x39mm
- bullet_per_box = 50
+
+/obj/item/ammo_casing/c57x39mm/ap
+ name = "5.7x39mm armor piercing bullet casing"
+ desc = "A 5.7x39mm armour-piercing bullet casing."
+ bullet_skin = "ap"
+ projectile_type = /obj/projectile/bullet/c57x39mm/ap
+
+/obj/item/ammo_casing/c57x39mm/hp
+ name = "5.7x39mm hollow point bullet casing"
+ desc = "A 5.7x39mm armour-piercing bullet casing."
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/c57x39mm/hp
+
+/obj/item/ammo_casing/c57x39mm/rubber
+ name = "5.7x39mm rubber bullet casing"
+ desc = "A 5.7x39mm rubber bullet casing."
+ bullet_skin = "rubber"
+ projectile_type = /obj/projectile/bullet/c57x39mm/rubber
// 4.6x30mm (WT-550 Automatic Rifle & SKM-24v)
@@ -16,7 +33,15 @@
icon_state = "rifle-brass"
caliber = "4.6x30mm"
projectile_type = /obj/projectile/bullet/c46x30mm
- bullet_per_box = 50
+ stack_size = 15
+
+/obj/item/ammo_casing/c46x30mm/recycled
+ name = "4.6x30mm recycled bullet casing"
+ desc = "A 4.6x30mm bullet casing."
+ bullet_skin = "surplus"
+ caliber = "4.6x30mm"
+ projectile_type = /obj/projectile/bullet/c46x30mm/recycled
+ stack_size = 15
/obj/item/ammo_casing/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet casing"
@@ -24,12 +49,17 @@
bullet_skin = "ap"
projectile_type = /obj/projectile/bullet/c46x30mm/ap
-/obj/item/ammo_casing/c46x30mm/inc
- name = "4.6x30mm incendiary bullet casing"
- desc = "A 4.6x30mm incendiary bullet casing."
- bullet_skin = "incen"
- projectile_type = /obj/projectile/bullet/incendiary/c46x30mm
- bullet_per_box = 50
+/obj/item/ammo_casing/c46x30mm/hp
+ name = "4.6x30mm HP bullet casing"
+ desc = "A 4.6x30mm HP bullet casing."
+ bullet_skin = "hollow"
+ projectile_type = /obj/projectile/bullet/c46x30mm/hp
+
+/obj/item/ammo_casing/c46x30mm/rubber
+ name = "4.6x30mm rubber bullet casing"
+ desc = "A 4.6x30mm rubber bullet casing."
+ bullet_skin = "rubber"
+ projectile_type = /obj/projectile/bullet/c46x30mm/rubber
// 4.73x33mm caseless (Solar)
@@ -39,7 +69,6 @@
icon_state = "caseless"
caliber = "4.73x33mm caseless"
projectile_type = /obj/projectile/bullet/c47x33mm
- bullet_per_box = 50
// 5.56mm HITP caseless (Pistole C)
diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm
index e4b668c2228f..d481f4d74d53 100644
--- a/code/modules/projectiles/ammunition/ballistic/sniper.dm
+++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm
@@ -6,7 +6,6 @@
icon_state = "big-steel"
caliber = ".50 BMG"
projectile_type = /obj/projectile/bullet/p50
- bullet_per_box = 20
/obj/item/ammo_casing/p50/soporific
name = ".50 BMG soporific bullet casing"
@@ -20,3 +19,35 @@
desc = "A .50 BMG penetrator bullet casing."
bullet_skin = "ap"
projectile_type = /obj/projectile/bullet/p50/penetrator
+
+// .300 Magnum (Smile Rifle)
+
+/obj/item/ammo_casing/a300
+ name = ".300 Magnum bullet casing"
+ desc = "A .300 Magnum bullet casing."
+ icon_state = "rifle-steel"
+ caliber = "a300"
+ projectile_type = /obj/projectile/bullet/a300
+ stack_size = 15
+
+/obj/item/ammo_casing/a300/trac
+ name = ".300 Magnum Trac bullet casing"
+ desc = "A .300 Magnum Tracker casing."
+ projectile_type = /obj/projectile/bullet/a300/trac
+ bullet_skin = "trac"
+
+//6.5 CLIP
+
+/obj/item/ammo_casing/a65clip
+ name = "6.5x57mm CLIP bullet casing"
+ desc = "A 6.5x57mm CLIP bullet casing."
+ icon_state = "big-brass"
+ caliber = "6.5CLIP"
+ projectile_type = /obj/projectile/bullet/a65clip
+ stack_size = 5
+
+/obj/item/ammo_casing/a65clip/trac
+ name = "6.5x57mm CLIP tracker"
+ desc = "A 6.5x57mm CLIP tracker."
+ projectile_type = /obj/projectile/bullet/a65clip/trac
+ bullet_skin = "trac"
diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm
index 0051680fd1e8..3c71d31eb5ed 100644
--- a/code/modules/projectiles/ammunition/caseless/foam.dm
+++ b/code/modules/projectiles/ammunition/caseless/foam.dm
@@ -9,7 +9,6 @@
custom_materials = list(/datum/material/iron = 11.25)
harmful = FALSE
var/modified = FALSE
- bullet_per_box = 40
/obj/item/ammo_casing/caseless/foam_dart/update_icon_state()
. = ..()
diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm
index 674d1e4514d8..a6e51733f29a 100644
--- a/code/modules/projectiles/ammunition/energy/laser.dm
+++ b/code/modules/projectiles/ammunition/energy/laser.dm
@@ -6,6 +6,9 @@
projectile_type = /obj/projectile/beam/laser/eoehoma
fire_sound = 'sound/weapons/gun/laser/e-fire.ogg'
+/obj/projectile/beam/laser/eoehoma/hermit // Used for the Hermits with E-11 because apparently you can only set it on projectile for simple mobs? That's fun!
+ spread = 80
+
/obj/item/ammo_casing/energy/laser/assault
projectile_type = /obj/projectile/beam/laser/assault
fire_sound = 'sound/weapons/gun/laser/e40_las.ogg'
@@ -28,7 +31,7 @@
fire_sound = 'sound/weapons/gun/laser/e-fire.ogg'
/obj/item/ammo_casing/energy/laser/smg
- projectile_type = /obj/projectile/beam/laser/weak/negative_ap
+ projectile_type = /obj/projectile/beam/laser/weak
e_cost = 799 //12 shots with a normal power cell, 25 with an upgraded
select_name = "kill"
delay = 0.13 SECONDS
@@ -53,10 +56,10 @@
select_name = "scatter"
/obj/item/ammo_casing/energy/laser/ultima
- projectile_type = /obj/projectile/beam/laser/weak/negative_ap/low_range
- pellets = 3
- variance = 35
- e_cost = 2000
+ projectile_type = /obj/projectile/beam/weak
+ pellets = 6
+ variance = 25
+ e_cost = 1000
select_name = "kill"
/obj/item/ammo_casing/energy/laser/ultima/alt
diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm
index 1f74196eb83b..1d9eda158668 100644
--- a/code/modules/projectiles/ammunition/energy/stun.dm
+++ b/code/modules/projectiles/ammunition/energy/stun.dm
@@ -35,10 +35,10 @@
fire_sound = 'sound/weapons/taser.ogg'
/obj/item/ammo_casing/energy/disabler/scatter/ultima
- projectile_type = /obj/projectile/beam/disabler/weak/negative_ap/low_range
+ projectile_type = /obj/projectile/beam/disabler/weak/negative_ap
pellets = 4
- variance = 35
- e_cost = 2000
+ variance = 25
+ e_cost = 1000
/obj/item/ammo_casing/energy/disabler/scatter/ultima/alt
select_name = "blast"
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index a7944630f7e9..9606536d9f66 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -4,7 +4,7 @@
/obj/item/ammo_box
name = "ammo box (null_reference_exception)"
desc = "A box of ammo."
- icon = 'icons/obj/ammo.dmi'
+ icon = 'icons/obj/ammunition/ammo.dmi'
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
item_state = "syringe_kit"
@@ -26,7 +26,7 @@
///String, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines
var/caliber
///Allows multiple bullets to be loaded in from one click of another box/magazine
- var/multiload = TRUE
+ var/multiload = FALSE
///Whether or not an ammo box skips the do_after process (e.g. speedloaders)
var/instant_load = FALSE
///Whether the magazine should start with nothing in it
@@ -36,26 +36,52 @@
///cost of the materials in the magazine/box itself
var/list/base_cost
-/obj/item/ammo_box/Initialize()
+/obj/item/ammo_box/Initialize(mapload, spawn_empty)
. = ..()
+ if(spawn_empty)
+ start_empty = TRUE
if(!base_icon_state)
base_icon_state = icon_state
- if (!bullet_cost)
+
+ if(!bullet_cost)
for (var/material in custom_materials)
var/material_amount = custom_materials[material]
LAZYSET(base_cost, material, (material_amount * 0.10))
material_amount *= 0.90 // 10% for the container
material_amount /= max_ammo
- LAZYSET(bullet_cost, material, material_amount)
+ LAZYSET(bullet_cost, material, material_amount).
+
if(!start_empty)
- for(var/i = 1, i <= max_ammo, i++)
- stored_ammo += new ammo_type(src)
- update_ammo_count()
+ top_off(starting = TRUE)
+
+ update_appearance()
+
+/*
+ * top_off is used to refill the magazine to max, in case you want to increase the size of a magazine with VV then refill it at once
+ * Arguments:
+ * load_type - if you want to specify a specific ammo casing type to load, enter the path here, otherwise it'll use the basic [/obj/item/ammo_box/var/ammo_type]. Must be a compatible round
+ * starting - Relevant for revolver cylinders, if FALSE then we mind the nulls that represent the empty cylinders (since those nulls don't exist yet if we haven't initialized when this is TRUE)
+ */
+/obj/item/ammo_box/proc/top_off(load_type, starting=FALSE)
+ if(!load_type) //this check comes first so not defining an argument means we just go with default ammo
+ load_type = ammo_type
+
+ var/obj/item/ammo_casing/round_check = load_type
+ if(!starting && (caliber && initial(round_check.caliber) != caliber) || (!caliber && load_type != ammo_type))
+ stack_trace("Tried loading unsupported ammocasing type [load_type] into ammo box [type].")
+ return
+
+ for(var/i = max(1, stored_ammo.len), i <= max_ammo, i++)
+ stored_ammo += new round_check(src)
+
+/obj/item/ammo_box/Destroy()
+ stored_ammo.Cut()
+ return ..()
///gets a round from the magazine, if keep is TRUE the round will stay in the gun
/obj/item/ammo_box/proc/get_round(keep = FALSE)
- if (!stored_ammo.len)
+ if(!stored_ammo.len)
return null
else
var/b = stored_ammo[stored_ammo.len]
@@ -70,7 +96,7 @@
if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type))
return FALSE
- if (stored_ammo.len < max_ammo)
+ if(stored_ammo.len < max_ammo)
stored_ammo += R
R.forceMove(src)
return TRUE
@@ -93,15 +119,14 @@
/obj/item/ammo_box/attackby(obj/item/attacking_obj, mob/user, params, silent = FALSE, replace_spent = FALSE)
var/num_loaded = 0
+
if(!can_load(user))
return
+
if(istype(attacking_obj, /obj/item/ammo_box))
var/obj/item/ammo_box/attacking_box = attacking_obj
for(var/obj/item/ammo_casing/casing_to_insert in attacking_box.stored_ammo)
- // [CELADON-EDIT] - CELADON_QOL
- // if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 1 SECONDS, attacking_box))) // CELADON-EDIT - ORIGINAL
- if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || do_after(user, 0.6 SECONDS, attacking_box)))
- // [/CELADON-EDIT]
+ if(!((instant_load && attacking_box.instant_load) || (stored_ammo.len >= max_ammo) || istype(attacking_obj, /obj/item/ammo_box/magazine/ammo_stack) && do_after(user, 0.5 SECONDS, attacking_box, timed_action_flags = IGNORE_USER_LOC_CHANGE)))
break
var/did_load = give_round(casing_to_insert, replace_spent)
if(!did_load)
@@ -117,15 +142,14 @@
var/obj/item/ammo_casing/casing_to_insert = attacking_obj
if(give_round(casing_to_insert, replace_spent))
user.transferItemToLoc(casing_to_insert, src, TRUE)
- if(!silent)
- playsound(casing_to_insert, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
num_loaded++
+ casing_to_insert.update_appearance()
update_ammo_count()
-
if(num_loaded)
if(!silent)
- to_chat(user, "You load [num_loaded] cartridge\s into \the [src]!")
+ to_chat(user, span_notice("You load [num_loaded] cartridge\s into \the [src]!"))
+ playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
return num_loaded
/obj/item/ammo_box/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
@@ -148,6 +172,7 @@
if(num_loaded)
to_chat(user, "You load [num_loaded] cartridge\s into \the [to_load]!")
return
+
/obj/item/ammo_box/attack_self(mob/user)
var/obj/item/ammo_casing/A = get_round()
if(!A)
@@ -158,7 +183,7 @@
if(!(user.is_holding(src) || H.l_store == src || H.r_store == src) || !user.put_in_hands(A)) //incase they're using TK
A.bounce_away(FALSE, NONE)
playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
- to_chat(user, "You remove a round from [src]!")
+ to_chat(user, span_notice("You remove a round from [src]!"))
update_ammo_count()
/// Updates the materials and appearance of this ammo box
@@ -221,6 +246,7 @@
var/list/L = stored_ammo.Copy()
if(drop_list)
stored_ammo.Cut()
+ update_ammo_count()
return L
///drops the entire contents of the magazine on the floor
@@ -229,6 +255,7 @@
for(var/obj/item/ammo in stored_ammo)
ammo.forceMove(turf_mag)
stored_ammo -= ammo
+ update_ammo_count()
/obj/item/ammo_box/magazine/handle_atom_del(atom/A)
stored_ammo -= A
diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
deleted file mode 100644
index 853fcceca1c6..000000000000
--- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm
+++ /dev/null
@@ -1,573 +0,0 @@
-// .357 Speed Loaders (Syndicate Revolver)
-
-/obj/item/ammo_box/a357
- name = "speed loader (.357)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor."
- icon_state = "speedloader_357-6"
- base_icon_state = "speedloader_357"
- ammo_type = /obj/item/ammo_casing/a357
- caliber = ".357"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- item_flags = NO_MAT_REDEMPTION
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a357/empty
- start_empty = TRUE
-
-/obj/item/ammo_box/a357/match
- name = "speed loader (.357 match)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- ammo_type = /obj/item/ammo_casing/a357/match
-
-/obj/item/ammo_box/a357/hp
- name = "speed loader (.357 hollow point)"
- desc = "A 6-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones."
- ammo_type = /obj/item/ammo_casing/a357/hp
-
-/obj/item/ammo_box/a357_box
- name = "ammo box (.357)"
- desc = "A box of standard .357 ammo."
- icon_state = "357box"
- ammo_type = /obj/item/ammo_casing/a357
- max_ammo = 50
-
-/obj/item/ammo_box/a357_box/match
- name = "ammo box (.357)"
- desc = "A box of match .357 ammo."
- icon_state = "357box-match"
- ammo_type = /obj/item/ammo_casing/a357/match
- max_ammo = 50
-
-/obj/item/ammo_box/a357_box/hp
- name = "ammo box (.357)"
- desc = "A box of hollow point .357 ammo."
- icon_state = "357box-hp"
- ammo_type = /obj/item/ammo_casing/a357/hp
- max_ammo = 50
-
-
-// .45-70 Ammo Holders (Hunting Revolver)
-
-/obj/item/ammo_box/a4570
- name = "ammo box (.45-70)"
- desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor."
- icon_state = "4570"
- ammo_type = /obj/item/ammo_casing/a4570
- max_ammo = 18
-
-/obj/item/ammo_box/a4570/match
- name = "ammo box (.45-70 match)"
- desc = "A 18-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- icon_state = "4570-match"
- ammo_type = /obj/item/ammo_casing/a4570/match
-
-
-/obj/item/ammo_box/a4570/hp
- name = "ammo box (.45-70 hollow point)"
- desc = "A 18-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones."
- icon_state = "4570-hp"
- ammo_type = /obj/item/ammo_casing/a4570/hp
-
-/obj/item/ammo_box/a4570/explosive
- name = "ammo box (.45-70 explosive)"
- desc = "A 18-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs."
- icon_state = "4570-explosive"
- ammo_type = /obj/item/ammo_casing/a4570/explosive
-
-
-// .38 special Speed Loaders (Colt Detective Special)
-
-/obj/item/ammo_box/c38
- name = "speed loader (.38 special)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds do okay damage, but struggle against armor."
- icon_state = "speedloader_38-6"
- base_icon_state = "speedloader_38"
- ammo_type = /obj/item/ammo_casing/c38
- caliber = ".38"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- custom_materials = list(/datum/material/iron = 15000)
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/c38/trac
- name = "speed loader (.38 TRAC)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These TRAC rounds do pitiful damage, but embed a tracking device in targets hit."
- ammo_type = /obj/item/ammo_casing/c38/trac
-
-/obj/item/ammo_box/c38/match
- name = "speed loader (.38 match)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
- ammo_type = /obj/item/ammo_casing/c38/match
-
-/obj/item/ammo_box/c38/match/bouncy
- name = "speed loader (.38 rubber)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with."
- ammo_type = /obj/item/ammo_casing/c38/match/bouncy
-
-/obj/item/ammo_box/c38/dumdum
- name = "speed loader (.38 dum-dum)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These dum-dum bullets shatter on impact and embed in the target's innards. However, they're nearly ineffective against armor and do okay damage."
- ammo_type = /obj/item/ammo_casing/c38/dumdum
-
-/obj/item/ammo_box/c38/hotshot
- name = "speed loader (.38 hearth)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hearthwine bullets contain an incendiary payload that set targets alight."
- ammo_type = /obj/item/ammo_casing/c38/hotshot
-
-/obj/item/ammo_box/c38/iceblox
- name = "speed loader (.38 chilled)"
- desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These icewine bullets contain a cryogenic payload that chills targets."
- ammo_type = /obj/item/ammo_casing/c38/iceblox
-
-/obj/item/ammo_box/c38/empty
- start_empty = TRUE
-
-// 8x58mm Stripper Clip (SSG-669C)
-
-/obj/item/ammo_box/a858
- name = "stripper clip (8x58mm)"
- desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration."
- icon_state = "enbloc_858"
- ammo_type = /obj/item/ammo_casing/caseless/a858
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- instant_load = TRUE
-
-/obj/item/ammo_box/a858/empty
- start_empty = TRUE
-
-// .308 Stripper Clip (Vickland)
-
-/obj/item/ammo_box/vickland_a308
- name = "stripper clip (.308)"
- desc = "A 5-round stripper clip for the Vickland Battle Rifle. The Vickland itself has a 10 round capacity, so keep in mind two of these are needed to fully reload it. These rounds do good damage with significant armor penetration."
- icon_state = "stripper_308-5"
- base_icon_state = "stripper_308"
- ammo_type = /obj/item/ammo_casing/a308
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/vickland_a308/empty
- start_empty = TRUE
-
-// .300 Magnum Stripper Clip (Scout)
-
-/obj/item/ammo_box/a300
- name = "stripper clip (.300 Magnum)"
- desc = "A 5-round stripper clip for the Scout Rifle. These rounds do great damage with significant armor penetration."
- icon_state = "300m"
- ammo_type = /obj/item/ammo_casing/a300
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a300/empty
- start_empty = TRUE
-// 7.62 Stripper Clip (Polymer Survivor Rifle)
-
-/obj/item/ammo_box/a762_stripper
- name = "stripper clip (7.62)"
- desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration."
- icon_state = "stripper_308-5"
- base_icon_state = "stripper_308"
- ammo_type = /obj/item/ammo_casing/a762_40
- caliber = "7.62x40mm"
- max_ammo = 5
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a762_stripper/empty
- start_empty = TRUE
-// Ferromagnetic Pellet Speed Loader (Claris)
-
-/obj/item/ammo_box/amagpellet_claris
- name = "\improper Claris speed loader (ferromagnetic pellet)"
- desc = "A 22-round speed loader for quickly reloading the Claris rifle. Ferromagnetic pellets do okay damage with significant armor penetration."
- icon_state = "claris-sl-1"
- base_icon_state = "claris-sl"
- ammo_type = /obj/item/ammo_casing/caseless/gauss
- max_ammo = 22
- multiple_sprites = AMMO_BOX_FULL_EMPTY
- item_flags = NO_MAT_REDEMPTION
- instant_load = TRUE
-
-// Ammo Boxes
-
-/obj/item/ammo_box/c38_box
- name = "ammo box (.38)"
- desc = "A box of standard .38 Special ammo."
- icon_state = "38box"
- ammo_type = /obj/item/ammo_casing/c38
- max_ammo = 50
-
-/obj/item/ammo_box/c38_box/surplus
- name = "ammo box (.38 surplus)"
- desc = "A box of low-quality .38 Special ammo."
- icon_state = "38box-surplus"
- ammo_type = /obj/item/ammo_casing/c38/surplus
-
-/obj/item/ammo_box/c38_box/hotshot
- name = "ammo box (.38 hearth)"
- desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire."
- icon_state = "38hotshot"
- ammo_type = /obj/item/ammo_casing/c38/hotshot
-
-/obj/item/ammo_box/c38_box/iceblox
- name = "ammo box (.38 chilled)"
- desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down."
- icon_state = "38iceblox"
- ammo_type = /obj/item/ammo_casing/c38/iceblox
-
-/obj/item/ammo_box/a12g
- name = "ammo box (12g buckshot)"
- desc = "A box of 12-gauge buckshot shells, devastating at close range."
- icon_state = "12gbox-buckshot"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 25
-
-/obj/item/ammo_box/a12g/slug
- name = "ammo box (12g slug)"
- desc = "A box of 12-gauge slugs, for improved accuracy and penetration."
- icon_state = "12gbox-slug"
- ammo_type = /obj/item/ammo_casing/shotgun
-
-/obj/item/ammo_box/a12g/beanbag
- name = "ammo box (12g beanbag)"
- desc = "A box of 12-gauge beanbag shells, for incapacitating targets."
- icon_state = "12gbox-beanbag"
- ammo_type = /obj/item/ammo_casing/shotgun/beanbag
-
-/obj/item/ammo_box/a12g/rubbershot
- name = "ammo box (12g rubbershot)"
- desc = "A box of 12-gauge rubbershot shells, designed for riot control."
- icon_state = "12gbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
-
-/obj/item/ammo_box/a12g/blanks
- name = "ammo box (12g blanks)"
- desc = "A box of 12-gauge blank shells, designed for training."
- icon_state ="12gbox-slug"
- ammo_type = /obj/item/ammo_casing/shotgun/blank
-
-/obj/item/ammo_box/c9mm
- name = "ammo box (9mm)"
- desc = "A box of standard 9mm ammo."
- icon_state = "9mmbox"
- ammo_type = /obj/item/ammo_casing/c9mm
- max_ammo = 50
-
-/obj/item/ammo_box/c9mm/surplus
- name = "ammo box (9mm surplus)"
- desc = "A box of low-quality 9mm ammo."
- icon_state = "9mmbox-surplus"
- ammo_type = /obj/item/ammo_casing/c9mm/surplus
-
-/obj/item/ammo_box/c9mm/rubbershot
- name = "ammo box (9mm rubbershot)"
- desc = "A box of 9mm rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "9mmbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/c9mm/rubber
-
-/obj/item/ammo_box/c9mm/ap
- name = "ammo box (9mm armor-piercing)"
- desc = "A box of 9mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "9mmbox-ap"
- ammo_type = /obj/item/ammo_casing/c9mm/ap
-
-/obj/item/ammo_box/c9mm/hp
- name = "ammo box (9mm hollow point)"
- desc = "A box of 9mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "9mmbox-hp"
- ammo_type = /obj/item/ammo_casing/c9mm/hp
-
-/obj/item/ammo_box/c9mm/fire
- name = "ammo box (9mm incendiary)"
- desc = "A box of 9mm incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "9mmbox-incendiary"
- ammo_type = /obj/item/ammo_casing/c9mm/inc
-
-/obj/item/ammo_box/c10mm
- name = "ammo box (10mm)"
- desc = "A box of standard 10mm ammo."
- icon_state = "10mmbox"
- ammo_type = /obj/item/ammo_casing/c10mm
- max_ammo = 50
-
-/obj/item/ammo_box/c10mm/surplus
- name = "ammo box (10mm surplus)"
- desc = "A box of low-quality 10mm ammo."
- icon_state = "10mmbox-surplus"
- ammo_type = /obj/item/ammo_casing/c10mm/surplus
-
-/obj/item/ammo_box/c10mm/rubbershot
- name = "ammo box (10mm rubbershot)"
- desc = "A box of 10mm rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "10mmbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/c10mm/rubber
-
-/obj/item/ammo_box/c10mm/ap
- name = "ammo box (10mm armor-piercing)"
- desc = "A box of 10mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "10mmbox-ap"
- ammo_type = /obj/item/ammo_casing/c10mm/ap
-
-/obj/item/ammo_box/c10mm/hp
- name = "ammo box (10mm hollow point)"
- desc = "A box of 10mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "10mmbox-hp"
- ammo_type = /obj/item/ammo_casing/c10mm/hp
-
-/obj/item/ammo_box/c10mm/fire
- name = "ammo box (10mm incendiary)"
- desc = "A box of 10mm incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "10mmbox-incendiary"
- ammo_type = /obj/item/ammo_casing/c10mm/inc
-
-/obj/item/ammo_box/c45
- name = "ammo box (.45)"
- desc = "A box of standard .45 ammo."
- icon_state = "45box"
- ammo_type = /obj/item/ammo_casing/c45
- max_ammo = 50
-
-/obj/item/ammo_box/c45/surplus
- name = "ammo box (.45 surplus)"
- desc = "A box of low-quality .45 ammo."
- icon_state = "45box-surplus"
- ammo_type = /obj/item/ammo_casing/c45/surplus
-
-/obj/item/ammo_box/c45/rubbershot
- name = "ammo box (.45 rubbershot)"
- desc = "A box of .45 rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "45box-rubbershot"
- ammo_type = /obj/item/ammo_casing/c45/rubber
-
-/obj/item/ammo_box/c45/ap
- name = "ammo box (.45 armor-piercing)"
- desc = "A box of .45 armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "45box-ap"
- ammo_type = /obj/item/ammo_casing/c45/ap
-
-/obj/item/ammo_box/c45/hp
- name = "ammo box (.45 hollow point)"
- desc = "A box of .45 hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "45box-hp"
- ammo_type = /obj/item/ammo_casing/c45/hp
-
-/obj/item/ammo_box/c45/fire
- name = "ammo box (.45 incendiary)"
- desc = "A box of .45 incendiary ammo, designed to ignite targets at the cost of initial damage."
- icon_state = "45box-incendiary"
- ammo_type = /obj/item/ammo_casing/c45/inc
-
-/obj/item/ammo_box/c556mmHITP
- name = "ammo box (5.56mm HITP caseless)"
- desc = "A box of 5.56mm HITP caseless ammo, a SolGov standard."
- icon_state = "556mmHITPbox"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm
- max_ammo = 50
-
-/obj/item/ammo_box/c556mmHITP/surplus
- name = "ammo box (5.56mm HITP caseless surplus)"
- desc = "A box of low-quality 5.56mm HITP caseless ammo."
- icon_state = "556mmHITPbox-surplus"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/surplus
-
-/obj/item/ammo_box/c556mmHITP/rubbershot
- name = "ammo box (5.56mm HITP caseless rubbershot)"
- desc = "A box of 5.56mm HITP caseless rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "556mmHITPbox-rubbershot"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/rubbershot
-
-/obj/item/ammo_box/c556mmHITP/ap
- name = "ammo box (5.56mm HITP caseless armor-piercing)"
- desc = "A box of 5.56mm HITP caseless armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
- icon_state = "556mmHITPbox-ap"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/ap
-
-/obj/item/ammo_box/c556mmHITP/hp
- name = "ammo box (5.56mm HITP caseless hollow point)"
- desc = "A box of 5.56mm HITP caseless hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
- icon_state = "556mmHITPbox-hp"
- ammo_type = /obj/item/ammo_casing/caseless/c556mm/hp
-
-/obj/item/ammo_box/a40mm
- name = "ammo box (40mm grenades)"
- icon_state = "40mm"
- ammo_type = /obj/item/ammo_casing/a40mm
- max_ammo = 4
- multiple_sprites = AMMO_BOX_PER_BULLET
- w_class = WEIGHT_CLASS_NORMAL
-
-/obj/item/ammo_box/a762_40
- name = "ammo box (7.62x40mm CLIP)"
- icon_state = "a762_40box_big"
- ammo_type = /obj/item/ammo_casing/a762_40
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL
-
-/obj/item/ammo_box/a762_40/inteq
- icon_state = "a762_40box_big_inteq"
-
-/obj/item/ammo_box/a556_42
- name = "ammo box (5.56x42mm CLIP)"
- icon_state = "a556_42box_big"
- ammo_type = /obj/item/ammo_casing/a556_42
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL
-
-//[СELADON-REMOVE] - CELADON_WEAPONS - хватит это терпеть! Теперь эти патроны только в модпаке - mod_celadon\weapons\code\modules\projectiles\boxes_magazines\ammo_boxes.dm
-/*
-/obj/item/ammo_box/a308
- name = "ammo box (.308)"
- icon_state = "a308box"
- ammo_type = /obj/item/ammo_casing/a308
- max_ammo = 30
-*/
-//[/СELADON-REMOVE]
-
-//[СELADON-REMOVE] - CELADON_WEAPONS - хватит это терпеть! Теперь эти патроны только в модпаке - полностью удален из билда
-/*
-/obj/item/ammo_box/a308/hunterspride //just an alternative graphic for srm ships - зачем отдельные , у них что патроны из дерева или что ?
- icon_state = "a308box-HP"
-*/
-//[/СELADON-REMOVE]
-
-/obj/item/ammo_box/foambox
- name = "ammo box (Foam Darts)"
- icon = 'icons/obj/guns/toy.dmi'
- icon_state = "foambox"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart
- max_ammo = 40
- custom_materials = list(/datum/material/iron = 500)
-
-/obj/item/ammo_box/foambox/riot
- icon_state = "foambox_riot"
- ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
- custom_materials = list(/datum/material/iron = 50000)
-
-/obj/item/ammo_box/c22lr_box
- name = "ammo box (.22 LR)"
- desc = "A box of standard .22 LR ammo."
- icon_state = "22lrbox"
- ammo_type = /obj/item/ammo_casing/c22lr
- max_ammo = 75
-
-/obj/item/ammo_box/a44roum_speedloader
- name = "speed loader (.44)"
- desc = "Designed to quickly reload revolvers."
- icon_state = "speedloader_38-6"
- base_icon_state = "speedloader_38"
- ammo_type = /obj/item/ammo_casing/a44roum
- caliber = ".44 Roumain"
- max_ammo = 6
- multiple_sprites = AMMO_BOX_PER_BULLET
- custom_materials = list(/datum/material/iron = 15000)
- w_class = WEIGHT_CLASS_TINY
- instant_load = TRUE
-
-/obj/item/ammo_box/a44roum_speedloader/empty
- start_empty = TRUE
-
-/obj/item/ammo_box/c57x39mm_box
- name = "ammo box (5.7x39mm)"
- desc = "A box of standard 5.7x39mm ammo."
- icon_state = "57x39mmbox"
- ammo_type = /obj/item/ammo_casing/c57x39mm
- max_ammo = 50
-
-
-/obj/item/ammo_box/c46x30mm_box
- name = "ammo box (4.6x30mm)"
- desc = "A box of standard 4.6x30mm ammo."
- icon_state = "46x30mmbox"
- ammo_type = /obj/item/ammo_casing/c46x30mm
- max_ammo = 50
-
-/obj/item/ammo_box/c8x50mm_box
- name = "ammo box (8x50mm)"
- desc = "A box of standard 8x50mm ammo."
- icon_state = "8x50mmbox"
- ammo_type = /obj/item/ammo_casing/a8_50r
- max_ammo = 25
-
-/obj/item/ammo_box/ferropelletbox
- name = "ammo box (ferromagnetic pellets)"
- desc = "A box of ferromagnetic pellets."
- icon_state = "ferropelletsbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss
- max_ammo = 50
-
-/obj/item/ammo_box/ferroslugbox
- name = "ammo box (ferromagnetic slugs)"
- desc = "A box of standard ferromagnetic slugs."
- icon_state = "ferroslugsbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss/slug
- max_ammo = 20
-
-/obj/item/ammo_box/ferrolancebox
- name = "ammo box (ferromagnetic lances)"
- desc = "A box of standard ferromagnetic lances."
- icon_state = "ferrolancesbox"
- ammo_type = /obj/item/ammo_casing/caseless/gauss/lance
- max_ammo = 50
-
-/obj/item/ammo_box/c8x50mmhp_box
- name = "ammo box (8x50mm)"
- desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration."
- icon_state = "8x50mmbox-hp"
- ammo_type = /obj/item/ammo_casing/a8_50rhp
- max_ammo = 20
-
-/obj/item/ammo_box/a300_box
- name = "ammo box (.300 Magnum)"
- desc = "A box of standard .300 Magnum ammo."
- icon_state = "300box"
- ammo_type = /obj/item/ammo_casing/a300
- max_ammo = 20
-
-/obj/item/ammo_box/a65clip_box
- name = "ammo box (6.5x57mm CLIP)"
- desc = "A box of standard 6.5x57mm CLIP ammo."
- icon_state = "65box"
- ammo_type = /obj/item/ammo_casing/a65clip
- max_ammo = 20
-
-/obj/item/ammo_box/a65clip_box/syndicate
- icon_state = "65box_sa"
-
-/obj/item/ammo_box/a44roum
- name = "ammo box (.44 roumain)"
- desc = "A box of standard .44 roumain ammo."
- icon_state = "a44roum"
- ammo_type = /obj/item/ammo_casing/a44roum
- max_ammo = 50
-
-/obj/item/ammo_box/a44roum/rubber
- name = "ammo box (.44 roumain rubber)"
- desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage."
- icon_state = "a44roum-rubber"
- ammo_type = /obj/item/ammo_casing/a44roum/rubber
- max_ammo = 50
-
-/obj/item/ammo_box/a44roum/hp
- name = "ammo box (.44 roumain hollow point)"
- desc = "A box of .44 roumain hollow point ammo, designed to cause massive damage at the cost of armor penetration."
- icon_state = "a44roum-hp"
- ammo_type = /obj/item/ammo_casing/a44roum/hp
- max_ammo = 50
-
-/obj/item/ammo_box/c299
- name = "ammo box (.299 Eoehoma caseless)"
- desc = "A box of .299 Eoehoma caseless, for use with the E-40 hybrid assault rifle."
- icon_state = "299box"
- ammo_type = /obj/item/ammo_casing/caseless/c299
- max_ammo = 120
- w_class = WEIGHT_CLASS_NORMAL // This is a lot of ammo
diff --git a/code/modules/projectiles/boxes_magazines/ammo_loaders.dm b/code/modules/projectiles/boxes_magazines/ammo_loaders.dm
new file mode 100644
index 000000000000..70d9480493c6
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_loaders.dm
@@ -0,0 +1,176 @@
+// .357 Speed Loaders
+
+/obj/item/ammo_box/a357
+ name = "speed loader (.357)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These rounds do good damage with average performance against armor."
+ icon_state = "speedloader_357-6"
+ base_icon_state = "speedloader_357"
+ ammo_type = /obj/item/ammo_casing/a357
+ caliber = ".357"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ item_flags = NO_MAT_REDEMPTION
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a357/empty
+ start_empty = TRUE
+
+/obj/item/ammo_box/a357/match
+ name = "speed loader (.357 match)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ ammo_type = /obj/item/ammo_casing/a357/match
+
+/obj/item/ammo_box/a357/hp
+ name = "speed loader (.357 hollow point)"
+ desc = "A 6-round speed loader for quickly reloading .357 revolvers. These hollow point rounds do incredible damage against soft targets, but are nearly ineffective against armored ones."
+ ammo_type = /obj/item/ammo_casing/a357/hp
+
+// .38 special Speed Loaders
+
+/obj/item/ammo_box/c38
+ name = "speed loader (.38 special)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds do okay damage, but struggle against armor."
+ icon_state = "speedloader_38-6"
+ base_icon_state = "speedloader_38"
+ ammo_type = /obj/item/ammo_casing/c38
+ caliber = ".38"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ custom_materials = list(/datum/material/iron = 15000)
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/c38/trac
+ name = "speed loader (.38 TRAC)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These TRAC rounds do pitiful damage, but embed a tracking device in targets hit."
+ ammo_type = /obj/item/ammo_casing/c38/trac
+
+/obj/item/ammo_box/c38/match
+ name = "speed loader (.38 match)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ ammo_type = /obj/item/ammo_casing/c38/match
+
+/obj/item/ammo_box/c38/match/bouncy
+ name = "speed loader (.38 rubber)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with."
+ ammo_type = /obj/item/ammo_casing/c38/match/bouncy
+
+/obj/item/ammo_box/c38/dumdum
+ name = "speed loader (.38 dum-dum)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These dum-dum bullets shatter on impact and embed in the target's innards. However, they're nearly ineffective against armor and do okay damage."
+ ammo_type = /obj/item/ammo_casing/c38/dumdum
+
+/obj/item/ammo_box/c38/hotshot
+ name = "speed loader (.38 hot shot)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hot shot bullets contain an incendiary payload that set targets alight."
+ ammo_type = /obj/item/ammo_casing/c38/hotshot
+
+/obj/item/ammo_box/c38/iceblox
+ name = "speed loader (.38 iceblox)"
+ desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets."
+ ammo_type = /obj/item/ammo_casing/c38/iceblox
+
+/obj/item/ammo_box/c38/empty
+ start_empty = TRUE
+
+// 8x58mm Stripper Clip
+
+/obj/item/ammo_box/a858
+ name = "stripper clip (8x58mm)"
+ desc = "A 5-round stripper clip for the SSG-669C rifle. These rounds do good damage with significant armor penetration."
+ icon_state = "enbloc_858"
+ ammo_type = /obj/item/ammo_casing/caseless/a858
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ instant_load = TRUE
+
+/obj/item/ammo_box/a858/empty
+ start_empty = TRUE
+
+// .308 Stripper Clip
+
+/obj/item/ammo_box/vickland_a308
+ name = "stripper clip (.308)"
+ desc = "A 5-round stripper clip for the Vickland Battle Rifle. The Vickland itself has a 10 round capacity, so keep in mind two of these are needed to fully reload it. These rounds do good damage with significant armor penetration."
+ icon_state = "stripper_308-5"
+ base_icon_state = "stripper_308"
+ ammo_type = /obj/item/ammo_casing/a308
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/vickland_a308/empty
+ start_empty = TRUE
+
+// .300 Magnum Stripper Clip
+
+/obj/item/ammo_box/a300
+ name = "stripper clip (.300 Magnum)"
+ desc = "A 5-round stripper clip for the Scout Rifle. These rounds do great damage with significant armor penetration."
+ icon_state = "300m"
+ ammo_type = /obj/item/ammo_casing/a300
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a300/empty
+ start_empty = TRUE
+
+// .300 Blackout Stripper Clip
+
+/obj/item/ammo_box/a762_stripper
+ name = "stripper clip (7.62)"
+ desc = "A 5-round stripper clip for makeshift bolt-action rifles. These rounds do good damage with good armor penetration."
+ icon_state = "stripper_308-5"
+ base_icon_state = "stripper_308"
+ ammo_type = /obj/item/ammo_casing/a762_40
+ caliber = "7.62x40mm"
+ max_ammo = 5
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a762_stripper/empty
+ start_empty = TRUE
+
+// Ferromagnetic Pellet Speed Loader
+
+/obj/item/ammo_box/amagpellet_claris
+ name = "\improper Claris speed loader (ferromagnetic pellet)"
+ desc = "A 22-round speed loader for quickly reloading the Claris rifle. Ferromagnetic pellets do okay damage with significant armor penetration."
+ icon_state = "claris-sl-1"
+ base_icon_state = "claris-sl"
+ ammo_type = /obj/item/ammo_casing/caseless/gauss
+ max_ammo = 22
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+ item_flags = NO_MAT_REDEMPTION
+ instant_load = TRUE
+
+/obj/item/ammo_box/a40mm
+ name = "ammo box (40mm grenades)"
+ icon_state = "40mm"
+ ammo_type = /obj/item/ammo_casing/a40mm
+ max_ammo = 4
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ w_class = WEIGHT_CLASS_NORMAL
+
+// .44 Roumain speedloader
+
+/obj/item/ammo_box/a44roum_speedloader
+ name = "speed loader (.44)"
+ desc = "Designed to quickly reload revolvers."
+ icon_state = "speedloader_38-6"
+ base_icon_state = "speedloader_38"
+ ammo_type = /obj/item/ammo_casing/a44roum
+ caliber = ".44 Roumain"
+ max_ammo = 6
+ multiple_sprites = AMMO_BOX_PER_BULLET
+ custom_materials = list(/datum/material/iron = 15000)
+ w_class = WEIGHT_CLASS_TINY
+ instant_load = TRUE
+
+/obj/item/ammo_box/a44roum_speedloader/empty
+ start_empty = TRUE
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm
new file mode 100644
index 000000000000..f1e84780cb1e
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/_ammo_stack.dm
@@ -0,0 +1,82 @@
+/**
+ * The ammo stack object itself, making this a magazine was the easiest way to handle it
+ * Practically every casing type needs an associated ammo stack type, because that was the easiest
+ * way for me to handle it.
+ */
+/obj/item/ammo_box/magazine/ammo_stack
+ name = "ammo stack"
+ desc = "A pile of live rounds."
+ icon = 'icons/obj/ammunition/ammo_bullets.dmi'
+ icon_state = "pistol-brass"
+ base_icon_state = "pistol-brass"
+ item_flags = NO_PIXEL_RANDOM_DROP
+ multiple_sprites = AMMO_BOX_ONE_SPRITE
+ multiload = FALSE
+ start_empty = TRUE
+ max_ammo = 12
+
+/obj/item/ammo_box/magazine/ammo_stack/update_icon(updates)
+ icon = initial(icon)
+ cut_overlays()
+ return ..()
+
+/obj/item/ammo_box/magazine/ammo_stack/update_icon_state()
+ . = ..()
+ cut_overlays()
+ icon_state = ""
+ for(var/casing in stored_ammo)
+ var/image/bullet = image(initial(icon), src, "[base_icon_state]")
+ bullet.pixel_x = rand(-8, 8)
+ bullet.pixel_y = rand(-8, 8)
+ bullet.transform = bullet.transform.Turn(round(45 * rand(0, 32) / 2)) //this is the equation Eris uses on their bullet stacks
+ add_overlay(bullet)
+ return UPDATE_ICON_STATE | UPDATE_OVERLAYS
+
+/obj/item/ammo_box/magazine/ammo_stack/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
+ . = ..()
+ var/loc_before_del = loc
+ while(LAZYLEN(stored_ammo))
+ var/obj/item/ammo = get_round(FALSE)
+ ammo.forceMove(loc_before_del)
+ ammo.throw_at(loc_before_del)
+ update_ammo_count()
+
+/obj/item/ammo_box/magazine/ammo_stack/update_ammo_count()
+ . = ..()
+ check_for_del()
+
+/obj/item/ammo_box/magazine/ammo_stack/proc/check_for_del()
+ . = FALSE
+ if((ammo_count() <= 0) && !QDELETED(src))
+ qdel(src)
+ return
+
+/obj/item/ammo_box/magazine/ammo_stack/attackby(obj/item/handful, mob/user, params, silent = FALSE, replace_spent = 0)
+ var/num_loaded = 0
+ if(!can_load(user))
+ return
+
+ if(istype(handful, /obj/item/ammo_box))
+ var/obj/item/ammo_box/ammo_box = handful
+ for(var/obj/item/ammo_casing/casing in ammo_box.stored_ammo)
+ var/did_load = give_round(casing, replace_spent)
+ if(did_load)
+ ammo_box.stored_ammo -= casing
+ num_loaded++
+ if(!did_load || !multiload)
+ break
+ if(num_loaded)
+ ammo_box.update_ammo_count()
+
+ if(istype(handful, /obj/item/ammo_casing))
+ var/obj/item/ammo_casing/casing = handful
+ if(give_round(casing, replace_spent))
+ user.transferItemToLoc(casing, src, TRUE)
+ num_loaded++
+ casing.update_appearance()
+
+ if(num_loaded)
+ if(!silent)
+ to_chat(user, span_notice("You load [num_loaded] shell\s into \the [src]!"))
+ playsound(src, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE)
+ update_ammo_count()
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm
new file mode 100644
index 000000000000..453a6bacb4d0
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/_premade_stacks.dm
@@ -0,0 +1,22 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/Initialize(mapload)
+ make_stack()
+ update_appearance()
+ . = ..()
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/proc/make_stack()
+ var/obj/item/ammo_casing/to_copy = ammo_type
+ src.top_off()
+ caliber = to_copy.caliber
+ base_icon_state = "[initial(to_copy.icon_state)][to_copy.bullet_skin ? "-[to_copy.bullet_skin]" : ""]"
+ name = "handful of [to_copy.name]s"
+
+/obj/item/storage/box/ammo //base type, don't use this!
+ name = "box of default ammo"
+ desc = "A box of ammunition. Not for consumption."
+ icon = 'icons/obj/ammunition/ammo_boxes.dmi'
+ icon_state = "9mmbox"
+ custom_materials = list(/datum/material/iron = 200)
+ illustration = null
+ foldable = null
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm
new file mode 100644
index 000000000000..a64e075dfa84
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_gauss_stacks.dm
@@ -0,0 +1,38 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferropellet
+ ammo_type = /obj/item/ammo_casing/caseless/gauss
+
+/obj/item/storage/box/ammo/ferropellet
+ name = "box of ferromagnetic pellets"
+ desc = "A box of ferromagnetic pellets for gauss firearms."
+ icon_state = "ferropelletsbox"
+
+/obj/item/storage/box/ammo/ferropellet/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferropellet = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferroslug
+ ammo_type = /obj/item/ammo_casing/caseless/gauss/slug
+
+/obj/item/storage/box/ammo/ferroslug
+ name = "box of ferromagnetic slugs"
+ desc = "A box of standard ferromagnetic slugs for gauss firearms."
+ icon_state = "ferroslugsbox"
+
+/obj/item/storage/box/ammo/ferroslug/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferroslug = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/ferrolance
+ ammo_type = /obj/item/ammo_casing/caseless/gauss/lance
+
+/obj/item/storage/box/ammo/ferrolance
+ name = "box of ferromagnetic lances"
+ desc = "A box of standard ferromagnetic lances for gauss firearms."
+ icon_state = "ferrolancesbox"
+
+/obj/item/storage/box/ammo/ferrolance/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/ferrolance = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm
new file mode 100644
index 000000000000..4b50912e5e11
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_lmg_stacks.dm
@@ -0,0 +1,12 @@
+// 7.12x82mm (L6 SAW)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82
+ ammo_type = /obj/item/ammo_casing/mm712x82
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/ap
+ ammo_type = /obj/item/ammo_casing/mm712x82/ap
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/hp
+ ammo_type = /obj/item/ammo_casing/mm712x82/hp
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/mm712x82/match
+ ammo_type = /obj/item/ammo_casing/mm712x82/match
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm
new file mode 100644
index 000000000000..871c25d84afd
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_misc_stacks.dm
@@ -0,0 +1,24 @@
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart
+
+/obj/item/storage/box/ammo/foam_darts
+ name = "box of foam darts"
+ icon = 'icons/obj/guns/toy.dmi'
+ icon_state = "foambox"
+
+/obj/item/storage/box/ammo/foam_darts/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts/riot
+ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot
+
+/obj/item/storage/box/ammo/foam_darts/riot
+ name = "box of foam darts"
+ icon_state = "foambox_riot"
+
+/obj/item/storage/box/ammo/foam_darts/riot/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/foam_darts/riot = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm
new file mode 100644
index 000000000000..5a783652a7e3
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_pistol_stacks.dm
@@ -0,0 +1,483 @@
+// 10mm (Stechkin)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm
+ ammo_type = /obj/item/ammo_casing/c10mm
+
+/obj/item/storage/box/ammo/c10mm
+ name = "box of 10mm ammo"
+ desc = "A box of standard 10mm ammo."
+ icon_state = "10mmbox"
+
+/obj/item/storage/box/ammo/c10mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/surplus
+ ammo_type = /obj/item/ammo_casing/c10mm/surplus
+
+/obj/item/storage/box/ammo/c10mm_surplus
+ name = "box of surplus 10mm ammo"
+ desc = "A box of low-quality 10mm ammo."
+ icon_state = "10mmbox-surplus"
+
+/obj/item/storage/box/ammo/c10mm_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/ap
+ ammo_type = /obj/item/ammo_casing/c10mm/ap
+
+/obj/item/storage/box/ammo/c10mm_ap
+ name = "box of AP 10mm ammo"
+ desc = "A box of 10mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "10mmbox-ap"
+
+/obj/item/storage/box/ammo/c10mm_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/hp
+ ammo_type = /obj/item/ammo_casing/c10mm/hp
+
+/obj/item/storage/box/ammo/c10mm_hp
+ name = "box of HP 10mm ammo"
+ desc = "A box of 10mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "10mmbox-hp"
+
+/obj/item/storage/box/ammo/c10mm_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/rubber
+ ammo_type = /obj/item/ammo_casing/c10mm/rubber
+
+/obj/item/storage/box/ammo/c10mm_rubber
+ name = "box of rubber 10mm ammo"
+ desc = "A box of 10mm rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "10mmbox-rubbershot"
+
+/obj/item/storage/box/ammo/c10mm_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c10mm/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// 9MM (Commander + SABR)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm
+ ammo_type = /obj/item/ammo_casing/c9mm
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c9mm
+ name = "box of 9mm ammo"
+ desc = "A box of standard 9mm ammo."
+ icon_state = "9mmbox"
+
+/obj/item/storage/box/ammo/c9mm/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/surplus
+ ammo_type = /obj/item/ammo_casing/c9mm/surplus
+
+/obj/item/storage/box/ammo/c9mm_surplus
+ name = "box of surplus 9mm ammo"
+ desc = "A box of low-quality 9mm ammo."
+ icon_state = "9mmbox-surplus"
+
+/obj/item/storage/box/ammo/c9mm_surplus/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/ap
+ ammo_type = /obj/item/ammo_casing/c9mm/ap
+
+/obj/item/storage/box/ammo/c9mm_ap
+ name = "box of AP 9mm ammo"
+ desc = "A box of 9mm armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "9mmbox-ap"
+
+/obj/item/storage/box/ammo/c9mm_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/hp
+ ammo_type = /obj/item/ammo_casing/c9mm/hp
+
+/obj/item/storage/box/ammo/c9mm_hp
+ name = "box of HP 9mm ammo"
+ desc = "A box of 9mm hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "9mmbox-hp"
+
+/obj/item/storage/box/ammo/c9mm_hp/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/rubber
+ ammo_type = /obj/item/ammo_casing/c9mm/rubber
+
+/obj/item/storage/box/ammo/c9mm_rubber
+ name = "box of rubber 9mm ammo"
+ desc = "A box of 9mm rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "9mmbox-rubbershot"
+
+/obj/item/storage/box/ammo/c9mm_rubber/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c9mm/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// .45 (Candor + C20R)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45
+ ammo_type = /obj/item/ammo_casing/c45
+
+/obj/item/storage/box/ammo/c45
+ name = "box of .45 ammo"
+ desc = "A box of standard .45 ammo."
+ icon_state = "45box"
+
+/obj/item/storage/box/ammo/c45/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/surplus
+ ammo_type = /obj/item/ammo_casing/c45/surplus
+
+/obj/item/storage/box/ammo/c45_surplus
+ name = "box of surplus .45 ammo"
+ desc = "A box of low-quality .45 ammo."
+ icon_state = "45box-surplus"
+
+/obj/item/storage/box/ammo/c45_surplus/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/ap
+ ammo_type = /obj/item/ammo_casing/c45/ap
+
+/obj/item/storage/box/ammo/c45_ap
+ name = "box of AP .45 ammo"
+ desc = "A box of .45 armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "45box-ap"
+
+/obj/item/storage/box/ammo/c45_ap/PopulateContents()
+ ..()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/hp
+ ammo_type = /obj/item/ammo_casing/c45/hp
+
+/obj/item/storage/box/ammo/c45_hp
+ name = "box of HP .45 ammo"
+ desc = "A box of .45 hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "45box-hp"
+
+/obj/item/storage/box/ammo/c45_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/rubber
+ ammo_type = /obj/item/ammo_casing/c45/rubber
+
+/obj/item/storage/box/ammo/c45_rubber
+ name = "box of rubbershot .45 ammo"
+ desc = "A box of .45 rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "45box-rubbershot"
+
+/obj/item/storage/box/ammo/c45_rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c45/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// .50 AE (Desert Eagle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a50AE
+ ammo_type = /obj/item/ammo_casing/a50AE
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a50AE/hp
+ ammo_type = /obj/item/ammo_casing/a50AE/hp
+
+// .22 LR (Himehabu, Pounder)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr
+ ammo_type = /obj/item/ammo_casing/c22lr
+ max_ammo = 25
+
+/obj/item/storage/box/ammo/c22lr
+ name = "box of .22 LR ammo"
+ desc = "A box of standard .22 LR ammo."
+ icon_state = "22lrbox"
+
+/obj/item/storage/box/ammo/c22lr/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/ap
+ ammo_type = /obj/item/ammo_casing/c22lr/ap
+ max_ammo = 25
+
+/obj/item/storage/box/ammo/c22lr/ap
+ name = "box of .22 LR AP ammo"
+ desc = "A box of standard .22 LR AP ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "22lrbox"
+
+/obj/item/storage/box/ammo/c22lr/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/hp
+ ammo_type = /obj/item/ammo_casing/c22lr/hp
+ max_ammo = 25
+
+/obj/item/storage/box/ammo/c22lr/hp
+ name = "box of .22 LR HP ammo"
+ desc = "A box of standard .22 LR HP ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "22lrbox"
+
+/obj/item/storage/box/ammo/c22lr/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/rubber
+ ammo_type = /obj/item/ammo_casing/c22lr/rubber
+ max_ammo = 25
+
+/obj/item/storage/box/ammo/c22lr/rubber
+ name = "box of .22 LR rubber ammo"
+ desc = "A box of standard .22 LR rubber ammo."
+ icon_state = "22lrbox"
+
+/obj/item/storage/box/ammo/c22lr/rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c22lr/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+// .357
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357
+ ammo_type = /obj/item/ammo_casing/a357
+
+/obj/item/storage/box/ammo/a357
+ name = "box of .357 ammo"
+ desc = "A box of standard .357 ammo."
+ icon_state = "357box"
+
+/obj/item/storage/box/ammo/a357/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/match
+ ammo_type = /obj/item/ammo_casing/a357/match
+
+/obj/item/storage/box/ammo/a357_match
+ name = "box of match .357 ammo"
+ desc = "A box of match .357 ammo."
+ icon_state = "357box-match"
+
+/obj/item/storage/box/ammo/a357_match/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/match = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/hp
+ ammo_type = /obj/item/ammo_casing/a357/hp
+
+/obj/item/storage/box/ammo/a357_hp
+ name = "box of HP .357 ammo"
+ desc = "A box of hollow point .357 ammo."
+ icon_state = "357box-hp"
+
+/obj/item/storage/box/ammo/a357_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a357/hp = 4)
+ generate_items_inside(items_inside,src)
+
+// .45-70 (Hunting Revolver, Beacon)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570
+ ammo_type = /obj/item/ammo_casing/a4570
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a4570
+ name = "box of .45-70 ammo"
+ desc = "A box of top grade .45-70 ammo. These rounds do significant damage with average performance against armor."
+ icon_state = "4570"
+
+/obj/item/storage/box/ammo/a4570/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/match
+ ammo_type = /obj/item/ammo_casing/a4570/match
+
+/obj/item/storage/box/ammo/a4570_match
+ name = "box of HP match .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These match rounds travel faster, perform better against armor, and can ricochet off targets."
+ icon_state = "4570-match"
+
+/obj/item/storage/box/ammo/a4570_match/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/match = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/hp
+ ammo_type = /obj/item/ammo_casing/a4570/hp
+
+/obj/item/storage/box/ammo/a4570_hp
+ name = "box of HP .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These hollow point rounds do legendary damage against soft targets, but are nearly ineffective against armored ones."
+ icon_state = "4570-hp"
+
+/obj/item/storage/box/ammo/a4570_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/explosive
+ ammo_type = /obj/item/ammo_casing/a4570/explosive
+
+/obj/item/storage/box/ammo/a4570_explosive
+ name = "box of explosive .45-70 ammo"
+ desc = "A 12-round ammo box for .45-70 revolvers. These explosive rounds contain a small explosive charge that detonates on impact, creating large wounds and potentially removing limbs."
+ icon_state = "4570-explosive"
+
+/obj/item/storage/box/ammo/a4570_explosive/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a4570/explosive = 4)
+ generate_items_inside(items_inside,src)
+
+// .38 Special
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38
+ ammo_type = /obj/item/ammo_casing/c38
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c38
+ name = "box of .38 ammo"
+ desc = "A box of standard .38 Special ammo."
+ icon_state = "38box"
+
+/obj/item/storage/box/ammo/c38/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/surplus
+ ammo_type = /obj/item/ammo_casing/c38/surplus
+
+/obj/item/storage/box/ammo/c38_surplus
+ name = "box of surplus .38 ammo"
+ desc = "A box of low-quality .38 Special ammo."
+ icon_state = "38box-surplus"
+
+/obj/item/storage/box/ammo/c38_surplus/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/trac
+ ammo_type = /obj/item/ammo_casing/c38/trac
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/match
+ ammo_type = /obj/item/ammo_casing/c38/match
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/bouncy
+ ammo_type = /obj/item/ammo_casing/c38/match/bouncy
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/dumdum
+ ammo_type = /obj/item/ammo_casing/c38/dumdum
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/hotshot
+ ammo_type = /obj/item/ammo_casing/c38/hotshot
+
+/obj/item/storage/box/ammo/c38_hotshot
+ name = "box of .38 hearth ammo"
+ desc = "An unorthodox .38 Special cartridge infused with hearthflame. Catches the target on fire."
+ icon_state = "38hotshot"
+
+/obj/item/storage/box/ammo/c38_hotshot/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/hotshot = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/iceblox
+ ammo_type = /obj/item/ammo_casing/c38/iceblox
+
+/obj/item/storage/box/ammo/c38_iceblox
+ name = "box of .38 chilled ammo"
+ desc = "An unorthodox .38 Special cartridge infused with wine of ice. Chills the target, slowing them down."
+ icon_state = "38iceblox"
+
+/obj/item/storage/box/ammo/c38_iceblox/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c38/iceblox = 4)
+ generate_items_inside(items_inside,src)
+
+// 44 Roumain
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum
+ ammo_type = /obj/item/ammo_casing/a44roum
+
+/obj/item/storage/box/ammo/a44roum
+ name = "box of .44 roumain ammo"
+ desc = "A box of standard .44 roumain ammo."
+ icon_state = "a44roum"
+
+/obj/item/storage/box/ammo/a44roum/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/rubber
+ ammo_type = /obj/item/ammo_casing/a44roum/rubber
+
+/obj/item/storage/box/ammo/a44roum_rubber
+ name = "box of rubber .44 roumain ammo"
+ desc = "A box of .44 roumain rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "a44roum-rubber"
+
+/obj/item/storage/box/ammo/a44roum_rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/hp
+ ammo_type = /obj/item/ammo_casing/a44roum/hp
+
+/obj/item/storage/box/ammo/a44roum_hp
+ name = "box of HP .44 roumain ammo"
+ desc = "A box of .44 roumain hollowpoint ammo, designed to disable targets without causing serious damage."
+ icon_state = "a44roum-hp"
+
+/obj/item/storage/box/ammo/a44roum_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a44roum/hp = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm
new file mode 100644
index 000000000000..921bbd5c06a1
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_rifle_stacks.dm
@@ -0,0 +1,224 @@
+// 8x50mmR (Illestren Hunting Rifle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r
+ ammo_type = /obj/item/ammo_casing/a8_50r
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a8_50r
+ name = "box of 8x50mm ammo"
+ desc = "A box of standard 8x50mm ammo."
+ icon_state = "8x50mmbox"
+
+/obj/item/storage/box/ammo/a8_50r/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/hp
+ ammo_type = /obj/item/ammo_casing/a8_50r/hp
+
+/obj/item/storage/box/ammo/a8_50r/hp
+ name = "box of HP 8x50mm ammo"
+ desc = "A box of hollow point 8x50mm ammo, designed to cause massive damage at the cost of armor penetration."
+ icon_state = "8x50mmbox-hp"
+
+/obj/item/storage/box/ammo/a8_50r_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/match
+ ammo_type = /obj/item/ammo_casing/a8_50r/match
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a8_50r/match
+ name = "box of 8x50mm match ammo"
+ desc = "A box of standard 8x50mm ammo."
+ icon_state = "8x50mmbox"
+
+/obj/item/storage/box/ammo/a8_50r/match/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/match = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/trac
+ ammo_type = /obj/item/ammo_casing/a8_50r/trac
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a8_50r/trac
+ name = "box of 8x50mm trac ammo"
+ desc = "A box of 8x50mm trackers."
+ icon_state = "8x50mmbox"
+
+/obj/item/storage/box/ammo/a8_50r/trac/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a8_50r/trac = 3)
+ generate_items_inside(items_inside,src)
+
+// 5.56x42mm CLIP (CM82, Hydra variants)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42
+ ammo_type = /obj/item/ammo_casing/a556_42
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a556_42
+ name = "box of 5.56x42mm CLIP ammo"
+ desc = "A box of standard 5.56x42mm CLIP ammo."
+ icon_state = "a556_42box_big"
+
+/obj/item/storage/box/ammo/a556_42/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42/hp
+ ammo_type = /obj/item/ammo_casing/a556_42/hp
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a556_42/hp
+ name = "box of 5.56x42mm CLIP HP ammo"
+ desc = "A box of standard 5.56x42mm CLIP HP ammo."
+ icon_state = "a556_42box_big"
+
+/obj/item/storage/box/ammo/a556_42/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42/ap
+ ammo_type = /obj/item/ammo_casing/a556_42/ap
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a556_42/ap
+ name = "box of 5.56x42mm CLIP AP ammo"
+ desc = "A box of standard 5.56x42mm CLIP AP ammo."
+ icon_state = "a556_42box_big"
+
+/obj/item/storage/box/ammo/a556_42/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a556_42/ap = 4)
+ generate_items_inside(items_inside,src)
+
+// 7.62x40mm CLIP (SKM Rifles)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40
+ ammo_type = /obj/item/ammo_casing/a762_40
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a762_40
+ name = "box of 7.62x40mm CLIP ammo"
+ desc = "A box of standard 7.62x40mm CLIP ammo."
+ icon_state = "a762_40box_big"
+
+/obj/item/storage/box/ammo/a762_40/inteq
+ icon_state = "a762_40box_big_inteq"
+
+/obj/item/storage/box/ammo/a762_40/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/hp
+ ammo_type = /obj/item/ammo_casing/a762_40/hp
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a762_40/hp
+ name = "box of 7.62x40mm CLIP Hollow Point ammo"
+ desc = "A box of standard 7.62x40mm CLIP Hollow Point ammo."
+ icon_state = "a762_40box_big"
+
+/obj/item/storage/box/ammo/a762_40/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/ap
+ ammo_type = /obj/item/ammo_casing/a762_40/ap
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a762_40/ap
+ name = "box of 7.62x40mm CLIP Armour Piercing ammo"
+ desc = "A box of standard 7.62x40mm CLIP Armour Piercing ammo."
+ icon_state = "a762_40box_big"
+
+/obj/item/storage/box/ammo/a762_40/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/rubber
+ ammo_type = /obj/item/ammo_casing/a762_40/rubber
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/a762_40/rubber
+ name = "box of 7.62x40mm CLIP rubber ammo"
+ desc = "A box of standard 7.62x40mm CLIP rubber ammo."
+ icon_state = "a762_40box_big"
+
+/obj/item/storage/box/ammo/a762_40/rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a762_40/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+//.308 (M514 EBR & CM-GAL-S)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a308
+ ammo_type = /obj/item/ammo_casing/a308
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a308
+ name = "box of .308 ammo"
+ desc = "A box of standard .308 ammo."
+ icon_state = "a308box"
+
+/obj/item/storage/box/ammo/a308/hunterspride
+ icon_state = "a308box-HP"
+
+/obj/item/storage/box/ammo/a308/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a308 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a308/hp
+ ammo_type = /obj/item/ammo_casing/a308/hp
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a308/hp
+ name = "box of .308 HP ammo"
+ desc = "A box of standard .308 HP ammo."
+ icon_state = "a308box"
+
+/obj/item/storage/box/ammo/a308/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a308/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a308/ap
+ ammo_type = /obj/item/ammo_casing/a308/ap
+ max_ammo = 10
+
+/obj/item/storage/box/ammo/a308/ap
+ name = "box of .308 AP ammo"
+ desc = "A box of standard .308 AP ammo."
+ icon_state = "a308box"
+
+/obj/item/storage/box/ammo/a308/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a308/ap = 4)
+ generate_items_inside(items_inside,src)
+
+//.299 Eoehoma Caseless (E-40)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c299
+ ammo_type = /obj/item/ammo_casing/caseless/c299
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c299
+ name = "box of .299 Eoehoma caseless ammo"
+ desc = "A box of .299 Eoehoma caseless, for use with the E-40 hybrid assault rifle."
+ icon_state = "299box"
+
+/obj/item/storage/box/ammo/c299/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c299 = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm
new file mode 100644
index 000000000000..ddcf1f8b12e7
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_shotshell_stacks.dm
@@ -0,0 +1,74 @@
+// Shotshells
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun
+ max_ammo = 8 //make sure these values are consistent across the board with stack_size variable on respective ammo_casing
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/buckshot
+ ammo_type = /obj/item/ammo_casing/shotgun/buckshot
+
+/obj/item/storage/box/ammo/a12g_buckshot
+ name = "box of 12ga buckshot"
+ desc = "A box of 12-gauge buckshot shells, devastating at close range."
+ icon_state = "12gbox-buckshot"
+
+/obj/item/storage/box/ammo/a12g_buckshot/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/buckshot = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/slug
+ ammo_type = /obj/item/ammo_casing/shotgun
+
+/obj/item/storage/box/ammo/a12g_slug
+ name = "box of 12ga slugs"
+ desc = "A box of 12-gauge slugs, for improved accuracy and penetration."
+ icon_state = "12gbox-slug"
+
+/obj/item/storage/box/ammo/a12g_slug/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/slug = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/beanbag
+ ammo_type = /obj/item/ammo_casing/shotgun/beanbag
+
+/obj/item/storage/box/ammo/a12g_beanbag
+ name = "box of 12ga beanbags"
+ desc = "A box of 12-gauge beanbag shells, for incapacitating targets."
+ icon_state = "12gbox-beanbag"
+
+/obj/item/storage/box/ammo/a12g_beanbag/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/beanbag = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber
+ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot
+
+/obj/item/storage/box/ammo/a12g_rubbershot
+ name = "box of 12ga rubbershot"
+ desc = "A box of 12-gauge rubbershot shells, designed for riot control."
+ icon_state = "12gbox-rubbershot"
+
+/obj/item/storage/box/ammo/a12g_rubbershot/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/rubber = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/blank
+ ammo_type = /obj/item/ammo_casing/shotgun/blank
+
+/obj/item/storage/box/ammo/a12g_blank
+ name = "box of 12ga blanks"
+ desc = "A box of 12-gauge blank shells, designed for training."
+ icon_state = "12gbox-slug" //needs icon
+
+/obj/item/storage/box/ammo/a12g_blank/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/blank = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/incendiary
+ ammo_type = /obj/item/ammo_casing/shotgun/incendiary
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/shotgun/improvised
+ ammo_type = /obj/item/ammo_casing/shotgun/improvised
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm
new file mode 100644
index 000000000000..e11ed44dceca
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_smg_stacks.dm
@@ -0,0 +1,167 @@
+// 4.6x30mm (WT-550 Automatic Rifle & SKM-24v)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm
+ ammo_type = /obj/item/ammo_casing/c46x30mm
+ max_ammo = 20
+
+/obj/item/storage/box/ammo/c46x30mm
+ name = "box of 4.6x30mm ammo"
+ desc = "A box of standard 4.6x30mm ammo."
+ icon_state = "46x30mmbox"
+
+/obj/item/storage/box/ammo/c46x30mm/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/ap
+ ammo_type = /obj/item/ammo_casing/c46x30mm/ap
+ max_ammo = 20
+
+/obj/item/storage/box/ammo/c46x30mm/ap
+ name = "box of 4.6x30mm AP ammo"
+ desc = "A box of standard 4.6x30mm AP ammo."
+ icon_state = "46x30mmbox"
+
+/obj/item/storage/box/ammo/c46x30mm/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/hp
+ ammo_type = /obj/item/ammo_casing/c46x30mm/hp
+ max_ammo = 20
+
+/obj/item/storage/box/ammo/c46x30mm/hp
+ name = "box of 4.6x30mm HP ammo"
+ desc = "A box of standard 4.6x30mm HP ammo."
+ icon_state = "46x30mmbox"
+
+/obj/item/storage/box/ammo/c46x30mm/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c46x30mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+// 4.73x33mm caseless (Solar)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c47x33mm
+ ammo_type = /obj/item/ammo_casing/caseless/c47x33mm
+
+// 5.56mm HITP caseless (Pistole C)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm
+ max_ammo = 15
+
+/obj/item/storage/box/ammo/c556mm
+ name = "box of 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless ammo, a SolGov standard."
+ icon_state = "556mmHITPbox"
+
+/obj/item/storage/box/ammo/c556mm/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/surplus
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/surplus
+
+/obj/item/storage/box/ammo/c556mm_surplus
+ name = "box of surplus 5.56mm HITP caseless ammo"
+ desc = "A box of low-quality 5.56mm HITP caseless ammo."
+ icon_state = "556mmHITPbox-surplus"
+
+/obj/item/storage/box/ammo/c556mm_surplus/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/surplus = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/ap
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/ap
+
+/obj/item/storage/box/ammo/c556mm_ap
+ name = "box of AP 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless armor-piercing ammo, designed to penetrate through armor at the cost of total damage."
+ icon_state = "556mmHITPbox-ap"
+
+/obj/item/storage/box/ammo/c556mm_ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/hp
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/hp
+
+/obj/item/storage/box/ammo/c556mm_hp
+ name = "box of HP 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless hollow point ammo, designed to cause massive tissue damage at the cost of armor penetration."
+ icon_state = "556mmHITPbox-hp"
+
+/obj/item/storage/box/ammo/c556mm_hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/rubbershot
+ ammo_type = /obj/item/ammo_casing/caseless/c556mm/rubbershot
+
+/obj/item/storage/box/ammo/c556mm_rubber
+ name = "box of rubber 5.56mm HITP caseless ammo"
+ desc = "A box of 5.56mm HITP caseless rubbershot ammo, designed to disable targets without causing serious damage."
+ icon_state = "556mmHITPbox-rubbershot"
+
+/obj/item/storage/box/ammo/c556mm_rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c556mm/rubbershot = 4)
+ generate_items_inside(items_inside,src)
+
+// 5.7x39mm (Asp and Sidewinder)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39
+ ammo_type = /obj/item/ammo_casing/c57x39mm
+
+/obj/item/storage/box/ammo/c57x39
+ name = "box of 5.7x39mm ammo"
+ desc = "A box of standard 5.7x39mm ammo."
+ icon_state = "57x39mmbox"
+
+/obj/item/storage/box/ammo/c57x39/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/hp
+ ammo_type = /obj/item/ammo_casing/c57x39mm/hp
+
+/obj/item/storage/box/ammo/c57x39/hp
+ name = "box of 5.7x39mm HP ammo"
+ desc = "A box of standard 5.7x39mm HP ammo."
+ icon_state = "57x39mmbox"
+
+/obj/item/storage/box/ammo/c57x39/hp/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/hp = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/ap
+ ammo_type = /obj/item/ammo_casing/c57x39mm/ap
+
+/obj/item/storage/box/ammo/c57x39/ap
+ name = "box of 5.7x39mm AP ammo"
+ desc = "A box of standard 5.7x39mm AP ammo."
+ icon_state = "57x39mmbox"
+
+/obj/item/storage/box/ammo/c57x39/ap/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/ap = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/rubber
+ ammo_type = /obj/item/ammo_casing/c57x39mm/rubber
+
+/obj/item/storage/box/ammo/c57x39/rubber
+ name = "box of 5.7x39mm rubber ammo"
+ desc = "A box of standard 5.7x39mm rubber ammo."
+ icon_state = "57x39mmbox"
+
+/obj/item/storage/box/ammo/c57x39/rubber/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/c57x39/rubber = 4)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm
new file mode 100644
index 000000000000..5b9e3218b50f
--- /dev/null
+++ b/code/modules/projectiles/boxes_magazines/ammo_stacks/prefab_stacks/premade_sniper_stacks.dm
@@ -0,0 +1,84 @@
+// .50 BMG (Sniper)
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50
+ ammo_type = /obj/item/ammo_casing/p50
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50/soporific
+ ammo_type = /obj/item/ammo_casing/p50/soporific
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/p50/penetrator
+ ammo_type = /obj/item/ammo_casing/p50/penetrator
+
+// 8x58mm Caseless (SSG-669C)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a858
+ ammo_type = /obj/item/ammo_casing/caseless/a858
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a858
+ name = "box of .300 magnum ammo"
+ desc = "A box of standard .300 Magnum ammo."
+ icon_state = "300box"
+
+/obj/item/storage/box/ammo/a858/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a858 = 4)
+ generate_items_inside(items_inside,src)
+
+// .300 Magnum (Smile Rifle)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a300
+ ammo_type = /obj/item/ammo_casing/a300
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a300
+ name = "box of .300 magnum ammo"
+ desc = "A box of standard .300 Magnum ammo."
+ icon_state = "300box"
+
+/obj/item/storage/box/ammo/a300/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a300 = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a300/trac
+ ammo_type = /obj/item/ammo_casing/a300/trac
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a300/trac
+ name = "box of .300 trac ammo"
+ desc = "A box of standard .300 Magnum ammo."
+ icon_state = "300box"
+
+/obj/item/storage/box/ammo/a300/trac/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a300/trac = 2)
+ generate_items_inside(items_inside,src)
+
+//6.5x57mm CLIP
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip
+ ammo_type = /obj/item/ammo_casing/a65clip
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a65clip
+ name = "box of 6.5x57mm CLIP ammo"
+ desc = "A box of standard 6.5x57mm CLIP ammo."
+ icon_state = "65box"
+
+/obj/item/storage/box/ammo/a65clip/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip = 4)
+ generate_items_inside(items_inside,src)
+
+/obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip/trac
+ ammo_type = /obj/item/ammo_casing/a65clip/trac
+ max_ammo = 5
+
+/obj/item/storage/box/ammo/a65clip/trac
+ name = "box of 6.5x57mm CLIP tracker ammo"
+ desc = "A box of standard 6.5x57mm CLIP tracker ammo."
+
+/obj/item/storage/box/ammo/a65clip/trac/PopulateContents()
+ var/static/items_inside = list(
+ /obj/item/ammo_box/magazine/ammo_stack/prefilled/a65clip/trac = 2)
+ generate_items_inside(items_inside,src)
diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm
index 90d2c7e4546e..6566f05606eb 100644
--- a/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -10,10 +10,6 @@
/obj/item/ammo_box/magazine/m45/empty
start_empty = TRUE
-/obj/item/ammo_box/magazine/m45/inc
- name = "pistol magazine (.45 incendiary)"
- desc = "An 8-round single-stack magazine for the Candor pistol. These incendiary rounds deal mediocre damage, but leave flaming trails which set targets ablaze."
- ammo_type = /obj/item/ammo_casing/c45/inc
/obj/item/ammo_box/magazine/m45/hp
name = "pistol magazine (.45 HP)"
@@ -34,19 +30,6 @@
. = ..()
icon_state = "[base_icon_state]-[min(ammo_count(), 8)]"
-/obj/item/ammo_box/magazine/co9mm
- name = "commander pistol magazine (9mm)"
- desc = "A 10-round double-stack magazine for Commander pistols. These rounds do okay damage, but struggle against armor."
- icon_state = "commander_mag-10"
- base_icon_state = "commander_mag"
- ammo_type = /obj/item/ammo_casing/c9mm
- caliber = "9mm"
- max_ammo = 10
- multiple_sprites = AMMO_BOX_PER_BULLET
-
-/obj/item/ammo_box/magazine/co9mm/empty
- start_empty = TRUE
-
/obj/item/ammo_box/magazine/pistol556mm
name = "Pistole C magazine (5.56mm HITP caseless)"
desc = "A 12-round, double-stack magazine for the Pistole C pistol. These rounds do okay damage with average performance against armor."
@@ -70,11 +53,6 @@
icon_state = "[base_icon_state]-0"
-/obj/item/ammo_box/magazine/co9mm/inc
- name = "pistol magazine (9mm incendiary)"
- desc = "A 10-round double-stack magazine for standard-issue 9mm pistols. These incendiary rounds deal pitiful damage, but leave flaming trails which set targets ablaze."
- ammo_type = /obj/item/ammo_casing/c9mm/inc
-
/obj/item/ammo_box/magazine/co9mm/hp
name = "pistol magazine (9mm HP)"
desc= "A 10-round double-stack magazine for standard-issue 9mm pistols. These hollow point rounds do significant damage against soft targets, but are nearly ineffective against armored ones."
diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm
index ad15e7ecea2a..acb90eca4345 100644
--- a/code/modules/projectiles/boxes_magazines/external/rifle.dm
+++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm
@@ -1,16 +1,3 @@
-/obj/item/ammo_box/magazine/m10mm_ringneck/rifle
- name = "rifle magazine (10mm)"
- desc = "A well-worn, 10-round magazine for the surplus rifle. These rounds do moderate damage, but struggle against armor."
- icon_state = "75-8"
- base_icon_state = "75"
- ammo_type = /obj/item/ammo_casing/c10mm
- caliber = "10mm"
- max_ammo = 10
-
-/obj/item/ammo_box/magazine/m10mm_ringneck/rifle/update_icon_state()
- . = ..()
- icon_state = "[base_icon_state]-[ammo_count() ? "8" : "0"]"
-
/obj/item/ammo_box/magazine/m556_42_hydra
name = "toploader magazine (5.56x42mm)"
desc = "An advanced, 30-round toploading magazine for the M-90gl Carbine. These rounds do moderate damage with good armor penetration."
@@ -35,7 +22,7 @@
. = ..()
icon_state = "[base_icon_state]-[round(ammo_count(),5)]"
-/obj/item/ammo_box/magazine/skm_545_39
+/obj/item/ammo_box/magazine/skm_46_30
name = "subcaliber assault rifle magazine (4.6x30mm)"
desc = "A slightly-curved, 30-round magazine for the SKM-24v. These rounds do okay damage with average performance against armor"
ammo_type = /obj/item/ammo_casing/c46x30mm
@@ -45,6 +32,9 @@
icon_state = "skmcarbine_mag-1"
multiple_sprites = AMMO_BOX_FULL_EMPTY
+/obj/item/ammo_box/magazine/skm_46_30/recycled
+ ammo_type = /obj/item/ammo_casing/c46x30mm/recycled
+
/obj/item/ammo_box/magazine/skm_762_40
name = "assault rifle magazine (7.62x40mm CLIP)"
desc = "A slightly curved, 20-round magazine for the 7.62x40mm CLIP variants of the SKM assault rifle family. These rounds do good damage with good armor penetration."
diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
index 9803b0feb084..c5c0fd9b7c1f 100644
--- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm
+++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm
@@ -7,3 +7,9 @@
caliber = "12ga"
max_ammo = 8
multiple_sprites = AMMO_BOX_FULL_EMPTY
+
+/obj/item/ammo_box/magazine/cm15_12g/incendiary
+ name = "CM-15 magazine (12g incendiary)"
+ desc = "An almost straight, 8-round magazine designed for the CM-15 shotgun. This one was loaded with incendiary slugs. Be careful!"
+ ammo_type = /obj/item/ammo_casing/shotgun/incendiary
+ caliber = "12ga incendiary"
diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm
index fdd4ab2d2b45..a8613e4e4903 100644
--- a/code/modules/projectiles/boxes_magazines/external/smg.dm
+++ b/code/modules/projectiles/boxes_magazines/external/smg.dm
@@ -21,13 +21,6 @@
base_icon_state = "46x30mmtA"
ammo_type = /obj/item/ammo_casing/c46x30mm/ap
-/obj/item/ammo_box/magazine/wt550m9/inc
- name = "wt550 magazine (4.6x30mm incendiary)"
- desc = "A compact, 30-round top-loading magazine for the WT-550 Automatic Rifle. These incendiary rounds deal pitiful damage, but leave flaming trails which set targets ablaze."
- icon_state = "46x30mmtI-30"
- base_icon_state = "46x30mmtI"
- ammo_type = /obj/item/ammo_casing/c46x30mm/inc
-
/obj/item/ammo_box/magazine/smgm9mm
name = "SMG magazine (9mm)"
desc = "A 30-round magazine for 9mm submachine guns. These rounds do okay damage, but struggle against armor."
@@ -46,11 +39,6 @@
desc = "A 30-round magazine for 9mm submachine guns. These armor-piercing rounds are okay at piercing protective equipment, but lose some stopping power."
ammo_type = /obj/item/ammo_casing/c9mm/ap
-/obj/item/ammo_box/magazine/smgm9mm/inc
- name = "SMG Magazine (9mm incendiary)"
- desc = "A 30-round magazine for 9mm submachine guns. These incendiary rounds deal pitiful damage, but leave flaming trails which set targets ablaze."
- ammo_type = /obj/item/ammo_casing/c9mm/inc
-
/obj/item/ammo_box/magazine/smgm9mm/rubber
name = "SMG Magazine (9mm rubber)"
desc = "A 30-round magazine for 9mm submachine guns. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor."
diff --git a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
deleted file mode 100644
index 2c88824623e2..000000000000
--- a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-/obj/item/ammo_box/generic
- name = "generic ammo box"
- desc = "A generic, unbranded box of ammo. It doesn't have great capacity, but it can hold a variety of different calibers."
- max_ammo = 20
- start_empty = TRUE
- icon_state = "generic-ammo"
- /// Does the box currently have an ammo type set?
- var/ammo_set = FALSE
- /// Name of the currently set ammo type
- var/ammo_name
-
-/obj/item/ammo_box/generic/update_ammo_count()
- . = ..()
- if(LAZYLEN(stored_ammo) == 0)
- ammo_set = FALSE
- ammo_type = /obj/item/ammo_casing
-
-/obj/item/ammo_box/generic/proc/update_max_ammo(obj/item/ammo_casing/ammo)
- if(ammo.bullet_per_box)
- max_ammo = round(ammo.bullet_per_box)
- else
- max_ammo = 10
-
- return
-
-/obj/item/ammo_box/generic/attackby(obj/item/attacking_obj, mob/user, params, silent, replace_spent)
- . = ..()
-
- if(!ammo_set && istype(attacking_obj, /obj/item/ammo_casing))
- var/obj/item/ammo_casing/ammo_load = attacking_obj.type
- ammo_type = ammo_load
- ammo_set = TRUE
- ammo_name = attacking_obj.name
- update_max_ammo(attacking_obj)
- to_chat(user, span_notice("You set the box to hold [attacking_obj]!"))
-
- if(istype(attacking_obj, /obj/item/pen))
- if(!user.is_literate())
- to_chat(user, span_notice("You scribble illegibly on the cover of [src]!"))
- return
- var/inputvalue = stripped_input(user, "What would you like to label the box?", "Box Labelling", "", MAX_NAME_LEN)
-
- if(!inputvalue)
- return
-
- if(user.canUseTopic(src, BE_CLOSE))
- name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]"
-
-/obj/item/ammo_box/generic/examine(mob/user)
- . = ..()
- . += span_notice("[ammo_set ? "It's set to hold [ammo_name]\s. The box can hold up to [max_ammo] rounds." : "It doesn't have an ammo type set. Use a bullet on the box to set it."]")
- . += span_notice("You can use a pen on it to rename the box.")
-
diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm
index 7485c591809d..f797d5b4ee55 100644
--- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm
+++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm
@@ -12,16 +12,6 @@
/obj/item/ammo_box/magazine/internal/shot/lethal
ammo_type = /obj/item/ammo_casing/shotgun/buckshot
-/obj/item/ammo_box/magazine/internal/shot/com
- name = "combat shotgun internal magazine"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 6
-
-/obj/item/ammo_box/magazine/internal/shot/com/compact
- name = "compact combat shotgun internal magazine"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 4
-
/obj/item/ammo_box/magazine/internal/shot/dual
name = "double-barrel shotgun internal magazine"
max_ammo = 2
@@ -71,16 +61,6 @@
max_ammo = 1
multiload = FALSE
-/obj/item/ammo_box/magazine/internal/shot/com/compact/compact
- name = "compact compact combat shotgun internal magazine"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 3
-
-/obj/item/ammo_box/magazine/internal/shot/com/compact/compact/compact
- name = "compact compact compact combat shotgun internal magazine"
- ammo_type = /obj/item/ammo_casing/shotgun/buckshot
- max_ammo = 2
-
/obj/item/ammo_box/magazine/internal/shot/sex
name = "six-barrel shotgun internal magazine"
max_ammo = 6
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index f848018a6115..a81259680248 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -56,7 +56,11 @@
//BALLISTIC
///Compatible magazines with the gun
- var/mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck //Removes the need for max_ammo and caliber info
+ var/default_ammo_type
+ ///Allowed base types of magazines with the gun
+ var/allowed_ammo_types
+ ///Incompatible magazines with the gun
+ var/blacklisted_ammo_types
///Whether the gun alarms when empty or not.
var/empty_alarm = FALSE
///Do we eject the magazine upon runing out of ammo?
@@ -99,7 +103,6 @@
//ENERGY
//What type of power cell this uses
var/obj/item/stock_parts/cell/gun/cell
- var/cell_type = /obj/item/stock_parts/cell/gun
//Can it be charged in a recharger?
var/can_charge = TRUE
var/selfcharge = FALSE
@@ -107,8 +110,6 @@
var/charge_delay = 4
//whether the gun's cell drains the cyborg user's cell to recharge
var/use_cyborg_cell = FALSE
- ///Used for large and small cells
- var/mag_size = MAG_SIZE_MEDIUM
//Time it takes to unscrew the cell
var/unscrewing_time = 2 SECONDS
@@ -262,8 +263,6 @@
*/
///The types of attachments allowed, a list of types. SUBTYPES OF AN ALLOWED TYPE ARE ALSO ALLOWED
var/list/valid_attachments = list()
- ///Reference to our attachment holder to prevent subtypes having to call GetComponent
- var/datum/component/attachment_holder/attachment_holder
///Number of attachments that can fit on a given slot
var/list/slot_available = ATTACHMENT_DEFAULT_SLOT_AVAILABLE
///Offsets for the slots on this gun. should be indexed by SLOT and then by X/Y
@@ -290,6 +289,8 @@
var/safety = FALSE
///The wording of safety. Useful for guns that have a non-standard safety system, like a revolver
var/safety_wording = "safety"
+ ///multiplier for this gun's misfire chances. Closer to 0 is better.
+ var/safety_multiplier = 1
/*
* Spawn Info (Stuff that becomes useless onces the gun is spawned, mostly here for mappers)
@@ -297,13 +298,9 @@
///Attachments spawned on initialization. Should also be in valid attachments or it SHOULD(once i add that) fail
var/list/default_attachments = list()
-//BALLISTIC
- ///Whether the gun will spawn loaded with a magazine
- var/spawnwithmagazine = TRUE
-
//ENERGY
//set to true so the gun is given an empty cell
- var/dead_cell = FALSE
+ var/spawn_no_ammo = FALSE
// Need to sort
///trigger guard on the weapon. Used for hulk mutations and ashies. I honestly dont know how usefult his is, id avoid touching it
@@ -327,7 +324,7 @@
///This prevents gun from firing until the coodown is done, affected by lag
var/current_cooldown = 0
-/obj/item/gun/Initialize()
+/obj/item/gun/Initialize(mapload, spawn_empty)
. = ..()
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield))
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield))
@@ -339,13 +336,13 @@
/obj/item/gun/ComponentInitialize()
. = ..()
- attachment_holder = AddComponent(/datum/component/attachment_holder, slot_available, valid_attachments, slot_offsets, default_attachments)
+ AddComponent(/datum/component/attachment_holder, slot_available, valid_attachments, slot_offsets, default_attachments)
AddComponent(/datum/component/two_handed)
/// triggered on wield of two handed item
/obj/item/gun/proc/on_wield(obj/item/source, mob/user)
wielded = TRUE
- INVOKE_ASYNC(src, .proc.do_wield, user)
+ INVOKE_ASYNC(src, PROC_REF(do_wield), user)
/obj/item/gun/proc/do_wield(mob/user)
user.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/gun, multiplicative_slowdown = wield_slowdown)
@@ -384,6 +381,8 @@
QDEL_NULL(azoom)
if(muzzle_flash)
QDEL_NULL(muzzle_flash)
+ if(magazine)
+ QDEL_NULL(magazine)
return ..()
/obj/item/gun/handle_atom_del(atom/A)
@@ -651,7 +650,11 @@
if(wielded_fully)
simulate_recoil(user, recoil, actual_angle)
else if(!wielded_fully)
- simulate_recoil(user, recoil_unwielded, actual_angle)
+ var/recoil_temp = recoil_unwielded
+ var/obj/item/shield/riot/shield = user.get_inactive_held_item()
+ if(istype(shield))
+ recoil_temp += shield.recoil_bonus
+ simulate_recoil(user, recoil_temp, actual_angle)
if(suppressed)
playsound(user, suppressed_sound, suppressed_volume, vary_fire_sound, ignore_walls = FALSE, extrarange = SILENCED_SOUND_EXTRARANGE, falloff_distance = 0)
@@ -963,7 +966,7 @@
// for guns firing on their own without a user
/obj/item/gun/proc/discharge(cause, seek_chance = 10)
var/target
- if(!safety)
+ if(!safety && has_safety)
// someone is very unlucky and about to be shot
if(prob(seek_chance))
for(var/mob/living/target_mob in range(6, get_turf(src)))
@@ -991,16 +994,17 @@
if(ishuman(src))
human_holder = src
for(var/obj/item/gun/at_risk in get_all_contents())
- var/chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM
+ var/chance_to_fire = round(GUN_NO_SAFETY_MALFUNCTION_CHANCE_MEDIUM * at_risk.safety_multiplier)
if(human_holder)
// gun is less likely to go off in a holster
if(at_risk == human_holder.s_store)
- chance_to_fire = GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW
+ chance_to_fire = round(GUN_NO_SAFETY_MALFUNCTION_CHANCE_LOW * at_risk.safety_multiplier)
if(at_risk.safety == FALSE && prob(chance_to_fire))
- if(at_risk.process_fire(src,src,FALSE, null, pick(BODY_ZONE_L_LEG,BODY_ZONE_R_LEG)) == TRUE)
+ var/bodyzone = pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG,BODY_ZONE_R_LEG)
+ if(at_risk.process_fire(src,src,FALSE, null, bodyzone) == TRUE)
log_combat(src,src,"misfired",at_risk,"caused by [cause]")
- visible_message(span_danger("\The [at_risk.name]'s trigger gets caught as [src] falls, suddenly going off into [src]'s leg without its safties on!"), span_danger("\The [at_risk.name]'s trigger gets caught on something as you fall, suddenly going off into your leg without its safeties on!"))
- emote("scream")
+ visible_message(span_danger("\The [at_risk.name]'s trigger gets caught as [src] falls, suddenly going off into [src]'s [bodyzone]!"), span_danger("\The [at_risk.name]'s trigger gets caught on something as you fall, suddenly going off into your [bodyzone]!"))
+ human_holder.force_scream()
//I need to refactor this into an attachment
/datum/action/toggle_scope_zoom
@@ -1008,18 +1012,21 @@
check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_LYING
icon_icon = 'icons/mob/actions/actions_items.dmi'
button_icon_state = "sniper_zoom"
- var/obj/item/gun/gun = null
/datum/action/toggle_scope_zoom/Trigger()
+ if(!istype(target, /obj/item/gun) || !..())
+ return
+
+ var/obj/item/gun/gun = target
gun.zoom(owner, owner.dir)
-/datum/action/toggle_scope_zoom/IsAvailable()
- . = ..()
- if(!. && gun)
- gun.zoom(owner, owner.dir, FALSE)
+/datum/action/toggle_scope_zoom/Remove(mob/user)
+ if(!istype(target, /obj/item/gun))
+ return ..()
+
+ var/obj/item/gun/gun = target
+ gun.zoom(user, user.dir, FALSE)
-/datum/action/toggle_scope_zoom/Remove(mob/living/L)
- gun.zoom(L, L.dir, FALSE)
..()
/obj/item/gun/proc/rotate(atom/thing, old_dir, new_dir)
@@ -1056,8 +1063,7 @@
return
if(zoomable)
- azoom = new()
- azoom.gun = src
+ azoom = new(src)
/obj/item/gun/proc/build_firemodes()
if(FIREMODE_FULLAUTO in gun_firemodes)
@@ -1117,7 +1123,8 @@
GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
/obj/item/gun/energy/plasmacutter,
- /obj/item/melee/transforming/energy,
+ /obj/item/melee/energy,
+ /obj/item/gear_handle/anglegrinder,
)))
///Handles all the logic of sawing off guns,
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index f64586871ccf..a16f35612692 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -1,6 +1,11 @@
-#define EMPTY_GUN_HELPER(gun_type) \
+#define NO_MAG_GUN_HELPER(gun_type) \
/obj/item/gun/ballistic/##gun_type/no_mag { \
- spawnwithmagazine = FALSE; \
+ default_ammo_type = FALSE; \
+ }
+
+#define EMPTY_GUN_HELPER(gun_type) \
+ /obj/item/gun/ballistic/##gun_type/empty { \
+ spawn_no_ammo = TRUE; \
}
///Subtype for any kind of ballistic gun
@@ -9,7 +14,6 @@
desc = "Now comes in flavors like GUN. Uses 10mm ammo, for some reason."
name = "projectile gun"
w_class = WEIGHT_CLASS_NORMAL
-
has_safety = TRUE
safety = TRUE
@@ -19,7 +23,8 @@
/obj/item/attachment/silencer,
/obj/item/attachment/laser_sight,
/obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
+ /obj/item/attachment/bayonet,
+ /obj/item/attachment/sling
)
slot_available = list(
ATTACHMENT_SLOT_MUZZLE = 1,
@@ -36,18 +41,29 @@
)
)
-/obj/item/gun/ballistic/Initialize()
+/obj/item/gun/ballistic/Initialize(mapload, spawn_empty)
. = ..()
- if (!spawnwithmagazine && !ispath(mag_type, /obj/item/ammo_box/magazine/internal))
+
+ allowed_ammo_types = typecacheof(allowed_ammo_types) - blacklisted_ammo_types
+
+ if(spawn_empty)
+ if(internal_magazine)
+ spawn_no_ammo = TRUE
+ else
+ default_ammo_type = FALSE
+
+ if (!default_ammo_type && !internal_magazine)
bolt_locked = TRUE
update_appearance()
return
- if (!magazine)
- magazine = new mag_type(src)
- if (!spawnwithmagazine)
- get_ammo_list (drop_all = TRUE)
- chamber_round()
+ if (ispath(default_ammo_type))
+ magazine = new default_ammo_type(src)
+ if (spawn_no_ammo)
+ get_ammo_list(drop_all = TRUE)
+ else
+ chamber_round()
update_appearance()
+
/obj/item/gun/ballistic/update_icon_state()
if(current_skin)
icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]"
@@ -146,7 +162,7 @@
///Handles all the logic needed for magazine insertion
/obj/item/gun/ballistic/proc/insert_magazine(mob/user, obj/item/ammo_box/magazine/inserted_mag, display_message = TRUE)
- if(!istype(inserted_mag, mag_type))
+ if(!(inserted_mag.type in allowed_ammo_types))
to_chat(user, "\The [inserted_mag] doesn't seem to fit into \the [src]...")
return FALSE
if(user.transferItemToLoc(inserted_mag, src))
@@ -203,12 +219,14 @@
/obj/item/gun/ballistic/attackby(obj/item/A, mob/user, params)
. = ..()
- if (.)
+
+ if(.)
return
+
if(sealed_magazine)
- to_chat(user, span_warning("The magazine on [src] is sealed and cannot be reloaded!"))
+ to_chat(user, span_warning("The [magazine_wording] on [src] is sealed and cannot be reloaded!"))
return
- if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine))
+ if(!internal_magazine && istype(A, /obj/item/ammo_box/magazine))
var/obj/item/ammo_box/magazine/AM = A
if (!magazine)
insert_magazine(user, AM)
@@ -218,7 +236,8 @@
else
to_chat(user, "There's already a [magazine_wording] in \the [src].")
return
- if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box))
+
+ if(istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box))
if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine)
if (chambered && !chambered.BB)
chambered.on_eject(shooter = user)
@@ -235,6 +254,7 @@
if (can_be_sawn_off)
if (try_sawoff(user, A))
return
+
return FALSE
///Prefire empty checks for the bolt drop
@@ -270,30 +290,35 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/gun/ballistic/attack_hand(mob/user)
- if(!internal_magazine && loc == user && user.is_holding(src) && magazine)
- eject_magazine(user)
- return
+ if(user.is_holding(src) && loc == user)
+ if(sealed_magazine)
+ to_chat(user, span_warning("The [magazine_wording] on [src] is sealed and cannot be accessed!"))
+ return
+ if(bolt_type == BOLT_TYPE_NO_BOLT && (chambered || internal_magazine))
+ chambered = null
+ var/num_unloaded = 0
+ for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE))
+ CB.forceMove(drop_location())
+
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ CB.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = CB.bounce_sfx_override)
+
+ num_unloaded++
+ SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name)
+ if (num_unloaded)
+ to_chat(user, span_notice("You unload [num_unloaded] [cartridge_wording]\s from [src]."))
+ playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
+ update_appearance()
+ else
+ to_chat(user, span_warning("[src] is empty!"))
+ return
+ if(!internal_magazine && magazine)
+ eject_magazine(user)
+ return
+ return ..()
return ..()
/obj/item/gun/ballistic/unique_action(mob/living/user)
- if(bolt_type == BOLT_TYPE_NO_BOLT)
- chambered = null
- var/num_unloaded = 0
- for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE))
- CB.forceMove(drop_location())
-
- var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
- CB.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = CB.bounce_sfx_override)
-
- num_unloaded++
- SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name)
- if (num_unloaded)
- to_chat(user, "You unload [num_unloaded] [cartridge_wording]\s from [src].")
- playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
- update_appearance()
- else
- to_chat(user, "[src] is empty!")
- return
if((bolt_type == BOLT_TYPE_LOCKING || bolt_type == BOLT_TYPE_CLIP) && bolt_locked)
drop_bolt(user)
return
@@ -318,7 +343,8 @@
. += "It does not seem to have a round chambered."
if (bolt_locked)
. += "The [bolt_wording] is locked back and needs to be released before firing."
- . += "You can [bolt_wording] [src] by pressing the unique action key. By default, this is space"
+ if(bolt_type != BOLT_TYPE_NO_BOLT)
+ . += "You can [bolt_wording] [src] by pressing the unique action key. By default, this is space"
///Gets the number of bullets in the gun
/obj/item/gun/ballistic/proc/get_ammo(countchambered = TRUE)
@@ -336,7 +362,8 @@
rounds.Add(chambered)
if(drop_all)
chambered = null
- rounds.Add(magazine.ammo_list(drop_all))
+ if(magazine)
+ rounds.Add(magazine.ammo_list(drop_all))
return rounds
/obj/item/gun/ballistic/blow_up(mob/user)
diff --git a/code/modules/projectiles/guns/ballistic/assault.dm b/code/modules/projectiles/guns/ballistic/assault.dm
index 42cb637a557f..a7f6e43a9b1f 100644
--- a/code/modules/projectiles/guns/ballistic/assault.dm
+++ b/code/modules/projectiles/guns/ballistic/assault.dm
@@ -1,10 +1,11 @@
/obj/item/gun/ballistic/automatic/assault
show_magazine_on_sprite = TRUE
+ w_class = WEIGHT_CLASS_BULKY
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
default_firemode = FIREMODE_SEMIAUTO
wield_delay = 0.8 SECONDS
- wield_slowdown = 0.6
+ wield_slowdown = RIFLE_SLOWDOWN
fire_delay = 0.2 SECONDS
@@ -40,10 +41,12 @@
show_magazine_on_sprite = TRUE
unique_mag_sprites_for_variants = TRUE
weapon_weight = WEAPON_MEDIUM
- w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
manufacturer = MANUFACTURER_IMPORT
- mag_type = /obj/item/ammo_box/magazine/skm_762_40
+ default_ammo_type = /obj/item/ammo_box/magazine/skm_762_40
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/skm_762_40,
+ )
spread = 1
wield_delay = 0.7 SECONDS
@@ -51,7 +54,7 @@
fire_delay = 0.2 SECONDS
/obj/item/gun/ballistic/automatic/assault/skm/no_mag
- spawnwithmagazine = FALSE
+ default_ammo_type = FALSE
/obj/item/gun/ballistic/automatic/assault/skm/pirate
name = "\improper Chopper"
@@ -74,31 +77,6 @@
item_state = "skm_inteq"
manufacturer = MANUFACTURER_INTEQ
-/obj/item/gun/ballistic/automatic/assault/p16
- name = "\improper P-16"
- desc = "An assault rifle pattern from Sol, existing before the Night of Fire. A favorite of professional mercenaries and well-heeled pirates. Chambered in 5.56mm."
- icon = 'icons/obj/guns/48x32guns.dmi'
- fire_sound = 'sound/weapons/gun/rifle/m16.ogg'
- icon_state = "p16"
- item_state = "p16"
- show_magazine_on_sprite = TRUE
- w_class = WEIGHT_CLASS_BULKY
- slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/p16
- spread = 2
- wield_delay = 0.5 SECONDS
-
- fire_delay = 0.18 SECONDS
-
- rack_sound = 'sound/weapons/gun/rifle/m16_cocked.ogg'
- load_sound = 'sound/weapons/gun/rifle/m16_reload.ogg'
- load_empty_sound = 'sound/weapons/gun/rifle/m16_reload.ogg'
- eject_sound = 'sound/weapons/gun/rifle/m16_unload.ogg'
- eject_empty_sound = 'sound/weapons/gun/rifle/m16_unload.ogg'
-
-/obj/item/gun/ballistic/automatic/assault/p16/no_mag
- spawnwithmagazine = FALSE
-
/obj/item/gun/ballistic/automatic/assault/cm82
name = "\improper CM-16"
desc = "The standard-issue rifle of CLIP and an extensively modified reproduction of the P-16. Chambered in 5.56mm."
@@ -131,9 +109,11 @@
fire_select_icon_state_prefix = "swisschesse_"
- w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/swiss
+ default_ammo_type = /obj/item/ammo_box/magazine/swiss
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/swiss,
+ )
manufacturer = MANUFACTURER_SOLARARMORIES
spread = 8
spread_unwielded = 15
@@ -150,11 +130,14 @@
mob_overlay_icon = 'icons/obj/guns/manufacturer/eoehoma/onmob.dmi'
icon_state = "e40"
item_state = "e40"
- mag_type = /obj/item/ammo_box/magazine/e40
+ default_ammo_type = /obj/item/ammo_box/magazine/e40
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/e40,
+ )
var/obj/item/gun/energy/laser/e40_laser_secondary/secondary
fire_select_icon_state_prefix = "e40_"
- fire_delay = 0.18 SECONDS
+ fire_delay = 0.1 SECONDS
recoil_unwielded = 3
gun_firenames = list(FIREMODE_FULLAUTO = "full auto ballistic", FIREMODE_OTHER = "full auto laser")
@@ -162,7 +145,6 @@
default_firemode = FIREMODE_OTHER
weapon_weight = WEAPON_MEDIUM
- w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
show_magazine_on_sprite = TRUE
@@ -196,6 +178,11 @@
/obj/item/gun/ballistic/automatic/assault/e40/process_fire(atom/target, mob/living/user, message, params, zone_override, bonus_spread)
var/current_firemode = gun_firemodes[firemode_index]
if(current_firemode != FIREMODE_OTHER)
+// [CELADON-REMOVE] - CELADON BALANCE - удаляет пару строк кода от системы люков
+// if(!secondary.latch_closed && prob(65))
+// to_chat(user, span_warning("[src]'s cell falls out!"))
+// secondary.eject_cell()
+// [/CELADON-REMOVE]
return ..()
return secondary.process_fire(target, user, message, params, zone_override, bonus_spread)
@@ -214,21 +201,48 @@
/obj/item/gun/ballistic/automatic/assault/e40/attackby(obj/item/attack_obj, mob/user, params)
if(istype(attack_obj, /obj/item/stock_parts/cell/gun))
return secondary.attackby(attack_obj, user, params)
- if(istype(attack_obj, /obj/item/screwdriver))
- return secondary.screwdriver_act(user, attack_obj,)
return ..()
-
-/obj/item/gun/ballistic/automatic/assault/e40/can_shoot()
- var/current_firemode = gun_firemodes[firemode_index]
- if(current_firemode != FIREMODE_OTHER)
- return ..()
- return secondary.can_shoot()
+// [CELADON-REMOVE] - CELADON BALANCE - опять кусок кода связанный с системой люков оффов, бла бла
+// /obj/item/gun/ballistic/automatic/assault/e40/attack_hand(mob/user)
+// var/current_firemode = gun_firemodes[firemode_index]
+// if(current_firemode == FIREMODE_OTHER && loc == user && user.is_holding(src) && secondary.cell && !secondary.latch_closed)
+// secondary.eject_cell(user)
+// return
+// if(current_firemode == FIREMODE_OTHER && loc == user && user.is_holding(src) && secondary.cell && secondary.latch_closed)
+// to_chat(user, span_warning("The cell retainment clip is latched!"))
+// return
+// return ..()
+//
+// /obj/item/gun/ballistic/automatic/assault/e40/AltClick(mob/living/user)
+// var/current_firemode = gun_firemodes[firemode_index]
+// if(current_firemode == FIREMODE_OTHER)
+// if(secondary.latch_closed)
+// to_chat(user, span_notice("You start to unlatch the [src]'s power cell retainment clip..."))
+// if(do_after(user, secondary.latch_toggle_delay, src, IGNORE_USER_LOC_CHANGE))
+// to_chat(user, span_notice("You unlatch [src]'s power cell retainment clip " + "OPEN" + "."))
+// playsound(src, 'sound/items/taperecorder/taperecorder_play.ogg', 50, FALSE)
+// secondary.tac_reloads = TRUE
+// secondary.latch_closed = FALSE
+// update_appearance()
+// return
+// else
+// to_chat(user, span_warning("You start to latch the [src]'s power cell retainment clip..."))
+// if (do_after(user, secondary.latch_toggle_delay, src, IGNORE_USER_LOC_CHANGE))
+// to_chat(user, span_notice("You latch [src]'s power cell retainment clip " + "CLOSED" + "."))
+// playsound(src, 'sound/items/taperecorder/taperecorder_close.ogg', 50, FALSE)
+// secondary.tac_reloads = FALSE
+// secondary.latch_closed = TRUE
+// update_appearance()
+// return
+// else
+// return ..()
+// [/CELADON-REMOVE]
/obj/item/gun/ballistic/automatic/assault/e40/on_wield(obj/item/source, mob/user)
wielded = TRUE
secondary.wielded = TRUE
- INVOKE_ASYNC(src, .proc.do_wield, user)
+ INVOKE_ASYNC(src, PROC_REF(do_wield), user)
/obj/item/gun/ballistic/automatic/assault/e40/do_wield(mob/user)
. = ..()
@@ -264,7 +278,22 @@
. += "[icon_state]_charge[ratio]"
if(secondary.cell)
. += "[icon_state]_cell"
-
+// [CELADON-REMOVE] - CELADON BALANCE - удаляем систему оффов с люками
+// if(ismob(loc))
+// var/mutable_appearance/latch_overlay
+// latch_overlay = mutable_appearance('icons/obj/guns/cell_latch.dmi')
+// if(secondary.latch_closed)
+// if(secondary.cell)
+// latch_overlay.icon_state = "latch-on-full"
+// else
+// latch_overlay.icon_state = "latch-on-empty"
+// else
+// if(secondary.cell)
+// latch_overlay.icon_state = "latch-off-full"
+// else
+// latch_overlay.icon_state = "latch-off-empty"
+// . += latch_overlay
+// [/CELADON-REMOVE]
/obj/item/gun/ballistic/automatic/assault/e40/toggle_safety(mob/user, silent=FALSE)
. = ..()
@@ -280,6 +309,19 @@
SEND_SIGNAL(src, COMSIG_GUN_SET_AUTOFIRE_SPEED, fire_delay)
SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD)
+// [CELADON-REMOVE] - CELADON BALANCE - удаляет часть системы оффовских люков для Е40
+// /obj/item/gun/ballistic/automatic/assault/e40/examine(mob/user)
+// . = ..()
+// if(!secondary.internal_magazine)
+// . += "The cell retainment latch is [secondary.latch_closed ? "CLOSED" : "OPEN"]. Alt-Click to toggle the latch."
+// var/obj/item/ammo_casing/energy/shot = secondary.ammo_type[select]
+// if(secondary.cell)
+// . += "\The [name]'s cell has [secondary.cell.percent()]% charge remaining."
+// . += "\The [name] has [round(secondary.cell.charge/shot.e_cost)] shots remaining on [shot.select_name] mode."
+// else
+// . += span_notice("\The [name] doesn't seem to have a cell!")
+// [/CELADON-REMOVE]
+
//laser
/obj/item/gun/energy/laser/e40_laser_secondary
@@ -291,36 +333,7 @@
fire_delay = 0.2 SECONDS
gun_firemodes = list(FIREMODE_FULLAUTO)
default_firemode = FIREMODE_FULLAUTO
-
+// [CELADON-REMOVE] - CELADON BALANCE - часть кода системы люков оффов
+// latch_toggle_delay = 1.2 SECONDS
+// [/CELADON-REMOVE]
spread_unwielded = 20
-
-//techinically a battle rifle, i'm putting it here for organisation sake
-
-/obj/item/gun/ballistic/automatic/marksman/vickland //weapon designed by Apogee-dev
- name = "\improper Vickland"
- desc = "The pride of the Saint-Roumain Militia, the Vickland is a rare semi-automatic battle rifle produced by Hunter's Pride exclusively for SRM use. It is unusual in its class for its internal rotary magazine, which must be reloaded using stripper clips. Chambered in .308."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- fire_sound = 'sound/weapons/gun/rifle/vickland.ogg'
- icon_state = "vickland"
- item_state = "vickland"
- weapon_weight = WEAPON_MEDIUM
- w_class = WEIGHT_CLASS_BULKY
- internal_magazine = TRUE
- mag_type = /obj/item/ammo_box/magazine/internal/vickland
- fire_sound = 'sound/weapons/gun/rifle/vickland.ogg'
-
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- zoomable = FALSE //no scope on it
-
- rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg'
-
- fire_delay = 0.4 SECONDS
-
- spread_unwielded = 25
- recoil = 0
- recoil_unwielded = 4
- wield_slowdown = 0.75
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index 6b1e30296d57..fd893e432f30 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -1,6 +1,6 @@
/obj/item/gun/ballistic/automatic
- w_class = WEIGHT_CLASS_NORMAL
+ w_class = WEIGHT_CLASS_BULKY
gun_firemodes = list(FIREMODE_SEMIAUTO)
default_firemode = FIREMODE_SEMIAUTO
@@ -19,42 +19,17 @@
spread_unwielded = 13
recoil = 0
recoil_unwielded = 4
- wield_slowdown = 0.35
-
-// Old Semi-Auto Rifle //
-
-/obj/item/gun/ballistic/automatic/surplus //TODO: NEEDS TO BE REPLACED WITH PISTOL CARBINES OR LOWCAL SEMI-AUTO RIFLES
- name = "surplus rifle"
- desc = "One of countless cheap, obsolete rifles found throughout the Frontier. Its lack of lethality renders it mostly a deterrent. Chambered in 10mm."
- icon_state = "surplus"
- item_state = "moistnugget"
- weapon_weight = WEAPON_HEAVY
- mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck/rifle
- fire_delay = 0.5 SECONDS
- burst_size = 1
- w_class = WEIGHT_CLASS_HUGE
- slot_flags = ITEM_SLOT_BACK
- show_magazine_on_sprite = TRUE
-
-// Laser rifle (rechargeable magazine) //
-
-/obj/item/gun/ballistic/automatic/laser //TODO: REMOVE
- name = "laser rifle"
- desc = "Though sometimes mocked for the relatively weak firepower of their energy weapons, the logistic miracle of rechargeable ammunition has given Nanotrasen a decisive edge over many a foe."
- icon_state = "oldrifle"
- item_state = "arg"
- mag_type = /obj/item/ammo_box/magazine/recharge
- fire_delay = 0.2 SECONDS
- burst_size = 0
- fire_sound = 'sound/weapons/laser.ogg'
- casing_ejector = FALSE
+ wield_slowdown = PDW_SLOWDOWN
/obj/item/gun/ballistic/automatic/zip_pistol
name = "makeshift pistol"
desc = "A makeshift zip gun cobbled together from various scrap bits and chambered in 9mm. It's a miracle it even works."
icon_state = "ZipPistol"
item_state = "ZipPistol"
- mag_type = /obj/item/ammo_box/magazine/zip_ammo_9mm
+ default_ammo_type = /obj/item/ammo_box/magazine/zip_ammo_9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/zip_ammo_9mm,
+ )
actions_types = list()
show_magazine_on_sprite = TRUE
weapon_weight = WEAPON_LIGHT
diff --git a/code/modules/projectiles/guns/ballistic/gauss.dm b/code/modules/projectiles/guns/ballistic/gauss.dm
index 3fdc2e55dadd..0b4319d5be8a 100644
--- a/code/modules/projectiles/guns/ballistic/gauss.dm
+++ b/code/modules/projectiles/guns/ballistic/gauss.dm
@@ -8,7 +8,10 @@
icon_state = "gauss"
item_state = "arg"
slot_flags = 0
- mag_type = /obj/item/ammo_box/magazine/gauss
+ default_ammo_type = /obj/item/ammo_box/magazine/gauss
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/gauss,
+ )
fire_sound = 'sound/weapons/gun/gauss/magrifle.ogg'
load_sound = 'sound/weapons/gun/gauss/rifle_reload.ogg'
burst_size = 1
@@ -26,98 +29,6 @@
spread_unwielded = 25
recoil = 0
recoil_unwielded = 4
- wield_slowdown = 0.75
+ wield_slowdown = HEAVY_RIFLE_SLOWDOWN
wield_delay = 1 SECONDS
fire_select_icon_state_prefix = "pellet_"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/modelh
- name = "Model H"
- desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor."
- mag_type = /obj/item/ammo_box/magazine/modelh
- icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
- icon_state = "model-h"
- item_state = "model-h"
- fire_sound = 'sound/weapons/gun/gauss/modelh.ogg'
- load_sound = 'sound/weapons/gun/gauss/pistol_reload.ogg'
- cell_type = /obj/item/stock_parts/cell/gun/solgov
- slot_flags = ITEM_SLOT_BELT
- w_class = WEIGHT_CLASS_SMALL
- fire_delay = 0.6 SECONDS //pistol, but heavy caliber.
- show_magazine_on_sprite = FALSE
- empty_indicator = FALSE
- manufacturer = MANUFACTURER_SOLARARMORIES
- recoil = 2
- recoil_unwielded = 4
- spread = 6
- spread_unwielded = 12
- fire_select_icon_state_prefix = "slug_"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/modelh/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns
- desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor. It is painted in the colors of SUNS."
- mag_type = /obj/item/ammo_box/magazine/modelh
- icon_state = "model-h_suns"
- item_state = "model-h_suns"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/claris
- name = "Claris"
- desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended."
- mag_type = /obj/item/ammo_box/magazine/internal/claris
- icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
- icon_state = "claris"
- item_state = "claris"
- fire_sound = 'sound/weapons/gun/gauss/claris.ogg'
- load_sound = 'sound/weapons/gun/gauss/sniper_reload.ogg'
- cell_type = /obj/item/stock_parts/cell/gun/solgov
- fire_delay = 0.4 SECONDS
- bolt_type = BOLT_TYPE_NO_BOLT
- internal_magazine = TRUE
- show_magazine_on_sprite = FALSE
- empty_indicator = FALSE
- manufacturer = MANUFACTURER_SOLARARMORIES
- fire_select_icon_state_prefix = "pellet_"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/claris/suns
- desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended. Evidently, SUNS' founders echo the sentiment, as it appears to be painted in their colors."
- icon_state = "claris_suns"
- item_state = "claris_suns"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/gar
- name = "Solar 'GAR' Carbine"
- desc = "A Solarian carbine, unusually modern for its producers. Launches ferromagnetic lances at alarming speeds."
- mag_type = /obj/item/ammo_box/magazine/gar
- icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
- icon_state = "gar"
- item_state = "gar"
- fire_sound = 'sound/weapons/gun/gauss/gar.ogg'
- load_sound = 'sound/weapons/gun/gauss/rifle_reload.ogg'
- cell_type = /obj/item/stock_parts/cell/gun/solgov
- burst_size = 1
-
- fire_delay = 0.2 SECONDS
-
- actions_types = list()
- empty_indicator = FALSE
- manufacturer = MANUFACTURER_SOLARARMORIES
-
- gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
- default_firemode = FIREMODE_SEMIAUTO
-
- wield_delay = 0.7 SECONDS
- fire_select_icon_state_prefix = "lance_"
-
-/obj/item/gun/ballistic/automatic/powered/gauss/gar/suns
- desc = "A Solarian carbine, unusually modern for its producers. It's just modern enough for SUNS, however, who have painted the weapon in their colors. Launches ferromagnetic lances at alarming speeds."
- icon_state = "gar_suns"
- item_state = "gar_suns"
diff --git a/code/modules/projectiles/guns/ballistic/hmg.dm b/code/modules/projectiles/guns/ballistic/hmg.dm
index 780b24dc80fb..1c318164ee76 100644
--- a/code/modules/projectiles/guns/ballistic/hmg.dm
+++ b/code/modules/projectiles/guns/ballistic/hmg.dm
@@ -12,11 +12,12 @@
gun_firemodes = list(FIREMODE_FULLAUTO)
default_firemode = FIREMODE_FULLAUTO
+ wield_slowdown = HMG_SLOWDOWN
+
spread = 4
spread_unwielded = 80
recoil = 1
recoil_unwielded = 4
- wield_slowdown = 3
gunslinger_recoil_bonus = 2
gunslinger_spread_bonus = 20
@@ -64,6 +65,22 @@
else
retract_bipod(user=user)
+/obj/item/gun/ballistic/automatic/hmg/calculate_recoil(mob/user, recoil_bonus = 0)
+ var/total_recoil = recoil_bonus
+
+ if(bipod_deployed)
+ total_recoil += deploy_recoil_bonus
+
+ return ..(user, total_recoil)
+
+/obj/item/gun/ballistic/automatic/hmg/calculate_spread(mob/user, bonus_spread)
+ var/total_spread = bonus_spread
+
+ if(bipod_deployed)
+ total_spread += deploy_spread_bonus
+
+ return ..(user, total_spread)
+
/obj/item/gun/ballistic/automatic/hmg/proc/deploy_bipod(mob/user)
//we check if we can actually deploy the thing
var/can_deploy = TRUE
@@ -139,7 +156,10 @@
icon_state = "solar"
fire_sound = 'sound/weapons/gun/l6/shot.ogg'
- mag_type = /obj/item/ammo_box/magazine/rifle47x33mm
+ default_ammo_type = /obj/item/ammo_box/magazine/rifle47x33mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/rifle47x33mm,
+ )
spread = 7
fire_delay = 0.1 SECONDS
@@ -178,7 +198,10 @@
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
manufacturer = MANUFACTURER_IMPORT
- mag_type = /obj/item/ammo_box/magazine/skm_762_40
+ default_ammo_type = /obj/item/ammo_box/magazine/skm_762_40
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/skm_762_40,
+ )
fire_delay = 0.13 SECONDS
@@ -188,7 +211,7 @@
recoil = 1 //identical to other LMGS
recoil_unwielded = 4 //same as skm
- wield_slowdown = 1 //not as severe as other lmgs, but worse than the normal skm
+ wield_slowdown = SAW_SLOWDOWN //not as severe as other lmgs, but worse than the normal skm
wield_delay = 0.85 SECONDS //faster than normal lmgs, slower than stock skm
has_bipod = TRUE
@@ -198,17 +221,7 @@
AddElement(/datum/element/update_icon_updates_onmob)
/obj/item/gun/ballistic/automatic/hmg/skm_lmg/extended //spawns with the proper extended magazine, for erts
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/automatic/hmg/skm_lmg/extended/Initialize()
- . = ..()
- magazine = new /obj/item/ammo_box/magazine/skm_762_40/extended(src)
- chamber_round()
+ default_ammo_type = /obj/item/ammo_box/magazine/skm_762_40/extended
/obj/item/gun/ballistic/automatic/hmg/skm_lmg/drum_mag //spawns with a drum, maybe not for erts but admin enhanced ERTS? when things really go to shit
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/automatic/hmg/skm_lmg/drum_mag/Initialize()
- . = ..()
- magazine = new /obj/item/ammo_box/magazine/skm_762_40/drum(src)
- chamber_round()
+ default_ammo_type = /obj/item/ammo_box/magazine/skm_762_40/drum
diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm
index 2044fae60ee2..3e33689fef7b 100644
--- a/code/modules/projectiles/guns/ballistic/launchers.dm
+++ b/code/modules/projectiles/guns/ballistic/launchers.dm
@@ -4,7 +4,10 @@
/obj/item/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes
desc = "A break-action, single-shot grenade launcher. A compact way to deliver a big boom."
name = "grenade launcher"
- mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/grenadelauncher
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/grenadelauncher,
+ )
fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg'
w_class = WEIGHT_CLASS_NORMAL
bolt_type = BOLT_TYPE_NO_BOLT
@@ -24,7 +27,10 @@
name = "multi grenade launcher"
icon = 'icons/mecha/mecha_equipment.dmi'
icon_state = "mecha_grenadelnchr"
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/grenademulti
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/grenademulti,
+ )
/obj/item/gun/ballistic/revolver/grenadelauncher/cyborg/attack_self()
return
@@ -34,7 +40,10 @@
desc = "A prototype pistol designed to fire self-propelled rockets."
icon_state = "gyropistol"
fire_sound = 'sound/weapons/gun/general/grenade_launch.ogg'
- mag_type = /obj/item/ammo_box/magazine/m75
+ default_ammo_type = /obj/item/ammo_box/magazine/m75
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m75,
+ )
burst_size = 1
fire_delay = 0.4 SECONDS
actions_types = list()
@@ -49,7 +58,14 @@ GLOBAL_LIST_INIT(rpg_scrawlings, list(
"A drawing of the Rilena character 'T4L1' smoking a boof",
"\"Eat it corpo!\"",
"A Sarathi woman in a suggestive pose",
- "\"Arm this!\""
+ "A masculine Sarathi shouldering a launcher",
+ "A Vox woman with a sledgehammer over their shoulder",
+ "A man in a floral patterned shirt and nothing else, drawn leaning against the rocket's tube",
+ "A crudely-drawn picture of a Gorlex Marauder exploding",
+ "A scratched-out link to some kind of website",
+ ".:|:;",
+ "\"SPEAR TO THE SHOAL, FOR A FREE FRONTIER!\"",
+ "\"Arm this!\"",
))
@@ -59,7 +75,10 @@ GLOBAL_LIST_INIT(rpg_scrawlings, list(
icon_state = "rocketlauncher"
item_state = "rocketlauncher"
- mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/rocketlauncher
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/rocketlauncher,
+ )
fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg'
load_sound = 'sound/weapons/gun/general/rocket_load.ogg'
gun_firemodes = list(FIREMODE_SEMIAUTO)
diff --git a/code/modules/projectiles/guns/ballistic/marksman.dm b/code/modules/projectiles/guns/ballistic/marksman.dm
index 9d63e66bcab7..71458e24f1d2 100644
--- a/code/modules/projectiles/guns/ballistic/marksman.dm
+++ b/code/modules/projectiles/guns/ballistic/marksman.dm
@@ -1,8 +1,7 @@
-
/obj/item/gun/ballistic/automatic/marksman
show_magazine_on_sprite = TRUE
burst_size = 1
zoomable = TRUE //this var as true without setting anything else produces a 2x zoom
- wield_slowdown = 2
+ wield_slowdown = DMR_SLOWDOWN
wield_delay = 1 SECONDS
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index e81b57d43f37..dd483aa4965e 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -1,5 +1,6 @@
/obj/item/gun/ballistic/automatic/pistol
bolt_type = BOLT_TYPE_LOCKING
+ w_class = WEIGHT_CLASS_NORMAL
vary_fire_sound = FALSE
fire_sound_volume = 90
@@ -15,49 +16,10 @@
fire_delay = 0.2 SECONDS
spread = 5
spread_unwielded = 7
- wield_slowdown = 0.15
+ wield_slowdown = PISTOL_SLOWDOWN
muzzleflash_iconstate = "muzzle_flash_light"
-/obj/item/gun/ballistic/automatic/pistol/candor
- name = "\improper Candor"
- desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. Chambered in .45."
- icon_state = "candor"
- item_state = "hp_generic"
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- mag_type = /obj/item/ammo_box/magazine/m45
- fire_sound = 'sound/weapons/gun/pistol/candor.ogg'
- rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
- lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg'
- bolt_drop_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
- load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
- eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
- eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
-
-EMPTY_GUN_HELPER(automatic/pistol/candor)
-
-/obj/item/gun/ballistic/automatic/pistol/candor/factory //also give this to the srm, their candors should probably look factory fresh from how well taken care of they are
- desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of 'Hunter's Pride Arms and Ammunition'. This example has been kept in especially good shape, and may as well be fresh out of the workshop. Chambered in .45."
- item_state = "hp_generic_fresh"
-
-EMPTY_GUN_HELPER(automatic/pistol/candor/factory)
-
-/obj/item/gun/ballistic/automatic/pistol/candor/factory/update_overlays()
- . = ..()
- . += "[initial(icon_state)]_factory"
-
-/obj/item/gun/ballistic/automatic/pistol/candor/phenex
- name = "\improper HP Phenex"
- desc = "A uniquely modified version of the Candor, famously created by Hunter's Pride. Named after the daemonic Phoenix of legend that the Ashen Huntsman had once slain, this hell-kissed weapon is more visually intimidating than its original counterpart, but mechanically acts the same. Chambered in .45."
- icon_state = "phenex"
- item_state = "hp_phenex"
-
/obj/item/gun/ballistic/automatic/pistol/deagle
name = "\improper Desert Eagle"
desc = "An oversized handgun chambered in .50 AE. A true hand cannon."
@@ -67,7 +29,10 @@ EMPTY_GUN_HELPER(automatic/pistol/candor/factory)
mob_overlay_icon = 'icons/obj/guns/manufacturer/frontier_import/onmob.dmi'
icon_state = "deagle"
force = 14
- mag_type = /obj/item/ammo_box/magazine/m50
+ default_ammo_type = /obj/item/ammo_box/magazine/m50
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m50,
+ )
mag_display = TRUE
show_magazine_on_sprite = TRUE
fire_sound = 'sound/weapons/gun/pistol/deagle.ogg'
@@ -97,43 +62,6 @@ EMPTY_GUN_HELPER(automatic/pistol/candor/factory)
icon_state = "deaglecamo"
item_state = "deagleg"
-/obj/item/gun/ballistic/automatic/pistol/commander
- name = "\improper Commander"
- desc = "A classic handgun in a tasteful black and stainless steel color scheme. An enamel Nanotrasen logo is set into the grips. Chambered in 9mm."
- icon_state = "commander"
- icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/onmob.dmi'
-
- w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/co9mm
- manufacturer = MANUFACTURER_NANOTRASEN
- fire_sound = 'sound/weapons/gun/pistol/rattlesnake.ogg'
- load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
- load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
- eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
- eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
-
- rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg'
- lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg'
- bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg'
-
-EMPTY_GUN_HELPER(automatic/pistol/commander)
-
-/obj/item/gun/ballistic/automatic/pistol/commander/inteq
- name = "\improper Commissioner"
- desc = "A handgun seized from Nanotrasen armories by deserting troopers and modified to IRMG's standards. A yellow IRMG shield is set into the grips. Chambered in 9mm."
- icon = 'icons/obj/guns/manufacturer/inteq/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/inteq/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/inteq/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/inteq/onmob.dmi'
- icon_state = "commander-inteq"
- item_state = "commander-inteq"
- manufacturer = MANUFACTURER_INTEQ
-
-EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
-
/obj/item/gun/ballistic/automatic/pistol/commissar
name = "\improper Commissar"
desc = "A Nanotrasen-issue handgun, modified with a voice box to further enhance its effectiveness in troop discipline."
@@ -144,7 +72,10 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
mob_overlay_icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/onmob.dmi'
w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/co9mm
+ default_ammo_type = /obj/item/ammo_box/magazine/co9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/co9mm,
+ )
var/funnysounds = TRUE
var/cooldown = 0
load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
@@ -197,33 +128,6 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
if(funnysounds)
. += "Alt-click to use \the [src] vox hailer."
-/obj/item/gun/ballistic/automatic/pistol/solgov
- name = "\improper Pistole C"
- desc = "A favorite of the Terran Regency that is despised by the Solarian bureaucracy. Shifted out of military service centuries ago, though still popular among civilians. Chambered in 5.56mm caseless."
- icon_state = "pistole-c"
- icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
-
- weapon_weight = WEAPON_LIGHT
- mag_type = /obj/item/ammo_box/magazine/pistol556mm
- fire_sound = 'sound/weapons/gun/pistol/pistolec.ogg'
- manufacturer = MANUFACTURER_SOLARARMORIES
- load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
- load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
- eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
- eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
-
- rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg'
- lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg'
- bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg'
-
- fire_select_icon_state_prefix = "caseless_"
-
-/obj/item/gun/ballistic/automatic/pistol/solgov/old
- icon_state = "pistole-c-old"
-
/obj/item/gun/ballistic/automatic/pistol/disposable
name = "disposable gun"
desc = "An exceedingly flimsy plastic gun that is extremely cheap to produce. You get what you pay for."
@@ -231,7 +135,10 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
icon_state = "disposable" //credit to discord user 20nypercent for the sprite
w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/disposable
+ default_ammo_type = /obj/item/ammo_box/magazine/disposable
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/disposable,
+ )
custom_materials = list(/datum/material/plastic=2000)
manufacturer = MANUFACTURER_NONE
has_safety = FALSE //thing barely costs anything, why would it have a safety?
@@ -256,7 +163,10 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- mag_type = /obj/item/ammo_box/magazine/internal/derr38
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/derr38
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/derr38,
+ )
fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg'
eject_sound = 'sound/weapons/gun/revolver/empty.ogg'
@@ -291,15 +201,19 @@ EMPTY_GUN_HELPER(automatic/pistol/commander/inteq)
mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi'
icon_state = "derringer_syndie"
- mag_type = /obj/item/ammo_box/magazine/internal/derr357
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/derr357
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/derr357,
+ )
fire_sound_volume = 50 //Tactical stealth firing
/obj/item/gun/ballistic/derringer/gold
name = "\improper Golden Derringer"
desc = "The golden sheen is somewhat counter-intuitive on a holdout weapon, but it looks cool. Uses .357 ammo."
icon_state = "derringer_gold"
- mag_type = /obj/item/ammo_box/magazine/internal/derr357
-
-/obj/item/gun/ballistic/derringer/no_mag
- spawnwithmagazine = FALSE
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/derr357
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/derr357,
+ )
+EMPTY_GUN_HELPER(ballistic/derringer)
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index e0e389ce7f4a..36fece5f8c31 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -10,7 +10,10 @@
name = "i demand"
desc = "You feel as if you should make a 'adminhelp' if you see one of these, along with a 'github' report. You don't really understand what this means though."
icon_state = "revolver"
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder,
+ )
fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
rack_sound = 'sound/weapons/gun/revolver/revolver_prime.ogg'
load_sound = 'sound/weapons/gun/revolver/load_bullet.ogg'
@@ -36,7 +39,7 @@
bolt_wording = "hammer"
dry_fire_sound = 'sound/weapons/gun/general/bolt_drop.ogg'
dry_fire_text = "snap"
- wield_slowdown = 0.3
+ wield_slowdown = REVOLVER_SLOWDOWN
gun_firemodes = list(FIREMODE_SEMIAUTO)
default_firemode = FIREMODE_SEMIAUTO
@@ -455,91 +458,8 @@
playsound(src, 'sound/items/handling/ammobox_pickup.ogg', 20, FALSE)
return
-/obj/item/gun/ballistic/revolver/detective
- name = "\improper HP Detective Special"
- desc = "A small law enforcement firearm. Originally commissioned by Nanotrasen for their Private Investigation division, it has become extremely popular among independent civilians as a cheap, compact sidearm. Uses .38 Special rounds."
- fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg'
- icon_state = "detective"
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38
- obj_flags = UNIQUE_RENAME
- semi_auto = TRUE //double action
- safety_wording = "safety"
- unique_reskin = list("Default" = "detective",
- "Stainless Steel" = "detective_stainless",
- "Gold Trim" = "detective_gold",
- "Leopard Spots" = "detective_leopard",
- "The Peacemaker" = "detective_peacemaker",
- "Black Panther" = "detective_panther"
- )
- w_class = WEIGHT_CLASS_SMALL
- manufacturer = MANUFACTURER_HUNTERSPRIDE
-
- recoil = 0 //weaker than normal revolver, no recoil
- fire_delay = 0.2 SECONDS
-
-EMPTY_GUN_HELPER(revolver/detective)
-
-/obj/item/gun/ballistic/revolver/detective/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/ammo_hud/revolver) //note that the hud at the moment only supports 6 round revolvers, 7 or 5 isn't supported rn
-//...why...?
-/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, burst_firing = FALSE, spread_override = 0, iteration = 0)
- if(magazine.caliber != initial(magazine.caliber))
- if(prob(100 - (magazine.ammo_count() * 5))) //minimum probability of 70, maximum of 95
- playsound(user, fire_sound, fire_sound_volume, vary_fire_sound)
- to_chat(user, "[src] blows up in your face!")
- user.take_bodypart_damage(0,20)
- explosion(src, 0, 0, 1, 1)
- user.dropItemToGround(src)
- return 0
- ..()
-
-/obj/item/gun/ballistic/revolver/detective/screwdriver_act(mob/living/user, obj/item/I)
- if(..())
- return TRUE
- if(magazine.caliber == "38")
- to_chat(user, "You begin to reinforce the barrel of [src]...")
- if(magazine.ammo_count())
- afterattack(user, user) //you know the drill
- user.visible_message("[src] goes off!", "[src] goes off in your face!")
- return TRUE
- if(I.use_tool(src, user, 30))
- if(magazine.ammo_count())
- to_chat(user, "You can't modify it!")
- return TRUE
- magazine.caliber = ".357"
- fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
- desc = "The barrel and chamber assembly seems to have been modified."
- to_chat(user, "You reinforce the barrel of [src]. Now it will fire .357 rounds.")
- else
- to_chat(user, "You begin to revert the modifications to [src]...")
- if(magazine.ammo_count())
- afterattack(user, user) //and again
- user.visible_message("[src] goes off!", "[src] goes off in your face!")
- return TRUE
- if(I.use_tool(src, user, 30))
- if(magazine.ammo_count())
- to_chat(user, "You can't modify it!")
- return
- magazine.caliber = ".38"
- fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
- desc = initial(desc)
- to_chat(user, "You remove the modifications on [src]. Now it will fire .38 rounds.")
- return TRUE
-
-/obj/item/gun/ballistic/revolver/detective/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/revolver/viper/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/revolver/no_mag
- spawnwithmagazine = FALSE
+EMPTY_GUN_HELPER(revolver)
+EMPTY_GUN_HELPER(revolver/viper)
/obj/item/gun/ballistic/revolver/mateba
name = "\improper Unica 6 auto-revolver"
@@ -562,106 +482,3 @@ EMPTY_GUN_HELPER(revolver/detective)
fire_sound = 'sound/weapons/resonator_blast.ogg'
recoil = 8
manufacturer = MANUFACTURER_NONE
-
-/obj/item/gun/ballistic/revolver/montagne
- name = "\improper HP Montagne"
- desc = "An ornate break-open revolver issued to high-ranking members of the Saint-Roumain Militia. Chambered in .44."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- icon_state = "montagne"
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- spread_unwielded = 15
- recoil = 0
-
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44/montagne
-
-/obj/item/gun/ballistic/revolver/montagne/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/ammo_hud/revolver)
-
-/obj/item/gun/ballistic/revolver/montagne/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/revolver/ashhand
- name = "HP Ashhand"
- desc = "A massive, long-barreled revolver often used by the Saint-Roumain Militia as protection against big game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- icon_state = "ashhand"
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570
- fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg'
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- gate_loaded = TRUE
- fire_delay = 0.6 SECONDS
- wield_slowdown = 0.5
- spread_unwielded = 20
- spread = 6
- recoil = 2
- recoil_unwielded = 4
-
-/obj/item/gun/ballistic/revolver/ashhand/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/ammo_hud/revolver)
-
-/obj/item/gun/ballistic/revolver/firebrand
- name = "\improper HP Firebrand"
- desc = "An archaic precursor to revolver-type firearms, this gun was rendered completely obsolete millennia ago. While fast to fire, it is extremely inaccurate. Uses .357 ammo."
- icon_state = "pepperbox"
- item_state = "hp_generic_fresh"
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox
- spread = 20
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- spread_unwielded = 50
- fire_delay = 0 SECONDS
- gate_offset = 4
- semi_auto = TRUE
- safety_wording = "safety"
-
-/obj/item/gun/ballistic/revolver/firebrand/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/revolver/shadow
- name = "\improper HP Shadow"
- desc = "A mid-size revolver. Despite the antiquated design, it is cheap, reliable, and stylish, making it a favorite among fast-drawing spacers and the officers of various militaries, as well as small-time police units. Chambered in .44."
- fire_sound = 'sound/weapons/gun/revolver/cattleman.ogg'
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- icon_state = "shadow"
- item_state = "hp_generic"
-
- mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- obj_flags = UNIQUE_RENAME
- gate_loaded = TRUE
- unique_reskin = list("Shadow" = "shadow",
- "Army" = "shadow_army",
- "General" = "shadow_general",
- "Frontier Scout" = "shadow_frontier",
- "Nanotrasen Special" = "shadow_nanotrasen",
- "Hired Gun" = "shadow_hiredgun",
- "Buntline" = "shadow_buntline",
- "Cavalry Special" = "shadow_cavalry"
- )
-
- recoil = 0 //weaker than normal revolver, no recoil
- spread_unwielded = 10
-
-/obj/item/gun/ballistic/revolver/shadow/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/ammo_hud/revolver)
-
-/obj/item/gun/ballistic/revolver/shadow/no_mag
- spawnwithmagazine = FALSE
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index a61413057606..b60ab788ba80 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -5,10 +5,12 @@
mob_overlay_icon = 'icons/mob/clothing/back.dmi'
icon_state = "hunting"
item_state = "hunting"
- mag_type = /obj/item/ammo_box/magazine/internal/boltaction
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/boltaction
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/boltaction,
+ )
bolt_wording = "bolt"
w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_HEAVY
slot_flags = ITEM_SLOT_BACK
bolt_type = BOLT_TYPE_STANDARD
semi_auto = FALSE
@@ -29,7 +31,7 @@
spread_unwielded = 48
recoil = -3
recoil_unwielded = 4
- wield_slowdown = 1
+ wield_slowdown = RIFLE_SLOWDOWN
wield_delay = 1.2 SECONDS
/obj/item/gun/ballistic/rifle/update_overlays()
@@ -51,7 +53,7 @@
/obj/item/gun/ballistic/rifle/eject_magazine(mob/user, display_message = TRUE, obj/item/ammo_box/magazine/tac_load = null)
if (!bolt_locked && empty_autoeject)
- to_chat(user, "The bolt is closed!")
+ to_chat(user, span_notice("The bolt is closed!"))
return
return ..()
@@ -62,7 +64,7 @@
/obj/item/gun/ballistic/rifle/attackby(obj/item/A, mob/user, params)
if (!bolt_locked)
- to_chat(user, "The bolt is closed!")
+ to_chat(user, span_notice("The bolt is closed!"))
return
return ..()
@@ -70,113 +72,6 @@
. = ..()
. += "The bolt is [bolt_locked ? "open" : "closed"]."
-/obj/item/gun/ballistic/rifle/illestren
- name = "\improper HP Illestren"
- desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, the Illestren is popular among colonists, pirates, snipers, and countless others. Chambered in 8x50mmR."
- icon_state = "illestren"
- item_state = "illestren"
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- sawn_desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch."
- eject_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg'
- eject_empty_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg'
-
- internal_magazine = FALSE
- mag_type = /obj/item/ammo_box/magazine/illestren_a850r
- empty_autoeject = TRUE
- eject_sound_vary = FALSE
- can_be_sawn_off = TRUE
- manufacturer = MANUFACTURER_HUNTERSPRIDE
-
-/obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry!
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE)
- . = ..()
- if(.)
- spread = 24
- spread_unwielded = 30
- item_state = "illestren_sawn"
- mob_overlay_state = item_state
- weapon_weight = WEAPON_MEDIUM //you can fire it onehanded, makes it worse than worse than useless onehanded, but you can
-
-/obj/item/gun/ballistic/rifle/illestren/blow_up(mob/user)
- . = FALSE
- if(chambered && chambered.BB)
- process_fire(user, user, FALSE)
- . = TRUE
-
-/obj/item/gun/ballistic/rifle/illestren/factory
- desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, this example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in 8x50mmR."
- icon_state = "illestren_factory"
- item_state = "illestren_factory"
-
-/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "illestren_factory_sawn"
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/rifle/illestren/sawn
- desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch."
- sawn_off = TRUE
-
-/obj/item/gun/ballistic/rifle/solgov
- name = "SSG-669C"
- desc = "A bolt-action sniper rifle used by Solarian troops. Beloved for its rotary design and accuracy. Chambered in 8x58mm Caseless."
- mag_type = /obj/item/ammo_box/magazine/internal/boltaction/solgov
- icon_state = "ssg669c"
- item_state = "ssg669c"
- icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
-
- fire_sound = 'sound/weapons/gun/rifle/ssg669c.ogg'
- can_be_sawn_off = FALSE
-
- zoomable = TRUE
- zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
- zoom_out_amt = 5
-
- manufacturer = MANUFACTURER_SOLARARMORIES
- spread = -5
- spread_unwielded = 20
- recoil = 0
- recoil_unwielded = 4
- wield_slowdown = 1
- wield_delay = 1.3 SECONDS
-
-/obj/item/gun/ballistic/rifle/scout
- name = "HP Scout"
- desc = "A powerful bolt-action rifle usually given to mercenary hunters of the Saint-Roumain Militia, equally suited for taking down big game or two-legged game. Chambered in .300 Magnum."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- icon_state = "scout"
- item_state = "scout"
-
- mag_type = /obj/item/ammo_box/magazine/internal/boltaction/smile
- fire_sound = 'sound/weapons/gun/rifle/scout.ogg'
-
- rack_sound = 'sound/weapons/gun/rifle/scout_bolt_out.ogg'
- bolt_drop_sound = 'sound/weapons/gun/rifle/scout_bolt_in.ogg'
-
- can_be_sawn_off = FALSE
-
- zoomable = TRUE
- zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
- zoom_out_amt = 5
-
- manufacturer = MANUFACTURER_HUNTERSPRIDE
-
-/obj/item/gun/ballistic/rifle/scout/no_mag
- spawnwithmagazine = FALSE
-
/obj/item/gun/ballistic/rifle/polymer
name = "polymer survivor rifle"
desc = "A bolt-action rifle made of scrap, desperation, and luck. Likely to shatter at any moment. Chambered in 7.62x40mm."
@@ -185,6 +80,9 @@
item_state = "crackhead_rifle"
weapon_weight = WEAPON_HEAVY
w_class = WEIGHT_CLASS_BULKY
- mag_type = /obj/item/ammo_box/magazine/internal/boltaction/polymer
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/boltaction/polymer
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/boltaction/polymer,
+ )
can_be_sawn_off = FALSE
manufacturer = MANUFACTURER_NONE
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index ab85fb9a01c4..551856a088b1 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -11,7 +11,10 @@
force = 10
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/internal/shot
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot,
+ )
semi_auto = FALSE
internal_magazine = TRUE
casing_ejector = FALSE
@@ -27,7 +30,7 @@
default_firemode = FIREMODE_SEMIAUTO
fire_select_icon_state_prefix = "sg_"
- wield_slowdown = 0.45
+ wield_slowdown = SHOTGUN_SLOWDOWN
wield_delay = 0.8 SECONDS
spread = 4
@@ -48,85 +51,6 @@
return TRUE
return FALSE
-// BRIMSTONE SHOTGUN //
-
-/obj/item/gun/ballistic/shotgun/brimstone
- name = "HP Brimstone"
- desc = "A simple and sturdy pump-action shotgun sporting a 5-round capacity, manufactured by Hunter's Pride. Found widely throughout the Frontier in the hands of hunters, pirates, police, and countless others. Chambered in 12g."
- sawn_desc = "A stockless and shortened pump-action shotgun. The worsened recoil and accuracy make it a poor sidearm anywhere beyond punching distance."
- fire_sound = 'sound/weapons/gun/shotgun/brimstone.ogg'
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- icon_state = "brimstone"
- item_state = "brimstone"
-
- gun_firemodes = list(FIREMODE_FULLAUTO)
- default_firemode = FIREMODE_FULLAUTO
-
- mag_type = /obj/item/ammo_box/magazine/internal/shot/lethal
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- fire_delay = 0.05 SECONDS //slamfire
- rack_delay = 0.2 SECONDS
-
- can_be_sawn_off = TRUE
-
-
-/obj/item/gun/ballistic/shotgun/brimstone/sawoff(forced = FALSE)
- . = ..()
- if(.)
- weapon_weight = WEAPON_MEDIUM
- wield_slowdown = 0.25
- wield_delay = 0.3 SECONDS //OP? maybe
-
- spread = 18
- spread_unwielded = 25
- recoil = 5 //your punishment for sawing off an short shotgun
- recoil_unwielded = 8
- item_state = "illestren_factory_sawn" // i couldnt care about making another sprite, looks close enough
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/shotgun/brimstone/no_mag
- spawnwithmagazine = FALSE
-// HELLFIRE SHOTGUN //
-
-/obj/item/gun/ballistic/shotgun/hellfire
- name = "HP Hellfire"
- desc = "A hefty pump-action riot shotgun with a seven-round tube, manufactured by Hunter's Pride. Especially popular among the Frontier's police forces. Chambered in 12g."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- icon_state = "hellfire"
- item_state = "hellfire"
-
- mag_type = /obj/item/ammo_box/magazine/internal/shot/riot
- sawn_desc = "Come with me if you want to live."
- can_be_sawn_off = TRUE
- rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg'
- fire_delay = 0.1 SECONDS
-
-/obj/item/gun/ballistic/shotgun/hellfire/sawoff(forced = FALSE)
- . = ..()
- if(.)
- var/obj/item/ammo_box/magazine/internal/tube = magazine
- tube.max_ammo = 5 //this makes the gun so much worse
-
- weapon_weight = WEAPON_MEDIUM
- wield_slowdown = 0.25
- wield_delay = 0.3 SECONDS //OP? maybe
-
- spread = 8
- spread_unwielded = 15
- recoil = 3 //or not
- recoil_unwielded = 5
- item_state = "dshotgun_sawn" // ditto
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/shotgun/hellfire/no_mag
- spawnwithmagazine = FALSE
// Automatic Shotguns//
/obj/item/gun/ballistic/shotgun/automatic
spread = 4
@@ -137,24 +61,7 @@
manufacturer = MANUFACTURER_NANOTRASEN
semi_auto = TRUE
-//im not sure what to do with the combat shotgun, as it's functionally the same as the semi auto shotguns except it automattically racks instead of being semi-auto
-
-/obj/item/gun/ballistic/shotgun/automatic/combat
- name = "combat shotgun"
- desc = "A semi-automatic shotgun with tactical furniture and six-shell capacity underneath."
- icon_state = "cshotgun"
- item_state = "shotgun_combat"
- fire_delay = 0.5 SECONDS
- mag_type = /obj/item/ammo_box/magazine/internal/shot/com
- w_class = WEIGHT_CLASS_BULKY
-
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact
- name = "compact combat shotgun"
- desc = "A compact version of the semi-automatic combat shotgun. For close encounters."
- icon_state = "cshotgunc"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact
- w_class = WEIGHT_CLASS_NORMAL
- weapon_weight = WEAPON_MEDIUM
+ gunslinger_recoil_bonus = 1
//Dual Feed Shotgun
@@ -169,7 +76,10 @@
icon_state = "cycler"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/tube
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/tube
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/tube,
+ )
w_class = WEIGHT_CLASS_HUGE
var/toggled = FALSE
var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine
@@ -182,7 +92,7 @@
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/Initialize()
. = ..()
if (!alternate_magazine)
- alternate_magazine = new mag_type(src)
+ alternate_magazine = new default_ammo_type(src)
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/attack_self(mob/living/user)
if(!chambered && magazine.contents.len)
@@ -211,160 +121,15 @@
desc = "A variation of the Bulldog, seized from Syndicate armories by deserting troopers then modified to IRMG's standards."
icon_state = "bulldog_inteq"
item_state = "bulldog_inteq"
- mag_type = /obj/item/ammo_box/magazine/m12g_bulldog
+ default_ammo_type = /obj/item/ammo_box/magazine/m12g_bulldog
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m12g_bulldog,
+ )
manufacturer = MANUFACTURER_INTEQ
-EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
-
-
-/////////////////////////////
-// DOUBLE BARRELED SHOTGUN //
-/////////////////////////////
+NO_MAG_GUN_HELPER(shotgun/automatic/bulldog/inteq)
-/obj/item/gun/ballistic/shotgun/doublebarrel
- name = "double-barreled shotgun"
- desc = "A classic break action shotgun, hand-made in a Hunter's Pride workshop. Both barrels can be fired in quick succession or even simultaneously. Guns like this have been popular with hunters, sporters, and criminals for millennia. Chambered in 12g."
- sawn_desc = "A break action shotgun cut down to the size of a sidearm. While the recoil is even harsher, it offers a lot of power in a very small package. Chambered in 12g."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- base_icon_state = "dshotgun"
-
- icon_state = "dshotgun"
- item_state = "dshotgun"
-
- rack_sound = 'sound/weapons/gun/shotgun/dbshotgun_break.ogg'
- bolt_drop_sound = 'sound/weapons/gun/shotgun/dbshotgun_close.ogg'
-
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_MEDIUM
- force = 10
- flags_1 = CONDUCT_1
- slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
-
- obj_flags = UNIQUE_RENAME
- unique_reskin = list("Default" = "dshotgun",
- "Stainless Steel" = "dshotgun_white",
- "Stained Green" = "dshotgun_green"
- )
- semi_auto = TRUE
- can_be_sawn_off = TRUE
- bolt_type = BOLT_TYPE_NO_BOLT
- pb_knockback = 3 // it's a super shotgun!
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- bolt_wording = "barrel"
-
- burst_delay = 0.05 SECONDS
- burst_size = 2
- gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST)
- default_firemode = FIREMODE_SEMIAUTO
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/unique_action(mob/living/user)
- if (bolt_locked == FALSE)
- to_chat(user, "You snap open the [bolt_wording] of \the [src].")
- playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
- chambered = null
- var/num_unloaded = 0
- for(var/obj/item/ammo_casing/casing_bullet in get_ammo_list(FALSE, TRUE))
- casing_bullet.forceMove(drop_location())
- var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
- casing_bullet.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_bullet.bounce_sfx_override)
-
- num_unloaded++
- SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name)
- if (num_unloaded)
- playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
- update_appearance()
- bolt_locked = TRUE
- update_appearance()
- return
- drop_bolt(user)
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/drop_bolt(mob/user = null)
- playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE)
- if (user)
- to_chat(user, "You snap the [bolt_wording] of \the [src] closed.")
- chamber_round()
- bolt_locked = FALSE
- update_appearance()
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/can_shoot()
- if (bolt_locked)
- return FALSE
- return ..()
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/attackby(obj/item/A, mob/user, params)
- if (!bolt_locked)
- to_chat(user, "The [bolt_wording] is shut closed!")
- return
- return ..()
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/update_icon_state()
- . = ..()
- if(current_skin)
- icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]"
- else
- icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]"
-
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user)
- . = ..()
- if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked))
- reskin_obj(user)
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(forced = FALSE)
- . = ..()
- if(.)
- weapon_weight = WEAPON_MEDIUM
- wield_slowdown = 0.25
- wield_delay = 0.3 SECONDS //OP? maybe
-
- spread = 8
- spread_unwielded = 15
- recoil = 3 //or not
- recoil_unwielded = 5
- item_state = "dshotgun_sawn"
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/no_mag
- spawnwithmagazine = FALSE
-
-// sawn off beforehand
-/obj/item/gun/ballistic/shotgun/doublebarrel/presawn
- name = "sawn-off double-barreled shotgun"
- desc = "A break action shotgun cut down to the size of a sidearm. While the recoil is even harsher, it offers a lot of power in a very small package. Chambered in 12g."
- sawn_off = TRUE
- weapon_weight = WEAPON_MEDIUM
- w_class = WEIGHT_CLASS_NORMAL
- slot_flags = ITEM_SLOT_BELT
-
- wield_slowdown = 0.25
- wield_delay = 0.3 SECONDS //OP? maybe
-
- spread = 8
- spread_unwielded = 15
- recoil = 3 //or not
- recoil_unwielded = 5
- item_state = "dshotgun_sawn"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/dual/lethal
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/roumain
- name = "HP antique double-barreled shotgun"
- desc = "A special-edition shotgun hand-made by Hunter's Pride with a high-quality walnut stock inlaid with brass scrollwork. Shotguns like this are very rare outside of the Saint-Roumain Militia's ranks. Otherwise functionally identical to a common double-barreled shotgun. Chambered in 12g."
- sawn_desc = "A special-edition Hunter's Pride shotgun, cut down to the size of a sidearm by some barbarian. The brass inlay on the stock and engravings on the barrel have been obliterated in the process, destroying any value beyond its use as a crude sidearm."
- base_icon_state = "dshotgun_srm"
- icon_state = "dshotgun_srm"
- item_state = "dshotgun_srm"
- unique_reskin = null
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "dshotgun_srm_sawn"
// IMPROVISED SHOTGUN //
@@ -372,8 +137,8 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
name = "improvised shotgun"
desc = "A length of pipe and miscellaneous bits of scrap fashioned into a rudimentary single-shot shotgun."
icon = 'icons/obj/guns/projectile.dmi'
- lefthand_file = GUN_LEFTHAND_ICON
- righthand_file = GUN_RIGHTHAND_ICON
+ lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi'
mob_overlay_icon = null
base_icon_state = "ishotgun"
@@ -382,7 +147,10 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
w_class = WEIGHT_CLASS_BULKY
force = 10
slot_flags = null
- mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/improvised
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/improvised,
+ )
sawn_desc = "I'm just here for the gasoline."
unique_reskin = null
var/slung = FALSE
@@ -426,53 +194,6 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn
sawn_off = TRUE
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact
- name = "compact compact combat shotgun"
- desc = "A compact version of the compact version of the semi automatic combat shotgun. For when you want a gun the same size as your brain."
- icon_state = "cshotguncc"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact/compact
- w_class = WEIGHT_CLASS_SMALL
- sawn_desc = "You know, this isn't funny anymore."
- can_be_sawn_off = TRUE
-
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- if(prob(0 + (magazine.ammo_count() * 20))) //minimum probability of 20, maximum of 60
- playsound(user, fire_sound, fire_sound_volume, vary_fire_sound)
- to_chat(user, "[src] blows up in your face!")
- if(prob(25))
- user.take_bodypart_damage(0,75)
- explosion(src, 0, 0, 1, 1)
- user.dropItemToGround(src)
- else
- user.take_bodypart_damage(0,50)
- user.dropItemToGround(src)
- return 0
- ..()
-
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact/compact
- name = "compact compact compact combat shotgun"
- desc = "A compact version of the compact version of the compact version of the semi automatic combat shotgun. It's a miracle it works..."
- icon_state = "cshotgunccc"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact/compact/compact
- w_class = WEIGHT_CLASS_TINY
- sawn_desc = "Sigh. This is a trigger attached to a bullet."
- can_be_sawn_off = TRUE
-
-/obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact/compact/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- if(prob(50)) //It's going to blow up.
- playsound(user, fire_sound, fire_sound_volume, vary_fire_sound)
- if(prob(50))
- to_chat(user, "Fu-")
- user.take_bodypart_damage(100)
- explosion(src, 0, 0, 1, 1)
- user.dropItemToGround(src)
- else
- to_chat(user, "[src] blows up in your face! What a surprise.")
- user.take_bodypart_damage(100)
- user.dropItemToGround(src)
- return 0
- ..()
-
//god fucking bless brazil
/obj/item/gun/ballistic/shotgun/doublebarrel/brazil
name = "six-barreled \"TRABUCO\" shotgun"
@@ -482,11 +203,16 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
icon = 'icons/obj/guns/48x32guns.dmi'
lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi'
righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi'
+ inhand_x_dimension = 64
+ inhand_y_dimension = 64
item_state = "shotgun_qb"
w_class = WEIGHT_CLASS_BULKY
force = 15 //blunt edge and really heavy
attack_verb = list("bludgeoned", "smashed")
- mag_type = /obj/item/ammo_box/magazine/internal/shot/sex
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/sex
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/sex,
+ )
burst_size = 6
burst_delay = 0.04 SECONDS //?? very weird number
pb_knockback = 12
@@ -529,281 +255,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq)
recoil_unwielded = 200
recoil_backtime_multiplier = 1
fire_sound_volume = 100
- mag_type = /obj/item/ammo_box/magazine/internal/shot/hundred
-
-//Lever-Action Rifles
-/obj/item/gun/ballistic/shotgun/flamingarrow
- name = "HP Flaming Arrow"
- desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. A popular choice among Frontier homesteaders for hunting small game and rudimentary self-defense. Chambered in .38."
- sawn_desc = "A lever-action rifle that has been sawed down and modified for extra portability. While surprisingly effective as a sidearm, the more important benefit is how much cooler it looks."
- base_icon_state = "flamingarrow"
- icon_state = "flamingarrow"
- item_state = "flamingarrow"
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- inhand_x_dimension = 32
- inhand_y_dimension = 32
- mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester
- fire_sound = 'sound/weapons/gun/rifle/flamingarrow.ogg'
- rack_sound = 'sound/weapons/gun/rifle/skm_cocked.ogg'
- bolt_wording = "lever"
- cartridge_wording = "bullet"
- can_be_sawn_off = TRUE
-
- wield_slowdown = 0.5
- wield_delay = 0.65 SECONDS
-
- spread = -5
- spread_unwielded = 7
-
- recoil = 0
- recoil_unwielded = 2
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/update_icon_state()
- . = ..()
- if(current_skin)
- icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]"
- else
- icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""]"
-
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/rack(mob/user = null)
- . = ..()
- if(!wielded)
- SpinAnimation(7,1)
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
- var/fan = FALSE
- if(HAS_TRAIT(user, TRAIT_GUNSLINGER) && !semi_auto && wielded_fully && loc == user && !safety)
- fan = TRUE
- fire_delay = 0.35 SECONDS
- . = ..()
- fire_delay = src::fire_delay
- if(fan)
- rack()
- to_chat(user, "You quickly rack the [bolt_wording] of \the [src]!")
- balloon_alert_to_viewers("quickly racks!")
- fire_delay = 0 SECONDS
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(forced = FALSE)
- . = ..()
- if(.)
- var/obj/item/ammo_box/magazine/internal/tube = magazine
- tube.max_ammo = 7
-
- item_state = "flamingarrow_sawn"
- mob_overlay_state = item_state
- weapon_weight = WEAPON_MEDIUM
-
- wield_slowdown = 0.25
- wield_delay = 0.2 SECONDS //THE COWBOY RIFLE
-
- spread = 4
- spread_unwielded = 12
-
- recoil = 0
- recoil_unwielded = 3
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/factory
- desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. This example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in .38."
- icon_state = "flamingarrow_factory"
- base_icon_state = "flamingarrow_factory"
- item_state = "flamingarrow_factory"
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "flamingarrow_factory_sawn"
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/bolt
- name = "HP Flaming Bolt"
- desc = "A sturdy, excellently-made lever-action rifle. This one appears to be a genuine antique, kept in incredibly good condition despite its advanced age. Chambered in .38."
- base_icon_state = "flamingbolt"
- icon_state = "flamingbolt"
- item_state = "flamingbolt"
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "flamingbolt_sawn"
- mob_overlay_state = item_state
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/absolution
- name = "HP Absolution"
- base_icon_state = "absolution"
- icon_state = "absolution"
- item_state = "absolution"
- fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
- desc = "A large lever-action rifle with hand-stamped Hunter's Pride marks on the receiver and an 8 round ammunition capacity. More powerful than the Flaming Arrow, the Absolution is a popular pick for hunting larger fauna like bears and goliaths, especially when a bolt action's slower rate of fire would be a liability. Chambered in .357."
- sawn_desc = "A large lever-action rifle, sawn down for portability. It looks much cooler, but you should probably be using a revolver..."
- mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/absolution
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(forced = FALSE)
- . = ..()
- if(.)
- var/obj/item/ammo_box/magazine/internal/tube = magazine
- tube.max_ammo = 8
-
- item_state = "illestren_sawn"
- mob_overlay_state = item_state
- weapon_weight = WEAPON_MEDIUM
-
- wield_slowdown = 0.25
- wield_delay = 0.2 SECONDS
-
- spread = 4
- spread_unwielded = 12
-
- recoil = 0
- recoil_unwielded = 3
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration
- name = "HP Conflagration"
- base_icon_state = "conflagration"
- icon_state = "conflagration"
- item_state = "conflagration"
- fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
- desc = "A lightweight lever-action shotgun with a 5 round ammunition capacity. The lever action allows it to be cycled quickly and acurrately. In theory, you could ever operate it one-handed. Chambered in 12g."
- sawn_desc = "A lever action shotgun that's been sawed down for portability. The recoil makes it mostly useless outside of point-blank range, but it hits hard for its size and, more importantly, can be flipped around stylishly."
- mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(forced = FALSE)
- . = ..()
- if(.)
- var/obj/item/ammo_box/magazine/internal/tube = magazine
- tube.max_ammo = 5
-
- item_state = "beacon_factory_sawn"
- mob_overlay_state = item_state
- weapon_weight = WEAPON_MEDIUM
-
- wield_slowdown = 0.25
- wield_delay = 0.2 SECONDS
-
- spread = 4
- spread_unwielded = 12
-
- recoil = 0
- recoil_unwielded = 3
-
-/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/no_mag
- spawnwithmagazine = FALSE
-
-//Elephant Gun
-/obj/item/gun/ballistic/shotgun/doublebarrel/twobore
- name = "HP Huntsman"
- desc = "A comically huge double-barreled rifle replete with brass inlays depicting flames and naturalistic scenes, clearly meant for the nastiest monsters the Frontier has to offer. If you want an intact trophy, don't aim for the head. Chambered in two-bore."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
- inhand_x_dimension = 32
- inhand_y_dimension = 32
- base_icon_state = "huntsman"
- icon_state = "huntsman"
- item_state = "huntsman"
- unique_reskin = null
- attack_verb = list("bludgeoned", "smashed")
- mag_type = /obj/item/ammo_box/magazine/internal/shot/twobore
- w_class = WEIGHT_CLASS_BULKY
- force = 20 //heavy ass elephant gun, why wouldnt it be
- recoil = 4
- pb_knockback = 12
- fire_sound = 'sound/weapons/gun/shotgun/quadfire.ogg'
- rack_sound = 'sound/weapons/gun/shotgun/quadrack.ogg'
- load_sound = 'sound/weapons/gun/shotgun/quadinsert.ogg'
-
- can_be_sawn_off = FALSE
- fire_sound_volume = 80
- rack_sound_volume = 50
- manufacturer = MANUFACTURER_HUNTERSPRIDE
-
- gun_firemodes = list(FIREMODE_SEMIAUTO) //no dual burst for you
- default_firemode = FIREMODE_SEMIAUTO
-
-//Break-Action Rifle
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon
- name = "HP Beacon"
- desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. Boasts excellent accuracy and stopping power. Uses .45-70 ammo."
- sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
- base_icon_state = "beacon"
- icon_state = "beacon"
- item_state = "beacon"
- unique_reskin = null
- inhand_x_dimension = 32
- inhand_y_dimension = 32
- mag_type = /obj/item/ammo_box/magazine/internal/shot/beacon
- fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg'
- w_class = WEIGHT_CLASS_BULKY
- weapon_weight = WEAPON_MEDIUM
- force = 10
- obj_flags = UNIQUE_RENAME
- semi_auto = TRUE
- can_be_sawn_off = TRUE
- pb_knockback = 3
- wield_slowdown = 0.7
- spread_unwielded = 15
- spread = 0
- recoil = 0
- recoil_unwielded = 5
-
- gun_firemodes = list(FIREMODE_SEMIAUTO)
- default_firemode = FIREMODE_SEMIAUTO
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "beacon_sawn"
- mob_overlay_state = item_state
- wield_slowdown = 0.5
- wield_delay = 0.5 SECONDS
-
- spread_unwielded = 20 //mostly the hunting revolver stats
- spread = 6
- recoil = 2
- recoil_unwielded = 4
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/no_mag
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory
- desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. This example has been kept in excellent shape and may as well be fresh out of the workshop. Uses .45-70 ammo."
- sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
- base_icon_state = "beacon_factory"
- icon_state = "beacon_factory"
- item_state = "beacon_factory"
-
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(forced = FALSE)
- . = ..()
- if(.)
- item_state = "beacon_factory_sawn"
- mob_overlay_state = item_state
-
-//pre sawn off beacon
-/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/presawn
- name = "sawn-off HP Beacon"
- sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
- sawn_off = TRUE
- w_class = WEIGHT_CLASS_NORMAL
- slot_flags = ITEM_SLOT_BELT
-
- weapon_weight = WEAPON_MEDIUM
-
- item_state = "beacon_sawn"
- mob_overlay_state = "beacon_sawn"
- wield_slowdown = 0.5
- wield_delay = 0.5 SECONDS
-
- spread_unwielded = 20 //mostly the hunting revolver stats
- spread = 6
- recoil = 2
- recoil_unwielded = 4
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/hundred
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/hundred,
+ )
diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm
index 6f52daaf2292..620c53583205 100644
--- a/code/modules/projectiles/guns/ballistic/smg.dm
+++ b/code/modules/projectiles/guns/ballistic/smg.dm
@@ -7,7 +7,7 @@
spread = 6
spread_unwielded = 10
- wield_slowdown = 0.35
+ wield_slowdown = SMG_SLOWDOWN
recoil_unwielded = 4
w_class = WEIGHT_CLASS_BULKY
@@ -33,7 +33,10 @@
mob_overlay_icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/onmob.dmi'
icon_state = "wt550"
item_state = "arg"
- mag_type = /obj/item/ammo_box/magazine/wt550m9
+ default_ammo_type = /obj/item/ammo_box/magazine/wt550m9
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/wt550m9,
+ )
actions_types = list()
show_magazine_on_sprite = TRUE
show_magazine_on_sprite_ammo = TRUE
@@ -42,7 +45,7 @@
fire_sound = 'sound/weapons/gun/smg/smg_heavy.ogg'
/obj/item/gun/ballistic/automatic/smg/wt550/no_mag
- spawnwithmagazine = FALSE
+ default_ammo_type = FALSE
/obj/item/gun/ballistic/automatic/smg/vector
name = "\improper Vector carbine"
@@ -53,44 +56,15 @@
mob_overlay_icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/onmob.dmi'
icon_state = "vector"
item_state = "vector"
- mag_type = /obj/item/ammo_box/magazine/smgm9mm //you guys remember when the autorifle was chambered in 9mm
+ default_ammo_type = /obj/item/ammo_box/magazine/smgm9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/smgm9mm,
+ ) //you guys remember when the autorifle was chambered in 9mm
bolt_type = BOLT_TYPE_LOCKING
show_magazine_on_sprite = TRUE
weapon_weight = WEAPON_LIGHT
fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
-
-/obj/item/gun/ballistic/automatic/smg/firestorm //weapon designed by Apogee-dev
- name = "HP Firestorm"
- desc = "An unconventional submachinegun, rarely issued to Saint-Roumain Militia mercenary hunters for outstanding situations where normal hunting weapons fall short. Chambered in .45."
- icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
- lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
- righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
- mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
-
- icon_state = "firestorm"
- item_state = "firestorm"
- mag_type = /obj/item/ammo_box/magazine/c45_firestorm_mag
- unique_mag_sprites_for_variants = TRUE
- burst_size = 1
- actions_types = list()
- fire_delay = 0.13 SECONDS
- bolt_type = BOLT_TYPE_OPEN
- rack_sound = 'sound/weapons/gun/smg/uzi_cocked.ogg'
- fire_sound = 'sound/weapons/gun/smg/firestorm.ogg'
-
-
- manufacturer = MANUFACTURER_HUNTERSPRIDE
- wield_slowdown = 0.4
-
-/obj/item/gun/ballistic/automatic/smg/firestorm/pan //spawns with pan magazine, can take sticks instead of just drums, not sure where this would be used, maybe erts?
- spawnwithmagazine = FALSE
-
-/obj/item/gun/ballistic/automatic/smg/firestorm/pan/Initialize()
- . = ..()
- magazine = new /obj/item/ammo_box/magazine/c45_firestorm_mag/pan(src)
- chamber_round()
-
/obj/item/gun/ballistic/automatic/smg/skm_carbine
name = "\improper SKM-24v"
desc = "The SKM-24v was a carbine modification of the SKM-24 during the Frontiersmen War. This, however, is just a shoddy imitation of that carbine, effectively an SKM-24 with a sawed down barrel and a folding wire stock. Can be fired with the stock folded, though accuracy suffers. Chambered in 4.6x30mm."
@@ -110,7 +84,10 @@
weapon_weight = WEAPON_MEDIUM
w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/skm_545_39
+ default_ammo_type = /obj/item/ammo_box/magazine/skm_46_30
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/skm_46_30,
+ )
recoil = 2
recoil_unwielded = 6
@@ -119,7 +96,7 @@
spread_unwielded = 14
wield_delay = 0.6 SECONDS
- wield_slowdown = 0.35
+ wield_slowdown = SMG_SLOWDOWN
valid_attachments = list(
/obj/item/attachment/silencer,
@@ -161,7 +138,10 @@
icon_state = "skm_inteqsmg"
item_state = "skm_inteqsmg"
- mag_type = /obj/item/ammo_box/magazine/smgm10mm
+ default_ammo_type = /obj/item/ammo_box/magazine/smgm10mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/smgm10mm,
+ )
manufacturer = MANUFACTURER_INTEQ
fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
@@ -188,14 +168,41 @@
)
default_attachments = list(/obj/item/attachment/foldable_stock/inteq)
-/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto
+/obj/item/gun/ballistic/automatic/smg/skm_carbine/saber
name = "\improper Nanotrasen Saber SMG"
desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock."
icon = 'icons/obj/guns/projectile.dmi'
- default_attachments = list(/obj/item/attachment/foldable_stock)
icon_state = "saber"
item_state = "gun"
- mag_type = /obj/item/ammo_box/magazine/smgm9mm
+
+ default_ammo_type = /obj/item/ammo_box/magazine/smgm9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/smgm9mm,
+ )
+
+ fire_sound = 'sound/weapons/gun/smg/vector_fire.ogg'
+
+ load_sound = 'sound/weapons/gun/smg/smg_reload.ogg'
+ load_empty_sound = 'sound/weapons/gun/smg/smg_reload.ogg'
+ eject_sound = 'sound/weapons/gun/smg/smg_unload.ogg'
+ eject_empty_sound = 'sound/weapons/gun/smg/smg_unload.ogg'
+
+ spread = 7
+ spread_unwielded = 10
+
+ recoil = 0
+ recoil_unwielded = 4
+
+ wield_delay = 0.4 SECONDS
+
+ valid_attachments = list(
+ /obj/item/attachment/silencer,
+ /obj/item/attachment/laser_sight,
+ /obj/item/attachment/rail_light,
+ /obj/item/attachment/bayonet,
+ /obj/item/attachment/foldable_stock
+ )
+ default_attachments = list(/obj/item/attachment/foldable_stock)
bolt_type = BOLT_TYPE_LOCKING
show_magazine_on_sprite = TRUE
manufacturer = MANUFACTURER_NANOTRASEN_OLD
diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm
index 43a9415671d6..016cbe94f4c5 100644
--- a/code/modules/projectiles/guns/ballistic/toy.dm
+++ b/code/modules/projectiles/guns/ballistic/toy.dm
@@ -9,7 +9,10 @@
icon_state = "toysmg"
item_state = "toysmg"
- mag_type = /obj/item/ammo_box/magazine/toy/smg
+ default_ammo_type = /obj/item/ammo_box/magazine/toy/smg
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/toy/smg,
+ )
fire_sound = 'sound/items/syringeproj.ogg'
force = 0
throwforce = 0
@@ -29,7 +32,10 @@
item_state = "toypistol"
bolt_type = BOLT_TYPE_LOCKING
w_class = WEIGHT_CLASS_SMALL
- mag_type = /obj/item/ammo_box/magazine/toy/pistol
+ default_ammo_type = /obj/item/ammo_box/magazine/toy/pistol
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/toy/pistol,
+ )
fire_sound = 'sound/items/syringeproj.ogg'
burst_size = 1
fire_delay = 0.2 SECONDS
@@ -38,7 +44,7 @@
recoil_unwielded = -10
/obj/item/gun/ballistic/automatic/toy/pistol/riot
- mag_type = /obj/item/ammo_box/magazine/toy/pistol/riot
+ default_ammo_type = /obj/item/ammo_box/magazine/toy/pistol/riot
/obj/item/gun/ballistic/automatic/toy/pistol/riot/Initialize()
magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src)
@@ -58,7 +64,10 @@
force = 0
throwforce = 0
- mag_type = /obj/item/ammo_box/magazine/internal/shot/toy
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/toy
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/toy,
+ )
fire_sound = 'sound/items/syringeproj.ogg'
item_flags = NONE
casing_ejector = FALSE
@@ -76,7 +85,10 @@
desc = "A weapon favored by many overactive children. Ages 8 and up."
icon_state = "foamcrossbow"
item_state = "crossbow"
- mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/toy/crossbow,
+ )
fire_sound = 'sound/items/syringeproj.ogg'
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index fe697c66f083..5b57ad51fbf6 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -3,6 +3,7 @@
desc = "A basic energy-based gun."
icon = 'icons/obj/guns/energy.dmi'
icon_state = "laser"
+ item_state = "spur"
muzzleflash_iconstate = "muzzle_flash_laser"
muzzle_flash_color = COLOR_SOFT_RED
@@ -18,13 +19,25 @@
fire_select_icon_state_prefix = "laser_"
+ default_ammo_type = /obj/item/stock_parts/cell/gun
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/stock_parts/cell/gun/upgraded,
+ /obj/item/stock_parts/cell/gun/empty,
+ /obj/item/stock_parts/cell/gun/upgraded/empty,
+ )
+
tac_reloads = FALSE
tactical_reload_delay = 1.2 SECONDS
-
+// [CELADON_REMOVE] - CELADON BALANCE - часть ненужной системы оффов
+// var/latch_closed = TRUE
+// var/latch_toggle_delay = 1.0 SECONDS
+// [/CELADON_REMOVE]
valid_attachments = list(
/obj/item/attachment/laser_sight,
/obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
+ /obj/item/attachment/bayonet,
+ /obj/item/attachment/sling
)
slot_available = list(
ATTACHMENT_SLOT_RAIL = 1
@@ -49,14 +62,16 @@
/obj/item/gun/energy/get_cell()
return cell
-/obj/item/gun/energy/Initialize()
+/obj/item/gun/energy/Initialize(mapload, spawn_empty)
. = ..()
- if(cell_type)
- cell = new cell_type(src)
- else
- cell = new(src)
- if(dead_cell)
- cell.use(cell.maxcharge)
+ if(spawn_empty)
+ if(internal_magazine)
+ spawn_no_ammo = TRUE
+ else
+ default_ammo_type = FALSE
+
+ if(default_ammo_type)
+ cell = new default_ammo_type(src, spawn_no_ammo)
update_ammo_types()
recharge_newshot(TRUE)
if(selfcharge)
@@ -103,7 +118,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/gun/energy/attack_hand(mob/user)
- if(!internal_cell && loc == user && user.is_holding(src) && cell && tac_reloads)
+ if(!internal_magazine && loc == user && user.is_holding(src) && cell && tac_reloads)
eject_cell(user)
return
return ..()
@@ -114,10 +129,13 @@
update_appearance()
/obj/item/gun/energy/attackby(obj/item/A, mob/user, params)
- if (!internal_cell && istype(A, /obj/item/stock_parts/cell/gun))
+ if (!internal_magazine && (A.type in (allowed_ammo_types - blacklisted_ammo_types)))
var/obj/item/stock_parts/cell/gun/C = A
if (!cell)
+// [CELADON-EDIT] - CELADON BALANCE - продолжаем убирать систему люков оффов
+// return insert_cell(user, C) CELADON-EDIT -> ORIGINAL
insert_cell(user, C)
+// [/CELADON-EDIT]
else
if (tac_reloads)
eject_cell(user, C)
@@ -125,12 +143,19 @@
return ..()
/obj/item/gun/energy/proc/insert_cell(mob/user, obj/item/stock_parts/cell/gun/C)
- if(mag_size == MAG_SIZE_SMALL && !istype(C, /obj/item/stock_parts/cell/gun/mini))
- to_chat(user, span_warning("\The [C] doesn't seem to fit into \the [src]..."))
- return FALSE
- if(mag_size == MAG_SIZE_LARGE && !istype(C, /obj/item/stock_parts/cell/gun/large))
- to_chat(user, span_warning("\The [C] doesn't seem to fit into \the [src]..."))
- return FALSE
+// [CELADON-EDIT] - CELADON BALANCE - возвращает старый код для перезарядки батареек, убирает новый код люков
+// if(!latch_closed)
+// if(user.transferItemToLoc(C, src))
+// cell = C
+// to_chat(user, span_notice("You load the [C] into \the [src]."))
+// playsound(src, load_sound, load_sound_volume, load_sound_vary)
+// update_appearance()
+// return TRUE
+// else
+// to_chat(user, span_warning("You cannot seem to get \the [src] out of your hands!"))
+// return FALSE
+// else
+// to_chat(user, span_warning("The [src]'s cell retainment clip is latched!")) // CELADON-EDIT -> ORIGINAL
if(user.transferItemToLoc(C, src))
cell = C
to_chat(user, span_notice("You load the [C] into \the [src]."))
@@ -140,6 +165,7 @@
else
to_chat(user, span_warning("You cannot seem to get \the [src] out of your hands!"))
return FALSE
+// [/CELADON-EDIT]
/obj/item/gun/energy/proc/eject_cell(mob/user, obj/item/stock_parts/cell/gun/tac_load = null)
playsound(src, load_sound, load_sound_volume, load_sound_vary)
@@ -170,8 +196,37 @@
// to_chat(user, span_notice("You remove the power cell."))
// eject_cell(user)
// return ..()
-// [/CELADON-REMOVE]
-
+// [/CELADON-REMOVE] // ЕСЛИ БУДЕТ РАНТАЙМИТЬ, СНЕСТИ СНИЗУ
+
+// [CELADON-REMOVE] - CELADON BALANCE - часть новой бесполезной системы люков от оффов
+// //special is_type_in_list method to counteract problem with current method
+// /obj/item/gun/energy/proc/is_attachment_in_contents_list()
+// for(var/content_item in contents)
+// if(istype(content_item, /obj/item/attachment/))
+// return TRUE
+// return FALSE
+//
+// /obj/item/gun/energy/AltClick(mob/living/user)
+// if(!internal_magazine && latch_closed)
+// to_chat(user, span_notice("You start to unlatch the [src]'s power cell retainment clip..."))
+// if(do_after(user, latch_toggle_delay, src, IGNORE_USER_LOC_CHANGE))
+// to_chat(user, span_notice("You unlatch the [src]'s power cell retainment clip " + "OPEN" + "."))
+// playsound(src, 'sound/items/taperecorder/taperecorder_play.ogg', 50, FALSE)
+// tac_reloads = TRUE
+// latch_closed = FALSE
+// update_appearance()
+// else if(!internal_magazine && !latch_closed)
+// if(!cell && is_attachment_in_contents_list())
+// return ..() //should bring up the attachment menu if attachments are added. If none are added, it just does leaves the latch open
+// to_chat(user, span_warning("You start to latch the [src]'s power cell retainment clip..."))
+// if (do_after(user, latch_toggle_delay, src, IGNORE_USER_LOC_CHANGE))
+// to_chat(user, span_notice("You latch the [src]'s power cell retainment clip " + "CLOSED" + "."))
+// playsound(src, 'sound/items/taperecorder/taperecorder_close.ogg', 50, FALSE)
+// tac_reloads = FALSE
+// latch_closed = TRUE
+// update_appearance()
+// return
+// [/CELADON_REMOVE]
/obj/item/gun/energy/can_shoot(visuals)
if(safety && !visuals)
return FALSE
@@ -210,7 +265,17 @@
/obj/item/gun/energy/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
if(!chambered && can_shoot())
process_chamber() // If the gun was drained and then recharged, load a new shot.
+// [CELADON-REMOVE] - CELADON BALANCE - очередная часть системы оффов
+// ..() //process the gunshot as normal
+// if(!latch_closed && prob(65)) //make the cell slide out if it's fired while the retainment clip is unlatched, with a 65% probability
+// to_chat(user, span_warning("The [src]'s cell falls out!"))
+// eject_cell()
+// [/CELADON-REMOVE]
+
+// [CELADON-EDIT]
+// return // CELADON-EDIT -> ORIGINAL
return ..()
+// [/CELADON-EDIT]
/obj/item/gun/energy/proc/select_fire(mob/living/user)
select++
@@ -249,6 +314,22 @@
var/overlay_icon_state = "[icon_state]_charge"
var/obj/item/ammo_casing/energy/shot = ammo_type[modifystate ? select : 1]
var/ratio = get_charge_ratio()
+// [CELADON-REMOVE] - CELADON-BALANCE - очередная система люков оффов
+// if(ismob(loc) && !internal_magazine)
+// var/mutable_appearance/latch_overlay
+// latch_overlay = mutable_appearance('icons/obj/guns/cell_latch.dmi')
+// if(latch_closed)
+// if(cell)
+// latch_overlay.icon_state = "latch-on-full"
+// else
+// latch_overlay.icon_state = "latch-on-empty"
+// else
+// if(cell)
+// latch_overlay.icon_state = "latch-off-full"
+// else
+// latch_overlay.icon_state = "latch-off-empty"
+// . += latch_overlay
+// [/CELADON-REMOVE]
if(cell)
. += "[icon_state]_cell"
if(ratio == 0)
@@ -319,6 +400,10 @@
/obj/item/gun/energy/examine(mob/user)
. = ..()
+// [CELADON-REMOVE] - CELADON BALANCE - часть плохой системы оффов
+// if(!internal_magazine)
+// . += "The cell retainment latch is [latch_closed ? "CLOSED" : "OPEN"]. Alt-Click to toggle the latch."
+// [CELADON-REMOVE]
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
if(ammo_type.len > 1)
. += "You can switch firemodes by pressing the unique action key. By default, this is space"
diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm
index 90bfa9a8ead1..14b0b4639d19 100644
--- a/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -11,10 +11,12 @@
modifystate = TRUE
ammo_x_offset = 2
dual_wield_spread = 60
+ wield_slowdown = LASER_RIFLE_SLOWDOWN
manufacturer = MANUFACTURER_SHARPLITE_NEW
+ w_class = WEIGHT_CLASS_NORMAL
/obj/item/gun/energy/e_gun/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/e_gun/mini
name = "miniature energy gun"
@@ -22,19 +24,21 @@
icon_state = "mini"
item_state = "gun"
w_class = WEIGHT_CLASS_SMALL
- cell_type = /obj/item/stock_parts/cell/gun/mini
- mag_size = MAG_SIZE_SMALL
+ default_ammo_type = /obj/item/stock_parts/cell/gun/mini
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/mini,
+ )
throwforce = 11 //This is funny, trust me.
ammo_x_offset = 2
charge_sections = 3
wield_delay = 0.2 SECONDS
- wield_slowdown = 0.15
+ wield_slowdown = LASER_PISTOL_SLOWDOWN
spread = 2
spread_unwielded = 5
/obj/item/gun/energy/e_gun/mini/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/e_gun/hades
name = "SL AL-655 'Hades' energy rifle"
@@ -43,7 +47,7 @@
ammo_x_offset = 2
charge_sections = 5
ammo_type = list(/obj/item/ammo_casing/energy/laser/assault, /obj/item/ammo_casing/energy/disabler)
- cell_type = /obj/item/stock_parts/cell/gun/upgraded
+ default_ammo_type = /obj/item/stock_parts/cell/gun/upgraded
weapon_weight = WEAPON_MEDIUM
w_class = WEIGHT_CLASS_BULKY
@@ -55,7 +59,7 @@
fire_delay = 0.2 SECONDS
wield_delay = 0.7 SECONDS
- wield_slowdown = 0.6
+ wield_slowdown = HEAVY_LASER_RIFLE_SLOWDOWN
spread_unwielded = 20
/obj/item/gun/energy/e_gun/old
@@ -69,7 +73,7 @@
/obj/item/gun/energy/e_gun/hos
name = "\improper X-01 MultiPhase Energy Gun"
desc = "This is an expensive, modern recreation of an antique laser gun. This gun has several unique firemodes, but lacks the ability to recharge over time."
- cell_type = /obj/item/stock_parts/cell/gun/upgraded
+ default_ammo_type = /obj/item/stock_parts/cell/gun/upgraded
icon_state = "hoslaser"
force = 10
ammo_type = list(/obj/item/ammo_casing/energy/disabler/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/ion/hos, /obj/item/ammo_casing/energy/electrode/hos)
@@ -108,16 +112,21 @@
/obj/item/gun/energy/e_gun/turret
name = "hybrid turret gun"
- desc = "A heavy hybrid energy cannon with two settings: Stun and kill."
+ desc = "A heavy hybrid energy cannon with two settings: Stun and kill. ...It doesn't seem have a trigger, seems it can only be used as a turret."
icon_state = "turretlaser"
item_state = "turretlaser"
slot_flags = null
w_class = WEIGHT_CLASS_HUGE
+ default_ammo_type = null
ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser)
weapon_weight = WEAPON_HEAVY
trigger_guard = TRIGGER_GUARD_NONE
ammo_x_offset = 2
+/obj/item/gun/energy/e_gun/turret/pre_fire(atom/target, mob/living/user, message, flag, params, zone_override, bonus_spread, dual_wielded_gun)
+ to_chat(user, span_notice("[src] is not designed to be fired by hand."))
+ return FALSE
+
/obj/item/gun/energy/e_gun/nuclear
name = "advanced energy gun"
desc = "An energy gun with an experimental miniaturized nuclear reactor that automatically charges the internal power cell."
@@ -125,7 +134,7 @@
item_state = "nucgun"
charge_delay = 5
can_charge = FALSE
- internal_cell = TRUE
+ internal_magazine = TRUE
ammo_x_offset = 2
ammo_type = list(/obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler)
selfcharge = 1
@@ -184,16 +193,18 @@
item_state = "gun"
ammo_x_offset = 2
charge_sections = 6
- mag_size = MAG_SIZE_SMALL
wield_delay = 0.2 SECONDS
- wield_slowdown = 0.15
+ wield_slowdown = LASER_PISTOL_SLOWDOWN
spread = 2
spread_unwielded = 5
ammo_type = list(/obj/item/ammo_casing/energy/disabler/hitscan, /obj/item/ammo_casing/energy/ion/cheap)
- cell_type = /obj/item/stock_parts/cell/gun/mini
+ default_ammo_type = /obj/item/stock_parts/cell/gun/mini
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/mini,
+ )
/obj/item/gun/energy/e_gun/adv_stopping
name = "advanced stopping revolver"
@@ -215,6 +226,7 @@
weapon_weight = WEAPON_LIGHT
fire_delay = 0.13 SECONDS
+ wield_slowdown = LASER_SMG_SLOWDOWN
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
default_firemode = FIREMODE_SEMIAUTO
@@ -229,8 +241,8 @@
icon_state = "iotshotgun"
item_state = "shotgun_combat"
shaded_charge = TRUE
- w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter/ultima, /obj/item/ammo_casing/energy/laser/ultima)
+ w_class = WEIGHT_CLASS_BULKY
var/obj/item/modular_computer/integratedNTOS
var/NTOS_type = /obj/item/modular_computer/internal
@@ -249,3 +261,6 @@
dual_wield_spread = 140
shaded_charge = TRUE
manufacturer = MANUFACTURER_EOEHOMA
+
+/obj/item/gun/energy/e_gun/e11/empty_cell
+ spawn_no_ammo = TRUE
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 5d0e8d54e4e2..c7cebd1025be 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -4,12 +4,15 @@
icon_state = "kineticgun"
item_state = "kineticgun"
ammo_type = list(/obj/item/ammo_casing/energy/kinetic)
- cell_type = /obj/item/stock_parts/cell/emproof
+ default_ammo_type = /obj/item/stock_parts/cell/emproof
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/emproof,
+ )
item_flags = NONE
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
automatic_charge_overlays = FALSE
- internal_cell = TRUE //prevents you from giving it an OP cell - WS Edit
+ internal_magazine = TRUE //prevents you from giving it an OP cell - WS Edit
custom_price = 750
w_class = WEIGHT_CLASS_BULKY
diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm
index eff3d67b2df1..358492ded068 100644
--- a/code/modules/projectiles/guns/energy/laser.dm
+++ b/code/modules/projectiles/guns/energy/laser.dm
@@ -2,8 +2,6 @@
name = "SL L-204 laser gun"
desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal."
- icon_state = "laser"
- item_state = "laser"
w_class = WEIGHT_CLASS_NORMAL
custom_materials = list(/datum/material/iron=2000)
ammo_type = list(/obj/item/ammo_casing/energy/lasergun)
@@ -16,7 +14,7 @@
spread_unwielded = 10
/obj/item/gun/energy/laser/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/laser/practice
name = "practice laser gun"
@@ -96,8 +94,10 @@
icon_state = "lasercannon"
item_state = "laser"
w_class = WEIGHT_CLASS_BULKY
- mag_size = MAG_SIZE_LARGE
- cell_type = "/obj/item/stock_parts/cell/gun/large"
+ default_ammo_type = /obj/item/stock_parts/cell/gun/large
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/large,
+ )
force = 10
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BACK
@@ -129,6 +129,7 @@
item_state = null
ammo_type = list(/obj/item/ammo_casing/energy/xray)
ammo_x_offset = 3
+ w_class = WEIGHT_CLASS_BULKY
////////Laser Tag////////////////////
@@ -170,8 +171,8 @@
inhand_y_dimension = 64
icon_state = "iotshotgun"
item_state = "shotgun_combat"
- w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/disabler/scatter/ultima)
+ w_class = WEIGHT_CLASS_BULKY
var/obj/item/modular_computer/integratedNTOS
var/NTOS_type = /obj/item/modular_computer/internal
manufacturer = MANUFACTURER_SHARPLITE_NEW
@@ -203,17 +204,19 @@
item_state = "gun"
ammo_x_offset = 2
charge_sections = 4
- mag_size = MAG_SIZE_SMALL
- w_class = WEIGHT_CLASS_NORMAL
- cell_type = /obj/item/stock_parts/cell/gun/mini
+ default_ammo_type = /obj/item/stock_parts/cell/gun/mini
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/mini,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/lasergun/hitscan)
manufacturer = MANUFACTURER_SHARPLITE_NEW
/obj/item/gun/energy/laser/hitscanpistol/examine_more(mob/user)
+ . = ..()
if(in_range(src, user) || isobserver(user))
- . = list("You examine [src] closer. Under the grip is a small inscription: \"NT CN SVALINN 462\".")
+ . += "You examine [src] closer. Under the grip is a small inscription: \"NT CN SVALINN 462\"."
else
- . = list("You try to examine [src] closer, but you're too far away.")
+ . += "You try to examine [src] closer, but you're too far away."
/obj/item/gun/energy/laser/e10
name = "E-10 laser pistol"
@@ -226,7 +229,7 @@
w_class = WEIGHT_CLASS_SMALL
wield_delay = 0.2 SECONDS
- wield_slowdown = 0.15
+ wield_slowdown = LASER_PISTOL_SLOWDOWN
spread = 2
spread_unwielded = 5
@@ -245,20 +248,22 @@
icon_state = "e50"
item_state = "e50"
- mag_size = MAG_SIZE_LARGE
- cell_type = /obj/item/stock_parts/cell/gun/large
+ default_ammo_type = /obj/item/stock_parts/cell/gun/large
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/large,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/laser/eoehoma/e50)
weapon_weight = WEAPON_HEAVY
+ w_class = WEIGHT_CLASS_BULKY
manufacturer = MANUFACTURER_EOEHOMA
wield_delay = 0.7 SECONDS
- wield_slowdown = 0.6
+ wield_slowdown = LASER_SNIPER_SLOWDOWN
spread_unwielded = 20
shaded_charge = FALSE
ammo_x_offset = 4
charge_sections = 2
- w_class = WEIGHT_CLASS_BULKY
slot_flags = 0
diff --git a/code/modules/projectiles/guns/energy/laser_gatling.dm b/code/modules/projectiles/guns/energy/laser_gatling.dm
index 22e6e57d8817..066b19386486 100644
--- a/code/modules/projectiles/guns/energy/laser_gatling.dm
+++ b/code/modules/projectiles/guns/energy/laser_gatling.dm
@@ -116,7 +116,10 @@
custom_materials = null
weapon_weight = WEAPON_MEDIUM
ammo_type = list(/obj/item/ammo_casing/energy/laser/minigun)
- cell_type = /obj/item/stock_parts/cell/crap
+ default_ammo_type = /obj/item/stock_parts/cell/crap
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/crap,
+ )
item_flags = NEEDS_PERMIT | SLOWS_WHILE_IN_HAND
can_charge = FALSE
var/obj/item/minigunpack/ammo_pack
diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm
index 40fd10e94785..973297d1b4e4 100644
--- a/code/modules/projectiles/guns/energy/pulse.dm
+++ b/code/modules/projectiles/guns/energy/pulse.dm
@@ -13,8 +13,11 @@
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BACK
ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse, /obj/item/ammo_casing/energy/laser)
- internal_cell = TRUE //prevents you from giving it an OP cell - WS Edit
- cell_type = /obj/item/stock_parts/cell/pulse //somone make this backpack mounted, or connected to the deathsquad suit at some point
+ internal_magazine = TRUE //prevents you from giving it an OP cell - WS Edit
+ default_ammo_type = /obj/item/stock_parts/cell/pulse
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/pulse,
+ ) //somone make this backpack mounted, or connected to the deathsquad suit at some point
manufacturer = MANUFACTURER_SHARPLITE_NEW
ammo_x_offset = 2
charge_sections = 6
@@ -38,9 +41,11 @@
slot_flags = ITEM_SLOT_BACK
icon_state = "pulse_carbine"
item_state = null
- internal_cell = FALSE
- mag_size = MAG_SIZE_LARGE //haha gun go brr
- cell_type = /obj/item/stock_parts/cell/gun/large
+ internal_magazine = FALSE
+ default_ammo_type = /obj/item/stock_parts/cell/gun/large
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/large,
+ )
ammo_x_offset = 2
charge_sections = 4
@@ -69,14 +74,20 @@
slot_flags = ITEM_SLOT_BELT
icon_state = "pulse_pistol"
item_state = "gun"
- cell_type = /obj/item/stock_parts/cell/pulse/pistol
+ default_ammo_type = /obj/item/stock_parts/cell/pulse/pistol
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/pulse/pistol,
+ )
ammo_x_offset = 2
charge_sections = 4
/obj/item/gun/energy/pulse/destroyer
name = "pulse destroyer"
desc = "A heavy-duty energy rifle built for pure destruction."
- cell_type = /obj/item/stock_parts/cell/infinite
+ default_ammo_type = /obj/item/stock_parts/cell/infinite
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/infinite,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse)
/obj/item/gun/energy/pulse/destroyer/attack_self(mob/living/user)
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 067a4bbc5d97..ba8dfc7386a2 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -7,7 +7,6 @@
ammo_x_offset = 2
ammo_y_offset = 2
w_class = WEIGHT_CLASS_HUGE
- mag_size = MAG_SIZE_LARGE //yes, you can put the comically large cell in it. No, you aren't getting it roundstart. You slut.
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BACK
ammo_type = list(/obj/item/ammo_casing/energy/ion)
@@ -17,7 +16,7 @@
return
/obj/item/gun/energy/ionrifle/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/ionrifle/carbine
name = "ion carbine"
@@ -59,7 +58,10 @@
item_state = "c20r"
w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/meteor)
- cell_type = /obj/item/stock_parts/cell/potato
+ default_ammo_type = /obj/item/stock_parts/cell/potato
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/potato,
+ )
selfcharge = 1
/obj/item/gun/energy/meteorgun/pen
@@ -124,8 +126,8 @@
usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg')
tool_behaviour = TOOL_DECONSTRUCT
wall_decon_damage = 200
- toolspeed = 0.9 //plasmacutters can be used like angle grinders, and are a bit faster
- internal_cell = TRUE //so you don't cheese through the need for plasma - WS EDIT
+ toolspeed = 1 //plasmacutters can be used like angle grinders
+ internal_magazine = TRUE //so you don't cheese through the need for plasma - WS EDIT
var/charge_cut = 100 //amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of cutting
var/adv = FALSE
@@ -287,7 +289,10 @@
desc = "A modified energy weapon re-designed to fire 3D-printed flechettes, pulled directly from the cyborg's internal power source."
icon_state = "l6_cyborg"
icon = 'icons/obj/guns/projectile.dmi'
- cell_type = /obj/item/stock_parts/cell/secborg
+ default_ammo_type = /obj/item/stock_parts/cell/secborg
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/secborg,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/c3dbullet)
can_charge = FALSE
use_cyborg_cell = TRUE
@@ -345,7 +350,7 @@
icon_state = "freezegun"
desc = "A gun that changes temperatures."
ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot)
- cell_type = /obj/item/stock_parts/cell/gun/upgraded
+ default_ammo_type = /obj/item/stock_parts/cell/gun/upgraded
ammo_x_offset = 2
/obj/item/gun/energy/temperature/security
diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm
index a244b188863a..9bc7ed9abac2 100644
--- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm
+++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm
@@ -1,3 +1,7 @@
+#define CLIP_ATTACHMENTS list(list(/obj/item/attachment/silencer, /obj/item/attachment/laser_sight, /obj/item/attachment/rail_light, /obj/item/attachment/bayonet))
+#define CLIP_ATTACHMNENT_POINTS list()
+
+
//########### PISTOLS ###########//
/obj/item/gun/ballistic/automatic/pistol/cm23
name = "\improper CM-23"
@@ -10,7 +14,10 @@
icon_state = "cm23"
item_state = "clip_generic"
w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/cm23
+ default_ammo_type = /obj/item/ammo_box/magazine/cm23
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/cm23,
+ )
// can_suppress = FALSE
fire_sound = 'sound/weapons/gun/pistol/cm23.ogg'
rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
@@ -21,11 +28,29 @@
load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+
+ default_attachments = list(/obj/item/attachment/laser_sight)
+
+ slot_available = list(
+ ATTACHMENT_SLOT_MUZZLE = 1,
+ ATTACHMENT_SLOT_RAIL = 1
+ )
+
+ slot_offsets = list(
+ ATTACHMENT_SLOT_RAIL = list(
+ "x" = 19,
+ "y" = 18,
+ )
+ )
+
recoil_unwielded = 3
+/obj/item/gun/ballistic/automatic/pistol/cm23/no_mag
+ default_ammo_type = FALSE
+
/obj/item/ammo_box/magazine/cm23
name = "CM-23 pistol magazine (10mm)"
- desc = "An 10-round magazine magazine designed for the CM-70 pistol. These rounds do moderate damage, but struggle against armor."
+ desc = "An 10-round magazine magazine designed for the CM-23 pistol. These rounds do moderate damage, but struggle against armor."
icon_state = "cm23_mag-1"
base_icon_state = "cm23_mag"
ammo_type = /obj/item/ammo_casing/c10mm
@@ -36,6 +61,9 @@
. = ..()
icon_state = "[base_icon_state]-[!!ammo_count()]"
+/obj/item/ammo_box/magazine/cm23/empty
+ start_empty = TRUE
+
/obj/item/gun/ballistic/automatic/pistol/cm70
name = "CM-70 machine pistol"
desc = "A compact machine pistol designed to rapidly fire 3-round bursts. Popular with officers and certain special units, the CM-70 is incredibly dangerous at close range. Chambered in 9mm."
@@ -43,10 +71,12 @@
lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi'
righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi'
mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi'
-
icon_state = "cm70"
item_state = "clip_generic"
- mag_type = /obj/item/ammo_box/magazine/m9mm_cm70
+ default_ammo_type = /obj/item/ammo_box/magazine/m9mm_cm70
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m9mm_cm70,
+ )
// can_suppress = FALSE
burst_size = 3
burst_delay = 0.1 SECONDS
@@ -77,6 +107,49 @@
. = ..()
icon_state = "[base_icon_state]_[ammo_count() == 1 ? 1 : round(ammo_count(),3)]"
+/obj/item/gun/ballistic/automatic/pistol/cm357
+ name = "\improper CM-357"
+ desc = "A semi-automatic magnum handgun designed specifically for BARD's megafauna removal unit, as standard handguns had proven useless as backup weapons. Its heft and power have also made it a status symbol among the few CLIP officers able to requisition one. Chambered in .357."
+ icon = 'icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi'
+
+ icon_state = "cm357"
+ item_state = "clip_generic"
+ w_class = WEIGHT_CLASS_NORMAL
+ default_ammo_type = /obj/item/ammo_box/magazine/cm357
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/cm357,
+ )
+ fire_sound = 'sound/weapons/gun/pistol/deagle.ogg'
+ rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
+ lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/pistol/slide_drop.ogg'
+ manufacturer = MANUFACTURER_MINUTEMAN
+ load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
+ load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
+ eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+ eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+
+ recoil_unwielded = 4
+ recoil = 1
+
+NO_MAG_GUN_HELPER(automatic/pistol/cm357)
+
+/obj/item/ammo_box/magazine/cm357
+ name = "CM-357 pistol magazine (.357)"
+ desc = "A 7-round magazine designed for the CM-357 pistol. These rounds do good damage, but struggle against armor."
+ icon_state = "cm23_mag-1"
+ base_icon_state = "cm23_mag"
+ ammo_type = /obj/item/ammo_casing/a357
+ caliber = ".357"
+ max_ammo = 7
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+
+/obj/item/ammo_box/magazine/cm357/empty
+ start_empty = TRUE
+
//########### SMGS ###########//
/obj/item/gun/ballistic/automatic/smg/cm5
name = "\improper CM-5"
@@ -89,18 +162,16 @@
icon_state = "cm5"
item_state = "cm5"
- mag_type = /obj/item/ammo_box/magazine/cm5_9mm
+ default_ammo_type = /obj/item/ammo_box/magazine/cm5_9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/cm5_9mm,
+ )
bolt_type = BOLT_TYPE_CLIP
weapon_weight = WEAPON_LIGHT
fire_sound = 'sound/weapons/gun/smg/cm5.ogg'
manufacturer = MANUFACTURER_MINUTEMAN
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
+ valid_attachments = CLIP_ATTACHMENTS
slot_available = list(
ATTACHMENT_SLOT_MUZZLE = 1,
ATTACHMENT_SLOT_RAIL = 1
@@ -119,11 +190,14 @@
fire_select_icon_state_prefix = "clip_"
adjust_fire_select_icon_state_on_safety = TRUE
-EMPTY_GUN_HELPER(automatic/smg/cm5)
+NO_MAG_GUN_HELPER(automatic/smg/cm5)
+
+/obj/item/gun/ballistic/automatic/smg/cm5/rubber
+ default_ammo_type = /obj/item/ammo_box/magazine/cm5_9mm/rubber
/obj/item/ammo_box/magazine/cm5_9mm
name = "CM-5 magazine (9mm)"
- desc = "A 30-round magazine for 9mm submachine guns. These rounds do okay damage, but struggle against armor."
+ desc = "A 30-round magazine for the CM-5 submachine gun. These rounds do okay damage, but struggle against armor."
icon_state = "cm5_mag-1"
base_icon_state = "cm5_mag"
ammo_type = /obj/item/ammo_casing/c9mm
@@ -131,6 +205,11 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
max_ammo = 30
multiple_sprites = AMMO_BOX_FULL_EMPTY
+/obj/item/ammo_box/magazine/cm5_9mm/rubber
+ desc = "A 30-round magazine for the CM-5 submachine gun. These rubber rounds trade lethality for a heavy impact which can incapacitate targets. Performs even worse against armor."
+ caliber = "9mm rubber"
+ ammo_type = /obj/item/ammo_casing/c9mm/rubber
+
/obj/item/gun/ballistic/automatic/smg/cm5/compact
name = "\improper CM-5c"
desc = "A modification of the CM-5 featuring a dramatically shortened barrel and removed stock. Designed for CLIP-GOLD covert enforcement agents to maximize portability without sacrificing firepower, though accuracy at range is abysmal at best. Chambered in 9mm."
@@ -193,7 +272,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
/obj/item/gun/ballistic/automatic/smg/cm5/compact/AltClick(mob/user)
if(!current_case)
return ..()
- current_case.forceMove(get_turf(src))
+ user.put_in_hands(current_case)
icon = src::icon
base_icon_state = src::icon_state
item_state = src::item_state
@@ -229,7 +308,10 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
weapon_weight = WEAPON_MEDIUM
w_class = WEIGHT_CLASS_BULKY
bolt_type = BOLT_TYPE_CLIP
- mag_type = /obj/item/ammo_box/magazine/f4_308
+ default_ammo_type = /obj/item/ammo_box/magazine/f4_308
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/f4_308,
+ )
fire_sound = 'sound/weapons/gun/rifle/f4.ogg'
burst_size = 0
actions_types = list()
@@ -256,7 +338,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
)
)
- wield_slowdown = 2
+ wield_slowdown = DMR_SLOWDOWN
spread = -4
fire_select_icon_state_prefix = "clip_"
adjust_fire_select_icon_state_on_safety = TRUE
@@ -284,7 +366,10 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
fire_sound = 'sound/weapons/gun/sniper/cmf90.ogg'
- mag_type = /obj/item/ammo_box/magazine/f90
+ default_ammo_type = /obj/item/ammo_box/magazine/f90
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/f90,
+ )
bolt_type = BOLT_TYPE_CLIP
fire_delay = 1 SECONDS
@@ -294,7 +379,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
spread_unwielded = 35
recoil = 4
recoil_unwielded = 10
- wield_slowdown = 1
+ wield_slowdown = SNIPER_SLOWDOWN
wield_delay = 1.3 SECONDS
zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
@@ -329,7 +414,10 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
bolt_type = BOLT_TYPE_CLIP
- mag_type = /obj/item/ammo_box/magazine/p16
+ default_ammo_type = /obj/item/ammo_box/magazine/p16
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/p16,
+ )
spread = 2
wield_delay = 0.5 SECONDS
@@ -370,8 +458,6 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
icon_state = "cm40"
item_state = "cm40"
- fire_delay = 0
-
fire_sound = 'sound/weapons/gun/hmg/cm40.ogg'
rack_sound = 'sound/weapons/gun/hmg/cm40_cocked.ogg'
@@ -392,7 +478,10 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
manufacturer = MANUFACTURER_MINUTEMAN
- mag_type = /obj/item/ammo_box/magazine/cm40_762_40_box
+ default_ammo_type = /obj/item/ammo_box/magazine/cm40_762_40_box
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/cm40_762_40_box,
+ )
spread = 10
spread_unwielded = 35
@@ -400,7 +489,7 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
recoil = 2 //identical to other LMGS
recoil_unwielded = 7 //same as skm
- wield_slowdown = 1 //not as severe as other lmgs, but worse than the normal skm
+ wield_slowdown = SAW_SLOWDOWN //not as severe as other lmgs, but worse than the normal skm
wield_delay = 0.9 SECONDS //faster than normal lmgs, slower than stock skm
has_bipod = TRUE
@@ -448,7 +537,10 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
weapon_weight = WEAPON_MEDIUM
// can_suppress = FALSE
- mag_type = /obj/item/ammo_box/magazine/cm15_12g
+ default_ammo_type = /obj/item/ammo_box/magazine/cm15_12g
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/cm15_12g,
+ )
empty_indicator = FALSE
unique_mag_sprites_for_variants = FALSE
@@ -472,6 +564,9 @@ EMPTY_GUN_HELPER(automatic/smg/cm5)
spread_unwielded = 16
recoil = 1
recoil_unwielded = 4
- wield_slowdown = 0.6
+ wield_slowdown = HEAVY_SHOTGUN_SLOWDOWN
wield_delay = 0.65 SECONDS
+
+/obj/item/gun/ballistic/shotgun/cm15/incendiary
+ default_ammo_type = /obj/item/ammo_box/magazine/cm15_12g/incendiary
diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm
index 2fbe0009a563..de0e28c85b15 100644
--- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm
+++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/lasers.dm
@@ -12,7 +12,13 @@
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
default_firemode = FIREMODE_SEMIAUTO
- cell_type = /obj/item/stock_parts/cell/gun
+ default_ammo_type = /obj/item/stock_parts/cell/gun
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/stock_parts/cell/gun/upgraded,
+ /obj/item/stock_parts/cell/gun/empty,
+ /obj/item/stock_parts/cell/gun/upgraded/empty,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/kalix, /obj/item/ammo_casing/energy/disabler/hitscan)
manufacturer = MANUFACTURER_MINUTEMAN_LASER
diff --git a/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm b/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm
index 4e16d2d03512..10a55857cf88 100644
--- a/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm
+++ b/code/modules/projectiles/guns/manufacturer/etherbor/energy_gunsword.dm
@@ -14,9 +14,13 @@
fire_delay = 0.16 SECONDS
wield_delay = 0.7 SECONDS
- wield_slowdown = 0.35
+ wield_slowdown = LASER_RIFLE_SLOWDOWN
- cell_type = /obj/item/stock_parts/cell/gun/kalix
+ default_ammo_type = /obj/item/stock_parts/cell/gun/kalix
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/kalix,
+ /obj/item/stock_parts/cell/gun/pgf,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/kalix, /obj/item/ammo_casing/energy/disabler/hitscan)
load_sound = 'sound/weapons/gun/gauss/pistol_reload.ogg'
@@ -43,7 +47,7 @@
armour_penetration = -10
/obj/item/gun/energy/kalix/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/kalix/pgf
name = "Etherbor BG-16"
@@ -54,7 +58,11 @@
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
default_firemode = FIREMODE_SEMIAUTO
- cell_type = /obj/item/stock_parts/cell/gun/pgf
+ default_ammo_type = /obj/item/stock_parts/cell/gun/pgf
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/pgf,
+ /obj/item/stock_parts/cell/gun/kalix,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/kalix/pgf , /obj/item/ammo_casing/energy/disabler/hitscan)
/obj/projectile/beam/hitscan/kalix/pgf
@@ -81,12 +89,16 @@
modifystate = FALSE
wield_delay = 0.2 SECONDS
- wield_slowdown = 0.15
+ wield_slowdown = LASER_PISTOL_SLOWDOWN
spread = 2
spread_unwielded = 5
- cell_type = /obj/item/stock_parts/cell/gun/kalix
+ default_ammo_type = /obj/item/stock_parts/cell/gun/kalix
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/kalix,
+ /obj/item/stock_parts/cell/gun/pgf,
+ )
ammo_type = list(/obj/item/ammo_casing/energy/kalix/pistol)
@@ -98,14 +110,13 @@
delay = 0
/obj/item/gun/energy/kalix/pistol/empty_cell
- dead_cell = TRUE
+ spawn_no_ammo = TRUE
/obj/item/gun/energy/kalix/pgf/heavy
name = "Etherbor HBG-7"
desc = "The HBG-7 is the standard-issue rifle weapon of the PGF. It comes with a special DMR mode that has greater armor piercing for dealing with armored targets."
icon_state = "pgfheavy"
item_state = "pgfheavy"
- w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
modifystate = FALSE
@@ -116,7 +127,7 @@
fire_delay = 0.2 SECONDS
wield_delay = 0.7 SECONDS
- wield_slowdown = 0.6
+ wield_slowdown = HEAVY_LASER_RIFLE_SLOWDOWN
spread = 0
spread_unwielded = 20
@@ -169,5 +180,5 @@
spread = -5
spread_unwielded = 40
- wield_slowdown = 1
+ wield_slowdown = LASER_SNIPER_SLOWDOWN
wield_delay = 1.3 SECONDS
diff --git a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm
index 224712438b90..4a48dd5ea2b4 100644
--- a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm
+++ b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm
@@ -8,8 +8,10 @@
icon_state = "mauler"
item_state = "hp_generic"
- w_class = WEIGHT_CLASS_NORMAL
- mag_type = /obj/item/ammo_box/magazine/m9mm_mauler
+ default_ammo_type = /obj/item/ammo_box/magazine/m9mm_mauler
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m9mm_mauler,
+ )
fire_delay = 0.06 SECONDS
gun_firemodes = list(FIREMODE_FULLAUTO)
@@ -19,6 +21,8 @@
spread_unwielded = 50
recoil = 1
recoil_unwielded = 4
+ safety_multiplier = 2 //this means its twice as safe right?
+
fire_sound = 'sound/weapons/gun/pistol/mauler.ogg'
rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
@@ -58,7 +62,10 @@
icon_state = "spitter"
item_state = "spitter"
- mag_type = /obj/item/ammo_box/magazine/spitter_9mm
+ default_ammo_type = /obj/item/ammo_box/magazine/spitter_9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/spitter_9mm,
+ )
bolt_type = BOLT_TYPE_OPEN
weapon_weight = WEAPON_LIGHT
show_magazine_on_sprite = TRUE
@@ -67,9 +74,10 @@
spread = 20
spread_unwielded = 35
dual_wield_spread = 35
- wield_slowdown = 0.25
+ wield_slowdown = SMG_SLOWDOWN
wield_delay = 0.2 SECONDS
fire_delay = 0.09 SECONDS
+ safety_multiplier = 2
fire_sound = 'sound/weapons/gun/smg/spitter.ogg'
rack_sound = 'sound/weapons/gun/smg/spitter_cocked.ogg'
@@ -130,10 +138,14 @@
lefthand_file = 'icons/obj/guns/manufacturer/frontier_import/lefthand.dmi'
righthand_file = 'icons/obj/guns/manufacturer/frontier_import/righthand.dmi'
mob_overlay_icon = 'icons/obj/guns/manufacturer/frontier_import/onmob.dmi'
+ w_class = WEIGHT_CLASS_BULKY //this gun is visually larger, so I believe this is good
icon_state = "pounder"
item_state = "pounder"
- mag_type = /obj/item/ammo_box/magazine/c22lr_pounder_pan
+ default_ammo_type = /obj/item/ammo_box/magazine/c22lr_pounder_pan
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/c22lr_pounder_pan,
+ )
burst_size = 1
fire_delay = 0.05 SECONDS
spread = 25
@@ -154,7 +166,8 @@
default_firemode = FIREMODE_FULLAUTO
manufacturer = MANUFACTURER_IMPORT
- wield_slowdown = 0.5
+ wield_slowdown = SMG_SLOWDOWN
+ safety_multiplier = 2
/obj/item/ammo_box/magazine/c22lr_pounder_pan
name = "pan magazine (.22 LR)"
@@ -180,7 +193,10 @@
icon_state = "shredder"
item_state = "shredder"
- mag_type = /obj/item/ammo_box/magazine/m12_shredder
+ default_ammo_type = /obj/item/ammo_box/magazine/m12_shredder
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m12_shredder,
+ )
spread = 15
recoil = 2
recoil_unwielded = 7
@@ -231,7 +247,7 @@
/obj/item/gun/ballistic/rocketlauncher/oneshot
name = "\improper Hammer"
- desc = "A disposable rocket-propelled grenade launcher loaded with a HEDP shell."
+ desc = "A disposable rocket-propelled grenade launcher loaded with a standard HE shell."
icon = 'icons/obj/guns/manufacturer/frontier_import/48x32.dmi'
lefthand_file = 'icons/obj/guns/manufacturer/frontier_import/lefthand.dmi'
@@ -241,7 +257,10 @@
icon_state = "rpg"
item_state = "rpg"
- mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot,
+ )
fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg'
load_sound = 'sound/weapons/gun/general/rocket_load.ogg'
weapon_weight = WEAPON_HEAVY
@@ -252,7 +271,19 @@
sealed_magazine = TRUE
manufacturer = MANUFACTURER_IMPORT
slot_flags = ITEM_SLOT_BACK
+ has_safety = FALSE
+ safety = FALSE
+ safety_multiplier = 0
+
+/obj/item/gun/ballistic/rocketlauncher/oneshot/hedp
+ name = "\improper Hammer-DP"
+ desc = "A disposable rocket-propelled grenade launcher loaded with an HEDP shell for Direct Penetration of your target."
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot/hedp
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot/hedp,
+ )
/obj/item/gun/ballistic/rocketlauncher/oneshot/Initialize()
. = ..()
@@ -265,6 +296,12 @@
. += span_warning("It has been spent, and is now useless.")
/obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot
+ name = "oneshot rocket launcher magazine"
+ ammo_type = /obj/item/ammo_casing/caseless/rocket
+ caliber = "84mm"
+ max_ammo = 1
+
+/obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot/hedp
name = "oneshot rocket launcher magazine"
ammo_type = /obj/item/ammo_casing/caseless/rocket/hedp
caliber = "84mm"
diff --git a/code/modules/projectiles/guns/manufacturer/hunter_pride/ballistics.dm b/code/modules/projectiles/guns/manufacturer/hunter_pride/ballistics.dm
new file mode 100644
index 000000000000..8162195f909c
--- /dev/null
+++ b/code/modules/projectiles/guns/manufacturer/hunter_pride/ballistics.dm
@@ -0,0 +1,935 @@
+///Hunters Pride Weapons
+
+///Revolvers
+
+/obj/item/gun/ballistic/revolver/montagne
+ name = "\improper HP Montagne"
+ desc = "An ornate break-open revolver issued to high-ranking members of the Saint-Roumain Militia. Chambered in .44."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ icon_state = "montagne"
+ item_state = "hp_generic"
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ spread_unwielded = 15
+ recoil = 0
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44/montagne
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/rev44/montagne,
+ )
+
+/obj/item/gun/ballistic/revolver/montagne/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/ammo_hud/revolver)
+
+EMPTY_GUN_HELPER(revolver/montagne)
+
+/obj/item/gun/ballistic/revolver/ashhand
+ name = "HP Ashhand"
+ desc = "A massive, long-barreled revolver often used by the Saint-Roumain Militia as protection against big game. Can only be reloaded one cartridge at a time due to its reinforced frame. Uses .45-70 ammo."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ icon_state = "ashhand"
+ item_state = "ashhand"
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/rev4570
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/rev4570,
+ )
+ fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg'
+ rack_sound = 'sound/weapons/gun/revolver/viper_prime.ogg'
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ gate_loaded = TRUE
+ fire_delay = 0.6 SECONDS
+ wield_slowdown = HEAVY_REVOLVER_SLOWDOWN
+ spread_unwielded = 20
+ spread = 6
+ recoil = 2
+ recoil_unwielded = 4
+
+/obj/item/gun/ballistic/revolver/ashhand/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/ammo_hud/revolver)
+
+/obj/item/gun/ballistic/revolver/firebrand
+ name = "\improper HP Firebrand"
+ desc = "An archaic precursor to revolver-type firearms, this gun was rendered completely obsolete millennia ago. While fast to fire, it is extremely inaccurate. Uses .357 ammo."
+ icon_state = "pepperbox"
+ item_state = "hp_generic_fresh"
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/pepperbox
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/pepperbox,
+ )
+ spread = 20
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ spread_unwielded = 50
+ fire_delay = 0 SECONDS
+ gate_offset = 4
+ semi_auto = TRUE
+ safety_wording = "safety"
+
+EMPTY_GUN_HELPER(revolver/firebrand)
+
+/obj/item/gun/ballistic/revolver/shadow
+ name = "\improper HP Shadow"
+ desc = "A mid-size revolver. Despite the antiquated design, it is cheap, reliable, and stylish, making it a favorite among fast-drawing spacers and the officers of various militaries, as well as small-time police units. Chambered in .44."
+ fire_sound = 'sound/weapons/gun/revolver/cattleman.ogg'
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+ icon_state = "shadow"
+ item_state = "shadow"
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/rev44
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/rev44,
+ )
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ obj_flags = UNIQUE_RENAME
+ gate_loaded = TRUE
+ unique_reskin = list(\
+ "Shadow" = "shadow",
+ "Cattleman" = "shadow_cattleman",
+ "General" = "shadow_general",
+ "Sheriff" = "shadow_sheriff",
+ "Cobra" = "shadow_cobra",
+ "Hired Gun" = "shadow_hiredgun",
+ "Buntline" = "shadow_buntline",
+ "Cavalry" = "shadow_cavalry",
+ "Lanchester Special" = "shadow_lanchester"
+ )
+
+ recoil = 0 //weaker than normal revolver, no recoil
+ spread_unwielded = 10
+
+/obj/item/gun/ballistic/revolver/shadow/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/ammo_hud/revolver)
+
+/obj/item/gun/ballistic/revolver/shadow/reskin_obj(mob/M)
+ . = ..()
+ if(current_skin)
+ item_state = unique_reskin[current_skin]
+
+EMPTY_GUN_HELPER(revolver/shadow)
+
+/obj/item/gun/ballistic/revolver/detective
+ name = "\improper HP Detective Special"
+ desc = "A small law enforcement firearm. Originally commissioned by Nanotrasen for their Private Investigation division, it has become extremely popular among independent civilians as a cheap, compact sidearm. Uses .38 Special rounds."
+ fire_sound = 'sound/weapons/gun/revolver/shot_light.ogg'
+ icon_state = "detective"
+ item_state = "hp_generic"
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/cylinder/rev38,
+ )
+ obj_flags = UNIQUE_RENAME
+ semi_auto = TRUE //double action
+ safety_wording = "safety"
+ unique_reskin = list("Default" = "detective",
+ "Stainless Steel" = "detective_stainless",
+ "Gold Trim" = "detective_gold",
+ "Leopard Spots" = "detective_leopard",
+ "The Peacemaker" = "detective_peacemaker",
+ "Black Panther" = "detective_panther"
+ )
+ w_class = WEIGHT_CLASS_SMALL
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+
+ recoil = 0 //weaker than normal revolver, no recoil
+ fire_delay = 0.2 SECONDS
+
+EMPTY_GUN_HELPER(revolver/detective)
+
+/obj/item/gun/ballistic/revolver/detective/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/ammo_hud/revolver) //note that the hud at the moment only supports 6 round revolvers, 7 or 5 isn't supported rn
+//...why...?
+/obj/item/gun/ballistic/revolver/detective/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0, burst_firing = FALSE, spread_override = 0, iteration = 0)
+ if(magazine.caliber != initial(magazine.caliber))
+ if(prob(100 - (magazine.ammo_count() * 5))) //minimum probability of 70, maximum of 95
+ playsound(user, fire_sound, fire_sound_volume, vary_fire_sound)
+ to_chat(user, "[src] blows up in your face!")
+ user.take_bodypart_damage(0,20)
+ explosion(src, 0, 0, 1, 1)
+ user.dropItemToGround(src)
+ return 0
+ ..()
+
+/obj/item/gun/ballistic/revolver/detective/screwdriver_act(mob/living/user, obj/item/I)
+ if(..())
+ return TRUE
+ if(magazine.caliber == "38")
+ to_chat(user, "You begin to reinforce the barrel of [src]...")
+ if(magazine.ammo_count())
+ afterattack(user, user) //you know the drill
+ user.visible_message("[src] goes off!", "[src] goes off in your face!")
+ return TRUE
+ if(I.use_tool(src, user, 30))
+ if(magazine.ammo_count())
+ to_chat(user, "You can't modify it!")
+ return TRUE
+ magazine.caliber = ".357"
+ fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
+ desc = "The barrel and chamber assembly seems to have been modified."
+ to_chat(user, "You reinforce the barrel of [src]. Now it will fire .357 rounds.")
+ else
+ to_chat(user, "You begin to revert the modifications to [src]...")
+ if(magazine.ammo_count())
+ afterattack(user, user) //and again
+ user.visible_message("[src] goes off!", "[src] goes off in your face!")
+ return TRUE
+ if(I.use_tool(src, user, 30))
+ if(magazine.ammo_count())
+ to_chat(user, "You can't modify it!")
+ return
+ magazine.caliber = ".38"
+ fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
+ desc = initial(desc)
+ to_chat(user, "You remove the modifications on [src]. Now it will fire .38 rounds.")
+ return TRUE
+
+///pistols
+
+/obj/item/gun/ballistic/automatic/pistol/candor
+ name = "\improper Candor"
+ desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of Hunter's Pride. Chambered in .45."
+ icon_state = "candor"
+ item_state = "hp_generic"
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ default_ammo_type = /obj/item/ammo_box/magazine/m45
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m45,
+ )
+ fire_sound = 'sound/weapons/gun/pistol/candor.ogg'
+ rack_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
+ lock_back_sound = 'sound/weapons/gun/pistol/slide_lock.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/pistol/candor_cocked.ogg'
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ load_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
+ load_empty_sound = 'sound/weapons/gun/pistol/candor_reload.ogg'
+ eject_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+ eject_empty_sound = 'sound/weapons/gun/pistol/candor_unload.ogg'
+ show_magazine_on_sprite = TRUE
+
+NO_MAG_GUN_HELPER(automatic/pistol/candor)
+
+/obj/item/gun/ballistic/automatic/pistol/candor/factory //also give this to the srm, their candors should probably look factory fresh from how well taken care of they are
+ desc = "A classic semi-automatic handgun, widely popular throughout the Frontier. An engraving on the slide marks it as a product of 'Hunter's Pride Arms and Ammunition'. This example has been kept in especially good shape, and may as well be fresh out of the workshop. Chambered in .45."
+ item_state = "hp_generic_fresh"
+
+NO_MAG_GUN_HELPER(automatic/pistol/candor/factory)
+
+/obj/item/gun/ballistic/automatic/pistol/candor/factory/update_overlays()
+ . = ..()
+ . += "[initial(icon_state)]_factory"
+
+/obj/item/gun/ballistic/automatic/pistol/candor/phenex
+ name = "\improper HP Phenex"
+ desc = "A uniquely modified version of the Candor, famously created by Hunter's Pride. Named after the daemonic Phoenix of legend that the Ashen Huntsman had once slain, this hell-kissed weapon is more visually intimidating than its original counterpart, but mechanically acts the same. Chambered in .45."
+ icon_state = "phenex"
+ item_state = "hp_phenex"
+
+/// SMG ///
+
+/obj/item/gun/ballistic/automatic/smg/firestorm //weapon designed by Apogee-dev
+ name = "HP Firestorm"
+ desc = "An unconventional submachinegun, rarely issued to Saint-Roumain Militia mercenary hunters for outstanding situations where normal hunting weapons fall short. Chambered in .45."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ icon_state = "firestorm"
+ item_state = "firestorm"
+ default_ammo_type = /obj/item/ammo_box/magazine/c45_firestorm_mag
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/c45_firestorm_mag,
+ )
+ unique_mag_sprites_for_variants = TRUE
+ burst_size = 1
+ actions_types = list()
+ fire_delay = 0.13 SECONDS
+ bolt_type = BOLT_TYPE_OPEN
+ rack_sound = 'sound/weapons/gun/smg/uzi_cocked.ogg'
+ fire_sound = 'sound/weapons/gun/smg/firestorm.ogg'
+
+
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ wield_slowdown = SMG_SLOWDOWN
+
+/obj/item/gun/ballistic/automatic/smg/firestorm/pan //spawns with pan magazine, can take sticks instead of just drums, not sure where this would be used, maybe erts?
+ default_ammo_type = /obj/item/ammo_box/magazine/c45_firestorm_mag/pan
+
+///Shotguns
+
+/////////////////////////////
+// DOUBLE BARRELED SHOTGUN //
+/////////////////////////////
+
+/obj/item/gun/ballistic/shotgun/doublebarrel
+ name = "double-barreled shotgun"
+ desc = "A classic break action shotgun, hand-made in a Hunter's Pride workshop. Both barrels can be fired in quick succession or even simultaneously. Guns like this have been popular with hunters, sporters, and criminals for millennia. Chambered in 12g."
+ sawn_desc = "A break action shotgun cut down to the size of a sidearm. While the recoil is even harsher, it offers a lot of power in a very small package. Chambered in 12g."
+
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ base_icon_state = "dshotgun"
+
+ icon_state = "dshotgun"
+ item_state = "dshotgun"
+
+ rack_sound = 'sound/weapons/gun/shotgun/dbshotgun_break.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/shotgun/dbshotgun_close.ogg'
+
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_MEDIUM
+ force = 10
+ flags_1 = CONDUCT_1
+ slot_flags = ITEM_SLOT_BACK
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/dual
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/dual,
+ )
+
+ obj_flags = UNIQUE_RENAME
+ unique_reskin = list("Default" = "dshotgun",
+ "Stainless Steel" = "dshotgun_white",
+ "Stained Green" = "dshotgun_green"
+ )
+ semi_auto = TRUE
+ can_be_sawn_off = TRUE
+ bolt_type = BOLT_TYPE_NO_BOLT
+ pb_knockback = 3 // it's a super shotgun!
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ bolt_wording = "barrel"
+
+ burst_delay = 0.05 SECONDS
+ burst_size = 2
+ gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST)
+ default_firemode = FIREMODE_SEMIAUTO
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/unique_action(mob/living/user)
+ if (bolt_locked == FALSE)
+ to_chat(user, "You snap open the [bolt_wording] of \the [src].")
+ playsound(src, rack_sound, rack_sound_volume, rack_sound_vary)
+ chambered = null
+ var/num_unloaded = 0
+ for(var/obj/item/ammo_casing/casing_bullet in get_ammo_list(FALSE, TRUE))
+ casing_bullet.forceMove(drop_location())
+ var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180))
+ casing_bullet.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement, _bounce_sound = casing_bullet.bounce_sfx_override)
+
+ num_unloaded++
+ SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name)
+ if (num_unloaded)
+ playsound(user, eject_sound, eject_sound_volume, eject_sound_vary)
+ update_appearance()
+ bolt_locked = TRUE
+ update_appearance()
+ return
+ drop_bolt(user)
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/drop_bolt(mob/user = null)
+ playsound(src, bolt_drop_sound, bolt_drop_sound_volume, FALSE)
+ if (user)
+ to_chat(user, "You snap the [bolt_wording] of \the [src] closed.")
+ chamber_round()
+ bolt_locked = FALSE
+ update_appearance()
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/can_shoot()
+ if (bolt_locked)
+ return FALSE
+ return ..()
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/attackby(obj/item/A, mob/user, params)
+ if (!bolt_locked)
+ to_chat(user, "The [bolt_wording] is shut closed!")
+ return
+ return ..()
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/update_icon_state()
+ . = ..()
+ if(current_skin)
+ icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]"
+ else
+ icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""][bolt_locked ? "_open" : ""]"
+
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/AltClick(mob/user)
+ . = ..()
+ if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked))
+ reskin_obj(user)
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ weapon_weight = WEAPON_MEDIUM
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.3 SECONDS //OP? maybe
+
+ spread = 8
+ spread_unwielded = 15
+ recoil = 3 //or not
+ recoil_unwielded = 5
+ item_state = "dshotgun_sawn"
+ mob_overlay_state = item_state
+
+EMPTY_GUN_HELPER(shotgun/doublebarrel)
+
+// sawn off beforehand
+/obj/item/gun/ballistic/shotgun/doublebarrel/presawn
+ name = "sawn-off double-barreled shotgun"
+ desc = "A break action shotgun cut down to the size of a sidearm. While the recoil is even harsher, it offers a lot of power in a very small package. Chambered in 12g."
+ sawn_off = TRUE
+ weapon_weight = WEAPON_MEDIUM
+ w_class = WEIGHT_CLASS_NORMAL
+ slot_flags = ITEM_SLOT_BELT
+
+ wield_slowdown = 0.15
+ wield_delay = 0.3 SECONDS //OP? maybe
+
+ spread = 8
+ spread_unwielded = 15
+ recoil = 3 //or not
+ recoil_unwielded = 5
+ item_state = "dshotgun_sawn"
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/dual/lethal
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/dual/lethal,
+ )
+
+EMPTY_GUN_HELPER(shotgun/doublebarrel/presawn)
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/roumain
+ name = "HP antique double-barreled shotgun"
+ desc = "A special-edition shotgun hand-made by Hunter's Pride with a high-quality walnut stock inlaid with brass scrollwork. Shotguns like this are very rare outside of the Saint-Roumain Militia's ranks. Otherwise functionally identical to a common double-barreled shotgun. Chambered in 12g."
+ sawn_desc = "A special-edition Hunter's Pride shotgun, cut down to the size of a sidearm by some barbarian. The brass inlay on the stock and engravings on the barrel have been obliterated in the process, destroying any value beyond its use as a crude sidearm."
+ base_icon_state = "dshotgun_srm"
+ icon_state = "dshotgun_srm"
+ item_state = "dshotgun_srm"
+ unique_reskin = null
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "dshotgun_srm_sawn"
+
+// BRIMSTONE //
+
+/obj/item/gun/ballistic/shotgun/brimstone
+ name = "HP Brimstone"
+ desc = "A simple and sturdy pump-action shotgun sporting a 5-round capacity, manufactured by Hunter's Pride. Found widely throughout the Frontier in the hands of hunters, pirates, police, and countless others. Chambered in 12g."
+ sawn_desc = "A stockless and shortened pump-action shotgun. The worsened recoil and accuracy make it a poor sidearm anywhere beyond punching distance."
+ fire_sound = 'sound/weapons/gun/shotgun/brimstone.ogg'
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ icon_state = "brimstone"
+ item_state = "brimstone"
+
+ gun_firemodes = list(FIREMODE_FULLAUTO)
+ default_firemode = FIREMODE_FULLAUTO
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/lethal
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/lethal,
+ )
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ fire_delay = 0.05 SECONDS //slamfire
+ rack_delay = 0.2 SECONDS
+
+ can_be_sawn_off = TRUE
+
+
+/obj/item/gun/ballistic/shotgun/brimstone/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ weapon_weight = WEAPON_MEDIUM
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.3 SECONDS //OP? maybe
+
+ spread = 18
+ spread_unwielded = 25
+ recoil = 5 //your punishment for sawing off an short shotgun
+ recoil_unwielded = 8
+ item_state = "illestren_factory_sawn" // i couldnt care about making another sprite, looks close enough
+ mob_overlay_state = item_state
+
+EMPTY_GUN_HELPER(shotgun/brimstone)
+
+// HELLFIRE //
+
+/obj/item/gun/ballistic/shotgun/hellfire
+ name = "HP Hellfire"
+ desc = "A hefty pump-action riot shotgun with a seven-round tube, manufactured by Hunter's Pride. Especially popular among the Frontier's police forces. Chambered in 12g."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+ icon_state = "hellfire"
+ item_state = "hellfire"
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/riot
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/riot,
+ )
+ sawn_desc = "Come with me if you want to live."
+ can_be_sawn_off = TRUE
+ rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg'
+ fire_delay = 0.1 SECONDS
+
+/obj/item/gun/ballistic/shotgun/hellfire/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ var/obj/item/ammo_box/magazine/internal/tube = magazine
+ tube.max_ammo = 5 //this makes the gun so much worse
+
+ weapon_weight = WEAPON_MEDIUM
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.3 SECONDS //OP? maybe
+
+ spread = 8
+ spread_unwielded = 15
+ recoil = 3 //or not
+ recoil_unwielded = 5
+ item_state = "dshotgun_sawn" // ditto
+ mob_overlay_state = item_state
+
+EMPTY_GUN_HELPER(shotgun/hellfire)
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration
+ name = "HP Conflagration"
+ base_icon_state = "conflagration"
+ icon_state = "conflagration"
+ item_state = "conflagration"
+ fire_sound = 'sound/weapons/gun/shotgun/shot.ogg'
+ desc = "A lightweight lever-action shotgun with a 5 round ammunition capacity. The lever action allows it to be cycled quickly and acurrately. In theory, you could ever operate it one-handed. Chambered in 12g."
+ sawn_desc = "A lever action shotgun that's been sawed down for portability. The recoil makes it mostly useless outside of point-blank range, but it hits hard for its size and, more importantly, can be flipped around stylishly."
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration,
+ )
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ var/obj/item/ammo_box/magazine/internal/tube = magazine
+ tube.max_ammo = 5
+
+ item_state = "beacon_factory_sawn"
+ mob_overlay_state = item_state
+ weapon_weight = WEAPON_MEDIUM
+
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.2 SECONDS
+
+ spread = 4
+ spread_unwielded = 12
+
+ recoil = 0
+ recoil_unwielded = 3
+
+EMPTY_GUN_HELPER(shotgun/flamingarrow/conflagration)
+
+
+//Elephant Gun
+/obj/item/gun/ballistic/shotgun/doublebarrel/twobore
+ name = "HP Huntsman"
+ desc = "A comically huge double-barreled rifle replete with brass inlays depicting flames and naturalistic scenes, clearly meant for the nastiest monsters the Frontier has to offer. If you want an intact trophy, don't aim for the head. Chambered in two-bore."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+ inhand_x_dimension = 32
+ inhand_y_dimension = 32
+ base_icon_state = "huntsman"
+ icon_state = "huntsman"
+ item_state = "huntsman"
+ unique_reskin = null
+ attack_verb = list("bludgeoned", "smashed")
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/twobore
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/twobore,
+ )
+ w_class = WEIGHT_CLASS_BULKY
+ force = 20 //heavy ass elephant gun, why wouldnt it be
+ recoil = 4
+ pb_knockback = 12
+ fire_sound = 'sound/weapons/gun/shotgun/quadfire.ogg'
+ rack_sound = 'sound/weapons/gun/shotgun/quadrack.ogg'
+ load_sound = 'sound/weapons/gun/shotgun/quadinsert.ogg'
+
+ can_be_sawn_off = FALSE
+ fire_sound_volume = 80
+ rack_sound_volume = 50
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+
+ gun_firemodes = list(FIREMODE_SEMIAUTO) //no dual burst for you
+ default_firemode = FIREMODE_SEMIAUTO
+
+/// Rifles
+
+/obj/item/gun/ballistic/rifle/illestren
+ name = "\improper HP Illestren"
+ desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, the Illestren is popular among colonists, pirates, snipers, and countless others. Chambered in 8x50mmR."
+ icon_state = "illestren"
+ item_state = "illestren"
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ sawn_desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch."
+ eject_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg'
+ eject_empty_sound = 'sound/weapons/gun/rifle/vickland_unload.ogg'
+
+ internal_magazine = FALSE
+ default_ammo_type = /obj/item/ammo_box/magazine/illestren_a850r
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/illestren_a850r,
+ )
+ empty_autoeject = TRUE
+ eject_sound_vary = FALSE
+ can_be_sawn_off = TRUE
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+
+/obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry!
+ default_ammo_type = FALSE
+
+/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ spread = 19
+ spread_unwielded = 30
+ item_state = "illestren_sawn"
+ mob_overlay_state = item_state
+ weapon_weight = WEAPON_MEDIUM //you can fire it onehanded, makes it worse than worse than useless onehanded, but you can
+
+/obj/item/gun/ballistic/rifle/illestren/blow_up(mob/user)
+ . = FALSE
+ if(chambered && chambered.BB)
+ process_fire(user, user, FALSE)
+ . = TRUE
+
+/obj/item/gun/ballistic/rifle/illestren/factory
+ desc = "A sturdy and conventional bolt-action rifle. One of Hunter's Pride's most successful firearms, this example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in 8x50mmR."
+ icon_state = "illestren_factory"
+ item_state = "illestren_factory"
+
+/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "illestren_factory_sawn"
+ mob_overlay_state = item_state
+
+/obj/item/gun/ballistic/rifle/illestren/sawn
+ desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch."
+ sawn_off = TRUE
+
+//Lever-Action Rifles
+
+/obj/item/gun/ballistic/shotgun/flamingarrow
+ name = "HP Flaming Arrow"
+ desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. A popular choice among Frontier homesteaders for hunting small game and rudimentary self-defense. Chambered in .38."
+ sawn_desc = "A lever-action rifle that has been sawed down and modified for extra portability. While surprisingly effective as a sidearm, the more important benefit is how much cooler it looks."
+ base_icon_state = "flamingarrow"
+ icon_state = "flamingarrow"
+ item_state = "flamingarrow"
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+ inhand_x_dimension = 32
+ inhand_y_dimension = 32
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/winchester
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/winchester,
+ )
+ fire_sound = 'sound/weapons/gun/rifle/flamingarrow.ogg'
+ rack_sound = 'sound/weapons/gun/rifle/skm_cocked.ogg'
+ bolt_wording = "lever"
+ cartridge_wording = "bullet"
+ can_be_sawn_off = TRUE
+
+ wield_slowdown = RIFLE_SLOWDOWN
+ wield_delay = 0.65 SECONDS
+
+ spread = -5
+ spread_unwielded = 7
+
+ recoil = 0
+ recoil_unwielded = 2
+
+EMPTY_GUN_HELPER(shotgun/flamingarrow)
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/update_icon_state()
+ . = ..()
+ if(current_skin)
+ icon_state = "[unique_reskin[current_skin]][sawn_off ? "_sawn" : ""]"
+ else
+ icon_state = "[base_icon_state || initial(icon_state)][sawn_off ? "_sawn" : ""]"
+
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/rack(mob/user = null)
+ . = ..()
+ if(!wielded)
+ SpinAnimation(7,1)
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0)
+ var/fan = FALSE
+ if(HAS_TRAIT(user, TRAIT_GUNSLINGER) && !semi_auto && wielded_fully && loc == user && !safety)
+ fan = TRUE
+ fire_delay = 0.35 SECONDS
+ . = ..()
+ fire_delay = src::fire_delay
+ if(fan)
+ rack()
+ to_chat(user, "You quickly rack the [bolt_wording] of \the [src]!")
+ balloon_alert_to_viewers("quickly racks!")
+ fire_delay = 0 SECONDS
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ var/obj/item/ammo_box/magazine/internal/tube = magazine
+ tube.max_ammo = 7
+
+ item_state = "flamingarrow_sawn"
+ mob_overlay_state = item_state
+ weapon_weight = WEAPON_MEDIUM
+
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.2 SECONDS //THE COWBOY RIFLE
+
+ spread = 4
+ spread_unwielded = 12
+
+ recoil = 0
+ recoil_unwielded = 3
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/factory
+ desc = "A sturdy and lightweight lever-action rifle with hand-stamped Hunter's Pride marks on the receiver. This example has been kept in excellent shape and may as well be fresh out of the workshop. Chambered in .38."
+ icon_state = "flamingarrow_factory"
+ base_icon_state = "flamingarrow_factory"
+ item_state = "flamingarrow_factory"
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "flamingarrow_factory_sawn"
+ mob_overlay_state = item_state
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/bolt
+ name = "HP Flaming Bolt"
+ desc = "A sturdy, excellently-made lever-action rifle. This one appears to be a genuine antique, kept in incredibly good condition despite its advanced age. Chambered in .38."
+ base_icon_state = "flamingbolt"
+ icon_state = "flamingbolt"
+ item_state = "flamingbolt"
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "flamingbolt_sawn"
+ mob_overlay_state = item_state
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/absolution
+ name = "HP Absolution"
+ base_icon_state = "absolution"
+ icon_state = "absolution"
+ item_state = "absolution"
+ fire_sound = 'sound/weapons/gun/revolver/shot.ogg'
+ desc = "A large lever-action rifle with hand-stamped Hunter's Pride marks on the receiver and an 8 round ammunition capacity. More powerful than the Flaming Arrow, the Absolution is a popular pick for hunting larger fauna like bears and goliaths, especially when a bolt action's slower rate of fire would be a liability. Chambered in .357."
+ sawn_desc = "A large lever-action rifle, sawn down for portability. It looks much cooler, but you should probably be using a revolver..."
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/winchester/absolution
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/winchester/absolution,
+ )
+
+/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ var/obj/item/ammo_box/magazine/internal/tube = magazine
+ tube.max_ammo = 8
+
+ item_state = "illestren_sawn"
+ mob_overlay_state = item_state
+ weapon_weight = WEAPON_MEDIUM
+
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.2 SECONDS
+
+ spread = 4
+ spread_unwielded = 12
+
+ recoil = 0
+ recoil_unwielded = 3
+
+//Break-Action Rifle
+/obj/item/gun/ballistic/shotgun/doublebarrel/beacon
+ name = "HP Beacon"
+ desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. Boasts excellent accuracy and stopping power. Uses .45-70 ammo."
+ sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
+ base_icon_state = "beacon"
+ icon_state = "beacon"
+ item_state = "beacon"
+ unique_reskin = null
+ inhand_x_dimension = 32
+ inhand_y_dimension = 32
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/beacon
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/beacon,
+ )
+ fire_sound = 'sound/weapons/gun/revolver/shot_hunting.ogg'
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_MEDIUM
+ force = 10
+ obj_flags = UNIQUE_RENAME
+ semi_auto = TRUE
+ can_be_sawn_off = TRUE
+ pb_knockback = 3
+ wield_slowdown = HEAVY_RIFLE_SLOWDOWN
+ spread_unwielded = 15
+ spread = 0
+ recoil = 0
+ recoil_unwielded = 5
+
+ gun_firemodes = list(FIREMODE_SEMIAUTO)
+ default_firemode = FIREMODE_SEMIAUTO
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "beacon_sawn"
+ mob_overlay_state = item_state
+ wield_slowdown = wield_slowdown-0.1
+ wield_delay = 0.5 SECONDS
+
+ spread_unwielded = 20 //mostly the hunting revolver stats
+ spread = 6
+ recoil = 2
+ recoil_unwielded = 4
+
+EMPTY_GUN_HELPER(shotgun/doublebarrel/beacon)
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory
+ desc = "A single-shot break-action rifle made by Hunter's Pride and sold to civilian hunters. This example has been kept in excellent shape and may as well be fresh out of the workshop. Uses .45-70 ammo."
+ sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
+ base_icon_state = "beacon_factory"
+ icon_state = "beacon_factory"
+ item_state = "beacon_factory"
+
+/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(forced = FALSE)
+ . = ..()
+ if(.)
+ item_state = "beacon_factory_sawn"
+ mob_overlay_state = item_state
+
+//pre sawn off beacon
+/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/presawn
+ name = "sawn-off HP Beacon"
+ sawn_desc= "A single-shot break-action pistol chambered in .45-70. A bit difficult to aim."
+ sawn_off = TRUE
+ w_class = WEIGHT_CLASS_NORMAL
+ slot_flags = ITEM_SLOT_BELT
+
+ weapon_weight = WEAPON_MEDIUM
+
+ item_state = "beacon_sawn"
+ mob_overlay_state = "beacon_sawn"
+ wield_slowdown = 0.45
+ wield_delay = 0.5 SECONDS
+
+ spread_unwielded = 20 //mostly the hunting revolver stats
+ spread = 6
+ recoil = 2
+ recoil_unwielded = 4
+
+/// snipers
+
+//well. its almost a sniper.
+/obj/item/gun/ballistic/automatic/marksman/vickland //weapon designed by Apogee-dev
+ name = "\improper Vickland"
+ desc = "The pride of the Saint-Roumain Militia, the Vickland is a rare semi-automatic battle rifle produced by Hunter's Pride exclusively for SRM use. It is unusual in its class for its internal rotary magazine, which must be reloaded using stripper clips. Chambered in .308."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+
+ fire_sound = 'sound/weapons/gun/rifle/vickland.ogg'
+ icon_state = "vickland"
+ item_state = "vickland"
+ weapon_weight = WEAPON_MEDIUM
+ w_class = WEIGHT_CLASS_BULKY
+ internal_magazine = TRUE
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/vickland
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/vickland,
+ )
+ fire_sound = 'sound/weapons/gun/rifle/vickland.ogg'
+
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+ zoomable = FALSE //no scope on it
+
+ rack_sound = 'sound/weapons/gun/rifle/ar_cock.ogg'
+
+ fire_delay = 0.4 SECONDS
+
+ spread_unwielded = 25
+ recoil = 0
+ recoil_unwielded = 4
+ wield_slowdown = DMR_SLOWDOWN
+
+/obj/item/gun/ballistic/rifle/scout
+ name = "HP Scout"
+ desc = "A powerful bolt-action rifle usually given to mercenary hunters of the Saint-Roumain Militia, equally suited for taking down big game or two-legged game. Chambered in .300 Magnum."
+ icon = 'icons/obj/guns/manufacturer/hunterspride/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/hunterspride/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/hunterspride/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/hunterspride/onmob.dmi'
+ icon_state = "scout"
+ item_state = "scout"
+
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/boltaction/smile
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/boltaction/smile,
+ )
+ fire_sound = 'sound/weapons/gun/rifle/scout.ogg'
+
+ rack_sound = 'sound/weapons/gun/rifle/scout_bolt_out.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/rifle/scout_bolt_in.ogg'
+
+ can_be_sawn_off = FALSE
+
+ zoomable = TRUE
+ zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
+ zoom_out_amt = 5
+
+ manufacturer = MANUFACTURER_HUNTERSPRIDE
+
diff --git a/code/modules/projectiles/guns/manufacturer/nanotrasen_sharplite/ballistics.dm b/code/modules/projectiles/guns/manufacturer/nanotrasen_sharplite/ballistics.dm
new file mode 100644
index 000000000000..5386f323e60d
--- /dev/null
+++ b/code/modules/projectiles/guns/manufacturer/nanotrasen_sharplite/ballistics.dm
@@ -0,0 +1,55 @@
+/obj/item/gun/ballistic/automatic/pistol/commander
+ name = "VI Commander"
+ desc = "A service pistol produced as Vigilitas Interstellar's standard sidearm. Has a reputation for being easy to use, due to its light recoil and high magazine capacity. Chambered in 9mm."
+ icon_state = "commander"
+ item_state = "nt_generic"
+ icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/onmob.dmi'
+
+ w_class = WEIGHT_CLASS_NORMAL
+ default_ammo_type = /obj/item/ammo_box/magazine/co9mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/co9mm,
+ )
+ manufacturer = MANUFACTURER_VIGILITAS
+ fire_sound = 'sound/weapons/gun/pistol/rattlesnake.ogg'
+ load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
+ load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
+ eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
+ eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
+
+ rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg'
+ lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg'
+
+NO_MAG_GUN_HELPER(automatic/pistol/commander)
+
+/obj/item/ammo_box/magazine/co9mm
+ name = "commander pistol magazine (9mm)"
+ desc = "A 10-round double-stack magazine for Commander pistols. These rounds do okay damage, but struggle against armor."
+ icon_state = "commander_mag-10"
+ base_icon_state = "commander_mag"
+ ammo_type = /obj/item/ammo_casing/c9mm
+ caliber = "9mm"
+ max_ammo = 10
+ multiple_sprites = AMMO_BOX_PER_BULLET
+
+/obj/item/ammo_box/magazine/co9mm/empty
+ start_empty = TRUE
+
+
+/obj/item/gun/ballistic/automatic/pistol/commander/inteq
+ name = "PS-03 Commissioner"
+ desc = "A modified version of the VI Commander, issued as standard to Inteq Risk Management Group personnel. Features the same excellent handling and high magazine capacity as the original. Chambered in 9mm."
+
+ icon = 'icons/obj/guns/manufacturer/inteq/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/inteq/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/inteq/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/inteq/onmob.dmi'
+ icon_state = "commander_inteq"
+ item_state = "inteq_generic"
+ manufacturer = MANUFACTURER_INTEQ
+
+NO_MAG_GUN_HELPER(automatic/pistol/commander/inteq)
diff --git a/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
index bbfdbab8d2aa..7d443ad066a8 100644
--- a/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
+++ b/code/modules/projectiles/guns/manufacturer/scarborough/ballistics.dm
@@ -1,3 +1,6 @@
+#define SCARBOROUGH_ATTACHMENTS list(/obj/item/attachment/silencer, /obj/item/attachment/laser_sight, /obj/item/attachment/rail_light, /obj/item/attachment/bayonet, /obj/item/attachment/energy_bayonet)
+#define SCARBOROUGH_ATTACH_SLOTS list(ATTACHMENT_SLOT_MUZZLE = 1, ATTACHMENT_SLOT_SCOPE = 1, ATTACHMENT_SLOT_RAIL = 1)
+
//########### PISTOLS ###########//
/obj/item/gun/ballistic/automatic/pistol/ringneck
name = "PC-76 \"Ringneck\""
@@ -10,7 +13,10 @@
item_state = "sa_generic"
w_class = WEIGHT_CLASS_SMALL
- mag_type = /obj/item/ammo_box/magazine/m10mm_ringneck
+ default_ammo_type = /obj/item/ammo_box/magazine/m10mm_ringneck
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m10mm_ringneck,
+ )
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg'
@@ -28,17 +34,8 @@
manufacturer = MANUFACTURER_SCARBOROUGH
show_magazine_on_sprite = TRUE
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1,
- ATTACHMENT_SLOT_RAIL = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 27,
@@ -59,7 +56,7 @@
spread_unwielded = 9
recoil_unwielded = 2
-EMPTY_GUN_HELPER(automatic/pistol/ringneck)
+NO_MAG_GUN_HELPER(automatic/pistol/ringneck)
/obj/item/gun/ballistic/automatic/pistol/ringneck/indie
name = "Ringneck-76"
@@ -74,7 +71,7 @@ EMPTY_GUN_HELPER(automatic/pistol/ringneck)
spread_unwielded = 7
recoil_unwielded = 3
-EMPTY_GUN_HELPER(automatic/pistol/ringneck/indie)
+NO_MAG_GUN_HELPER(automatic/pistol/ringneck/indie)
/obj/item/ammo_box/magazine/m10mm_ringneck
@@ -101,7 +98,10 @@ EMPTY_GUN_HELPER(automatic/pistol/ringneck/indie)
icon_state = "asp"
item_state = "sa_generic"
- mag_type = /obj/item/ammo_box/magazine/m57_39_asp
+ default_ammo_type = /obj/item/ammo_box/magazine/m57_39_asp
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m57_39_asp,
+ )
fire_sound = 'sound/weapons/gun/pistol/asp.ogg'
@@ -117,17 +117,8 @@ EMPTY_GUN_HELPER(automatic/pistol/ringneck/indie)
manufacturer = MANUFACTURER_SCARBOROUGH
show_magazine_on_sprite = TRUE
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1,
- ATTACHMENT_SLOT_RAIL = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 32,
@@ -143,7 +134,7 @@ EMPTY_GUN_HELPER(automatic/pistol/ringneck/indie)
)
)
-EMPTY_GUN_HELPER(automatic/pistol/asp)
+NO_MAG_GUN_HELPER(automatic/pistol/asp)
/obj/item/ammo_box/magazine/m57_39_asp
name = "Asp magazine (5.7x39mm)"
@@ -167,6 +158,8 @@ EMPTY_GUN_HELPER(automatic/pistol/asp)
else
icon_state = "[base_icon_state]-0"
+/obj/item/ammo_box/magazine/m57_39_asp/empty
+ start_empty = TRUE
/obj/item/gun/ballistic/revolver/viper
name = "R-23 \"Viper\""
@@ -192,7 +185,8 @@ EMPTY_GUN_HELPER(automatic/pistol/asp)
semi_auto = TRUE //double action
safety_wording = "safety"
-EMPTY_GUN_HELPER(revolver/viper)
+/obj/item/gun/ballistic/revolver/viper/no_mag
+ spawn_no_ammo = TRUE
/obj/item/gun/ballistic/revolver/viper/indie
name = "Viper-23"
@@ -208,7 +202,8 @@ EMPTY_GUN_HELPER(revolver/viper)
. = ..()
AddComponent(/datum/component/ammo_hud/revolver)
-EMPTY_GUN_HELPER(revolver/viper/indie)
+/obj/item/gun/ballistic/revolver/viper/indie/no_mag
+ spawn_no_ammo = TRUE
/obj/item/gun/ballistic/automatic/pistol/rattlesnake
name = "MP-84 \"Rattlesnake\""
@@ -222,7 +217,10 @@ EMPTY_GUN_HELPER(revolver/viper/indie)
icon_state = "rattlesnake"
item_state = "rattlesnake"
- mag_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake
+ default_ammo_type = /obj/item/ammo_box/magazine/m9mm_rattlesnake
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m9mm_rattlesnake,
+ )
fire_sound = 'sound/weapons/gun/pistol/rattlesnake.ogg'
dry_fire_sound = 'sound/weapons/gun/pistol/dry_fire.ogg'
@@ -239,17 +237,8 @@ EMPTY_GUN_HELPER(revolver/viper/indie)
show_magazine_on_sprite = TRUE
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1,
- ATTACHMENT_SLOT_RAIL = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 40,
@@ -271,7 +260,7 @@ EMPTY_GUN_HELPER(revolver/viper/indie)
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST)
default_firemode = FIREMODE_SEMIAUTO
-EMPTY_GUN_HELPER(automatic/pistol/rattlesnake)
+NO_MAG_GUN_HELPER(automatic/pistol/rattlesnake)
/obj/item/gun/ballistic/automatic/pistol/rattlesnake/inteq
name = "MP-84m Kingsnake"
@@ -294,6 +283,9 @@ EMPTY_GUN_HELPER(automatic/pistol/rattlesnake)
. = ..()
icon_state = "[base_icon_state]_[ammo_count() == 1 ? 1 : round(ammo_count(),3)]"
+/obj/item/ammo_box/magazine/m9mm_rattlesnake/empty
+ start_empty = TRUE
+
/obj/item/gun/ballistic/automatic/pistol/himehabu
name = "PC-81 \"Himehabu\""
desc = "An astonishingly compact machine pistol firing ultra-light projectiles, designed to be as small and concealable as possible while remaining a credible threat at very close range. Armor penetration is practically non-existent. Chambered in .22."
@@ -307,8 +299,11 @@ EMPTY_GUN_HELPER(automatic/pistol/rattlesnake)
mob_overlay_icon = 'icons/obj/guns/manufacturer/scarborough/onmob.dmi'
- w_class = WEIGHT_CLASS_TINY
- mag_type = /obj/item/ammo_box/magazine/m22lr_himehabu
+ w_class = WEIGHT_CLASS_SMALL
+ default_ammo_type = /obj/item/ammo_box/magazine/m22lr_himehabu
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m22lr_himehabu,
+ )
fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg'
load_sound = 'sound/weapons/gun/pistol/mag_insert_alt.ogg'
@@ -345,7 +340,7 @@ EMPTY_GUN_HELPER(automatic/pistol/rattlesnake)
spread_unwielded = 0
wield_slowdown = 0
-EMPTY_GUN_HELPER(automatic/pistol/himehabu)
+NO_MAG_GUN_HELPER(automatic/pistol/himehabu)
/obj/item/ammo_box/magazine/m22lr_himehabu
name = "pistol magazine (.22 LR)"
@@ -355,7 +350,7 @@ EMPTY_GUN_HELPER(automatic/pistol/himehabu)
ammo_type = /obj/item/ammo_casing/c22lr
caliber = "22lr"
max_ammo = 10
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
multiple_sprites = AMMO_BOX_PER_BULLET
//########### SMGS ###########//
@@ -371,7 +366,10 @@ EMPTY_GUN_HELPER(automatic/pistol/himehabu)
icon_state = "cobra"
item_state = "cobra"
- mag_type = /obj/item/ammo_box/magazine/m45_cobra
+ default_ammo_type = /obj/item/ammo_box/magazine/m45_cobra
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m45_cobra,
+ )
fire_sound = 'sound/weapons/gun/smg/cobra.ogg'
@@ -385,12 +383,7 @@ EMPTY_GUN_HELPER(automatic/pistol/himehabu)
show_ammo_capacity_on_magazine_sprite = TRUE
manufacturer = MANUFACTURER_SCARBOROUGH
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
slot_available = list(
ATTACHMENT_SLOT_MUZZLE = 1,
ATTACHMENT_SLOT_RAIL = 1
@@ -401,12 +394,12 @@ EMPTY_GUN_HELPER(automatic/pistol/himehabu)
"y" = 23,
),
ATTACHMENT_SLOT_RAIL = list(
- "x" = 38,
- "y" = 18,
+ "x" = 28,
+ "y" = 16,
)
)
-EMPTY_GUN_HELPER(automatic/smg/cobra)
+NO_MAG_GUN_HELPER(automatic/smg/cobra)
/obj/item/gun/ballistic/automatic/smg/cobra/indie
name = "Cobra-20"
@@ -414,19 +407,19 @@ EMPTY_GUN_HELPER(automatic/smg/cobra)
icon_state = "cobra20"
item_state = "cobra20"
-EMPTY_GUN_HELPER(automatic/smg/cobra/indie)
+NO_MAG_GUN_HELPER(automatic/smg/cobra/indie)
/obj/item/ammo_box/magazine/m45_cobra
/obj/item/ammo_box/magazine/m45_cobra
name = "Cobra magazine (.45)"
- desc = "A 28-round magazine for the Cobra submachine gun. These rounds do moderate damage, but struggle against armor."
- icon_state = "cobra_mag-28"
+ desc = "A 24-round magazine for the Cobra submachine gun. These rounds do moderate damage, but struggle against armor."
+ icon_state = "cobra_mag-24"
base_icon_state = "cobra_mag"
ammo_type = /obj/item/ammo_casing/c45
caliber = ".45"
- max_ammo = 28
+ max_ammo = 24
/obj/item/ammo_box/magazine/m45_cobra/update_icon_state()
. = ..()
@@ -445,7 +438,10 @@ EMPTY_GUN_HELPER(automatic/smg/cobra/indie)
icon_state = "sidewinder"
item_state = "sidewinder"
- mag_type = /obj/item/ammo_box/magazine/m57_39_sidewinder
+ default_ammo_type = /obj/item/ammo_box/magazine/m57_39_sidewinder
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m57_39_sidewinder,
+ )
fire_sound = 'sound/weapons/gun/smg/sidewinder.ogg'
@@ -499,11 +495,11 @@ EMPTY_GUN_HELPER(automatic/smg/cobra/indie)
default_attachments = list(/obj/item/attachment/foldable_stock/sidewinder)
-EMPTY_GUN_HELPER(automatic/smg/sidewinder)
+NO_MAG_GUN_HELPER(automatic/smg/sidewinder)
/obj/item/ammo_box/magazine/m57_39_sidewinder
name = "Sidewinder magazine (5.7x39mm)"
- desc = "A 30-round magazine for the Cobra submachine gun. These rounds do okay damage with average performance against armor."
+ desc = "A 30-round magazine for the Sidewinder submachine gun. These rounds do okay damage with average performance against armor."
icon_state = "sidewinder_mag-1"
base_icon_state = "sidewinder_mag"
ammo_type = /obj/item/ammo_casing/c57x39mm
@@ -526,11 +522,16 @@ EMPTY_GUN_HELPER(automatic/smg/sidewinder)
fire_sound = 'sound/weapons/gun/sniper/cmf90.ogg'
- mag_type = /obj/item/ammo_box/magazine/boomslang
+ default_ammo_type = /obj/item/ammo_box/magazine/boomslang
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/boomslang,
+ )
w_class = WEIGHT_CLASS_BULKY
fire_delay = 1 SECONDS
+ slot_flags = ITEM_SLOT_BACK
+
show_magazine_on_sprite = TRUE
unique_mag_sprites_for_variants = TRUE
show_ammo_capacity_on_magazine_sprite = TRUE
@@ -539,18 +540,13 @@ EMPTY_GUN_HELPER(automatic/smg/sidewinder)
spread_unwielded = 35
recoil = 4
recoil_unwielded = 10
- wield_slowdown = 1
+ wield_slowdown = SNIPER_SLOWDOWN
wield_delay = 1.3 SECONDS
zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
zoom_out_amt = 5
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
slot_available = list(
ATTACHMENT_SLOT_MUZZLE = 1,
ATTACHMENT_SLOT_RAIL = 1
@@ -566,7 +562,7 @@ EMPTY_GUN_HELPER(automatic/smg/sidewinder)
)
)
-EMPTY_GUN_HELPER(automatic/marksman/boomslang)
+NO_MAG_GUN_HELPER(automatic/marksman/boomslang)
/obj/item/gun/ballistic/automatic/marksman/boomslang/indie
name = "Boomslang-90"
@@ -578,11 +574,11 @@ EMPTY_GUN_HELPER(automatic/marksman/boomslang)
zoom_amt = 3 //Long range, enough to see in front of you, but no tiles behind you.
zoom_out_amt = 0
-EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie)
+NO_MAG_GUN_HELPER(automatic/marksman/boomslang/indie)
/obj/item/ammo_box/magazine/boomslang
name = "\improper Boomslang Magazine (6.5x57mm CLIP)"
- desc = "A large 10-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and bypass half of their protective equipment, though it isn't a high enough caliber to pierce armored vehicles."
+ desc = "A large 10-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and can pierce protective equipment, excluding armored vehicles."
base_icon_state = "boomslang"
icon_state = "boomslang-10"
ammo_type = /obj/item/ammo_casing/a65clip
@@ -592,7 +588,7 @@ EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie)
/obj/item/ammo_box/magazine/boomslang/short
name = "\improper Boomslang Magazine (6.5x57mm CLIP)"
- desc = "A 5-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and bypass half of their protective equipment, though it isn't a high enough caliber to pierce armored vehicles."
+ desc = "A 5-round box magazine for Boomslang sniper rifles. These rounds deal amazing damage and can pierce protective equipment, excluding armored vehicles."
base_icon_state = "boomslang_short"
icon_state = "boomslang_short-5"
ammo_type = /obj/item/ammo_casing/a65clip
@@ -600,9 +596,6 @@ EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie)
max_ammo = 5
multiple_sprites = AMMO_BOX_PER_BULLET
-/obj/item/ammo_box/magazine/boomslang/short/empty
- start_empty = TRUE
-
/obj/item/gun/ballistic/automatic/marksman/taipan
name = "AMR-83 \"Taipan\""
desc = "A monstrous semi-automatic anti-materiel rifle, surprisingly short for its class. Designed to destroy mechs, light vehicles, and equipment, but more than capable of obliterating regular personnel. Chambered in .50 BMG."
@@ -621,7 +614,10 @@ EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie)
rack_sound = 'sound/weapons/gun/sniper/rack.ogg'
suppressed_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg'
weapon_weight = WEAPON_HEAVY
- mag_type = /obj/item/ammo_box/magazine/sniper_rounds
+ default_ammo_type = /obj/item/ammo_box/magazine/sniper_rounds
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/sniper_rounds,
+ )
w_class = WEIGHT_CLASS_BULKY
zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
zoom_out_amt = 5
@@ -642,7 +638,7 @@ EMPTY_GUN_HELPER(automatic/marksman/boomslang/indie)
valid_attachments = list()
slot_available = list()
-EMPTY_GUN_HELPER(automatic/marksman/taipan)
+NO_MAG_GUN_HELPER(automatic/marksman/taipan)
//########### RIFLES ###########//
@@ -657,7 +653,10 @@ EMPTY_GUN_HELPER(automatic/marksman/taipan)
icon_state = "hydra"
item_state = "hydra"
- mag_type = /obj/item/ammo_box/magazine/m556_42_hydra
+ default_ammo_type = /obj/item/ammo_box/magazine/m556_42_hydra
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m556_42_hydra,
+ )
gun_firenames = list(FIREMODE_SEMIAUTO = "single", FIREMODE_BURST = "burst fire", FIREMODE_FULLAUTO = "full auto", FIREMODE_OTHER = "underbarrel grenade launcher")
gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
//gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST, FIREMODE_OTHER)
@@ -681,19 +680,10 @@ EMPTY_GUN_HELPER(automatic/marksman/taipan)
fire_delay = 0.18 SECONDS
spread = 1
spread_unwielded = 8
- wield_slowdown = 0.4
+ wield_slowdown = LIGHT_RIFLE_SLOWDOWN
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1,
- ATTACHMENT_SLOT_RAIL = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 42,
@@ -709,7 +699,7 @@ EMPTY_GUN_HELPER(automatic/marksman/taipan)
)
)
-EMPTY_GUN_HELPER(automatic/assault/hydra)
+NO_MAG_GUN_HELPER(automatic/assault/hydra)
//we hard code "hydra", why? because if not, i would need to duplicate the extended/short magazine sprites like 3 fucking times for every variant with a different icon state. this eases the spriting burden
/obj/item/gun/ballistic/automatic/assault/hydra/update_overlays()
@@ -746,20 +736,11 @@ EMPTY_GUN_HELPER(automatic/assault/hydra)
fire_delay = 0.08 SECONDS
spread = 6
spread_unwielded = 20
- wield_slowdown = 0.85 //better than the lmgs since it doesnt have a bipod, still not ideal
+ wield_slowdown = SAW_SLOWDOWN //better than the lmgs since it doesnt have a bipod, still not ideal
wield_delay = 0.9 SECONDS //ditto
- valid_attachments = list(
- /obj/item/attachment/silencer,
- /obj/item/attachment/laser_sight,
- /obj/item/attachment/rail_light,
- /obj/item/attachment/bayonet
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1,
- ATTACHMENT_SLOT_RAIL = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 48,
@@ -776,20 +757,11 @@ EMPTY_GUN_HELPER(automatic/assault/hydra)
)
/obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended
- spawnwithmagazine = FALSE //so we spawn with the short magaine
+ default_ammo_type = /obj/item/ammo_box/magazine/m556_42_hydra/extended
-/obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended/Initialize()
- . = ..()
- magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/extended(src)
- chamber_round()
/obj/item/gun/ballistic/automatic/assault/hydra/lmg/casket_mag
- spawnwithmagazine = FALSE //so we spawn with the short magaine
-
-/obj/item/gun/ballistic/automatic/assault/hydra/lmg/casket_mag/Initialize()
- . = ..()
- magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/casket(src)
- chamber_round()
+ default_ammo_type = /obj/item/ammo_box/magazine/m556_42_hydra/casket
/obj/item/gun/ballistic/automatic/assault/hydra/dmr
name = "SBR-80 \"Hydra\""
@@ -803,10 +775,10 @@ EMPTY_GUN_HELPER(automatic/assault/hydra)
spread = 0
spread_unwielded = 12
- wield_slowdown = 0.8 //dmrrrr
+ wield_slowdown = DMR_SLOWDOWN //dmrrrr
wield_delay = 0.85 SECONDS //above
- spawnwithmagazine = FALSE //so we spawn with the short magaine
zoomable = TRUE
+ default_ammo_type = /obj/item/ammo_box/magazine/m556_42_hydra/small
EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
@@ -814,11 +786,10 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
. = ..()
// [CELADON-EDIT] -- CELADON_FIXES -- фиксим неподходящий магазин (вагабага дырдырдыр)
// magazine = new /obj/item/ammo_box/magazine/m556_42_hydra/small(src)
- magazine = new mag_type(src)
+ // magazine = new mag_type(src)
// [/CELADON-EDIT]
chamber_round()
-
/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl
name = "SMR-80 \"Hydra\""
desc = "Scarborough Arms' premier modular assault rifle platform. This is the basic configuration, optimized for light weight and handiness. A very well-regarded, if expensive and rare, assault rifle. This one has an underslung grenade launcher attached. Chambered in 5.56x42mm CLIP."
@@ -872,7 +843,7 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/on_wield(obj/item/source, mob/user)
wielded = TRUE
secondary.wielded = TRUE
- INVOKE_ASYNC(src, .proc.do_wield, user)
+ INVOKE_ASYNC(src, PROC_REF(do_wield), user)
/obj/item/gun/ballistic/automatic/assault/hydra/underbarrel_gl/do_wield(mob/user)
. = ..()
@@ -943,7 +914,10 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
item_state = "bulldog"
weapon_weight = WEAPON_MEDIUM
- mag_type = /obj/item/ammo_box/magazine/m12g_bulldog
+ default_ammo_type = /obj/item/ammo_box/magazine/m12g_bulldog
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m12g_bulldog,
+ )
fire_delay = 0.4 SECONDS // this NEEDS the old delay.
fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg'
show_magazine_on_sprite = TRUE
@@ -968,16 +942,11 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
spread_unwielded = 16
recoil = 1
recoil_unwielded = 4
- wield_slowdown = 0.6
+ wield_slowdown = HEAVY_SHOTGUN_SLOWDOWN
wield_delay = 0.65 SECONDS
- valid_attachments = list(
- /obj/item/attachment/silencer,
- )
- slot_available = list(
- ATTACHMENT_SLOT_MUZZLE = 1,
- ATTACHMENT_SLOT_SCOPE = 1
- )
+ valid_attachments = SCARBOROUGH_ATTACHMENTS
+ slot_available = SCARBOROUGH_ATTACH_SLOTS
slot_offsets = list(
ATTACHMENT_SLOT_MUZZLE = list(
"x" = 44,
@@ -986,10 +955,17 @@ EMPTY_GUN_HELPER(automatic/assault/hydra/dmr)
ATTACHMENT_SLOT_SCOPE = list(
"x" = 25,
"y" = 24,
+ ),
+ ATTACHMENT_SLOT_RAIL = list(
+ "x" = 30,
+ "y" = 18,
)
)
-EMPTY_GUN_HELPER(shotgun/automatic/bulldog)
+/obj/item/gun/ballistic/shotgun/automatic/bulldog/drum
+ default_ammo_type = /obj/item/ammo_box/magazine/m12g_bulldog/drum
+
+NO_MAG_GUN_HELPER(shotgun/automatic/bulldog)
/obj/item/ammo_box/magazine/m12g_bulldog
name = "shotgun box magazine (12g buckshot)"
@@ -1001,6 +977,9 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog)
max_ammo = 8
multiple_sprites = AMMO_BOX_FULL_EMPTY
+/obj/item/ammo_box/magazine/m12g_bulldog/empty
+ start_empty = TRUE
+
/obj/item/ammo_box/magazine/m12g_bulldog/drum
name = "shotgun drum magazine (12g buckshot)"
desc = "A bulky 12-round drum designed for the Bulldog shotgun and it's derivatives."
@@ -1012,6 +991,9 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog)
w_class = WEIGHT_CLASS_NORMAL
multiple_sprites = AMMO_BOX_FULL_EMPTY
+/obj/item/ammo_box/magazine/m12g_bulldog/drum/empty
+ start_empty = TRUE
+
/obj/item/ammo_box/magazine/m12g_bulldog/drum/stun
name = "shotgun drum magazine (12g taser slugs)"
ammo_type = /obj/item/ammo_casing/shotgun/stunslug
@@ -1032,10 +1014,6 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog)
name = "shotgun drum magazine (12g meteor slugs)"
ammo_type = /obj/item/ammo_casing/shotgun/meteorslug
-
-EMPTY_GUN_HELPER(shotgun/bulldog)
-
-
/obj/item/gun/ballistic/rocketlauncher/mako
name = "RR-86 \"Mako\""
desc = "A large, four-tube rocket launcher, the Mako fires (relatively) small rockets filled with incendiary compound, designed to cause fires and deny enemy movement. Capable of causing significant damage to exosuits on impact, as well."
@@ -1047,7 +1025,10 @@ EMPTY_GUN_HELPER(shotgun/bulldog)
icon_state = "mako"
item_state = "mako"
- mag_type = /obj/item/ammo_box/magazine/internal/mako
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/mako
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/mako,
+ )
fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg'
load_sound = 'sound/weapons/gun/general/rocket_load.ogg'
w_class = WEIGHT_CLASS_BULKY
@@ -1073,7 +1054,7 @@ EMPTY_GUN_HELPER(shotgun/bulldog)
/obj/item/ammo_casing/caseless/rocket/a70mm
name = "\improper M-KO-9HE"
- desc = "An 70mm High Explosive rocket. Fire at mech and pray."
+ desc = "A 70mm High Explosive rocket. Fire at mech and pray."
icon_state = "srm-8"
caliber = "70mm"
projectile_type = /obj/projectile/bullet/a84mm_he
@@ -1081,7 +1062,10 @@ EMPTY_GUN_HELPER(shotgun/bulldog)
/obj/item/ammo_casing/caseless/rocket/a70mm/hedp
name = "\improper M-KO-9HEDP"
- desc = "An 84mm High Explosive Dual Purpose rocket. Pointy end toward armor."
+ desc = "A 70mm High Explosive Dual Purpose rocket. Pointy end toward armor."
caliber = "70mm"
icon_state = "84mm-hedp"
projectile_type = /obj/projectile/bullet/a84mm
+
+#undef SCARBOROUGH_ATTACHMENTS
+#undef SCARBOROUGH_ATTACH_SLOTS
diff --git a/code/modules/projectiles/guns/manufacturer/serene_sporting/ballistics.dm b/code/modules/projectiles/guns/manufacturer/serene_sporting/ballistics.dm
new file mode 100644
index 000000000000..9cce455663ca
--- /dev/null
+++ b/code/modules/projectiles/guns/manufacturer/serene_sporting/ballistics.dm
@@ -0,0 +1,274 @@
+#define SERENE_ATTACHMENTS list(/obj/item/attachment/rail_light, /obj/item/attachment/bayonet)
+#define SERENE_ATTACH_SLOTS list(ATTACHMENT_SLOT_MUZZLE = 1, ATTACHMENT_SLOT_RAIL = 1)
+
+/* Micro Target */
+
+/obj/item/gun/ballistic/automatic/pistol/m17
+ name = "Model 17 \"Micro Target\""
+ desc = "A lightweight and very accurate target pistol produced by Serene Outdoors. The barrel can be unscrewed for storage. Chambered in .22 LR."
+
+ icon = 'icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi'
+ icon_state = "m17"
+ item_state = "so_generic"
+
+ default_ammo_type = /obj/item/ammo_box/magazine/m17
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m17,
+ )
+
+ fire_sound = 'sound/weapons/gun/pistol/himehabu.ogg'
+
+ manufacturer = MANUFACTURER_SERENE
+ show_magazine_on_sprite = TRUE
+ bolt_type = BOLT_TYPE_LOCKING
+
+ w_class = WEIGHT_CLASS_SMALL
+
+ spread = 25
+ spread_unwielded = 45
+ recoil = -2
+ recoil_unwielded = -2
+
+ wield_slowdown = PISTOL_SLOWDOWN
+
+ valid_attachments = list(
+ /obj/item/attachment/m17_barrel,
+ )
+ slot_available = list(
+ ATTACHMENT_SLOT_MUZZLE = 1,
+ )
+ slot_offsets = list(
+ ATTACHMENT_SLOT_MUZZLE = list(
+ "x" = 30,
+ "y" = 23,
+ ),
+ )
+
+ default_attachments = list(/obj/item/attachment/m17_barrel)
+
+EMPTY_GUN_HELPER(automatic/pistol/m17)
+
+/obj/item/ammo_box/magazine/m17
+ name = "Model 17 magazine (.22lr)"
+ desc = "A 10-round magazine for the Model 17 \"Micro Target\". These rounds do okay damage with awful performance against armor."
+ icon_state = "m17_mag-1"
+ base_icon_state = "m17_mag"
+ ammo_type = /obj/item/ammo_casing/c22lr
+ caliber = "22lr"
+ max_ammo = 10
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+
+/obj/item/ammo_box/magazine/m17/empty
+ start_empty = TRUE
+
+/* Sporter */
+
+/obj/item/gun/ballistic/automatic/m12_sporter
+ name = "Model 12 \"Sporter\""
+ desc = "An extremely popular target shooting rifle produced by Serene Outdoors. Inexpensive, widely available, and produced in massive numbers, the Sporter is also popular for hunting small game and ground birds. Chambered in .22 LR."
+
+ icon = 'icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi'
+ icon_state = "m12"
+ item_state = "m12"
+
+ weapon_weight = WEAPON_MEDIUM
+ default_ammo_type = /obj/item/ammo_box/magazine/m12_sporter
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m12_sporter,
+ )
+
+ fire_delay = 0.4 SECONDS
+ burst_size = 1
+ w_class = WEIGHT_CLASS_BULKY
+ slot_flags = ITEM_SLOT_BACK
+ show_magazine_on_sprite = TRUE
+ bolt_type = BOLT_TYPE_LOCKING
+
+ fire_sound = 'sound/weapons/gun/gauss/claris.ogg'
+
+ spread = 0
+ spread_unwielded = 15
+ recoil = 0
+ recoil_unwielded = 2
+ wield_slowdown = LIGHT_RIFLE_SLOWDOWN
+ wield_delay = 1 SECONDS
+
+ manufacturer = MANUFACTURER_SERENE
+
+ valid_attachments = SERENE_ATTACHMENTS
+ slot_available = SERENE_ATTACH_SLOTS
+
+ slot_offsets = list(
+ ATTACHMENT_SLOT_MUZZLE = list(
+ "x" = 44,
+ "y" = 18,
+ ),
+ ATTACHMENT_SLOT_RAIL = list(
+ "x" = 17,
+ "y" = 20,
+ )
+ )
+
+EMPTY_GUN_HELPER(automatic/m12_sporter)
+
+
+/obj/item/ammo_box/magazine/m12_sporter
+ name = "Model 12 magazine (.22lr)"
+ desc = "A 25-round magazine for the Model 12 \"Sporter\". These rounds do okay damage with awful performance against armor."
+ icon_state = "m12_mag-1"
+ base_icon_state = "m12_mag"
+ ammo_type = /obj/item/ammo_casing/c22lr
+ caliber = "22lr"
+ max_ammo = 25
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+
+/obj/item/ammo_box/magazine/m12_sporter/empty
+ start_empty = TRUE
+
+/obj/item/gun/ballistic/automatic/m12_sporter/mod
+ name = "Model 13 \"Larker\""
+ desc = "A common after-market modification of the Model 12 \"Sporter\" rifle, keyed to fire a three round burst."
+ burst_size = 3
+ burst_delay = 0.6
+
+ icon_state = "larker"
+ item_state = "larker"
+
+ gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_BURST)
+ gun_firenames = list(FIREMODE_SEMIAUTO = "single", FIREMODE_BURST = "triptych")
+ default_firemode = FIREMODE_BURST
+
+EMPTY_GUN_HELPER(automatic/m12_sporter/mod)
+
+/* super soaker */
+
+/obj/item/gun/ballistic/automatic/m15
+ name = "Model 15 Super Sporter"
+ desc = "A popular semi-automatic hunting rifle produced by Serene Outdoors. Solid all-round performance, high accuracy, and ease of access compared to military rifles makes the Super Sporter a popular choice for hunting medium game and occasionally self-defense. Chambered in 5.56mm."
+
+ icon = 'icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi'
+ icon_state = "m15"
+ item_state = "m15"
+
+ default_ammo_type = /obj/item/ammo_box/magazine/m15
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/m15,
+ )
+
+ fire_sound = 'sound/weapons/gun/rifle/m16.ogg'
+
+ manufacturer = MANUFACTURER_SERENE
+ show_magazine_on_sprite = TRUE
+
+ bolt_type = BOLT_TYPE_LOCKING
+
+ slot_flags = ITEM_SLOT_BACK
+
+ w_class = WEIGHT_CLASS_BULKY
+ weapon_weight = WEAPON_MEDIUM
+
+ slot_flags = ITEM_SLOT_BACK
+
+ spread = 0
+ spread_unwielded = 20
+ recoil = 0.5
+ recoil_unwielded = 3
+ wield_slowdown = LIGHT_RIFLE_SLOWDOWN
+ wield_delay = 1 SECONDS
+
+ valid_attachments = SERENE_ATTACHMENTS
+ slot_available = SERENE_ATTACH_SLOTS
+
+ slot_offsets = list(
+ ATTACHMENT_SLOT_MUZZLE = list(
+ "x" = 47,
+ "y" = 21,
+ ),
+ ATTACHMENT_SLOT_RAIL = list(
+ "x" = 13,
+ "y" = 23,
+ )
+ )
+
+EMPTY_GUN_HELPER(automatic/m15)
+
+/obj/item/ammo_box/magazine/m15
+ name = "Model 15 magazine (5.56x42mm CLIP)"
+ desc = "A 20-round magazine for the Model 15 \"Super Sporter\". These rounds do average damage and perform moderately against armor."
+ icon_state = "p16_mag-1"
+ base_icon_state = "p16_mag"
+ ammo_type = /obj/item/ammo_casing/a556_42
+ caliber = "5.56x42mm"
+ max_ammo = 20
+ multiple_sprites = AMMO_BOX_FULL_EMPTY
+
+/obj/item/ammo_box/magazine/m15/empty
+ start_empty = TRUE
+
+/* cuckmaster */
+
+/obj/item/gun/ballistic/shotgun/automatic/m11
+ name = "Model 11 \"Buckmaster\""
+ desc = "A semi-automatic hunting shotgun produced by Serene Outdoors. Much lighter and handier than military combat shotguns, it offers the same fire rate and magazine capacity, making it an excellent choice for hunting birds and large game or for security forces looking to upgrade from pump action guns. Chambered in 12g."
+
+ icon = 'icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi'
+ icon_state = "buckmaster"
+ item_state = "buckmaster"
+
+ fire_delay = 0.5 SECONDS
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/shot/buckmaster
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/shot/buckmaster,
+ )
+ w_class = WEIGHT_CLASS_BULKY
+
+ bolt_type = BOLT_TYPE_LOCKING
+
+ fire_sound = 'sound/weapons/gun/shotgun/bulldog.ogg'
+
+ spread = 4
+ spread_unwielded = 16
+ recoil = 1
+ recoil_unwielded = 4
+ wield_slowdown = SHOTGUN_SLOWDOWN
+ wield_delay = 0.65 SECONDS
+
+ casing_ejector = TRUE
+
+ manufacturer = MANUFACTURER_SERENE
+
+ valid_attachments = SERENE_ATTACHMENTS
+ slot_available = SERENE_ATTACH_SLOTS
+
+ slot_offsets = list(
+ ATTACHMENT_SLOT_MUZZLE = list(
+ "x" = 45,
+ "y" = 18,
+ ),
+ ATTACHMENT_SLOT_RAIL = list(
+ "x" = 16,
+ "y" = 22,
+ )
+ )
+
+/obj/item/ammo_box/magazine/internal/shot/buckmaster
+ name = "Buckmaster internal magazine"
+ ammo_type = /obj/item/ammo_casing/shotgun/buckshot
+ max_ammo = 8
+
+EMPTY_GUN_HELPER(shotgun/automatic/m11)
+
+#undef SERENE_ATTACHMENTS
+#undef SERENE_ATTACH_SLOTS
diff --git a/code/modules/projectiles/guns/manufacturer/solar_armories/ballistic.dm b/code/modules/projectiles/guns/manufacturer/solar_armories/ballistic.dm
new file mode 100644
index 000000000000..6a1575ab2043
--- /dev/null
+++ b/code/modules/projectiles/guns/manufacturer/solar_armories/ballistic.dm
@@ -0,0 +1,209 @@
+///SOLAR ARMORIES
+//fuck you im not typing the full name out
+//solarwaffledesuckenmydickengeschutzenweaponmanufacturinglocation
+
+///Pistols
+/obj/item/gun/ballistic/automatic/powered/gauss/modelh
+ name = "Model H"
+ desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor."
+
+ icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
+ icon_state = "model-h"
+ item_state = "model-h"
+ fire_sound = 'sound/weapons/gun/gauss/modelh.ogg'
+ load_sound = 'sound/weapons/gun/gauss/pistol_reload.ogg'
+
+ default_ammo_type = /obj/item/ammo_box/magazine/modelh
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/modelh,
+ )
+ default_cell_type = /obj/item/stock_parts/cell/gun/solgov
+ allowed_cell_types = list(
+ /obj/item/stock_parts/cell/gun/solgov,
+ )
+
+ slot_flags = ITEM_SLOT_BELT
+ w_class = WEIGHT_CLASS_SMALL
+ fire_delay = 0.6 SECONDS //pistol, but heavy caliber.
+ show_magazine_on_sprite = FALSE
+ empty_indicator = FALSE
+ manufacturer = MANUFACTURER_SOLARARMORIES
+ recoil = 2
+ recoil_unwielded = 4
+ spread = 6
+ spread_unwielded = 12
+ fire_select_icon_state_prefix = "slug_"
+
+ valid_attachments = list(
+ /obj/item/attachment/laser_sight,
+ /obj/item/attachment/rail_light,
+ )
+
+/obj/item/gun/ballistic/automatic/powered/gauss/modelh/no_mag
+ default_ammo_type = FALSE
+
+/obj/item/gun/ballistic/automatic/powered/gauss/modelh/suns
+ desc = "A standard-issue pistol exported from the Solarian Confederation. It fires slow flesh-rending ferromagnetic slugs at a high energy cost, however they are ineffective on any armor. It is painted in the colors of SUNS."
+ default_ammo_type = /obj/item/ammo_box/magazine/modelh
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/modelh,
+ )
+ icon_state = "model-h_suns"
+ item_state = "model-h_suns"
+
+//not gauss pistol
+/obj/item/gun/ballistic/automatic/pistol/solgov
+ name = "\improper Pistole C"
+ desc = "A favorite of the Terran Regency that is despised by the Solarian bureaucracy. Shifted out of military service centuries ago, though still popular among civilians. Chambered in 5.56mm caseless."
+ icon_state = "pistole-c"
+ icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
+
+ weapon_weight = WEAPON_LIGHT
+ default_ammo_type = /obj/item/ammo_box/magazine/pistol556mm
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/pistol556mm,
+ )
+ fire_sound = 'sound/weapons/gun/pistol/pistolec.ogg'
+ manufacturer = MANUFACTURER_SOLARARMORIES
+ load_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
+ load_empty_sound = 'sound/weapons/gun/pistol/mag_insert.ogg'
+ eject_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
+ eject_empty_sound = 'sound/weapons/gun/pistol/mag_release.ogg'
+
+ rack_sound = 'sound/weapons/gun/pistol/rack_small.ogg'
+ lock_back_sound = 'sound/weapons/gun/pistol/lock_small.ogg'
+ bolt_drop_sound = 'sound/weapons/gun/pistol/drop_small.ogg'
+
+ fire_select_icon_state_prefix = "caseless_"
+
+ slot_flags = ITEM_SLOT_BELT
+
+/obj/item/gun/ballistic/automatic/pistol/solgov/old
+ icon_state = "pistole-c-old"
+
+///Rifles
+
+/obj/item/gun/ballistic/automatic/powered/gauss/claris
+ name = "Claris"
+ desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended."
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/claris
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/claris,
+ )
+ icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
+ icon_state = "claris"
+ item_state = "claris"
+ fire_sound = 'sound/weapons/gun/gauss/claris.ogg'
+ load_sound = 'sound/weapons/gun/gauss/sniper_reload.ogg'
+ default_cell_type = /obj/item/stock_parts/cell/gun/solgov
+ allowed_cell_types = list(
+ /obj/item/stock_parts/cell/gun/solgov,
+ )
+ fire_delay = 0.4 SECONDS
+ bolt_type = BOLT_TYPE_NO_BOLT
+ internal_magazine = TRUE
+ show_magazine_on_sprite = FALSE
+ empty_indicator = FALSE
+ manufacturer = MANUFACTURER_SOLARARMORIES
+ fire_select_icon_state_prefix = "pellet_"
+
+ slot_flags = ITEM_SLOT_BACK
+
+ valid_attachments = list(
+ /obj/item/attachment/laser_sight,
+ /obj/item/attachment/rail_light,
+ /obj/item/attachment/bayonet,
+ /obj/item/attachment/energy_bayonet
+ )
+
+
+/obj/item/gun/ballistic/automatic/powered/gauss/claris/suns
+ desc = "An antiquated Solarian rifle. Chambered in ferromagnetic pellets, just as the founding Solarians intended. Evidently, SUNS' founders echo the sentiment, as it appears to be painted in their colors."
+ icon_state = "claris_suns"
+ item_state = "claris_suns"
+
+/obj/item/gun/ballistic/automatic/powered/gauss/gar
+ name = "Solar 'GAR' Carbine"
+ desc = "A Solarian carbine, unusually modern for its producers. Launches ferromagnetic lances at alarming speeds."
+ default_ammo_type = /obj/item/ammo_box/magazine/gar
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/gar,
+ )
+ icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
+ icon_state = "gar"
+ item_state = "gar"
+ fire_sound = 'sound/weapons/gun/gauss/gar.ogg'
+ load_sound = 'sound/weapons/gun/gauss/rifle_reload.ogg'
+ default_cell_type = /obj/item/stock_parts/cell/gun/solgov
+ allowed_cell_types = list(
+ /obj/item/stock_parts/cell/gun/solgov,
+ )
+ burst_size = 1
+
+ fire_delay = 0.2 SECONDS
+
+ actions_types = list()
+ empty_indicator = FALSE
+ manufacturer = MANUFACTURER_SOLARARMORIES
+
+ slot_flags = ITEM_SLOT_BACK
+
+ valid_attachments = list(
+ /obj/item/attachment/laser_sight,
+ /obj/item/attachment/rail_light,
+ /obj/item/attachment/bayonet,
+ /obj/item/attachment/energy_bayonet
+ )
+
+ gun_firemodes = list(FIREMODE_SEMIAUTO, FIREMODE_FULLAUTO)
+ default_firemode = FIREMODE_SEMIAUTO
+
+ wield_delay = 0.7 SECONDS
+ fire_select_icon_state_prefix = "lance_"
+
+/obj/item/gun/ballistic/automatic/powered/gauss/gar/suns
+ desc = "A Solarian carbine, unusually modern for its producers. It's just modern enough for SUNS, however, who have painted the weapon in their colors. Launches ferromagnetic lances at alarming speeds."
+ icon_state = "gar_suns"
+ item_state = "gar_suns"
+
+///Sniper
+/obj/item/gun/ballistic/rifle/solgov
+ name = "SSG-669C"
+ desc = "A bolt-action sniper rifle used by Solarian troops. Beloved for its rotary design and accuracy. Chambered in 8x58mm Caseless."
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/boltaction/solgov
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/boltaction/solgov,
+ )
+ icon_state = "ssg669c"
+ item_state = "ssg669c"
+ icon = 'icons/obj/guns/manufacturer/solararmories/48x32.dmi'
+ lefthand_file = 'icons/obj/guns/manufacturer/solararmories/lefthand.dmi'
+ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi'
+ mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi'
+
+ fire_sound = 'sound/weapons/gun/rifle/ssg669c.ogg'
+ can_be_sawn_off = FALSE
+
+ zoomable = TRUE
+ zoom_amt = 10 //Long range, enough to see in front of you, but no tiles behind you.
+ zoom_out_amt = 5
+
+ manufacturer = MANUFACTURER_SOLARARMORIES
+ spread = -5
+ spread_unwielded = 20
+ recoil = 0
+ recoil_unwielded = 4
+ wield_slowdown = SNIPER_SLOWDOWN
+ wield_delay = 1.3 SECONDS
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index b131b03ec148..3d1c407a7e56 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -28,9 +28,11 @@
weapon_weight = WEAPON_HEAVY
w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/beam_rifle/hitscan)
- internal_cell = FALSE //prevents you from giving it an OP cell - WS Edit //shut up dumb nerd
- mag_size = MAG_SIZE_LARGE
- cell_type = "/obj/item/stock_parts/cell/gun/large"
+ internal_magazine = FALSE //prevents you from giving it an OP cell - WS Edit //shut up dumb nerd
+ default_ammo_type = /obj/item/stock_parts/cell/gun/large
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/gun/large,
+ )
canMouseDown = TRUE
var/aiming = FALSE
var/aiming_time = 12
@@ -78,7 +80,10 @@
/obj/item/gun/energy/beam_rifle/debug
delay = 0
- cell_type = /obj/item/stock_parts/cell/infinite
+ default_ammo_type = /obj/item/stock_parts/cell/infinite
+ allowed_ammo_types = list(
+ /obj/item/stock_parts/cell/infinite,
+ )
aiming_time = 0
recoil = 0
@@ -477,7 +482,7 @@
if(isliving(target))
var/mob/living/L = target
L.adjustFireLoss(impact_direct_damage)
- L.emote("scream")
+ L.force_scream()
/obj/projectile/beam/beam_rifle/proc/handle_hit(atom/target, piercing_hit = FALSE)
set waitfor = FALSE
diff --git a/code/modules/projectiles/guns/misc/bow.dm b/code/modules/projectiles/guns/misc/bow.dm
index 9f2957ba40cd..01c60b3ca865 100644
--- a/code/modules/projectiles/guns/misc/bow.dm
+++ b/code/modules/projectiles/guns/misc/bow.dm
@@ -7,7 +7,10 @@
load_sound = null
fire_sound = 'sound/weapons/bowfire.ogg'
slot_flags = ITEM_SLOT_BACK
- mag_type = /obj/item/ammo_box/magazine/internal/bow
+ default_ammo_type = /obj/item/ammo_box/magazine/internal/bow
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/internal/bow,
+ )
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
force = 15
attack_verb = list("whipped", "cracked")
diff --git a/code/modules/projectiles/guns/powered.dm b/code/modules/projectiles/guns/powered.dm
index a9ab2f6365f4..44419c099564 100644
--- a/code/modules/projectiles/guns/powered.dm
+++ b/code/modules/projectiles/guns/powered.dm
@@ -1,13 +1,21 @@
/obj/item/gun/ballistic/automatic/powered
- mag_type = /obj/item/ammo_box/magazine/gauss
+ default_ammo_type = /obj/item/ammo_box/magazine/gauss
+ allowed_ammo_types = list(
+ /obj/item/ammo_box/magazine/gauss,
+ )
+ var/default_cell_type = /obj/item/stock_parts/cell/gun
+ var/list/allowed_cell_types = list(
+ /obj/item/stock_parts/cell/gun,
+ /obj/item/stock_parts/cell/gun/upgraded,
+ /obj/item/stock_parts/cell/gun/empty,
+ /obj/item/stock_parts/cell/gun/upgraded/empty,
+ )
charge_sections = 3
/obj/item/gun/ballistic/automatic/powered/Initialize()
. = ..()
- if(cell_type)
- cell = new cell_type(src)
- else
- cell = new(src)
+ if(default_cell_type)
+ cell = new default_cell_type(src)
update_appearance()
/obj/item/gun/ballistic/automatic/powered/examine(mob/user)
@@ -39,19 +47,13 @@
//the things below were taken from energy gun code. blame whoever coded this, not me
/obj/item/gun/ballistic/automatic/powered/attackby(obj/item/A, mob/user, params)
- if (!internal_cell && istype(A, /obj/item/stock_parts/cell/gun))
+ if (!internal_cell && (A.type in allowed_cell_types))
var/obj/item/stock_parts/cell/gun/C = A
if (!cell)
insert_cell(user, C)
return ..()
/obj/item/gun/ballistic/automatic/powered/proc/insert_cell(mob/user, obj/item/stock_parts/cell/gun/C)
- if(mag_size == MAG_SIZE_SMALL && !istype(C, /obj/item/stock_parts/cell/gun/mini))
- to_chat(user, "\The [C] doesn't seem to fit into \the [src]...")
- return FALSE
- if(mag_size == MAG_SIZE_LARGE && !istype(C, /obj/item/stock_parts/cell/gun/large))
- to_chat(user, "\The [C] doesn't seem to fit into \the [src]...")
- return FALSE
if(user.transferItemToLoc(C, src))
cell = C
to_chat(user, "You load the [C] into \the [src].")
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 61c0e7d5e154..5367517b2230 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -73,7 +73,10 @@
/// number of times we've pierced something. Incremented BEFORE bullet_act and on_hit proc!
var/pierces = 0
- var/speed = 0.8 //Amount of deciseconds it takes for projectile to travel
+ ///Amount of deciseconds it takes for projectile to travel
+ var/speed = 0.8
+ ///plus/minus modifier to projectile speed
+ var/speed_mod = 0
var/Angle = 0
var/original_angle = 0 //Angle at firing
var/nondirectional_sprite = FALSE //Set TRUE to prevent projectiles from having their sprites rotated based on firing angle
@@ -141,6 +144,7 @@
var/decayedRange //stores original range
var/reflect_range_decrease = 5 //amount of original range that falls off when reflecting, so it doesn't go forever
var/reflectable = NONE // Can it be reflected or not?
+
//Effects
var/stun = 0
var/knockdown = 0
@@ -164,6 +168,7 @@
///If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets
var/shrapnel_type
+
///If TRUE, hit mobs even if they're on the floor and not our target
var/hit_stunned_targets = FALSE
/// If true directly targeted turfs can be hit
@@ -176,6 +181,7 @@
/obj/projectile/Initialize()
. = ..()
decayedRange = range
+ speed = speed + speed_mod
AddElement(/datum/element/connect_loc, projectile_connections)
/obj/projectile/proc/Range()
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index b95c3dd37ddb..b0942a242cac 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -63,6 +63,9 @@
muzzle_type = /obj/effect/projectile/muzzle/heavy_laser
impact_type = /obj/effect/projectile/impact/heavy_laser
+/obj/projectile/beam/laser/heavylaser/assault
+ armour_penetration = 20
+
/obj/projectile/beam/laser/heavylaser/sharplite
speed = 0.4
@@ -80,6 +83,10 @@
/obj/projectile/beam/weaker
damage = 10
+/obj/projectile/beam/weak/low_range
+ damage = 10
+ range = 9
+
/obj/projectile/beam/weak/penetrator
armour_penetration = 50
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 43106f97deec..277aa5e0404e 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -2,7 +2,7 @@
name = "bullet"
icon_state = "gauss"
damage = 60
- speed = 0.4
+ speed = BULLET_SPEED_RIFLE
damage_type = BRUTE
nodamage = FALSE
flag = "bullet"
diff --git a/code/modules/projectiles/projectile/bullets/lmg.dm b/code/modules/projectiles/projectile/bullets/lmg.dm
index 71da70475dde..5e246236fc70 100644
--- a/code/modules/projectiles/projectile/bullets/lmg.dm
+++ b/code/modules/projectiles/projectile/bullets/lmg.dm
@@ -59,28 +59,25 @@
/obj/projectile/bullet/mm712x82
name = "7.12x82mm bullet"
damage = 25
- armour_penetration = 4076
+ armour_penetration = 40
+ speed = BULLET_SPEED_RIFLE
/obj/projectile/bullet/mm712x82/ap
name = "7.12x82mm armor-piercing bullet"
armour_penetration = 75
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/mm712x82/hp
name = "7.12x82mm hollow point bullet"
damage = 40
armour_penetration = -20
-
-/obj/projectile/bullet/incendiary/mm712x82
- name = "7.12x82mm incendiary bullet"
- damage = 15
- armour_penetration = 40
- fire_stacks = 3
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/mm712x82/match
name = "7.12x82mm match bullet"
- speed = 0.3
armour_penetration = 50
ricochets_max = 2
ricochet_chance = 60
ricochet_auto_aim_range = 4
ricochet_incidence_leeway = 35
+ speed_mod = BULLET_SPEED_HP_MOD
diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm
index 37af59c1de57..73da54ea5819 100644
--- a/code/modules/projectiles/projectile/bullets/pistol.dm
+++ b/code/modules/projectiles/projectile/bullets/pistol.dm
@@ -1,98 +1,144 @@
+//.22lr (Himehabu, Micro Target, Pounder (uwu))
+
+/obj/projectile/bullet/c22lr
+ name = ".22LR bullet"
+ damage = 18
+ armour_penetration = -45
+ ricochet_incidence_leeway = 20
+ ricochet_chance = 65
+ speed = BULLET_SPEED_HANDGUN
+
+/obj/projectile/bullet/c22lr/hp
+ name = ".22LR bullet"
+ damage = 24
+ armour_penetration = -65
+ ricochet_chance = 0
+ speed_mod = BULLET_SPEED_HP_MOD
+
+/obj/projectile/bullet/c22lr/ap
+ name = ".22LR armor piercing bullet"
+ damage = 14
+ armour_penetration = -25
+ ricochet_incidence_leeway = 20
+ ricochet_chance = 30
+ speed_mod = BULLET_SPEED_AP_MOD
+
+/obj/projectile/bullet/c22lr/rubber
+ name = ".22LR rubber bullet"
+ damage = 4
+ stamina = 15
+ armour_penetration = -70
+ speed_mod = BULLET_SPEED_HV_MOD //do not do this for other rubber bullets. If you do I will come out of the woodwork and bludgeon you to death with this stick i found.
+ ricochets_max = 8 //ding ding ding ding
+ ricochet_incidence_leeway = 70
+ ricochet_chance = 130
+ ricochet_decay_damage = 0.8
+
// 9mm (Commander, SABR)
/obj/projectile/bullet/c9mm
name = "9mm bullet"
damage = 20
armour_penetration = -20
+ speed = BULLET_SPEED_HANDGUN
/obj/projectile/bullet/c9mm/surplus
name = "9mm surplus bullet"
damage = 15
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c9mm/ap
name = "9mm armor-piercing bullet"
damage = 15
armour_penetration = 20
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/c9mm/hp
name = "9mm hollow point bullet"
damage = 35
armour_penetration = -50
-
-/obj/projectile/bullet/incendiary/c9mm
- name = "9mm incendiary bullet"
- damage = 10
- armour_penetration = -20
- fire_stacks = 2
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/c9mm/rubber
name = "9mm rubber bullet"
damage = 5
armour_penetration = -40
stamina = 30
+ speed_mod = BULLET_SPEED_RUBBER_MOD
-// 10mm (Ringneck & SkM-44(k))
+// 10mm (Ringneck)
/obj/projectile/bullet/c10mm
name = "10mm bullet"
damage = 25
armour_penetration = -20
+ speed = BULLET_SPEED_HANDGUN
/obj/projectile/bullet/c10mm/surplus
name = "10mm surplus bullet"
damage = 20
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c10mm/ap
name = "10mm armor-piercing bullet"
damage = 20
armour_penetration = 20
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/c10mm/hp
name = "10mm hollow point bullet"
damage = 40
armour_penetration = -50
-
-/obj/projectile/bullet/incendiary/c10mm
- name = "10mm incendiary bullet"
- damage = 15
- armour_penetration = -20
- fire_stacks = 2
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/c10mm/rubber
name = "10mm rubber bullet"
damage = 7
stamina = 38
armour_penetration = -40
+ speed_mod = BULLET_SPEED_RUBBER_MOD
-// .45 (Candor, C20r, Thompson)
+// .45 (Candor, C20r)
/obj/projectile/bullet/c45
name = ".45 bullet"
damage = 25
armour_penetration = -20
+ speed = BULLET_SPEED_HANDGUN
/obj/projectile/bullet/c45/surplus
name = ".45 surplus bullet"
damage = 20
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c45/ap
name = ".45 armor-piercing bullet"
damage = 20
armour_penetration = 20
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/c45/hp
name = ".45 hollow point bullet"
damage = 40
armour_penetration = -50
-
-/obj/projectile/bullet/incendiary/c45
- name = ".45 incendiary bullet"
- damage = 15
- fire_stacks = 2
- armour_penetration = -20
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/c45/rubber
name = ".45 rubber bullet"
damage = 7
stamina = 38
armour_penetration = -40
+ speed_mod = BULLET_SPEED_RUBBER_MOD
+
+// .50 AE (Desert Eagle)
+
+/obj/projectile/bullet/a50AE
+ name = ".50 AE bullet"
+ damage = 40
+ speed = BULLET_SPEED_HANDGUN
+
+/obj/projectile/bullet/a50AE/hp
+ name = ".50 AE hollow point bullet"
+ damage = 55
+ armour_penetration = -20
+ speed_mod = BULLET_SPEED_HP_MOD
diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm
index 340aa692f5b2..47036d5dbda9 100644
--- a/code/modules/projectiles/projectile/bullets/revolver.dm
+++ b/code/modules/projectiles/projectile/bullets/revolver.dm
@@ -1,28 +1,19 @@
-// .50 AE (Desert Eagle)
-
-/obj/projectile/bullet/a50AE
- name = ".50 AE bullet"
- damage = 40
-
-/obj/projectile/bullet/a50AE/hp
- name = ".50 AE hollow point bullet"
- damage = 55
- armour_penetration = -50
-
// .38 (Colt Detective Special & Winchester)
/obj/projectile/bullet/c38
name = ".38 bullet"
damage = 20
armour_penetration = -20
+ speed = BULLET_SPEED_REVOLVER
/obj/projectile/bullet/c38/surplus
damage = 15
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c38/match
name = ".38 match bullet"
- speed = 0.3
armour_penetration = -10
+ speed_mod = BULLET_SPEED_AP_MOD
ricochets_max = 4
ricochet_chance = 100
ricochet_auto_aim_angle = 40
@@ -31,17 +22,16 @@
ricochet_decay_chance = 1
ricochet_decay_damage = 1
-/obj/projectile/bullet/c38/match/bouncy // I don't know why this is a subtype of match
+/obj/projectile/bullet/c38/bouncy
name = ".38 rubber bullet"
- speed = 0.4
damage = 7
- stamina = 38
+ stamina = 28
armour_penetration = -60
+ speed_mod = BULLET_SPEED_RUBBER_MOD
ricochets_max = 6
ricochet_incidence_leeway = 70
ricochet_chance = 130
ricochet_decay_damage = 0.8
- shrapnel_type = NONE
/obj/projectile/bullet/c38/dumdum
name = ".38 dum-dum bullet"
@@ -51,22 +41,10 @@
shrapnel_type = /obj/item/shrapnel/bullet/c38/dumdum
/obj/projectile/bullet/c38/trac
- name = ".38 TRAC bullet"
+ name = ".38 tracker"
damage = 10
ricochets_max = 0
-
-/obj/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE)
- . = ..()
- var/mob/living/carbon/M = target
- if(!istype(M))
- return
- var/obj/item/implant/tracking/c38/imp
- for(var/obj/item/implant/tracking/c38/TI in M.implants) //checks if the target already contains a tracking implant
- imp = TI
- return
- if(!imp)
- imp = new /obj/item/implant/tracking/c38(M)
- imp.implant(M)
+ shrapnel_type = /obj/item/shrapnel/bullet/tracker/c38
/obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail
name = ".38 hearth bullet"
@@ -94,13 +72,14 @@
/obj/projectile/bullet/a357
name = ".357 bullet"
- damage = 30 //shiptest nerf
+ damage = 30
+
+ speed = BULLET_SPEED_REVOLVER
-// admin only really, for ocelot memes
/obj/projectile/bullet/a357/match
name = ".357 match bullet"
- speed = 0.3
armour_penetration = 10
+ speed_mod = BULLET_SPEED_AP_MOD
ricochets_max = 5
ricochet_chance = 140
ricochet_auto_aim_angle = 50
@@ -111,19 +90,22 @@
/obj/projectile/bullet/a357/hp
name = ".357 hollow point bullet"
damage = 45
- armour_penetration = -50
- ricochet_chance = 0 //mushroom on impact, no bounces
+ armour_penetration = -20
+ speed_mod = BULLET_SPEED_HP_MOD
+ ricochet_chance = 0
+
// .45-70 Gov't (Hunting Revolver)
/obj/projectile/bullet/a4570
name = ".45-70 bullet"
damage = 45 //crits in 3-4 taps depending on armor
+ speed = BULLET_SPEED_REVOLVER
/obj/projectile/bullet/a4570/match
name = ".45-70 match bullet"
- speed = 0.3
armour_penetration = 10
+ speed_mod = BULLET_SPEED_AP_MOD
ricochets_max = 5
ricochet_chance = 140
ricochet_auto_aim_angle = 50
@@ -133,8 +115,9 @@
/obj/projectile/bullet/a4570/hp
name = ".45-70 hollow point bullet"
- damage = 55 //it's ALMOST the pre-nerf .357 with less armor pen
+ damage = 55
armour_penetration = -50
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/a4570/explosive //for extra oof
name = ".45-70 explosive bullet"
@@ -145,27 +128,23 @@
explosion(target, -1, 0, 1)
return BULLET_ACT_HIT
-
-/obj/projectile/bullet/c22lr
- name = ".22LR bullet"
- damage = 20
- armour_penetration = -45
- ricochet_incidence_leeway = 20
- ricochet_chance = 65
-
// 44 Short (Roumain & Shadow)
/obj/projectile/bullet/a44roum
name = ".44 roumain bullet"
damage = 25
+ speed = BULLET_SPEED_REVOLVER
/obj/projectile/bullet/a44roum/rubber
- name = ".44 roumain bullet"
+ name = ".44 roumain rubber bullet"
damage = 7
stamina = 38
armour_penetration = -20
+ speed_mod = BULLET_SPEED_RUBBER_MOD
/obj/projectile/bullet/a44roum/hp
- name = ".44 roumain bullet"
+ name = ".44 roumain hollow point bullet"
damage = 40
armour_penetration = -20
+ ricochet_chance = 0
+ speed_mod = BULLET_SPEED_HP_MOD
diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm
index 331e3cc505ce..b25abef63ac8 100644
--- a/code/modules/projectiles/projectile/bullets/rifle.dm
+++ b/code/modules/projectiles/projectile/bullets/rifle.dm
@@ -4,57 +4,85 @@
name = "5.56x42mm CLIP bullet"
damage = 25
armour_penetration = 20
+ speed = BULLET_SPEED_RIFLE
+
+/obj/projectile/bullet/a556_42/hp
+ name = "5.56x42mm CLIP hollow point bullet"
+ damage = 35
+ armour_penetration = 0
+ speed_mod = BULLET_SPEED_HP_MOD
+
+/obj/projectile/bullet/a556_42/ap
+ name = "5.56x42mm CLIP bullet"
+ damage = 20
+ armour_penetration = 40
+ speed_mod = BULLET_SPEED_AP_MOD
+
+/obj/projectile/bullet/a556_42/rubber
+ name = "5.56x42mm CLIP bullet"
+ damage = 5
+ stamina = 25
+ armour_penetration = 0
+ speed_mod = BULLET_SPEED_RUBBER_MOD
// 8x50mmR (Illestren Rifle)
/obj/projectile/bullet/a8_50r
name = "8x50mmR bullet"
- speed = 0.3
damage = 35
armour_penetration = 40
+ speed = BULLET_SPEED_RIFLE
-/obj/projectile/bullet/a8_50rhp
- name = "8x50mmR bullet"
- speed = 0.3
+/obj/projectile/bullet/a8_50r/hp
+ name = "8x50mmR hollow point bullet"
damage = 49
armour_penetration = 0
+ speed_mod = BULLET_SPEED_HP_MOD
-// .300 Magnum (Smile Rifle)
-
-/obj/projectile/bullet/a300
- name = ".300 Magnum bullet"
- speed = 0.3
- damage = 45
- stamina = 10
- armour_penetration = 40
-
-// Bloat evil wizard stupid shit
-
-/obj/projectile/bullet/a762_enchanted
- name = "enchanted 8x50mmR bullet"
- damage = 20
- stamina = 80
-
-//5.45x39mm (SVG-76u)
-
-/obj/projectile/bullet/a545_39
- name = "5.45x39mm bullet"
- damage = 25
- armour_penetration = 20
+/obj/projectile/bullet/a8_50r/match
+ name = "8x50mmR match bullet"
+ damage = 40
+ armour_penetration = -10
+ speed_mod = BULLET_SPEED_AP_MOD
+ ricochets_max = 4
+ ricochet_chance = 80
+ ricochet_auto_aim_angle = 40
+ ricochet_auto_aim_range = 5
+ ricochet_incidence_leeway = 50
+ ricochet_decay_chance = 1
+ ricochet_decay_damage = 1
+
+/obj/projectile/bullet/a8_50r/trac
+ damage = 10
+ armour_penetration = 0
+ shrapnel_type = /obj/item/shrapnel/bullet/tracker/a8_50r
//7.62x40mm CLIP (SKM Rifles)
/obj/projectile/bullet/a762_40
- name = "7.62x40mm CLIP"
+ name = "7.62x40mm CLIP bullet"
damage = 30
armour_penetration = 20
+ speed = BULLET_SPEED_RIFLE
+
+/obj/projectile/bullet/a762_40/hp
+ name = "7.62x40mm CLIP hollow point bullet"
+ damage = 40
+ armour_penetration = 0
+ speed_mod = BULLET_SPEED_HP_MOD
+
+/obj/projectile/bullet/a762_40/ap
+ name = "7.62x40mm CLIP armor piercing bullet"
+ damage = 25
+ armour_penetration = 40
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/a762_40/rubber //"rubber"
- name = "7.62x40mm CLIP Rubber"
+ name = "7.62x40mm CLIP rubber bullet"
damage = 15
stamina = 40
- armour_penetration = 20
-
+ armour_penetration = 0
+ speed_mod = BULLET_SPEED_RUBBER_MOD
//.308 WIN (M514 & GAL DMRs)
@@ -62,20 +90,34 @@
//[СELADON-REMOVE] - CELADON_WEAPONS - хватит это терпеть! Теперь эти патроны только в модпаке - mod_celadon\weapons\code\modules\projectiles\projectile\bullets\rifle.dm
/*
/obj/projectile/bullet/a308
- name = ".308"
+ name = ".308 bullet"
speed = 0.3
damage = 30
armour_penetration = 40
+ speed = BULLET_SPEED_RIFLE
*/
//[/СELADON-REMOVE]
+/obj/projectile/bullet/a308/hp
+ name = ".308 hollow point bullet"
+ damage = 40
+ armour_penetration = 10
+ speed_mod = BULLET_SPEED_HP_MOD
+
+/obj/projectile/bullet/a308/ap
+ name = ".308 armor piercing bullet"
+ damage = 25
+ armour_penetration = 60
+ speed_mod = BULLET_SPEED_AP_MOD
+
/obj/projectile/bullet/a308/rubber //"rubber"
- name = ".308 Rubber"
+ name = ".308 rubber bullet"
speed = 0.3
damage = 25
stamina = 50
armour_penetration = 40
+ speed_mod = BULLET_SPEED_RUBBER_MOD
// 8x58mm caseless (SG-669)
@@ -91,17 +133,4 @@
name = ".299 Eoehoma caseless bullet"
damage = 20
armour_penetration = 10
-
-//6.5x57mm CLIP (F90)
-
-/obj/projectile/bullet/a65clip
- name = "6.5x57mm CLIP bullet"
- speed = 0.3
- stamina = 10
- damage = 40
- armour_penetration = 50
-
- icon_state = "redtrac"
- light_system = MOVABLE_LIGHT
- light_color = COLOR_SOFT_RED
- light_range = 2
+ speed = BULLET_SPEED_RIFLE
diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm
index a069102a39cc..41a12f7eaf30 100644
--- a/code/modules/projectiles/projectile/bullets/shotgun.dm
+++ b/code/modules/projectiles/projectile/bullets/shotgun.dm
@@ -2,7 +2,7 @@
name = "12g shotgun slug"
damage = 40
armour_penetration = -10
- speed = 0.5
+ speed = BULLET_SPEED_SHOTGUN
/obj/projectile/bullet/slug/beanbag
name = "beanbag slug"
@@ -14,7 +14,7 @@
name = "incendiary slug"
damage = 25
armour_penetration = -10
- speed = 0.5
+ speed = BULLET_SPEED_SHOTGUN
/obj/projectile/bullet/incendiary/shotgun/dragonsbreath
name = "dragonsbreath pellet"
@@ -54,7 +54,7 @@
/obj/projectile/bullet/slug/frag12
name = "frag12 slug"
damage = 25
- paralyze = 50
+ paralyze = 20
/obj/projectile/bullet/slug/frag12/on_hit(atom/target, blocked = FALSE)
..()
@@ -69,7 +69,7 @@
icon_state = "pellet"
armour_penetration = -35
- speed = 0.5
+ speed = BULLET_SPEED_SHOTGUN
/obj/projectile/bullet/pellet/buckshot
name = "buckshot pellet"
diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm
index 9b11c74e4c1d..9557f40b1e1c 100644
--- a/code/modules/projectiles/projectile/bullets/smg.dm
+++ b/code/modules/projectiles/projectile/bullets/smg.dm
@@ -3,22 +3,53 @@
/obj/projectile/bullet/c57x39mm
name = "5.7x39mm bullet"
damage = 20
+ speed = BULLET_SPEED_PDW
+
+/obj/projectile/bullet/c57x39mm/hp
+ name = "5.7x39mm hollow point bullet"
+ damage = 30
+ armour_penetration = -20
+ speed_mod = BULLET_SPEED_HP_MOD
+
+/obj/projectile/bullet/c57x39mm/ap
+ name = "5.7x39mm armor piercing bullet"
+ damage = 20
+ armour_penetration = 20
+ speed_mod = BULLET_SPEED_AP_MOD
+
+/obj/projectile/bullet/c57x39mm/rubber
+ name = "5.7x39mm rubber bullet"
+ damage = 5
+ stamina = 20
+ speed_mod = BULLET_SPEED_RUBBER_MOD
// 4.6x30mm (WT-550 Automatic Rifle & NT-SVG)
/obj/projectile/bullet/c46x30mm
name = "4.6x30mm bullet"
damage = 20
+ speed = BULLET_SPEED_PDW
+
+/obj/projectile/bullet/c46x30mm/recycled
+ damage = 17
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c46x30mm/ap
name = "4.6x30mm armor-piercing bullet"
damage = 15
armour_penetration = 40
+ speed_mod = BULLET_SPEED_AP_MOD
+
+/obj/projectile/bullet/c46x30mm/hp
+ name = "4.6x30mm bullet"
+ damage = 25
+ speed_mod = BULLET_SPEED_HP_MOD
-/obj/projectile/bullet/incendiary/c46x30mm
- name = "4.6x30mm incendiary bullet"
- damage = 10
- fire_stacks = 1
+/obj/projectile/bullet/c46x30mm/rubber
+ name = "4.6x30mm bullet"
+ damage = 4
+ stamina = 20
+ speed_mod = BULLET_SPEED_RUBBER_MOD
// 4.73x33mm caseless (Solar)
@@ -36,19 +67,23 @@
/obj/projectile/bullet/c556mm/surplus
name = "5.56mm HITP surplus bullet"
damage = 15
+ speed_mod = BULLET_SPEED_SURPLUS_MOD
/obj/projectile/bullet/c556mm/ap
name = "5.56mm HITP AP bullet"
damage = 15
armour_penetration = 40
+ speed_mod = BULLET_SPEED_AP_MOD
/obj/projectile/bullet/c556mm/hp
name = "5.56mm HITP hollow point bullet"
damage = 30
armour_penetration = -50
+ speed_mod = BULLET_SPEED_HP_MOD
/obj/projectile/bullet/c556mm/rubber
name = "5.56mm HITP rubber bullet"
damage = 5
stamina = 30
armour_penetration = -20
+ speed_mod = BULLET_SPEED_RUBBER_MOD
diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm
index 1f725b8113f2..268d4a9aaf23 100644
--- a/code/modules/projectiles/projectile/bullets/sniper.dm
+++ b/code/modules/projectiles/projectile/bullets/sniper.dm
@@ -2,7 +2,7 @@
/obj/projectile/bullet/p50
name = ".50 BMG bullet"
- speed = 0.3
+ speed = BULLET_SPEED_SNIPER
damage = 70
knockdown = 100
dismemberment = 50
@@ -39,7 +39,58 @@
knockdown = 0
breakthings = FALSE
-/obj/projectile/bullet/p50/penetrator/shuttle //Nukeop Shuttle Variety
- icon_state = "gaussstrong"
- damage = 25
- range = 16
+//6.5x57mm CLIP (F90)
+
+/obj/projectile/bullet/a65clip
+ name = "6.5x57mm CLIP bullet"
+ stamina = 10
+ damage = 40
+ armour_penetration = 50
+
+ speed = BULLET_SPEED_SNIPER
+
+ icon_state = "redtrac"
+ light_system = MOVABLE_LIGHT
+ light_color = COLOR_SOFT_RED
+ light_range = 2
+
+/obj/projectile/bullet/a65clip/trac
+ damage = 10
+ armour_penetration = 0
+ shrapnel_type = /obj/item/shrapnel/bullet/tracker/a65clip
+
+//this should only exist on the big ass turrets. don't fucking give players this.
+/obj/projectile/bullet/a65clip/rubber //"rubber"
+ name = "6.5x57mm CLIP rubber bullet"
+ damage = 10
+ stamina = 40
+ speed_mod = BULLET_SPEED_RUBBER_MOD
+
+// 8x58mm caseless (SG-669)
+
+/obj/projectile/bullet/a858
+ name = "8x58mm caseless bullet"
+ damage = 35
+ armour_penetration = 40
+ speed = BULLET_SPEED_SNIPER
+
+/obj/projectile/bullet/a858/trac
+ name = "8x58mm tracker"
+ damage = 12
+ armour_penetration = 0
+ shrapnel_type = /obj/item/shrapnel/bullet/tracker/a858
+
+// .300 Magnum
+
+/obj/projectile/bullet/a300
+ name = ".300 Magnum bullet"
+ damage = 45
+ stamina = 10
+ armour_penetration = 40
+ speed = BULLET_SPEED_RIFLE
+
+/obj/projectile/bullet/a300/trac
+ name = ".300 Tracker"
+ damage = 10
+ armour_penetration = 0
+ shrapnel_type = /obj/item/shrapnel/bullet/tracker/a308
diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm
deleted file mode 100644
index d3c1b3a72b1a..000000000000
--- a/code/modules/projectiles/projectile/bullets/special.dm
+++ /dev/null
@@ -1,33 +0,0 @@
-// Honker
-
-/obj/projectile/bullet/honker
- name = "banana"
- damage = 0
- movement_type = FLYING
- projectile_piercing = ALL
- nodamage = TRUE
- hitsound = 'sound/items/bikehorn.ogg'
- icon = 'icons/obj/hydroponics/harvest.dmi'
- icon_state = "banana"
- range = 200
-
-/obj/projectile/bullet/honker/Initialize()
- . = ..()
- SpinAnimation()
-
-/obj/projectile/bullet/honker/on_hit(atom/target, blocked = FALSE)
- . = ..()
- var/mob/M = target
- if(istype(M))
- M.slip(100, M.loc, GALOSHES_DONT_HELP|SLIDE, 0, FALSE)
-
-// Mime
-
-/obj/projectile/bullet/mime
- damage = 40
-
-/obj/projectile/bullet/mime/on_hit(atom/target, blocked = FALSE)
- . = ..()
- if(iscarbon(target))
- var/mob/living/carbon/M = target
- M.silent = max(M.silent, 10)
diff --git a/code/modules/projectiles/projectile/energy/misc.dm b/code/modules/projectiles/projectile/energy/misc.dm
index 11f948ddb415..e7b689cce2d5 100644
--- a/code/modules/projectiles/projectile/energy/misc.dm
+++ b/code/modules/projectiles/projectile/energy/misc.dm
@@ -27,18 +27,33 @@
/obj/projectile/energy/plasmabolt
name = "ionized plasma"
damage = 25
- armour_penetration = -10
+ armour_penetration = -15
range = 8
damage_type = BURN
icon_state = "blastwave"
color = "#00ff00"
hitsound = 'sound/weapons/sear.ogg'
+ var/heatpwr = 6
/obj/projectile/energy/plasmabolt/on_hit(atom/target, blocked = FALSE)
. = ..()
if(iscarbon(target))
- var/mob/living/carbon/M = target
- M.adjust_bodytemperature(350)
+ var/mob/living/carbon/cooked = target
+ cooked.adjust_bodytemperature(heatpwr)
if(prob(35))
- M.adjust_fire_stacks(15)
- M.IgniteMob()
+ cooked.adjust_fire_stacks(15)
+ cooked.IgniteMob()
+ else
+ if(cooked.on_fire)
+ cooked.adjust_fire_stacks(10)
+
+/obj/projectile/energy/plasmabolt/shred
+ name = "high-energy ionized plasma"
+ damage = 35
+ armour_penetration = -5
+ range = 2
+ damage_type = BURN
+ icon_state = "blastwave"
+ color = "#00ff00"
+ hitsound = 'sound/weapons/sear.ogg'
+ heatpwr = 11
diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm
index ede0e69b3ea9..536cfdf0be32 100644
--- a/code/modules/projectiles/projectile/special/rocket.dm
+++ b/code/modules/projectiles/projectile/special/rocket.dm
@@ -13,13 +13,13 @@
desc = "USE A WEEL GUN"
icon_state= "84mm-hedp"
damage = 80
- var/anti_armour_damage = 200
+ var/anti_armour_damage = 120
armour_penetration = 100
- dismemberment = 100
+ dismemberment = 30
/obj/projectile/bullet/a84mm/on_hit(atom/target, blocked = FALSE)
..()
- explosion(target, 1, 1, 2, 1, 0, flame_range = 4)
+ explosion(target, 0, 1, 2, 1, 0, flame_range = 4)
if(ismecha(target))
var/obj/mecha/M = target
diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm
index 53a4bb62b9e1..65b7ad1d4dd7 100644
--- a/code/modules/projectiles/projectile/special/temperature.dm
+++ b/code/modules/projectiles/projectile/special/temperature.dm
@@ -5,7 +5,7 @@
damage_type = BURN
nodamage = FALSE
flag = "energy"
- var/temperature = -50 // reduce the body temperature by 50 points
+ var/temperature = -5 // reduce the body temperature by 5c
/obj/projectile/temp/on_hit(atom/target, blocked = 0)
. = ..()
@@ -29,12 +29,12 @@
/obj/projectile/temp/hot
name = "heat beam"
- temperature = 100 // Raise the body temp by 100 points
+ temperature = 10 // Raise the body temp by 10c
/obj/projectile/temp/cryo
name = "cryo beam"
range = 3
- temperature = -240 // Single slow shot reduces temp greatly
+ temperature = -20 // Single slow shot reduces temp greatly
/obj/projectile/temp/cryo/on_range()
var/turf/T = get_turf(src)
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 49765fd6747b..a442ee2a11c8 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -519,11 +519,6 @@
if(!C.required_other)
matching_other = 1
- else if(istype(cached_my_atom, /obj/item/slime_extract))
- var/obj/item/slime_extract/M = cached_my_atom
-
- if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this
- matching_other = 1
else
if(!C.required_container)
matching_container = 1
@@ -571,15 +566,6 @@
for(var/mob/M in seen)
to_chat(M, "[iconhtml] [selected_reaction.mix_message]")
- if(istype(cached_my_atom, /obj/item/slime_extract))
- var/obj/item/slime_extract/ME2 = my_atom
- ME2.Uses--
- if(ME2.Uses <= 0) // give the notification that the slime core is dead
- for(var/mob/M in seen)
- to_chat(M, "[iconhtml] \The [my_atom]'s power is consumed in the reaction.")
- ME2.name = "used slime extract"
- ME2.desc = "This extract has been used up."
-
selected_reaction.on_reaction(src, multiplier)
reaction_occurred = 1
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index ad27b15207a8..b4319025e484 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -218,7 +218,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/vimukti/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-7)
M.AdjustSleeping(-40)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
M.Jitter(5)
return ..()
@@ -655,7 +655,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
shot_glass_icon_state = "toxinsspecialglass"
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M)
- M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/beepsky_smash
@@ -846,7 +846,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Vodka, cream, and ice. No actual antifreeze included, of course."
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal() + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/barefoot
@@ -959,7 +959,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Vodka with capsaicin for the extra feeling of intense warmth. Difficult to take large swallows."
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 , M.dna.species.bodytemp_heat_damage_limit) //310.15 is the normal bodytemp.
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 , M.dna.species.bodytemp_heat_damage_limit) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/red_mead
@@ -996,7 +996,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "Iced beer, served in a chilled glass. It's cold enough to leave a trail in the air."
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/grog
@@ -1625,7 +1625,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M)
M.apply_status_effect(/datum/status_effect/throat_soothed)
- M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
..()
/datum/reagent/consumable/ethanol/alexander
@@ -1809,7 +1809,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/branca_menta/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C)
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C)
return ..()
/datum/reagent/consumable/ethanol/branca_menta/on_mob_metabolize(mob/living/M)
@@ -2121,7 +2121,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/mauna_loa/on_mob_life(mob/living/carbon/M)
// Heats the user up while the reagent is in the body. Occasionally makes you burst into flames.
- M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT)
+ M.adjust_bodytemperature(2 * TEMPERATURE_DAMAGE_COEFFICIENT)
if (prob(5))
M.adjust_fire_stacks(1)
M.IgniteMob()
diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
index f781313bf582..e84cc952c5b9 100644
--- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
@@ -488,7 +488,7 @@ WS End*/
if(H.health <= H.crit_threshold) //certain death above this threshold
REMOVE_TRAIT(H, TRAIT_STABLEHEART, type) //we have to remove the stable heart before we give him heart attack
to_chat(H,"You feel something rupturing inside your chest!")
- H.emote("scream")
+ H.force_scream()
H.set_heartattack(TRUE)
volume = 0
. = ..()
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index d37048250e62..281b15d2e6b5 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -63,7 +63,7 @@
M.adjust_blindness(-1)
switch(current_cycle)
if(1 to 20)
- //nothing
+ EMPTY_BLOCK_GUARD //nothing
if(21 to INFINITY)
if(prob(current_cycle-10))
M.cure_nearsighted(list(EYE_DAMAGE))
@@ -257,7 +257,7 @@
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40)
//310.15 is the normal bodytemp.
- M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(3 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
if(holder.has_reagent(/datum/reagent/consumable/frostoil))
holder.remove_reagent(/datum/reagent/consumable/frostoil, 5)
..()
@@ -280,7 +280,7 @@
M.AdjustSleeping(-20)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1, 0)
- M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(2 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
..()
. = 1
@@ -330,7 +330,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
. = 1
@@ -354,7 +354,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-60)
- M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
M.adjustToxLoss(1*REM, 0)
..()
. = TRUE
@@ -375,7 +375,7 @@
M.AdjustSleeping(-40)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1, 0)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
. = 1
@@ -390,7 +390,7 @@
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-5)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/crosstalk
@@ -416,7 +416,7 @@
M.dizziness +=1
M.drowsyness = 0
M.AdjustSleeping(-40)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/comet_trail
@@ -431,7 +431,7 @@
/datum/reagent/consumable/comet_trail/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-7)
M.AdjustSleeping(-20)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
M.Jitter(5)
..()
. = 1
@@ -447,7 +447,7 @@
/datum/reagent/consumable/tadrixx/on_mob_life(mob/living/carbon/M)
M.drowsyness = max(0,M.drowsyness-6)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/space_up
@@ -461,7 +461,7 @@
/datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/molten
@@ -476,9 +476,9 @@
/datum/reagent/consumable/molten/on_mob_life(mob/living/carbon/M)
M.heal_bodypart_damage(1,1,0)
if(M.bodytemperature > M.get_body_temp_normal(apply_change=FALSE))
- M.adjust_bodytemperature(-10 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal(apply_change=FALSE))
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal(apply_change=FALSE))
else if(M.bodytemperature < (M.get_body_temp_normal(apply_change=FALSE) + 1))
- M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal(apply_change=FALSE))
+ M.adjust_bodytemperature(2 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal(apply_change=FALSE))
..()
/datum/reagent/consumable/molten/plasma_fizz
@@ -509,7 +509,7 @@
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
@@ -530,7 +530,7 @@
You feel as though a great secret of the universe has been made known to you...")
/datum/reagent/consumable/pacfuel/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
if(prob(10))
M?.mind.adjust_experience(/datum/skill/gaming, 5)
..()
@@ -545,7 +545,7 @@
glass_desc = "It's hard to imagine all those fruits getting condensed into a cup like this."
/datum/reagent/consumable/shoal_punch/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/sodawater
name = "Soda Water"
@@ -559,7 +559,7 @@
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/tonic
@@ -575,7 +575,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
. = 1
@@ -594,7 +594,7 @@
M.dizziness +=1
M.drowsyness = 0
M.AdjustSleeping(-40)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/xeno_energy/on_mob_metabolize(mob/living/L)
@@ -617,7 +617,7 @@
glass_desc = "Generally, you're supposed to put something else in there, too..."
/datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/soy_latte
@@ -639,7 +639,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.SetSleeping(0)
- M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(1,0, 0)
..()
@@ -664,7 +664,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.SetSleeping(0)
- M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(1,0, 0)
..()
@@ -788,7 +788,7 @@
glass_desc = "It's grape soda!"
/datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/milk/chocolate_milk
@@ -817,7 +817,7 @@
glass_desc = "A favorite winter drink from the Solar Confederation. Good for warming yourself up."
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
..()
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/M)
@@ -884,7 +884,7 @@
glass_desc = "A classic vanilla flavored soft drink."
/datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-1 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
..()
/datum/reagent/consumable/sol_dry
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index abdaf511691d..8b06736dbce2 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -119,7 +119,7 @@
F.fry(volume)
F.reagents.add_reagent(/datum/reagent/consumable/cooking_oil, reac_volume)
-/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, method = SMOKE, reac_volume, show_message = 1, touch_protection = 0)
+/datum/reagent/consumable/cooking_oil/expose_mob(mob/living/M, method = TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
return
var/boiling = FALSE
@@ -137,7 +137,7 @@
M.visible_message("The boiling oil sizzles as it covers [M]!", \
"You're covered in boiling oil!")
if(FryLoss)
- M.emote("scream")
+ M.force_scream()
playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE)
ADD_TRAIT(M, TRAIT_OIL_FRIED, "cooking_oil_react")
addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, unfry_mob)), 3)
@@ -223,24 +223,24 @@
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
holder.remove_reagent(/datum/reagent/consumable/capsaicin, 5)
if(isslime(M))
- cooling = -rand(5,20)
+ cooling = -rand(1,2)
if(15 to 25)
cooling = -20 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
- cooling = -rand(10,20)
+ cooling = -rand(2,4)
if(25 to 35)
cooling = -30 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(1))
M.emote("shiver")
if(isslime(M))
- cooling = -rand(15,20)
+ cooling = -rand(4,8)
if(35 to INFINITY)
cooling = -40 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(5))
M.emote("shiver")
if(isslime(M))
- cooling = -rand(20,25)
- M.adjust_bodytemperature(cooling, 50)
+ cooling = -rand(8,10)
+ M.adjust_bodytemperature(cooling, 10)
..()
/datum/reagent/consumable/frostoil/expose_turf(turf/T, reac_volume)
@@ -271,7 +271,7 @@
//actually handle the pepperspray effects
if (!(pepper_proof)) // you need both eye and mouth protection
if(prob(5))
- victim.emote("scream")
+ victim.force_scream()
victim.blur_eyes(5) // 10 seconds
victim.blind_eyes(3) // 6 seconds
victim.confused = max(M.confused, 5) // 10 seconds
@@ -428,7 +428,7 @@
taste_description = "your imprisonment"
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal())
..()
/datum/reagent/consumable/hell_ramen
@@ -439,7 +439,7 @@
taste_description = "wet and cheap noodles on fire"
/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT)
+ M.adjust_bodytemperature(1 * TEMPERATURE_DAMAGE_COEFFICIENT)
..()
/datum/reagent/consumable/flour
@@ -776,7 +776,7 @@
..()
/datum/reagent/consumable/pyre_elementum/on_mob_life(mob/living/carbon/M)
- M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal()) // Doesn't kill you like capsaicin
+ M.adjust_bodytemperature(2 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal()) // Doesn't kill you like capsaicin
if(!ingested) // Unless you didn't eat it
M.adjustFireLoss(0.25*REM, 0)
..()
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 48b8e3793c21..8abff5ad5448 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -22,9 +22,9 @@
/datum/reagent/medicine/leporazine/on_mob_life(mob/living/carbon/M)
if(M.bodytemperature > M.get_body_temp_normal(apply_change=FALSE))
- M.adjust_bodytemperature(-40 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal(apply_change=FALSE))
+ M.adjust_bodytemperature(-4 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal(apply_change=FALSE))
else if(M.bodytemperature < (M.get_body_temp_normal(apply_change=FALSE) + 1))
- M.adjust_bodytemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal(apply_change=FALSE))
+ M.adjust_bodytemperature(4 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal(apply_change=FALSE))
..()
/datum/reagent/medicine/adminordrazine //An OP chemical for admins
@@ -257,9 +257,12 @@
to_chat(M, "You don't feel so good...")
else if(M.getFireLoss())
M.adjustFireLoss(-reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your burns healing! It stings like hell!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your burns throbbing."))
..()
/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/carbon/M)
@@ -310,9 +313,12 @@
to_chat(M, "You don't feel so good...")
else if(M.getBruteLoss())
M.adjustBruteLoss(-reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your bruises healing! It stings like hell!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your bruises throbbing."))
..()
@@ -375,6 +381,9 @@
color = "#6D6374"
metabolization_rate = 0.4 * REAGENTS_METABOLISM
+/datum/reagent/medicine/mine_salve/on_mob_metabolize(mob/living/L)
+ ADD_TRAIT(L, TRAIT_PAIN_RESIST, type)
+
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C)
C.hal_screwyhud = SCREWYHUD_HEALTHY
C.adjustBruteLoss(-0.25*REM, 0)
@@ -401,6 +410,7 @@
/datum/reagent/medicine/mine_salve/on_mob_end_metabolize(mob/living/M)
if(iscarbon(M))
var/mob/living/carbon/N = M
+ REMOVE_TRAIT(N, TRAIT_PAIN_RESIST, type)
N.hal_screwyhud = SCREWYHUD_NONE
..()
@@ -565,9 +575,13 @@
color = "#E6FFF0"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
+/datum/reagent/medicine/anti_rad/on_mob_metabolize(mob/living/L)
+ to_chat(L, span_warning("Your stomach starts to churn and cramp!"))
+ . = ..()
+
/datum/reagent/medicine/anti_rad/on_mob_life(mob/living/carbon/M)
M.radiation -= M.radiation - rand(50,150)
- M.adjust_disgust(7*REM, 0)
+ M.adjust_disgust(4*REM)
..()
. = 1
@@ -750,9 +764,11 @@
/datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L)
..()
+ ADD_TRAIT(L, TRAIT_PAIN_RESIST, type)
L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
/datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L)
+ REMOVE_TRAIT(L, TRAIT_PAIN_RESIST, type)
L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown)
..()
@@ -1451,10 +1467,12 @@
/datum/reagent/medicine/corazone/on_mob_metabolize(mob/living/M)
..()
+ ADD_TRAIT(M, TRAIT_PAIN_RESIST, type)
ADD_TRAIT(M, TRAIT_STABLEHEART, type)
ADD_TRAIT(M, TRAIT_STABLELIVER, type)
/datum/reagent/medicine/corazone/on_mob_end_metabolize(mob/living/M)
+ REMOVE_TRAIT(M, TRAIT_PAIN_RESIST, type)
REMOVE_TRAIT(M, TRAIT_STABLEHEART, type)
REMOVE_TRAIT(M, TRAIT_STABLELIVER, type)
@@ -1746,9 +1764,12 @@
else if(M.getBruteLoss())
M.adjustBruteLoss(-reac_volume)
M.adjustFireLoss(reac_volume)
- if(show_message)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
to_chat(M, "You feel your skin bubble and burn as your flesh knits itself together!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your skin shifting around unnaturally."))
..()
/datum/reagent/medicine/converbital/on_mob_life(mob/living/carbon/M)
@@ -1780,9 +1801,12 @@
else if(M.getBruteLoss())
M.adjustFireLoss(-reac_volume)
M.adjustBruteLoss(reac_volume)
- if(show_message)
- to_chat(M, "You feel your flesh tear as your skin rapidly regenerates!")
- SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ M.force_scream()
+ if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA))
+ to_chat(M, "You feel your skin tear as your flesh rapidly regenerates!")
+ SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine)
+ else
+ to_chat(M, span_notice("You feel your skin shifting around unnaturally."))
..()
/datum/reagent/medicine/convuri/on_mob_life(mob/living/carbon/M)
@@ -1833,7 +1857,7 @@
/datum/reagent/medicine/rhigoxane/on_mob_life(mob/living/carbon/M)
M.adjustFireLoss(-2*REM, 0.)
- M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, M.dna.species.bodytemp_normal)
+ M.adjust_bodytemperature(-0.2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.dna.species.bodytemp_normal)
..()
. = 1
@@ -1841,7 +1865,7 @@
if(method != VAPOR)
return
- M.adjust_bodytemperature(-reac_volume * TEMPERATURE_DAMAGE_COEFFICIENT * 20, 200)
+ M.adjust_bodytemperature(-reac_volume * TEMPERATURE_DAMAGE_COEFFICIENT * 0.5, 200)
M.adjust_fire_stacks(-reac_volume / 2)
if(reac_volume >= metabolization_rate)
M.ExtinguishMob()
@@ -1850,7 +1874,7 @@
/datum/reagent/medicine/rhigoxane/overdose_process(mob/living/carbon/M)
M.adjustFireLoss(3*REM, 0.)
- M.adjust_bodytemperature(-35 * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
+ M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
..()
@@ -1932,8 +1956,8 @@
reagent_state = SOLID
color = "#302f20"
metabolization_rate = REAGENTS_METABOLISM * 0.8
- overdose_threshold = 100
- var/clone_dam = 0.25
+ overdose_threshold = 50
+ var/clone_dam = 0.1
/datum/reagent/medicine/soulus/expose_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1)
if(iscarbon(M) && M.stat != DEAD)
@@ -1952,7 +1976,7 @@
/datum/reagent/medicine/soulus/on_mob_life(mob/living/carbon/M)
M.adjustFireLoss(-0.1*REM, 0)
M.adjustBruteLoss(-0.1*REM, 0)
- M.adjustCloneLoss(clone_dam *REM, 0)
+ M.adjustCloneLoss(clone_dam*REM, 0)
..()
/datum/reagent/medicine/soulus/overdose_process(mob/living/M)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 11e3f0179a8a..b246a81f364e 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -243,49 +243,10 @@
REMOVE_TRAIT(L, TRAIT_HOLY, type)
..()
-/datum/reagent/water/holywater/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(iscultist(M))
- to_chat(M, "A vile holiness begins to spread its shining tendrils through your mind, purging the Geometer of Blood's influence!")
- ..()
-
-/datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M)
- if(!data)
- data = list("misc" = 1)
- data["misc"]++
- M.jitteriness = min(M.jitteriness+4,10)
- if(iscultist(M))
- for(var/datum/action/innate/cult/blood_magic/BM in M.actions)
- to_chat(M, "Your blood rites falter as holy water scours your body!")
- for(var/datum/action/innate/cult/blood_spell/BS in BM.spells)
- qdel(BS)
- if(data["misc"] >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec
- if(!M.stuttering)
- M.stuttering = 1
- M.stuttering = min(M.stuttering+4, 10)
- M.Dizzy(5)
- if(iscultist(M) && prob(20))
- M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water")
- if(prob(10))
- M.visible_message("[M] starts having a seizure!", "You have a seizure!")
- M.Unconscious(120)
- to_chat(M, "[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \
- "All that power, and you still fail?", "If you cannot scour this poison, I shall scour your meager life!")].")
- if(data["misc"] >= 60) // 30 units, 135 seconds
- if(iscultist(M))
- SSticker.mode.remove_cultist(M.mind, FALSE, TRUE)
- M.jitteriness = 0
- M.stuttering = 0
- holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
- return
- holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack
-
/datum/reagent/water/holywater/expose_turf(turf/T, reac_volume)
..()
if(!istype(T))
return
- if(reac_volume>=10)
- for(var/obj/effect/rune/R in T)
- qdel(R)
T.Bless()
// Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits. Also ALSO increases instability.
@@ -346,22 +307,12 @@
return ..()
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M)
- if(iscultist(M))
- M.drowsyness = max(M.drowsyness-5, 0)
- M.AdjustAllImmobility(-40)
- M.adjustStaminaLoss(-10, 0)
- M.adjustToxLoss(-2, 0)
- M.adjustOxyLoss(-2, 0)
- M.adjustBruteLoss(-2, 0)
- M.adjustFireLoss(-2, 0)
- if(ishuman(M) && M.blood_volume < BLOOD_VOLUME_NORMAL)
- M.blood_volume += 3
- else // Will deal about 90 damage when 50 units are thrown
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150)
- M.adjustToxLoss(2, 0)
- M.adjustFireLoss(2, 0)
- M.adjustOxyLoss(2, 0)
- M.adjustBruteLoss(2, 0)
+ // Will deal about 90 damage when 50 units are thrown
+ M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150)
+ M.adjustToxLoss(2, 0)
+ M.adjustFireLoss(2, 0)
+ M.adjustOxyLoss(2, 0)
+ M.adjustBruteLoss(2, 0)
holder.remove_reagent(type, 1)
return TRUE
@@ -523,18 +474,57 @@
color = "#808080" // rgb: 128, 128, 128
taste_mult = 0 // oderless and tasteless
+/datum/reagent/oxygen/dip_object(obj/item/I, mob/user, obj/item/reagent_containers/H)
+ . = ..()
+ var/obj/item/stock_parts/cell/current_cell
+ if(istype(I, /obj/item/stock_parts/cell))
+ if(!current_cell.use(1))
+ return
+ H.reagents.add_reagent(/datum/reagent/ozone, (H.reagents.remove_reagent(/datum/reagent/oxygen, 0.05*I.get_part_rating())))
+ return TRUE
+ return
+
/datum/reagent/oxygen/expose_obj(obj/O, reac_volume)
if((!O) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- O.atmos_spawn_air("o2=[reac_volume/2];TEMP=[temp]")
+ O.atmos_spawn_air("[GAS_O2]=[reac_volume/2];TEMP=[temp]")
/datum/reagent/oxygen/expose_turf(turf/open/T, reac_volume)
if(istype(T))
var/temp = holder ? holder.chem_temp : T20C
- T.atmos_spawn_air("o2=[reac_volume/2];TEMP=[temp]")
+ T.atmos_spawn_air("[GAS_O2]=[reac_volume/2];TEMP=[temp]")
return
+/datum/reagent/ozone
+ name = "Ozone"
+ description = "A pale blue gas, with a distinct smell. While it is oxygen with an extra molecule attached, it is quite dangerous."
+ reagent_state = GAS
+ metabolization_rate = REAGENTS_METABOLISM * 0.5
+ color = "#a1a1e6"
+ taste_mult = 0
+
+/datum/reagent/ozone/on_mob_life(mob/living/carbon/M)
+ if(prob(30))
+ M.adjustOrganLoss(ORGAN_SLOT_LUNGS,1*REM)
+ if(prob(40))
+ M.adjustOrganLoss(ORGAN_SLOT_HEART,2*REM)
+ . = 1
+ return ..()
+
+/datum/reagent/ozone/expose_obj(obj/exposed_object, reac_volume)
+ if((!exposed_object) || (!reac_volume))
+ return 0
+ var/temp = holder ? holder.chem_temp : T20C
+ exposed_object.atmos_spawn_air("[GAS_O3]=[reac_volume/2];TEMP=[temp]")
+
+/datum/reagent/ozone/expose_turf(turf/open/exposed_turf, reac_volume)
+ if(istype(exposed_turf))
+ var/temp = holder ? holder.chem_temp : T20C
+ exposed_turf.atmos_spawn_air("[GAS_O3]=[reac_volume/2];TEMP=[temp]")
+ return
+
+
/datum/reagent/copper
name = "Copper"
description = "A highly ductile metal. Things made out of copper aren't very durable, but it makes a decent material for electrical wiring."
@@ -560,12 +550,12 @@
if((!O) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- O.atmos_spawn_air("n2=[reac_volume/2];TEMP=[temp]")
+ O.atmos_spawn_air("[GAS_N2]=[reac_volume/2];TEMP=[temp]")
/datum/reagent/nitrogen/expose_turf(turf/open/T, reac_volume)
if(istype(T))
var/temp = holder ? holder.chem_temp : T20C
- T.atmos_spawn_air("n2=[reac_volume/2];TEMP=[temp]")
+ T.atmos_spawn_air("[GAS_N2]=[reac_volume/2];TEMP=[temp]")
return
/datum/reagent/hydrogen
@@ -598,7 +588,7 @@
name = "Sulfur"
description = "A sickly yellow solid mostly known for its nasty smell. It's actually much more helpful than it looks in biochemisty."
reagent_state = SOLID
- color = "#BF8C00" // rgb: 191, 140, 0
+ color = "#f0e518"
taste_description = "rotten eggs"
/datum/reagent/carbon
@@ -648,12 +638,12 @@
if((!exposed_object) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- exposed_object.atmos_spawn_air("cl2=[reac_volume/2];TEMP=[temp]")
+ exposed_object.atmos_spawn_air("[GAS_CHLORINE]=[reac_volume/2];TEMP=[temp]")
/datum/reagent/chlorine/expose_turf(turf/open/exposed_turf, reac_volume)
if(istype(exposed_turf))
var/temp = holder ? holder.chem_temp : T20C
- exposed_turf.atmos_spawn_air("cl2=[reac_volume/2];TEMP=[temp]")
+ exposed_turf.atmos_spawn_air("[GAS_CHLORINE]=[reac_volume/2];TEMP=[temp]")
return
/datum/reagent/hydrogen_chloride
@@ -675,12 +665,12 @@
if((!exposed_object) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- exposed_object.atmos_spawn_air("hcl=[reac_volume/2];TEMP=[temp]")
+ exposed_object.atmos_spawn_air("[GAS_HYDROGEN_CHLORIDE]=[reac_volume/2];TEMP=[temp]")
/datum/reagent/hydrogen_chloride/expose_turf(turf/open/exposed_turf, reac_volume)
if(istype(exposed_turf))
var/temp = holder ? holder.chem_temp : T20C
- exposed_turf.atmos_spawn_air("hcl=[reac_volume/2];TEMP=[temp]")
+ exposed_turf.atmos_spawn_air("[GAS_HYDROGEN_CHLORIDE]=[reac_volume/2];TEMP=[temp]")
return
/datum/reagent/fluorine
@@ -1134,12 +1124,12 @@
if((!O) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- O.atmos_spawn_air("co2=[reac_volume/5];TEMP=[temp]")
+ O.atmos_spawn_air("[GAS_CO2]=[reac_volume/5];TEMP=[temp]")
/datum/reagent/carbondioxide/expose_turf(turf/open/T, reac_volume)
if(istype(T))
var/temp = holder ? holder.chem_temp : T20C
- T.atmos_spawn_air("co2=[reac_volume/5];TEMP=[temp]")
+ T.atmos_spawn_air("[GAS_CO2]=[reac_volume/5];TEMP=[temp]")
return
// This is more bad ass, and pests get hurt by the corrosive nature of it, not the plant. The new trade off is it culls stability.
@@ -1164,12 +1154,12 @@
if((!O) || (!reac_volume))
return 0
var/temp = holder ? holder.chem_temp : T20C
- O.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]")
+ O.atmos_spawn_air("[GAS_NITROUS]=[reac_volume/5];TEMP=[temp]")
/datum/reagent/nitrous_oxide/expose_turf(turf/open/T, reac_volume)
if(istype(T))
var/temp = holder ? holder.chem_temp : T20C
- T.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]")
+ T.atmos_spawn_air("[GAS_NITROUS]=[reac_volume/5];TEMP=[temp]")
/datum/reagent/nitrous_oxide/expose_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == VAPOR)
@@ -1185,6 +1175,80 @@
M.confused = min(M.confused + 2, 5)
..()
+/datum/reagent/carbon_monoxide
+ name = "Carbon Monoxide"
+ description = "A highly dangerous gas for sapients."
+ reagent_state = GAS
+ metabolization_rate = REAGENTS_METABOLISM
+ color = "#96898c"
+ var/accumulation
+
+/datum/reagent/carbon_monoxide/on_mob_life(mob/living/carbon/victim)
+ if(holder.has_reagent(/datum/reagent/oxygen))
+ holder.remove_reagent(/datum/reagent/carbon_monoxide, 2*REM)
+ accumulation = accumulation/4
+
+ accumulation += volume
+ switch(accumulation)
+ if(10 to 50)
+ to_chat(src, span_warning("You feel dizzy."))
+ if(50 to 150)
+ to_chat(victim, span_warning("[pick("Your head hurts.", "Your head pounds.")]"))
+ victim.Dizzy(5)
+ if(150 to 250)
+ to_chat(victim, span_userdanger("[pick("Your head hurts!", "You feel a burning knife inside your brain!", "A wave of pain fills your head!")]"))
+ victim.Stun(10)
+ victim.Dizzy(5)
+ victim.confused = (accumulation/50)
+ victim.gain_trauma(/datum/brain_trauma/mild/monoxide_poisoning_stage1)
+
+ if(250 to 350)
+ to_chat(victim, span_userdanger("[pick("What were you doing...?", "Where are you...?", "What's going on...?")]"))
+ victim.adjustStaminaLoss(3)
+
+ victim.Dizzy(5)
+ victim.confused = (accumulation/50)
+ victim.drowsyness = (accumulation/50)
+
+ victim.adjustToxLoss(accumulation/100*REM, 0)
+
+ victim.gain_trauma(/datum/brain_trauma/mild/monoxide_poisoning_stage2)
+
+ if(350 to 1000)
+ victim.Unconscious(20 SECONDS)
+
+ victim.drowsyness += (accumulation/100)
+ victim.adjustToxLoss(accumulation/100*REM, 0)
+ if(1000 to INFINITY) //anti salt measure, if they reach this, just fucking kill them at this point
+ victim.death()
+ victim.cure_trauma_type(/datum/brain_trauma/mild/monoxide_poisoning_stage1)
+ victim.cure_trauma_type(/datum/brain_trauma/mild/monoxide_poisoning_stage2)
+
+ qdel(src)
+ return TRUE
+ accumulation -= (metabolization_rate * victim.metabolism_efficiency)
+ if(accumulation < 0)
+ holder.remove_reagent(/datum/reagent/carbon_monoxide, volume)
+ return TRUE //to avoid a runtime
+ return ..()
+
+/datum/reagent/carbon_monoxide/expose_obj(obj/O, reac_volume)
+ if((!O) || (!reac_volume))
+ return FALSE
+ var/temp = holder ? holder.chem_temp : T20C
+ O.atmos_spawn_air("[GAS_CO]=[reac_volume/2];TEMP=[temp]")
+
+/datum/reagent/carbon_monoxide/expose_turf(turf/open/T, reac_volume)
+ if(istype(T))
+ var/temp = holder ? holder.chem_temp : T20C
+ T.atmos_spawn_air("[GAS_CO]=[reac_volume/2];TEMP=[temp]")
+ return
+
+/datum/reagent/carbon_monoxide/on_mob_delete(mob/living/living_mob)
+ var/mob/living/carbon/living_carbon = living_mob
+ living_carbon.cure_trauma_type(/datum/brain_trauma/mild/monoxide_poisoning_stage1)
+ living_carbon.cure_trauma_type(/datum/brain_trauma/mild/monoxide_poisoning_stage2)
+
/datum/reagent/stimulum
name = "Stimulum"
description = "An unstable experimental gas that greatly increases the energy of those that inhale it." //WS Edit -- No longer references toxin damage.
@@ -1566,9 +1630,9 @@
var/turf/open/floor/F = T
playsound(T, 'sound/effects/bubbles.ogg', 50)
F.PlaceOnTop(/turf/open/floor/grass, flags = CHANGETURF_INHERIT_AIR)
- new /obj/effect/spawner/lootdrop/flower(T)
+ new /obj/effect/spawner/random/flower(T)
if(prob(75))
- new /obj/effect/spawner/lootdrop/flora(T)
+ new /obj/effect/spawner/random/flora(T)
..()
/datum/reagent/genesis/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user)
@@ -1879,25 +1943,14 @@
/datum/reagent/growthserum
name = "Growth Serum"
- description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant
+ description = "A strange chemical that causes growth, but wears off over time. The growth effect is limited."
color = "#ff0000"//strong red. rgb 255, 0, 0
var/current_size = RESIZE_DEFAULT_SIZE
- taste_description = "bitterness" // apparently what viagra tastes like
+ taste_description = "bitterness"
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H)
var/newsize = current_size
- switch(volume)
- if(0 to 19)
- newsize = 1.25*RESIZE_DEFAULT_SIZE
- if(20 to 49)
- newsize = 1.5*RESIZE_DEFAULT_SIZE
- if(50 to 99)
- newsize = 2*RESIZE_DEFAULT_SIZE
- if(100 to 199)
- newsize = 2.5*RESIZE_DEFAULT_SIZE
- if(200 to INFINITY)
- newsize = 3.5*RESIZE_DEFAULT_SIZE
-
+ newsize = (1 + (clamp(volume, 0, 25) / 100)) * RESIZE_DEFAULT_SIZE
H.resize = newsize/current_size
current_size = newsize
H.update_transform()
@@ -2555,3 +2608,29 @@
M.adjust_disgust(4)
..()
. = 1
+
+/datum/reagent/sulfur_dioxide
+ name = "Sulfur Dioxide"
+ description = "A transparent gas produced by geological activity and burning certain fuels."
+ reagent_state = GAS
+ color = "#f0e518"
+ taste_mult = 0 // tasteless
+
+/datum/reagent/sulfur_dioxide/on_mob_life(mob/living/carbon/M)
+ M.adjustOxyLoss(1*REM, 0)
+ if(prob(40))
+ M.adjustOrganLoss(ORGAN_SLOT_LUNGS,1*REM)
+ . = 1
+ ..()
+
+/datum/reagent/sulfur_dioxide/expose_obj(obj/exposed_object, reac_volume)
+ if((!exposed_object) || (!reac_volume))
+ return 0
+ var/temp = holder ? holder.chem_temp : T20C
+ exposed_object.atmos_spawn_air("[GAS_SO2]=[reac_volume/2];TEMP=[temp]")
+
+/datum/reagent/sulfur_dioxide/expose_turf(turf/open/exposed_turf, reac_volume)
+ if(istype(exposed_turf))
+ var/temp = holder ? holder.chem_temp : T20C
+ exposed_turf.atmos_spawn_air("[GAS_SO2]=[reac_volume/2];TEMP=[temp]")
+ return
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index 313fb7475e00..792831c37fd8 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -230,7 +230,7 @@
/datum/reagent/cryostylane/on_mob_life(mob/living/carbon/M) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
- M.adjust_bodytemperature(-15)
+ M.adjust_bodytemperature(-5)
..()
/datum/reagent/cryostylane/expose_turf(turf/T, reac_volume)
@@ -251,7 +251,7 @@
/datum/reagent/pyrosium/on_mob_life(mob/living/carbon/M)
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
- M.adjust_bodytemperature(15)
+ M.adjust_bodytemperature(5)
..()
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
@@ -299,10 +299,6 @@
shock_timer = 0 //immune to shocks
M.AdjustAllImmobility(-40)
M.adjustStaminaLoss(-2, 0)
- if(isluminescent(M))
- var/mob/living/carbon/human/H = M
- var/datum/species/jelly/luminescent/L = H.dna.species
- L.extract_cooldown = max(0, L.extract_cooldown - 20)
..()
/datum/reagent/firefighting_foam
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index 6045779f6030..e1553a6dffcf 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -132,7 +132,7 @@
if(holder.has_reagent(/datum/reagent/medicine/epinephrine))
holder.remove_reagent(/datum/reagent/medicine/epinephrine, 2*REM)
M.adjustPlasma(20)
- M.adjust_bodytemperature(-7 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
+ M.adjust_bodytemperature(-2 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
return ..()
/datum/reagent/toxin/lexorin
diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
index ff82cd185fb2..380c049adcb0 100644
--- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm
@@ -3,26 +3,22 @@
description = "How is this even possible"
/datum/reagent/consumable/ethanol/trickwine/ash_wine
- name = "Ashwine"
- description = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels."
+ name = "Wine Of Ash"
+ description = "A traditional sacrament for members of the Saint-Roumain Militia. Believed to grant visions, seeing use both in ritual and entertainment within the Militia."
color = "#6CC66C"
boozepwr = 80
quality = DRINK_VERYGOOD
- taste_description = "devotional energy and a hint of high-potency hallucinogens"
- glass_name = "Ashwine"
- glass_desc = "A traditional sacrament for members of the Saint-Roumain Militia. Known to grant visions, and is used both for ritual and entertainment purposes aboard Saint-Roumain vessels."
+ taste_description = "a rustic fruit, with hints of sweet yet tangy ash."
+ glass_name = "Wine Of Ash"
+ glass_desc = "A traditional sacrament for members of the Saint-Roumain Militia. Believed to grant visions, seeing use both in ritual and entertainment within the Militia."
breakaway_flask_icon_state = "baflaskashwine"
/datum/reagent/consumable/ethanol/trickwine/ash_wine/on_mob_life(mob/living/M)
- var/high_message = pick("You feel far more devoted to the cause", "You feel like you should go on a hunt")
- var/cleanse_message = pick("Divine light purifies you.", "You are purged of foul spirts.")
- if(prob(10))
- M.set_drugginess(10)
- to_chat(M, "[high_message]")
- if(M.faction && ("roumain" in M.faction))
- M.adjustToxLoss(-2)
- if(prob(10))
- to_chat(M, "[cleanse_message]")
+ if(prob(15))
+ M.adjustToxLoss(-1)
+ M.adjust_drugginess(5)
+ var/high_message = pick("Devotion runs wild within your soul", "A lust for hunting leaps from within your psyche", "The inner beauty of nature courses within your minds' eye.", "Calm warmth spreads within your body.")
+ to_chat(M, span_notice("[high_message]"))
return ..()
/datum/reagent/consumable/ethanol/trickwine/ash_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -30,7 +26,7 @@
if(!iscarbon(M))
var/mob/living/simple_animal/hostile/hostile_target = M
var/hostile_ai_status = hostile_target.AIStatus
- hostile_target.AIStatus = AI_OFF
+ hostile_target.toggle_ai(AI_OFF)
addtimer(VARSET_CALLBACK(hostile_target, AIStatus, hostile_ai_status),reac_volume)
M.Jitter(3 * reac_volume)
M.Dizzy(2 * reac_volume)
@@ -38,18 +34,20 @@
return ..()
/datum/reagent/consumable/ethanol/trickwine/ice_wine
- name = "Icewine"
+ name = "Wine Of Ice"
description = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown."
color = "#C0F1EE"
boozepwr = 70
- taste_description = "a cold night on the hunt"
- glass_name = "Icewine"
+ taste_description = "a weighty meat, undercut by a mild pepper."
+ glass_name = "Wine Of Ice"
glass_desc = "A specialized brew utilized by members of the Saint-Roumain Militia, designed to assist in temperature regulation while working in hot environments. Known to give one the cold shoulder when thrown."
breakaway_flask_icon_state = "baflaskicewine"
/datum/reagent/consumable/ethanol/trickwine/ice_wine/on_mob_life(mob/living/M)
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
- M.adjustFireLoss(-1)
+ M.adjustFireLoss(-0.25)
+ if(prob(10))
+ to_chat(M, span_notice("Sweat runs down your body."))
return ..()
@@ -64,30 +62,30 @@
paralyze_dur = reac_volume
else
paralyze_dur = 50 + ((reac_volume - 50) / 4)
- M.adjust_bodytemperature((-20*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
+ M.adjust_bodytemperature((-1*reac_volume) * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
M.Paralyze(paralyze_dur)
walk(M, 0) //stops them mid pathing even if they're stunimmunee
M.apply_status_effect(/datum/status_effect/ice_block_talisman, paralyze_dur)
return ..()
/datum/reagent/consumable/ethanol/trickwine/shock_wine
- name = "Shockwine"
+ name = "Lightning's Blessing"
description = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown"
color = "#FEFEB8"
- boozepwr = 70
- taste_description = "the adrenaline of the chase"
- glass_name = "Shockwine"
+ boozepwr = 50
+ taste_description = "a sharp and unrelenting citrus"
+ glass_name = "Lightning's Blessing"
glass_desc = "A stimulating brew utilized by members of the Saint-Roumain Militia, created to allow trackers to keep up with highly mobile prey. Known to have a shocking effect when thrown"
breakaway_flask_icon_state = "baflaskshockwine"
/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_metabolize(mob/living/M)
..()
M.add_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine)
- to_chat(M, "You feel faster the lightning!")
+ to_chat(M, span_notice("You feel like a bolt of lightning!"))
/datum/reagent/consumable/ethanol/trickwine/shock_wine/on_mob_end_metabolize(mob/living/M)
M.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/shock_wine)
- to_chat(M, "You slow to a crawl...")
+ to_chat(M, span_notice("Inertia leaves your body!"))
..()
/datum/reagent/consumable/ethanol/trickwine/shock_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -101,13 +99,13 @@
return ..()
/datum/reagent/consumable/ethanol/trickwine/hearth_wine
- name = "Hearthwine"
- description = "A fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown."
+ name = "Hearthflame"
+ description = "A fiery brew utilized by members of the Saint-Roumain Militia, engineered to heat the body and cauterize wounds. Goes out in a blaze of glory when thrown."
color = "#FEE185"
boozepwr = 70
- taste_description = "the heat of battle"
- glass_name = "Hearthwine"
- glass_desc = "Fiery brew utilized by members of the Saint-Roumain Militia, engineered to cauterize wounds in the field. Goes out in a blaze of glory when thrown."
+ taste_description = "apple cut apart by tangy pricks"
+ glass_name = "Hearthflame"
+ glass_desc = "Fiery brew utilized by members of the Saint-Roumain Militia, engineered to heat the body and cauterize wounds. Goes out in a blaze of glory when thrown."
breakaway_flask_icon_state = "baflaskhearthwine"
/datum/reagent/consumable/ethanol/trickwine/hearth_wine/on_mob_life(mob/living/M)
@@ -131,78 +129,3 @@
otherT.IgniteTurf(reac_volume)
new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10)
return ..()
-
-/datum/reagent/consumable/ethanol/trickwine/force_wine
- name = "Forcewine"
- description = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown."
- color = "#709AAF"
- boozepwr = 70
- taste_description = "the strength of your convictions"
- glass_name = "Forcewine"
- glass_desc = "A fortifying brew utilized by members of the Saint-Roumain Militia, created to protect against the esoteric. Known to act defensively when thrown."
- breakaway_flask_icon_state = "baflaskforcewine"
-
-/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_metabolize(mob/living/M)
- ..()
- ADD_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine")
- ADD_TRAIT(M, TRAIT_MINDSHIELD, "trickwine")
- M.visible_message("[M] glows a dim grey aura")
-
-/datum/reagent/consumable/ethanol/trickwine/force_wine/on_mob_end_metabolize(mob/living/M)
- M.visible_message("[M]'s aura fades away ")
- REMOVE_TRAIT(M, TRAIT_ANTIMAGIC, "trickwine")
- REMOVE_TRAIT(M, TRAIT_MINDSHIELD, "trickwine")
- ..()
-
-/datum/reagent/consumable/ethanol/trickwine/force_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH)
- if(!iscarbon(M))
- reac_volume = reac_volume * 2
- var/turf/T = get_turf(M)
- var/turf/otherT
- new /obj/effect/forcefield/resin(T, reac_volume * 4)
- for(var/direction in GLOB.cardinals)
- otherT = get_step(T, direction)
- new /obj/effect/forcefield/resin(otherT, reac_volume * 4)
- return ..()
-
-/datum/reagent/consumable/ethanol/trickwine/prism_wine
- name = "Prismwine"
- description = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown."
- color = "#F0F0F0"
- boozepwr = 70
- taste_description = "the reflective quality of meditation"
- glass_name = "Prismwine"
- glass_desc = "A glittering brew utilized by members of the Saint-Roumain Militia, mixed to provide defense against the blasts and burns of foes and fauna alike. Softens targets against your own burns when thrown."
- breakaway_flask_icon_state = "baflaskprismwine"
-
-/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M)
- ..()
- ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine")
- M.physiology.burn_mod *= 0.5
- M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1))
- M.visible_message("[M] seems to shimmer with power!")
-
-/datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M)
- REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine")
- M.physiology.burn_mod *= 2
- M.remove_filter("prism-wine")
- M.visible_message("[M] has returned to normal!")
- ..()
-
-/datum/reagent/consumable/ethanol/trickwine/prism_wine/expose_mob(mob/living/M, method=TOUCH, reac_volume)
- if(method == TOUCH)
- if(istype(M, /mob/living/simple_animal/hostile/asteroid))
- var/mob/living/simple_animal/hostile/asteroid/the_animal = M
- the_animal.armor.modifyRating(energy = -50)
- spawn(reac_volume SECONDS)
- the_animal.armor.modifyRating(energy = 50)
- if(ishuman(M))
- var/mob/living/carbon/human/the_human = M
- if(the_human.physiology.burn_mod < 2)
- the_human.physiology.burn_mod *= 2
- the_human.visible_message("[the_human] seemed weakend!")
- spawn(reac_volume SECONDS)
- the_human.physiology.burn_mod *= 0.5
- the_human.visible_message("[the_human] has returned to normal!")
- return ..()
diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm
index 851a9e38a267..d5e74a6766bb 100644
--- a/code/modules/reagents/chemistry/recipes.dm
+++ b/code/modules/reagents/chemistry/recipes.dm
@@ -18,38 +18,6 @@
return
//I recommend you set the result amount to the total volume of all components.
-/datum/chemical_reaction/proc/chemical_mob_spawn(datum/reagents/holder, amount_to_spawn, reaction_name, mob_class = HOSTILE_SPAWN, mob_faction = "chemicalsummon", random = TRUE)
- if(holder && holder.my_atom)
- var/atom/A = holder.my_atom
- var/turf/T = get_turf(A)
- var/message = "Mobs have been spawned in [ADMIN_VERBOSEJMP(T)] by a [reaction_name] reaction."
- message += " (VV)"
-
- var/mob/M = get(A, /mob)
- if(M)
- message += " - Carried By: [ADMIN_LOOKUPFLW(M)]"
- else
- message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]"
-
- message_admins(message, 0, 1)
- log_game("[reaction_name] chemical mob spawn reaction occuring at [AREACOORD(T)] carried by [key_name(M)] with last fingerprint [A.fingerprintslast? A.fingerprintslast : "N/A"]")
-
- playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, TRUE)
-
- for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null))
- C.flash_act()
-
- for(var/i in 1 to amount_to_spawn)
- var/mob/living/simple_animal/S
- if(random)
- S = create_random_mob(get_turf(holder.my_atom), mob_class)
- else
- S = new mob_class(get_turf(holder.my_atom))//Spawn our specific mob_class
- S.faction |= mob_faction
- if(prob(50))
- for(var/j = 1, j <= rand(1, 3), j++)
- step(S, pick(NORTH,SOUTH,EAST,WEST))
-
///Simulates a vortex that moves nearby movable atoms towards or away from the turf T. Range also determines the strength of the effect. High values cause nearby objects to be thrown.
/proc/goonchem_vortex(turf/T, setting_type, range)
for(var/atom/movable/X in orange(range, T))
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index f58cc93d31f5..c4eaf50e45d0 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -435,18 +435,6 @@
results = list(/datum/reagent/colorful_reagent = 5)
required_reagents = list(/datum/reagent/stable_plasma = 1, /datum/reagent/uranium/radium = 1, /datum/reagent/drug/space_drugs = 1, /datum/reagent/medicine/cryoxadone = 1, /datum/reagent/consumable/triple_citrus = 1)
-/datum/chemical_reaction/life
- required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/blood = 1)
-
-/datum/chemical_reaction/life/on_reaction(datum/reagents/holder, created_volume)
- chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (hostile)") //defaults to HOSTILE_SPAWN
-
-/datum/chemical_reaction/life_friendly
- required_reagents = list(/datum/reagent/medicine/strange_reagent = 1, /datum/reagent/medicine/synthflesh = 1, /datum/reagent/consumable/sugar = 1)
-
-/datum/chemical_reaction/life_friendly/on_reaction(datum/reagents/holder, created_volume)
- chemical_mob_spawn(holder, rand(1, round(created_volume, 1)), "Life (friendly)", FRIENDLY_SPAWN)
-
/datum/chemical_reaction/corgium
required_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/blood = 1)
required_temp = 374
@@ -560,17 +548,6 @@
required_container = /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom
mix_message = "The mushroom's insides bubble and pop and it becomes very limp."
-/datum/chemical_reaction/slime_extractification
- // [CELADON-EDIT] - CELADON_BALANCE - Меняем кровь слаймоменов
- // required_reagents = list(/datum/reagent/toxin/slimejelly = 30, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 5) // CELADON-EDIT - ORIGINAL
- required_reagents = list(/datum/reagent/toxin/acid/fluacid = 20, /datum/reagent/consumable/frostoil = 5, /datum/reagent/toxin/plasma = 5)
- // [/CELADON-EDIT]
- mix_message = "The mixture condenses into a ball."
-
-/datum/chemical_reaction/slime_extractification/on_reaction(datum/reagents/holder, created_volume)
- var/location = get_turf(holder.my_atom)
- new /obj/item/slime_extract/grey(location)
-
/datum/chemical_reaction/metalgen_imprint
required_reagents = list(/datum/reagent/metalgen = 1, /datum/reagent/liquid_dark_matter = 1)
results = list(/datum/reagent/metalgen = 1)
diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
index f6f46d3c3970..96c2a85c280c 100644
--- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
+++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm
@@ -6,6 +6,8 @@
explode(holder, created_volume)
/datum/chemical_reaction/reagent_explosion/proc/explode(datum/reagents/holder, created_volume)
+ if(QDELING(holder.my_atom))
+ return
var/power = modifier + round(created_volume/strengthdiv, 1)
if(power > 0)
var/turf/T = get_turf(holder.my_atom)
@@ -151,17 +153,8 @@
R.stun(20)
R.reveal(100)
R.adjustHealth(50)
- addtimer(CALLBACK(src, PROC_REF(divine_explosion), round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS)
..()
-/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/proc/divine_explosion(size, turf/T)
- for(var/mob/living/carbon/C in get_hearers_in_view(size,T))
- if(iscultist(C))
- to_chat(C, "The divine explosion sears you!")
- C.Paralyze(40)
- C.adjust_fire_stacks(5)
- C.IgniteMob()
-
/datum/chemical_reaction/gunpowder
results = list(/datum/reagent/gunpowder = 3)
required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1)
@@ -173,7 +166,6 @@
modifier = 1
mix_message = "Sparks start flying around the gunpowder!"
-
/datum/chemical_reaction/reagent_explosion/gunpowder_explosion/on_reaction(datum/reagents/holder, created_volume)
addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), rand(5,10) SECONDS)
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
deleted file mode 100644
index 7429db4c1dec..000000000000
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ /dev/null
@@ -1,595 +0,0 @@
-
-/datum/chemical_reaction/slime
- var/deletes_extract = TRUE
-
-/datum/chemical_reaction/slime/on_reaction(datum/reagents/holder)
- use_slime_core(holder)
-
-/datum/chemical_reaction/slime/proc/use_slime_core(datum/reagents/holder)
- SSblackbox.record_feedback("tally", "slime_cores_used", 1, "type")
- if(deletes_extract)
- delete_extract(holder)
-
-/datum/chemical_reaction/slime/proc/delete_extract(datum/reagents/holder)
- var/obj/item/slime_extract/M = holder.my_atom
- if(M.Uses <= 0 && !results.len) //if the slime doesn't output chemicals
- qdel(M)
-
-//Grey
-/datum/chemical_reaction/slime/slimespawn
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/grey
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimespawn/on_reaction(datum/reagents/holder)
- var/mob/living/simple_animal/slime/S = new(get_turf(holder.my_atom), "grey")
- S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!")
- ..()
-
-/datum/chemical_reaction/slime/slimeinaprov
- results = list(/datum/reagent/medicine/epinephrine = 3)
- required_reagents = list(/datum/reagent/water = 5)
- required_other = TRUE
- required_container = /obj/item/slime_extract/grey
-
-/datum/chemical_reaction/slime/slimemonkey
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/grey
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimemonkey/on_reaction(datum/reagents/holder)
- for(var/i in 1 to 3)
- new /obj/item/reagent_containers/food/snacks/monkeycube(get_turf(holder.my_atom))
- ..()
-
-//Green
-/datum/chemical_reaction/slime/slimemutate
- results = list(/datum/reagent/consumable/berryjuice = 1) // Removal of mutation toxins. This used to be jellyperson toxin, but is now just jelly.
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/green
-
-/datum/chemical_reaction/slime/unstabletoxin
- results = list(/datum/reagent/toxin/mutagen = 1) // Removal of mutation toxins. This used to be unstable toxin, but is now unstable mutagen.
- required_reagents = list(/datum/reagent/uranium/radium = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/green
-
-
-//Metal
-/datum/chemical_reaction/slime/slimemetal
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/metal
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimemetal/on_reaction(datum/reagents/holder)
- var/turf/location = get_turf(holder.my_atom)
- new /obj/item/stack/sheet/plasteel(location, 5)
- new /obj/item/stack/sheet/metal(location, 15)
- ..()
-
-/datum/chemical_reaction/slime/slimeglass
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/metal
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimeglass/on_reaction(datum/reagents/holder)
- var/turf/location = get_turf(holder.my_atom)
- new /obj/item/stack/sheet/rglass(location, 5)
- new /obj/item/stack/sheet/glass(location, 15)
- ..()
-
-//Gold
-/datum/chemical_reaction/slime/slimemobspawn
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/gold
- required_other = TRUE
- deletes_extract = FALSE //we do delete, but we don't do so instantly
-
-/datum/chemical_reaction/slime/slimemobspawn/on_reaction(datum/reagents/holder)
- var/turf/T = get_turf(holder.my_atom)
- summon_mobs(holder, T)
- var/obj/item/slime_extract/M = holder.my_atom
- deltimer(M.qdel_timer)
- ..()
- M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE)
-
-/datum/chemical_reaction/slime/slimemobspawn/proc/summon_mobs(datum/reagents/holder, turf/T)
- T.visible_message("The slime extract begins to vibrate violently!")
- addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 5, "Gold Slime", HOSTILE_SPAWN), 50)
-
-/datum/chemical_reaction/slime/slimemobspawn/lesser
- required_reagents = list(/datum/reagent/blood = 1)
-
-/datum/chemical_reaction/slime/slimemobspawn/lesser/summon_mobs(datum/reagents/holder, turf/T)
- T.visible_message("The slime extract begins to vibrate violently!")
- addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Lesser Gold Slime", HOSTILE_SPAWN, "neutral"), 50)
-
-/datum/chemical_reaction/slime/slimemobspawn/friendly
- required_reagents = list(/datum/reagent/water = 1)
-
-/datum/chemical_reaction/slime/slimemobspawn/friendly/summon_mobs(datum/reagents/holder, turf/T)
- T.visible_message("The slime extract begins to vibrate adorably!")
- addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 1, "Friendly Gold Slime", FRIENDLY_SPAWN, "neutral"), 50)
-
-/datum/chemical_reaction/slime/slimemobspawn/spider
- required_reagents = list(/datum/reagent/spider_extract = 1)
-
-/datum/chemical_reaction/slime/slimemobspawn/spider/summon_mobs(datum/reagents/holder, turf/T)
- T.visible_message("The slime extract begins to vibrate crikey-ingly!")
- addtimer(CALLBACK(src, PROC_REF(chemical_mob_spawn), holder, 3, "Traitor Spider Slime", /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife, "neutral", FALSE), 50)
-
-
-//Silver
-/datum/chemical_reaction/slime/slimebork
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/silver
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimebork/on_reaction(datum/reagents/holder)
- //BORK BORK BORK
- var/turf/T = get_turf(holder.my_atom)
-
- playsound(T, 'sound/effects/phasein.ogg', 100, TRUE)
-
- for(var/mob/living/carbon/C in viewers(T, null))
- C.flash_act()
-
- for(var/i in 1 to 4 + rand(1,2))
- var/chosen = getbork()
- var/obj/B = new chosen(T)
- if(prob(5))//Fry it!
- var/obj/item/food/deepfryholder/fried
- fried = new(T, B)
- fried.fry() // actually set the name and colour it
- B = fried
- if(prob(50))
- for(var/j in 1 to rand(1, 3))
- step(B, pick(NORTH,SOUTH,EAST,WEST))
- ..()
-
-/datum/chemical_reaction/slime/slimebork/proc/getbork()
- return get_random_food()
-
-/datum/chemical_reaction/slime/slimebork/drinks
- required_reagents = list(/datum/reagent/water = 1)
-
-/datum/chemical_reaction/slime/slimebork/drinks/getbork()
- return get_random_drink()
-
-//Blue
-/datum/chemical_reaction/slime/slimefrost
- results = list(/datum/reagent/consumable/frostoil = 10)
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/blue
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimestabilizer
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/blue
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimestabilizer/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/stabilizer(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimefoam
- required_reagents = list(/datum/reagent/water = 5)
- required_container = /obj/item/slime_extract/blue
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimefoam/on_reaction(datum/reagents/holder)
- holder.create_foam(/datum/effect_system/foam_spread,80, "[src] spews out foam!")
-
-//Dark Blue
-/datum/chemical_reaction/slime/slimefreeze
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/darkblue
- required_other = TRUE
- deletes_extract = FALSE
-
-/datum/chemical_reaction/slime/slimefreeze/on_reaction(datum/reagents/holder)
- var/turf/T = get_turf(holder.my_atom)
- T.visible_message("The slime extract starts to feel extremely cold!")
- addtimer(CALLBACK(src, PROC_REF(freeze), holder), 50)
- var/obj/item/slime_extract/M = holder.my_atom
- deltimer(M.qdel_timer)
- ..()
- M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE)
-
-/datum/chemical_reaction/slime/slimefreeze/proc/freeze(datum/reagents/holder)
- if(holder && holder.my_atom)
- var/turf/open/T = get_turf(holder.my_atom)
- if(istype(T))
- T.atmos_spawn_air("n2=50;TEMP=2.7")
-
-/datum/chemical_reaction/slime/slimefireproof
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/darkblue
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimefireproof/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/fireproof(get_turf(holder.my_atom))
- ..()
-
-//Orange
-/datum/chemical_reaction/slime/slimecasp
- results = list(/datum/reagent/consumable/capsaicin = 10)
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/orange
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimefire
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/orange
- required_other = TRUE
- deletes_extract = FALSE
-
-/datum/chemical_reaction/slime/slimefire/on_reaction(datum/reagents/holder)
- var/turf/T = get_turf(holder.my_atom)
- T.visible_message("The slime extract begins to vibrate adorably!")
- addtimer(CALLBACK(src, PROC_REF(slime_burn), holder), 50)
- var/obj/item/slime_extract/M = holder.my_atom
- deltimer(M.qdel_timer)
- ..()
- M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE)
-
-/datum/chemical_reaction/slime/slimefire/proc/slime_burn(datum/reagents/holder)
- if(holder && holder.my_atom)
- var/turf/open/T = get_turf(holder.my_atom)
- if(istype(T))
- T.atmos_spawn_air("plasma=50;TEMP=1000")
-
-
-/datum/chemical_reaction/slime/slimesmoke
- results = list(/datum/reagent/phosphorus = 10, /datum/reagent/potassium = 10, /datum/reagent/consumable/sugar = 10)
- required_reagents = list(/datum/reagent/water = 5)
- required_container = /obj/item/slime_extract/orange
- required_other = TRUE
-
-//Yellow
-/datum/chemical_reaction/slime/slimeoverload
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/yellow
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimeoverload/on_reaction(datum/reagents/holder, created_volume)
- empulse(get_turf(holder.my_atom), 3, 7)
- ..()
-
-/datum/chemical_reaction/slime/slimecell
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/yellow
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimecell/on_reaction(datum/reagents/holder, created_volume)
- new /obj/item/stock_parts/cell/high/slime(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimeglow
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/yellow
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimeglow/on_reaction(datum/reagents/holder)
- var/turf/T = get_turf(holder.my_atom)
- T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.")
- new /obj/item/flashlight/slime(T)
- ..()
-
-//Purple
-/datum/chemical_reaction/slime/slimepsteroid
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/purple
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimepsteroid/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/steroid(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimeregen
- results = list(/datum/reagent/medicine/regen_jelly = 5)
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/purple
- required_other = TRUE
-
-//Dark Purple
-/datum/chemical_reaction/slime/slimeplasma
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/darkpurple
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimeplasma/on_reaction(datum/reagents/holder)
- new /obj/item/stack/sheet/mineral/plasma(get_turf(holder.my_atom), 3)
- ..()
-
-//Red
-/datum/chemical_reaction/slime/slimemutator
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/red
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimemutator/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/mutator(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimebloodlust
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/red
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimebloodlust/on_reaction(datum/reagents/holder)
- for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null))
- if(slime.docile) //Undoes docility, but doesn't make rabid.
- slime.visible_message("[slime] forgets its training, becoming wild once again!")
- slime.docile = FALSE
- slime.update_name()
- continue
- slime.rabid = 1
- slime.visible_message("The [slime] is driven into a frenzy!")
- ..()
-
-/datum/chemical_reaction/slime/slimespeed
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/red
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimespeed/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/speed(get_turf(holder.my_atom))
- ..()
-
-//Pink
-/datum/chemical_reaction/slime/docility
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/pink
- required_other = TRUE
-
-/datum/chemical_reaction/slime/docility/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/docility(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/gender
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/pink
- required_other = TRUE
-
-/datum/chemical_reaction/slime/gender/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/genderchange(get_turf(holder.my_atom))
- ..()
-
-//Black
-/datum/chemical_reaction/slime/slimemutate2
- results = list(/datum/reagent/aslimetoxin = 1)
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/black
-
-//Oil
-/datum/chemical_reaction/slime/slimeexplosion
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/oil
- required_other = TRUE
- deletes_extract = FALSE
-
-/datum/chemical_reaction/slime/slimeexplosion/on_reaction(datum/reagents/holder)
- var/turf/T = get_turf(holder.my_atom)
- var/lastkey = holder.my_atom.fingerprintslast
- var/touch_msg = "N/A"
- if(lastkey)
- var/mob/toucher = get_mob_by_key(lastkey)
- touch_msg = "[ADMIN_LOOKUPFLW(toucher)]."
- message_admins("Slime Explosion reaction started at [ADMIN_VERBOSEJMP(T)]. Last Fingerprint: [touch_msg]")
- log_game("Slime Explosion reaction started at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].")
- T.visible_message("The slime extract begins to vibrate violently !")
- addtimer(CALLBACK(src, PROC_REF(boom), holder), 50)
- var/obj/item/slime_extract/M = holder.my_atom
- deltimer(M.qdel_timer)
- ..()
- M.qdel_timer = addtimer(CALLBACK(src, PROC_REF(delete_extract), holder), 55, TIMER_STOPPABLE)
-
-/datum/chemical_reaction/slime/slimeexplosion/proc/boom(datum/reagents/holder)
- if(holder && holder.my_atom)
- explosion(get_turf(holder.my_atom), 1 ,3, 6)
-
-
-/datum/chemical_reaction/slime/slimecornoil
- results = list(/datum/reagent/consumable/cornoil = 10)
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/oil
- required_other = TRUE
-
-//Light Pink
-/datum/chemical_reaction/slime/slimepotion2
- required_container = /obj/item/slime_extract/lightpink
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/sentience(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/renaming
- required_container = /obj/item/slime_extract/lightpink
- required_reagents = list(/datum/reagent/water = 1)
- required_other = TRUE
-
-/datum/chemical_reaction/slime/renaming/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/slime/renaming(holder.my_atom.drop_location())
- ..()
-
-
-//Adamantine
-/datum/chemical_reaction/slime/adamantine
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/adamantine
- required_other = TRUE
-
-/datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder)
- new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(holder.my_atom))
- ..()
-
-//Bluespace
-/datum/chemical_reaction/slime/slimefloor2
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/bluespace
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimefloor2/on_reaction(datum/reagents/holder, created_volume)
- new /obj/item/stack/tile/bluespace(get_turf(holder.my_atom), 25)
- ..()
-
-
-/datum/chemical_reaction/slime/slimecrystal
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/bluespace
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume)
- var/obj/item/stack/ore/bluespace_crystal/BC = new (get_turf(holder.my_atom))
- BC.visible_message("The [BC.name] appears out of thin air!")
- ..()
-
-/datum/chemical_reaction/slime/slimeradio
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/bluespace
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimeradio/on_reaction(datum/reagents/holder, created_volume)
- new /obj/item/slimepotion/slime/slimeradio(get_turf(holder.my_atom))
- ..()
-
-//Cerulean
-/datum/chemical_reaction/slime/slimepsteroid2
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/cerulean
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimepsteroid2/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/enhancer(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slime_territory
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/cerulean
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slime_territory/on_reaction(datum/reagents/holder)
- new /obj/item/areaeditor/blueprints/slime(get_turf(holder.my_atom))
- ..()
-
-//Sepia
-/datum/chemical_reaction/slime/slimestop
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/sepia
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimestop/on_reaction(datum/reagents/holder)
- addtimer(CALLBACK(src, PROC_REF(slime_stop), holder), 5 SECONDS)
-
-/datum/chemical_reaction/slime/slimestop/proc/slime_stop(datum/reagents/holder)
- var/obj/item/slime_extract/sepia/extract = holder.my_atom
- var/turf/T = get_turf(holder.my_atom)
- new /obj/effect/timestop(T, null, null, null)
- if(istype(extract))
- if(extract.Uses > 0)
- var/mob/lastheld = get_mob_by_key(holder.my_atom.fingerprintslast)
- if(lastheld && !lastheld.equip_to_slot_if_possible(extract, ITEM_SLOT_HANDS, disable_warning = TRUE))
- extract.forceMove(get_turf(lastheld))
- use_slime_core(holder)
-
-/datum/chemical_reaction/slime/slimecamera
- required_reagents = list(/datum/reagent/water = 1)
- required_container = /obj/item/slime_extract/sepia
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimecamera/on_reaction(datum/reagents/holder)
- new /obj/item/camera(get_turf(holder.my_atom))
- new /obj/item/camera_film(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimefloor
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/sepia
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimefloor/on_reaction(datum/reagents/holder)
- new /obj/item/stack/tile/sepia(get_turf(holder.my_atom), 25)
- ..()
-
-//Pyrite
-/datum/chemical_reaction/slime/slimepaint
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_container = /obj/item/slime_extract/pyrite
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimepaint/on_reaction(datum/reagents/holder)
- var/chosen = pick(subtypesof(/obj/item/paint))
- new chosen(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/slimecrayon
- required_reagents = list(/datum/reagent/blood = 1)
- required_container = /obj/item/slime_extract/pyrite
- required_other = TRUE
-
-/datum/chemical_reaction/slime/slimecrayon/on_reaction(datum/reagents/holder)
- var/chosen = pick(difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)))
- new chosen(get_turf(holder.my_atom))
- ..()
-
-//Rainbow :o)
-/datum/chemical_reaction/slime/slimeRNG
- required_reagents = list(/datum/reagent/toxin/plasma = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/rainbow
-
-/datum/chemical_reaction/slime/slimeRNG/on_reaction(datum/reagents/holder, created_volume)
- if(created_volume >= 5)
- var/obj/item/grenade/clusterbuster/slime/S = new (get_turf(holder.my_atom))
- S.visible_message("Infused with plasma, the core begins to expand uncontrollably!")
- S.icon_state = "[S.base_state]_active"
- S.active = TRUE
- addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60))
- else
- var/mob/living/simple_animal/slime/random/S = new (get_turf(holder.my_atom))
- S.visible_message("Infused with plasma, the core begins to quiver and grow, and a new baby slime emerges from it!")
- ..()
-
-/datum/chemical_reaction/slime/slimebomb
- required_reagents = list(/datum/reagent/toxin/slimejelly = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/rainbow
-
-/datum/chemical_reaction/slime/slimebomb/on_reaction(datum/reagents/holder, created_volume)
- var/turf/T = get_turf(holder.my_atom)
- var/obj/item/grenade/clusterbuster/slime/volatile/S = new (T)
- S.visible_message("Infused with slime jelly, the core begins to expand uncontrollably!")
- S.icon_state = "[S.base_state]_active"
- S.active = TRUE
- addtimer(CALLBACK(S, TYPE_PROC_REF(/obj/item/grenade, prime)), rand(15,60))
- var/lastkey = holder.my_atom.fingerprintslast
- var/touch_msg = "N/A"
- if(lastkey)
- var/mob/toucher = get_mob_by_key(lastkey)
- touch_msg = "[ADMIN_LOOKUPFLW(toucher)]."
- message_admins("Brorble Brorble primed at [ADMIN_VERBOSEJMP(T)]. Last Fingerprint: [touch_msg]")
- log_game("Brorble Brorble primed at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"].")
- ..()
-
-/datum/chemical_reaction/slime/slime_transfer
- required_reagents = list(/datum/reagent/blood = 1)
- required_other = TRUE
- required_container = /obj/item/slime_extract/rainbow
-
-/datum/chemical_reaction/slime/slime_transfer/on_reaction(datum/reagents/holder)
- new /obj/item/slimepotion/transference(get_turf(holder.my_atom))
- ..()
-
-/datum/chemical_reaction/slime/flight_potion
- required_reagents = list(/datum/reagent/water/holywater = 5, /datum/reagent/uranium = 5)
- required_other = TRUE
- required_container = /obj/item/slime_extract/rainbow
-
-/datum/chemical_reaction/slime/flight_potion/on_reaction(datum/reagents/holder)
- new /obj/item/reagent_containers/glass/bottle/potion/flight(get_turf(holder.my_atom))
- ..()
diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm
index df7949c9c654..80d636202f4c 100644
--- a/code/modules/reagents/reagent_containers/bottle.dm
+++ b/code/modules/reagents/reagent_containers/bottle.dm
@@ -39,6 +39,11 @@
desc = "A small bottle of morphine."
list_reagents = list(/datum/reagent/medicine/morphine = 30)
+/obj/item/reagent_containers/glass/bottle/painkiller_booze
+ name = "'painkiller' bottle"
+ desc = "A small bottle of an unmarked substance called 'painkiller.' Will this really work?"
+ list_reagents = list(/datum/reagent/consumable/ethanol/painkiller = 30)
+
/obj/item/reagent_containers/glass/bottle/chloralhydrate
name = "chloral hydrate bottle"
desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 78326279b6f9..8415c98e41e5 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -18,7 +18,7 @@
/obj/item/reagent_containers/hypospray
name = "hypospray"
- desc = "The DeForest Medical Corporation hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
+ desc = "The hypospray is a sterile, air-needle autoinjector for rapid administration of drugs to patients."
icon = 'icons/obj/syringe.dmi'
item_state = "hypo"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
@@ -103,15 +103,6 @@
icon_state = "[base_icon_state][(reagents.total_volume > 0) ? null : 0]"
return ..()
-/obj/item/reagent_containers/hypospray/combat/heresypurge
- name = "holy water piercing injector"
- desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with 5 doses of a holy water and pacifier mixture. Not for use on your teammates."
- item_state = "holy_hypo"
- icon_state = "holy_hypo"
- volume = 250
- list_reagents = list(/datum/reagent/water/holywater = 150, /datum/reagent/peaceborg/tire = 50, /datum/reagent/peaceborg/confuse = 50)
- amount_per_transfer_from_this = 50
-
//MediPens
/obj/item/reagent_containers/hypospray/medipen
diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm
index de1570a9ef5c..10baf946a089 100644
--- a/code/modules/reagents/reagent_containers/jug.dm
+++ b/code/modules/reagents/reagent_containers/jug.dm
@@ -1,7 +1,7 @@
/obj/item/reagent_containers/glass/chem_jug
name = "chemical jug"
desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure"
- icon = 'icons/obj/chemical/chem_jug.dmi'
+ icon = 'icons/obj/chemical/chem_jug.dmi' // the coloring of labels for elemental chemicals is based on the chemical group block coloring at https://pubchem.ncbi.nlm.nih.gov/periodic-table/ . Everything else is whatever.
icon_state = "chem_jug"
item_state = "sheet-plastic"
w_class = WEIGHT_CLASS_BULKY
@@ -80,36 +80,21 @@
/obj/item/reagent_containers/glass/chem_jug/open
cap_on = FALSE
-/obj/item/reagent_containers/glass/chem_jug/carbon
- name = "chemical jug (carbon)"
- icon_state = "chem_jug_carbon"
- list_reagents = list(/datum/reagent/carbon = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/oxygen
- name = "chemical jug (oxygen)"
- icon_state = "chem_jug_oxygen"
- list_reagents = list(/datum/reagent/oxygen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/nitrogen
- name = "chemical jug (nitrogen)"
- icon_state = "chem_jug_nitrogen"
- list_reagents = list(/datum/reagent/nitrogen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/hydrogen
- name = "chemical jug (hydrogen)"
- icon_state = "chem_jug_hydrogen"
- list_reagents = list(/datum/reagent/hydrogen = 150)
-
-/obj/item/reagent_containers/glass/chem_jug/radium
- name = "chemical jug (radium)"
- icon_state = "chem_jug_radium"
- list_reagents = list(/datum/reagent/uranium/radium = 150)
-
/obj/item/reagent_containers/glass/chem_jug/aluminium
name = "chemical jug (aluminium)"
icon_state = "chem_jug_aluminium"
list_reagents = list(/datum/reagent/aluminium = 150)
+/obj/item/reagent_containers/glass/chem_jug/bromine
+ name = "chemical jug (bromine)"
+ icon_state = "chem_jug_bromine"
+ list_reagents = list(/datum/reagent/bromine = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/carbon
+ name = "chemical jug (carbon)"
+ icon_state = "chem_jug_carbon"
+ list_reagents = list(/datum/reagent/carbon = 150)
+
/obj/item/reagent_containers/glass/chem_jug/chlorine
name = "chemical jug (chlorine)"
icon_state = "chem_jug_chlorine"
@@ -120,27 +105,67 @@
icon_state = "chem_jug_copper"
list_reagents = list(/datum/reagent/copper = 150)
-/obj/item/reagent_containers/glass/chem_jug/bromine
- name = "chemical jug (bromine)"
- icon_state = "chem_jug_bromine"
- list_reagents = list(/datum/reagent/bromine = 150)
+/obj/item/reagent_containers/glass/chem_jug/fluorine
+ name = "chemical jug (fluorine)"
+ icon_state = "chem_jug_fluorine"
+ list_reagents = list(/datum/reagent/fluorine = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/hydrogen
+ name = "chemical jug (hydrogen)"
+ icon_state = "chem_jug_hydrogen"
+ list_reagents = list(/datum/reagent/hydrogen = 150)
/obj/item/reagent_containers/glass/chem_jug/iodine
name = "chemical jug (iodine)"
icon_state = "chem_jug_iodine"
list_reagents = list(/datum/reagent/iodine = 150)
+/obj/item/reagent_containers/glass/chem_jug/lithium
+ name = "chemical jug (lithium)"
+ icon_state = "chem_jug_lithium"
+ list_reagents = list(/datum/reagent/lithium = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/mercury
+ name = "chemical jug (mercury)"
+ icon_state = "chem_jug_mercury"
+ list_reagents = list(/datum/reagent/mercury = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/nitrogen
+ name = "chemical jug (nitrogen)"
+ icon_state = "chem_jug_nitrogen"
+ list_reagents = list(/datum/reagent/nitrogen = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/oxygen
+ name = "chemical jug (oxygen)"
+ icon_state = "chem_jug_oxygen"
+ list_reagents = list(/datum/reagent/oxygen = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/phosphorus
+ name = "chemical jug (phosphorus)"
+ icon_state = "chem_jug_phosphorus"
+ list_reagents = list(/datum/reagent/phosphorus = 150)
+
/obj/item/reagent_containers/glass/chem_jug/potassium
name = "chemical jug (potassium)"
icon_state = "chem_jug_potassium"
list_reagents = list(/datum/reagent/potassium = 150)
+/obj/item/reagent_containers/glass/chem_jug/radium
+ name = "chemical jug (radium)"
+ icon_state = "chem_jug_radium"
+ list_reagents = list(/datum/reagent/uranium/radium = 150)
+
+/obj/item/reagent_containers/glass/chem_jug/sodium
+ name = "chemical jug (sodium)"
+ icon_state = "chem_jug_sodium"
+ list_reagents = list(/datum/reagent/sodium = 150)
+
/obj/item/reagent_containers/glass/chem_jug/sulfur
name = "chemical jug (sulfur)"
icon_state = "chem_jug_sulfur"
list_reagents = list(/datum/reagent/sulfur = 150)
-/obj/item/reagent_containers/glass/chem_jug/thermite
+/obj/item/reagent_containers/glass/chem_jug/thermite // not giving this its own "elemental" jug sprite.
name = "chemical jug (thermite)"
list_reagents = list(/datum/reagent/thermite = 150)
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 9cac6c3a52a2..ba3cd6a540f1 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -96,7 +96,7 @@
name = "morphine pill"
desc = "Commonly used to treat insomnia."
icon_state = "pill8"
- list_reagents = list(/datum/reagent/medicine/morphine = 30)
+ list_reagents = list(/datum/reagent/medicine/morphine = 15)
rename_with_volume = TRUE
/obj/item/reagent_containers/pill/stimulant
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 54d2fc182398..dd8c6c24442b 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -188,6 +188,11 @@
anchored = TRUE
reagent_id = /datum/reagent/consumable/nutraslop
+/obj/structure/reagent_dispensers/servingdish/wrench_act(mob/living/user, obj/item/tool)
+ . = ..()
+ default_unfasten_wrench(user, tool)
+ return TRUE
+
/obj/structure/reagent_dispensers/plumbed
name = "stationairy water tank"
anchored = TRUE
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index b8b08486f20d..9b6a0629fa3e 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -365,7 +365,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
/obj/item/conveyor_switch_construct/afterattack(atom/A, mob/user, proximity)
. = ..()
- if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle))
+ if(!proximity || user.stat || !isfloorturf(A))
return
var/found = 0
for(var/obj/machinery/conveyor/C in view())
@@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
/obj/item/stack/conveyor/afterattack(atom/A, mob/user, proximity)
. = ..()
- if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle))
+ if(!proximity || user.stat || !isfloorturf(A))
return
var/cdir = get_dir(A, user)
if(A == user.loc)
diff --git a/code/modules/requests/requests_manager.dm b/code/modules/requests/requests_manager.dm
index e33da846d4de..c8985058dac1 100644
--- a/code/modules/requests/requests_manager.dm
+++ b/code/modules/requests/requests_manager.dm
@@ -106,6 +106,9 @@ GLOBAL_DATUM_INIT(requests, /datum/request_manager, new)
*/
/datum/request_manager/proc/fax_request(client/requester, message, additional_info)
request_for_client(requester, REQUEST_FAX, message, additional_info)
+ for(var/client/admin in GLOB.admins)
+ if(admin.prefs.chat_toggles & CHAT_PRAYER && admin.prefs.toggles & SOUND_PRAYERS)
+ SEND_SOUND(admin, sound('sound/misc/mail.ogg'))
/**
* Creates a request and registers the request with all necessary internal tracking lists
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index f08143f7066e..c4058b9aa3c0 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -179,6 +179,17 @@ other types of metals and chemistry for reagents).
desc = "A design disk containing the pattern for a refill box of standard 9mm ammo, used in Commander pistols."
starting_blueprints = list(/datum/design/c9mmautolathe)
+/obj/item/disk/design_disk/ammo_c9mm/Initialize()
+ . = ..()
+ blueprints[1] = new /datum/design/c9mmautolathe()
+
+/obj/item/disk/design_disk/telecomms
+ name = "design disk - Telecomms parts"
+ desc = "A design disk containing blueprints for specialized telecommunications parts."
+ color = "#64A8D9"
+ max_blueprints = 7
+ starting_blueprints = list(/datum/design/subspace_ansible, /datum/design/hyperwave_filter, /datum/design/subspace_amplifier, /datum/design/subspace_treatment, /datum/design/subspace_analyzer, /datum/design/subspace_crystal, /datum/design/subspace_transmitter)
+
/obj/item/disk/design_disk/blanks
design_name = "Blank Ammo"
starting_blueprints = list(/datum/design/blank_shell)
diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm
index 8401d618aa01..7ba92c76ba26 100644
--- a/code/modules/research/designs/AI_module_designs.dm
+++ b/code/modules/research/designs/AI_module_designs.dm
@@ -10,60 +10,6 @@
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-/datum/design/board/safeguard_module
- name = "Module Design (Safeguard)"
- desc = "Allows for the construction of a Safeguard AI Module."
- id = "safeguard_module"
- materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/supplied/safeguard
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/onehuman_module
- name = "Module Design (OneHuman)"
- desc = "Allows for the construction of a OneHuman AI Module."
- id = "onehuman_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 6000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/zeroth/oneHuman
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/protectstation_module
- name = "Module Design (ProtectStation)"
- desc = "Allows for the construction of a ProtectStation AI Module."
- id = "protectstation_module"
- materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/supplied/protectStation
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/quarantine_module
- name = "Module Design (Quarantine)"
- desc = "Allows for the construction of a Quarantine AI Module."
- id = "quarantine_module"
- materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/supplied/quarantine
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/oxygen_module
- name = "Module Design (OxygenIsToxicToHumans)"
- desc = "Allows for the construction of a Safeguard AI Module."
- id = "oxygen_module"
- materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/supplied/oxygen
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/freeform_module
- name = "Module Design (Freeform)"
- desc = "Allows for the construction of a Freeform AI Module."
- id = "freeform_module"
- materials = list(/datum/material/glass = 1000, /datum/material/gold = 10000, /datum/material/bluespace = 2000)//Custom inputs should be more expensive to get
- build_path = /obj/item/aiModule/supplied/freeform
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/board/reset_module
name = "Module Design (Reset)"
desc = "Allows for the construction of a Reset AI Module."
@@ -91,66 +37,3 @@
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-/datum/design/board/freeformcore_module
- name = "AI Core Module (Freeform)"
- desc = "Allows for the construction of a Freeform AI Core Module."
- id = "freeformcore_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 10000, /datum/material/bluespace = 2000)//Ditto
- build_path = /obj/item/aiModule/core/freeformcore
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/asimov
- name = "Core Module Design (Asimov)"
- desc = "Allows for the construction of an Asimov AI Core Module."
- id = "asimov_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/asimov
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/paladin_module
- name = "Core Module Design (P.A.L.A.D.I.N.)"
- desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module."
- id = "paladin_module"
- build_type = IMPRINTER
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/paladin
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/tyrant_module
- name = "Core Module Design (T.Y.R.A.N.T.)"
- desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
- id = "tyrant_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/tyrant
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/overlord_module
- name = "Core Module Design (Overlord)"
- desc = "Allows for the construction of an Overlord AI Module."
- id = "overlord_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/overlord
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/corporate_module
- name = "Core Module Design (Corporate)"
- desc = "Allows for the construction of a Corporate AI Core Module."
- id = "corporate_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/corp
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
-/datum/design/board/default_module
- name = "Core Module Design (Default)"
- desc = "Allows for the construction of a Default AI Core Module."
- id = "default_module"
- materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000, /datum/material/bluespace = 1000)
- build_path = /obj/item/aiModule/core/full/custom
- category = list("AI Modules")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 0b679dfcc4bf..5ac2370dc694 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -761,7 +761,7 @@
id = "foam_dart"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 500)
- build_path = /obj/item/ammo_box/foambox
+ build_path = /obj/item/storage/box/ammo/foam_darts
category = list("initial", "Misc")
/datum/design/handcuffs
@@ -785,7 +785,7 @@
id = "c38_surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c38_box/surplus
+ build_path = /obj/item/storage/box/ammo/c38_surplus
category = list("initial", "Security", "Ammo")
/datum/design/beanbag_slug
@@ -817,7 +817,7 @@
id = "riot_darts"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 50000) //Comes with 40 darts
- build_path = /obj/item/ammo_box/foambox/riot
+ build_path = /obj/item/storage/box/ammo/foam_darts/riot
category = list("initial", "Security")
/datum/design/c10mm_surplus
@@ -825,7 +825,7 @@
id = "c10mm-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm/surplus
+ build_path = /obj/item/storage/box/ammo/c10mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c45_surplus
@@ -833,7 +833,7 @@
id = "c45-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45/surplus
+ build_path = /obj/item/storage/box/ammo/c45_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c9mm_surplus
@@ -841,7 +841,7 @@
id = "c9mm-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm/surplus
+ build_path = /obj/item/storage/box/ammo/c9mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/c556mmHITP_surplus
@@ -849,15 +849,7 @@
id = "c556mmHITP-surplus"
build_type = AUTOLATHE | PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c556mmHITP/surplus
- category = list("initial", "Security", "Ammo")
-
-/datum/design/generic_ammo_box
- name = "Generic Ammo Box"
- id = "ammo-generic"
- build_type = AUTOLATHE | PROTOLATHE
- materials = list(/datum/material/iron = 1500)
- build_path = /obj/item/ammo_box/generic
+ build_path = /obj/item/storage/box/ammo/c556mm_surplus
category = list("initial", "Security", "Ammo")
/datum/design/ammo_can
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index c33b2c4558d3..2cc0134cf8f6 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -199,7 +199,7 @@
id = "rngplant"
build_type = BIOGENERATOR
materials = list(/datum/material/biomass= 2000)
- build_path = /obj/effect/spawner/lootdrop/seeded
+ build_path = /obj/effect/spawner/random/food_or_drink/seed
category = list("initial","LIFESEED_2.0")
/datum/design/genesis
diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm
index 2ba8ef1e2d7a..6cd4b69f4062 100644
--- a/code/modules/research/designs/comp_board_designs.dm
+++ b/code/modules/research/designs/comp_board_designs.dm
@@ -38,14 +38,6 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-/datum/design/board/xenobiocamera
- name = "Computer Design (Xenobiology Console)"
- desc = "Allows for the construction of circuit boards used to build xenobiology camera computers."
- id = "xenobioconsole"
- build_path = /obj/item/circuitboard/computer/xenobiology
- category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/board/aiupload
name = "Computer Design (AI Upload)"
desc = "Allows for the construction of circuit boards used to build an AI Upload Console."
@@ -190,14 +182,6 @@
category = list("Computer Boards")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO
-/datum/design/board/rdconsole
- name = "Computer Design (R&D Console)"
- desc = "Allows for the construction of circuit boards used to build a new R&D console."
- id = "rdconsole"
- build_path = /obj/item/circuitboard/computer/rdconsole
- category = list("Computer Boards")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
-
/datum/design/board/bounty
name = "Computer Design (Bounty Console)"
desc = "Allows for the construction of circuit boards used to build a Bounty Console."
diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm
index bbc83dd1e705..b910f6f008e8 100644
--- a/code/modules/research/designs/machine_designs.dm
+++ b/code/modules/research/designs/machine_designs.dm
@@ -85,7 +85,8 @@
desc = "The circuit board for a space heater."
id = "space_heater"
build_path = /obj/item/circuitboard/machine/space_heater
- category = list ("Engineering Machinery")
+ build_type = AUTOLATHE | IMPRINTER
+ category = list ("Engineering Machinery", "initial", "Equipment")
departmental_flags = ALL
/datum/design/board/teleport_station
@@ -332,15 +333,6 @@
build_path = /obj/item/circuitboard/machine/smartfridge
category = list ("Misc. Machinery")
-
-/datum/design/board/monkey_recycler
- name = "Machine Design (Monkey Recycler Board)"
- desc = "The circuit board for a monkey recycler."
- id = "monkey_recycler"
- build_path = /obj/item/circuitboard/machine/monkey_recycler
- category = list ("Misc. Machinery")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE
-
/datum/design/board/seed_extractor
name = "Machine Design (Seed Extractor Board)"
desc = "The circuit board for a seed extractor."
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 46dddeb0c586..cc45dd179877 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -670,15 +670,6 @@
construction_time = 300
category = list("Exosuit Equipment")
-/datum/design/mech_honker
- name = "HoNkER BlAsT 5000"
- id = "mech_honker"
- build_type = MECHFAB
- build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker
- materials = list(/datum/material/iron=20000,/datum/material/hellstone=10000)
- construction_time = 500
- category = list("Exosuit Equipment")
-
/datum/design/mech_punching_glove
name = "Oingo Boingo Punch-face"
id = "mech_punching_face"
diff --git a/code/modules/research/designs/stock_parts_designs.dm b/code/modules/research/designs/stock_parts_designs.dm
index ba52f69c5502..6c7097b351a4 100644
--- a/code/modules/research/designs/stock_parts_designs.dm
+++ b/code/modules/research/designs/stock_parts_designs.dm
@@ -251,7 +251,7 @@
name = "Subspace Ansible"
desc = "A compact module capable of sensing extradimensional activity."
id = "s-ansible"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = 100, /datum/material/silver = 100)
build_path = /obj/item/stock_parts/subspace/ansible
category = list("Stock Parts")
@@ -261,7 +261,7 @@
name = "Hyperwave Filter"
desc = "A tiny device capable of filtering and converting super-intense radiowaves."
id = "s-filter"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = 100, /datum/material/silver = 100)
build_path = /obj/item/stock_parts/subspace/filter
category = list("Stock Parts")
@@ -271,7 +271,7 @@
name = "Subspace Amplifier"
desc = "A compact micro-machine capable of amplifying weak subspace transmissions."
id = "s-amplifier"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = 100, /datum/material/gold = 100, /datum/material/uranium = 100)
build_path = /obj/item/stock_parts/subspace/amplifier
category = list("Stock Parts")
@@ -281,7 +281,7 @@
name = "Subspace Treatment Disk"
desc = "A compact micro-machine capable of stretching out hyper-compressed radio waves."
id = "s-treatment"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = 100, /datum/material/silver = 200)
build_path = /obj/item/stock_parts/subspace/treatment
category = list("Stock Parts")
@@ -291,7 +291,7 @@
name = "Subspace Analyzer"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-analyzer"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = 100, /datum/material/gold = 100)
build_path = /obj/item/stock_parts/subspace/analyzer
category = list("Stock Parts")
@@ -301,7 +301,7 @@
name = "Ansible Crystal"
desc = "A sophisticated analyzer capable of analyzing cryptic subspace wavelengths."
id = "s-crystal"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/glass = 800, /datum/material/silver = 100, /datum/material/gold = 100)
build_path = /obj/item/stock_parts/subspace/crystal
category = list("Stock Parts")
@@ -311,7 +311,7 @@
name = "Subspace Transmitter"
desc = "A large piece of equipment used to open a window into the subspace dimension."
id = "s-transmitter"
- build_type = PROTOLATHE
+ build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/glass = 100, /datum/material/silver = 100, /datum/material/uranium = 100)
build_path = /obj/item/stock_parts/subspace/transmitter
category = list("Stock Parts")
diff --git a/code/modules/research/designs/tool_designs.dm b/code/modules/research/designs/tool_designs.dm
index 86a8b542712b..b57dca9d785b 100644
--- a/code/modules/research/designs/tool_designs.dm
+++ b/code/modules/research/designs/tool_designs.dm
@@ -32,16 +32,6 @@
category = list("Tool Designs")
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_ENGINEERING
-/datum/design/exwelder
- name = "Experimental Welding Tool"
- desc = "An experimental welder capable of self-fuel generation."
- id = "exwelder"
- build_type = PROTOLATHE
- materials = list(/datum/material/iron = 1000, /datum/material/glass = 500, /datum/material/plasma = 1500, /datum/material/uranium = 200)
- build_path = /obj/item/weldingtool/experimental
- category = list("Tool Designs")
- departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
-
/datum/design/rpd
name = "Rapid Pipe Dispenser (RPD)"
id = "rpd_loaded"
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 1c3edc8b7c32..f1b9a8c573c6 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -238,16 +238,6 @@
build_path = /obj/item/ammo_box/magazine/wt550m9/ap
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-/datum/design/mag_oldsmg/ic_mag
- name = "WT-550 Auto Gun Incendiary Magazine (4.6x30mm IC)"
- desc = "A 20 round armour piercing magazine for the out of date security WT-550 Auto Rifle"
- id = "mag_oldsmg_ic"
- materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000)
- build_path = /obj/item/ammo_box/magazine/wt550m9/inc
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-//WS edit - free lethals
-
/datum/design/commanderammo
name = "Commander magazine (9mm)"
desc = "A single stack magazine chambered in 9mm for Commander sidearms."
@@ -288,8 +278,6 @@
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-//Shiptest edit - standard ammunition
-
/datum/design/buckshot_shell
name = "Buckshot Shell"
id = "buckshot_shell"
@@ -304,7 +292,7 @@
id = "c38"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c38_box
+ build_path = /obj/item/storage/box/ammo/c38
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -313,7 +301,7 @@
id = "c9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm
+ build_path = /obj/item/storage/box/ammo/c9mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -322,7 +310,7 @@
id = "c10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm
+ build_path = /obj/item/storage/box/ammo/c10mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -331,7 +319,7 @@
id = "c45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45
+ build_path = /obj/item/storage/box/ammo/c45
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -340,19 +328,17 @@
id = "c556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c556mmHITP
+ build_path = /obj/item/storage/box/ammo/c556mm
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-// WS edit - not so free rubbershot
-
/datum/design/rubbershot9mm
name = "Rubbershot 9mm ammo box"
desc = "A box full of less-than-lethal 9mm ammunition."
id = "rubbershot9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm/rubbershot
+ build_path = /obj/item/storage/box/ammo/c9mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -362,7 +348,7 @@
id = "rubbershot10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c10mm/rubbershot
+ build_path = /obj/item/storage/box/ammo/c10mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -372,7 +358,7 @@
id = "rubbershot45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c45/rubbershot
+ build_path = /obj/item/storage/box/ammo/c45_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -382,7 +368,7 @@
id = "rubbershot556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000)
- build_path = /obj/item/ammo_box/c556mmHITP/rubbershot
+ build_path = /obj/item/storage/box/ammo/c556mm_rubber
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -392,7 +378,7 @@
id = "ap9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c9mm/ap
+ build_path = /obj/item/storage/box/ammo/c9mm_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -402,7 +388,7 @@
id = "ap10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c10mm/ap
+ build_path = /obj/item/storage/box/ammo/c10mm_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -412,7 +398,7 @@
id = "ap45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c45/ap
+ build_path = /obj/item/storage/box/ammo/c45_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -422,7 +408,7 @@
id = "ap556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000, /datum/material/uranium = 1000)
- build_path = /obj/item/ammo_box/c556mmHITP/ap
+ build_path = /obj/item/storage/box/ammo/c556mm_ap
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -432,7 +418,7 @@
id = "hp9mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c9mm/hp
+ build_path = /obj/item/storage/box/ammo/c9mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -442,7 +428,7 @@
id = "hp10mm"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c10mm/hp
+ build_path = /obj/item/storage/box/ammo/c10mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
@@ -452,7 +438,7 @@
id = "hp45"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 15000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c45/hp
+ build_path = /obj/item/storage/box/ammo/c45_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
@@ -462,40 +448,10 @@
id = "hp556mmHITP"
build_type = PROTOLATHE
materials = list(/datum/material/iron = 18000, /datum/material/silver = 1000)
- build_path = /obj/item/ammo_box/c556mmHITP/hp
- category = list("Ammo")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/inc9mm
- name = "Incendiary 9mm ammo box"
- desc = "A box full of incendiary 9mm ammunition."
- id = "inc9mm"
- build_type = PROTOLATHE
- materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c9mm/fire
- category = list("Ammo")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-
-/datum/design/inc10mm
- name = "Incendiary 10mm ammo box"
- desc = "A box full of incendiary 10mm ammunition."
- id = "inc10mm"
- build_type = PROTOLATHE
- materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c10mm/fire
+ build_path = /obj/item/storage/box/ammo/c556mm_hp
category = list("Ammo")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
-/datum/design/inc45
- name = "Incendiary .45 ammo box"
- desc = "A box full of incendiary .45 ammunition."
- id = "inc45"
- build_type = PROTOLATHE
- materials = list(/datum/material/iron = 15000, /datum/material/plasma = 5000)
- build_path = /obj/item/ammo_box/c45/fire
- category = list("Ammo")
- departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS
-
/datum/design/rubbershot
name = "Rubber Shot"
id = "rubber_shot"
@@ -737,5 +693,5 @@
id = "c9mmautolathe"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 15000)
- build_path = /obj/item/ammo_box/c9mm
+ build_path = /obj/item/storage/box/ammo/c9mm
category = list("Imported")
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index ce473ad739cb..62cd6f6bf8ef 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -82,7 +82,6 @@
/obj/item/grenade,
/obj/item/aicard,
/obj/item/storage/backpack/holding,
- /obj/item/slime_extract,
/obj/item/onetankbomb,
/obj/item/transfer_valve))
@@ -201,7 +200,7 @@
use_power(750)
if(dotype != FAIL)
var/list/nodes = techweb_item_boost_check(process)
- var/picked = pickweight(nodes) //This should work.
+ var/picked = pick_weight(nodes) //This should work.
if(linked_console)
linked_console.stored_research.boost_with_path(SSresearch.techweb_node_by_id(picked), process.type)
updateUsrDialog()
@@ -293,7 +292,7 @@
else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
var/savedName = "[exp_on]"
ejectItem(TRUE)
- var/newPath = text2path(pickweight(valid_items))
+ var/newPath = text2path(pick_weight(valid_items))
loaded_item = new newPath(src)
visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!")
investigate_log("Experimentor has transformed [savedName] into [loaded_item]", INVESTIGATE_EXPERIMENTOR)
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index c60264ae0e98..8caeb2763e5d 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -123,35 +123,6 @@ Nothing else in the console has ID requirements.
return ..()
/obj/machinery/computer/rdconsole/attackby(obj/item/D, mob/user, params)
- if(istype(D, /obj/item/slime_extract))
- var/obj/item/slime_extract/E = D
- // [CELADON-EDIT] - CELADON_FIXES - Попытка починить абуз
- // if(!slime_already_researched[E.type]) // CELADON-EDIT - ORIGINAL
- if(!GLOB.slime_already_researched[E.type])
- // [/CELADON-EDIT]
- if(!E.research)
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1)
- visible_message("[src] buzzes and displays a message: Invalid extract! (You shouldn't be seeing this. If you are, tell someone.)")
- return
- if(E.Uses <= 0)
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1)
- visible_message("[src] buzzes and displays a message: Extract consumed - no research available.")
- return
- else
- playsound(src, 'sound/machines/ping.ogg', 50, 3, -1)
- visible_message("[user] inserts [E] into a slot on the [src]!", "You insert [E] into a slot on the [src], producting [E.research] points from the extract's chemical makeup!")
- stored_research.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = E.research))
- // [CELADON-EDIT] - CELADON_FIXES - Попытка починить абуз
- // slime_already_researched[E.type] = TRUE // CELADON-EDIT - ORIGINAL
- GLOB.slime_already_researched[E.type] = TRUE
- // [/CELADON-EDIT]
- qdel(D)
- return
- else
- visible_message("[src] buzzes and displays a message: Slime extract already researched!")
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 3, -1)
- return
-
if(istype(D, /obj/item/seeds))
var/obj/item/seeds/E = D
// [CELADON-EDIT] - CELADON_FIXES - Попытка починить абуз
@@ -668,10 +639,10 @@ Nothing else in the console has ID requirements.
RDSCREEN_UI_DDISK_CHECK
var/list/l = list()
l += "Disk Operations: Clear DiskUpload AllEject Disk"
- for(var/i in 1 to d_disk.max_blueprints)
+ for(var/i in d_disk.blueprints)
l += ""
- if(d_disk.blueprints[i])
- var/datum/design/D = d_disk.blueprints[i]
+ if(istype(i, /datum/design))
+ var/datum/design/D = i
l += "[D.icon_html(usr)] [D.name]"
l += "Operations: Upload to database Clear Slot"
else
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index d97b19070d57..86d6b4164bb5 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -13,7 +13,7 @@
// Cargo Stuff
"c-reader", "desttagger", "salestagger", "handlabel", "packagewrap",
// Research Stuff
- "destructive_analyzer", "experimentor", "rdconsole", "rdserver", "design_disk", "tech_disk", "mechfab",
+ "destructive_analyzer", "experimentor", "rdserver", "design_disk", "tech_disk", "mechfab",
// Miscellaneous Stufff
"paystand", "space_heater", "bucket", "plastic_knife", "plastic_fork", "plastic_spoon", "fax",
// Security Stuff
@@ -119,7 +119,7 @@
display_name = "Biological Processing"
description = "From slimes to kitchens."
prereq_ids = list("biotech")
- design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive")
+ design_ids = list("smartfridge", "gibber", "deepfryer", "processor", "gibber", "microwave", "reagentgrinder", "dish_drive")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -230,7 +230,7 @@
display_name = "Basic Bluespace Theory"
description = "Basic studies into the mysterious alternate dimension known as bluespace."
prereq_ids = list("base")
- design_ids = list("beacon", "xenobioconsole", "telesci_gps", "bluespace_crystal")
+ design_ids = list("beacon", "telesci_gps", "bluespace_crystal")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -367,9 +367,7 @@
display_name = "Artificial Intelligence"
description = "AI unit research."
prereq_ids = list("adv_robotics")
- design_ids = list("aifixer", "aicore", "safeguard_module", "onehuman_module", "protectstation_module", "quarantine_module", "oxygen_module", "freeform_module",
- "reset_module", "purge_module", "remove_module", "freeformcore_module", "asimov_module", "paladin_module", "tyrant_module", "overlord_module", "corporate_module",
- "default_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard")
+ design_ids = list("aifixer", "aicore", "reset_module", "purge_module", "remove_module", "borg_ai_control", "mecha_tracking_ai_control", "aiupload", "intellicard")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -594,7 +592,7 @@
id = "exp_tools"
display_name = "Experimental Tools"
description = "Highly advanced tools."
- design_ids = list("exwelder", "jawsoflife", "handdrill", "laserscalpel", "mechanicalpinches", "searingtool")
+ design_ids = list("jawsoflife", "handdrill", "laserscalpel", "mechanicalpinches", "searingtool")
prereq_ids = list("adv_engi")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -704,7 +702,7 @@
display_name = "Ballistic Weaponry"
description = "This isn't research.. This is reverse-engineering!"
prereq_ids = list("weaponry")
- design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "mag_oldsmg_ic", "shotgun_slug")
+ design_ids = list("mag_oldsmg", "mag_oldsmg_ap", "shotgun_slug")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
@@ -725,7 +723,7 @@
display_name = "Exotic Ammunition"
description = "They won't know what hit em."
prereq_ids = list("adv_weaponry", "medical_weapons")
- design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox", "inc9mm", "inc10mm", "inc45", "incendiary_slug")
+ design_ids = list("techshotshell", "c38_hotshot", "c38_iceblox", "incendiary_slug")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
diff --git a/code/modules/research/xenobiology/crossbreeding/__corecross.dm b/code/modules/research/xenobiology/crossbreeding/__corecross.dm
deleted file mode 100644
index e2cfe4b40871..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/__corecross.dm
+++ /dev/null
@@ -1,193 +0,0 @@
-//////////////////////////////////////////////
-////////// SLIME CROSSBREEDS //////////
-//////////////////////////////////////////////
-// A system of combining two extract types. //
-// Performed by feeding a slime 10 of an //
-// extract color. //
-//////////////////////////////////////////////
-/*==========================================*\
-To add a crossbreed:
- The file name is automatically selected
- by the crossbreeding effect, which uses
- the format slimecross/[modifier]/[color].
-
- If a crossbreed doesn't exist, don't
- worry. If no file is found at that
- location, it will simple display that
- the crossbreed was too unstable.
-
- As a result, do not feel the need to
- try to add all of the crossbred
- effects at once, if you're here and
- trying to make a new slime type. Just
- get your slimetype in the codebase and
- get around to the crossbreeds eventually!
-\*==========================================*/
-
-/obj/item/slimecross //The base type for crossbred extracts. Mostly here for posterity, and to set base case things.
- name = "crossbred slime extract"
- desc = "An extremely potent slime extract, formed through crossbreeding."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "base"
- var/colour = "null"
- var/effect = "null"
- var/effect_desc = "null"
- force = 0
- w_class = WEIGHT_CLASS_TINY
- throwforce = 0
- throw_speed = 3
- throw_range = 6
-
-/obj/item/slimecross/examine(mob/user)
- . = ..()
- if(effect_desc)
- . += " [effect_desc]"
-
-/obj/item/slimecross/Initialize()
- . = ..()
- name = effect + " " + colour + " extract"
- var/itemcolor = "#FFFFFF"
- switch(colour)
- if("orange")
- itemcolor = "#FFA500"
- if("purple")
- itemcolor = "#B19CD9"
- if("blue")
- itemcolor = "#ADD8E6"
- if("metal")
- itemcolor = "#7E7E7E"
- if("yellow")
- itemcolor = "#FFFF00"
- if("dark purple")
- itemcolor = "#551A8B"
- if("dark blue")
- itemcolor = "#0000FF"
- if("silver")
- itemcolor = "#D3D3D3"
- if("bluespace")
- itemcolor = "#32CD32"
- if("sepia")
- itemcolor = "#704214"
- if("cerulean")
- itemcolor = "#2956B2"
- if("pyrite")
- itemcolor = "#FAFAD2"
- if("red")
- itemcolor = "#FF0000"
- if("green")
- itemcolor = "#00FF00"
- if("pink")
- itemcolor = "#FF69B4"
- if("gold")
- itemcolor = "#FFD700"
- if("oil")
- itemcolor = "#505050"
- if("black")
- itemcolor = "#000000"
- if("light pink")
- itemcolor = "#FFB6C1"
- if("adamantine")
- itemcolor = "#008B8B"
- add_atom_colour(itemcolor, FIXED_COLOUR_PRIORITY)
-
-/obj/item/slimecrossbeaker //To be used as a result for extract reactions that make chemicals.
- name = "result extract"
- desc = "You shouldn't see this."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "base"
- var/del_on_empty = TRUE
- var/list/list_reagents
-
-/obj/item/slimecrossbeaker/Initialize()
- . = ..()
- create_reagents(50, INJECTABLE | DRAWABLE)
- if(list_reagents)
- for(var/reagent in list_reagents)
- reagents.add_reagent(reagent, list_reagents[reagent])
- if(del_on_empty)
- START_PROCESSING(SSobj,src)
-
-/obj/item/slimecrossbeaker/Destroy()
- STOP_PROCESSING(SSobj,src)
- return ..()
-
-/obj/item/slimecrossbeaker/process()
- if(!reagents.total_volume)
- visible_message(" [src] has been drained completely, and melts away.")
- qdel(src)
-
-/obj/item/slimecrossbeaker/bloodpack //Pack of 50u blood. Deletes on empty.
- name = "blood extract"
- desc = "A sphere of liquid blood, somehow managing to stay together."
- color = "#FF0000"
- list_reagents = list(/datum/reagent/blood = 50)
-
-/obj/item/slimecrossbeaker/pax //5u synthpax.
- name = "peace-inducing extract"
- desc = "A small blob of synthetic pax."
- color = "#FFCCCC"
- list_reagents = list(/datum/reagent/pax/peaceborg = 5)
-
-/obj/item/slimecrossbeaker/omnizine //15u omnizine.
- name = "healing extract"
- desc = "A gelatinous extract of pure omnizine."
- color = "#FF00FF"
- list_reagents = list(/datum/reagent/medicine/omnizine = 15)
-
-/obj/item/slimecrossbeaker/autoinjector //As with the above, but automatically injects whomever it is used on with contents.
- var/ignore_flags = FALSE
- var/self_use_only = FALSE
-
-/obj/item/slimecrossbeaker/autoinjector/Initialize()
- . = ..()
- reagents.flags = DRAWABLE // Cannot be refilled, since it's basically an autoinjector!
-
-/obj/item/slimecrossbeaker/autoinjector/attack(mob/living/M, mob/user)
- if(!reagents.total_volume)
- to_chat(user, " [src] is empty!")
- return
- if(!iscarbon(M))
- return
- if(self_use_only && M != user)
- to_chat(user, " This can only be used on yourself.")
- return
- if(reagents.total_volume && (ignore_flags || M.can_inject(user, 1)))
- reagents.trans_to(M, reagents.total_volume, transfered_by = user)
- if(user != M)
- to_chat(M, " [user] presses [src] against you!")
- to_chat(user, " You press [src] against [M], injecting [M.p_them()].")
- else
- to_chat(user, " You press [src] against yourself, and it flattens against you!")
- else
- to_chat(user, " There's no place to stick [src]!")
-
-/obj/item/slimecrossbeaker/autoinjector/regenpack
- ignore_flags = TRUE //It is, after all, intended to heal.
- name = "mending solution"
- desc = "A strange glob of sweet-smelling semifluid, which seems to stick to skin rather easily."
- color = "#FF00FF"
- list_reagents = list(/datum/reagent/medicine/regen_jelly = 20)
-
-/obj/item/slimecrossbeaker/autoinjector/slimejelly //Primarily for slimepeople, but you do you.
- self_use_only = TRUE
- ignore_flags = TRUE
- name = "slime jelly bubble"
- desc = "A sphere of slime jelly. It seems to stick to your skin, but avoids other surfaces."
- color = "#00FF00"
- list_reagents = list(/datum/reagent/toxin/slimejelly = 50)
-
-/obj/item/slimecrossbeaker/autoinjector/peaceandlove
- name = "peaceful distillation"
- desc = "A light pink gooey sphere. Simply touching it makes you a little dizzy."
- color = "#DDAAAA"
- list_reagents = list(/datum/reagent/pax/peaceborg = 10, /datum/reagent/drug/space_drugs = 15) //Peace, dudes
-
-/obj/item/slimecrossbeaker/autoinjector/peaceandlove/Initialize()
- . = ..()
- reagents.flags = NONE // It won't be *that* easy to get your hands on pax.
-
-/obj/item/slimecrossbeaker/autoinjector/slimestimulant
- name = "invigorating gel"
- desc = "A bubbling purple mixture, designed to heal and boost movement."
- color = "#FF00FF"
- list_reagents = list(/datum/reagent/medicine/regen_jelly = 30, /datum/reagent/drug/methamphetamine = 9)
diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm
deleted file mode 100644
index 3d466983f430..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-Slimecrossing Armor
- Armor added by the slimecrossing system.
- Collected here for clarity.
-*/
-
-//Rebreather mask - Chilling Blue
-/obj/item/clothing/mask/nobreath
- name = "rebreather mask"
- desc = "A transparent mask, resembling a conventional breath mask, but made of bluish slime. Seems to lack any air supply tube, though."
- icon_state = "slime"
- item_state = "slime"
- body_parts_covered = NONE
- w_class = WEIGHT_CLASS_SMALL
- gas_transfer_coefficient = 0
- permeability_coefficient = 0.5
- flags_cover = MASKCOVERSMOUTH
- resistance_flags = NONE
-
-/obj/item/clothing/mask/nobreath/equipped(mob/living/carbon/human/user, slot)
- . = ..()
- if(slot == ITEM_SLOT_MASK)
- ADD_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]")
- user.failed_last_breath = FALSE
- user.clear_alert("not_enough_oxy")
- user.apply_status_effect(/datum/status_effect/rebreathing)
-
-/obj/item/clothing/mask/nobreath/dropped(mob/living/carbon/human/user)
- ..()
- REMOVE_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]")
- user.remove_status_effect(/datum/status_effect/rebreathing)
-
-/obj/item/clothing/head/peaceflower
- name = "heroine bud"
- desc = "An extremely addictive flower, full of peace magic."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "peaceflower"
- item_state = "peaceflower"
- slot_flags = ITEM_SLOT_HEAD
- body_parts_covered = NONE
- force = 0
- throwforce = 0
- w_class = WEIGHT_CLASS_TINY
- throw_speed = 1
- throw_range = 3
-
-/obj/item/clothing/head/peaceflower/equipped(mob/living/carbon/human/user, slot)
- . = ..()
- if(slot == ITEM_SLOT_HEAD)
- ADD_TRAIT(user, TRAIT_PACIFISM, "peaceflower_[REF(src)]")
-
-/obj/item/clothing/head/peaceflower/dropped(mob/living/carbon/human/user)
- ..()
- REMOVE_TRAIT(user, TRAIT_PACIFISM, "peaceflower_[REF(src)]")
-
-/obj/item/clothing/head/peaceflower/attack_hand(mob/user)
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- if(src == C.head)
- to_chat(user, " You feel at peace. Why would you want anything else?")
- return
- return ..()
-
-/obj/item/clothing/suit/armor/heavy/adamantine
- name = "adamantine armor"
- desc = "A full suit of adamantine plate armor. Impressively resistant to damage, but weighs about as much as you do."
- icon_state = "adamsuit"
- item_state = "adamsuit"
- flags_inv = NONE
- obj_flags = IMMUTABLE_SLOW
- slowdown = 4
- 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))
- return TRUE
- else
- return FALSE
diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm
deleted file mode 100644
index 2af2ecf64689..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_misc.dm
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
-Slimecrossing Items
- General items added by the slimecrossing system.
- Collected here for clarity.
-*/
-
-//Rewind camera - I'm already Burning Sepia
-/obj/item/camera/rewind
- name = "sepia-tinted camera"
- desc = "They say a picture is like a moment stopped in time."
- pictures_left = 1
- pictures_max = 1
- can_customise = FALSE
- default_picture_name = "A nostalgic picture"
- var/used = FALSE
-
-/datum/saved_bodypart
- var/obj/item/bodypart/old_part
- var/bodypart_type
- var/brute_dam
- var/burn_dam
- var/stamina_dam
-
-/datum/saved_bodypart/New(obj/item/bodypart/part)
- old_part = part
- bodypart_type = part.type
- brute_dam = part.brute_dam
- burn_dam = part.burn_dam
- stamina_dam = part.stamina_dam
-
-/mob/living/carbon/proc/apply_saved_bodyparts(list/datum/saved_bodypart/parts)
- var/list/dont_chop = list()
- for(var/zone in parts)
- var/datum/saved_bodypart/saved_part = parts[zone]
- var/obj/item/bodypart/already = get_bodypart(zone)
- if(QDELETED(saved_part.old_part))
- saved_part.old_part = new saved_part.bodypart_type
- if(!already || already != saved_part.old_part)
- saved_part.old_part.replace_limb(src, TRUE)
- saved_part.old_part.heal_damage(INFINITY, INFINITY, INFINITY, null, FALSE)
- saved_part.old_part.receive_damage(saved_part.brute_dam, saved_part.burn_dam, saved_part.stamina_dam)
- dont_chop[zone] = TRUE
- for(var/obj/item/bodypart/BP as anything in bodyparts)
- if(dont_chop[BP.body_zone])
- continue
- BP.drop_limb(TRUE)
-
-/mob/living/carbon/proc/save_bodyparts()
- var/list/datum/saved_bodypart/ret = list()
- for(var/_part in bodyparts)
- var/obj/item/bodypart/part = _part
- var/datum/saved_bodypart/saved_part = new(part)
-
- ret[part.body_zone] = saved_part
- return ret
-
-/obj/item/camera/rewind/afterattack(atom/target, mob/user, flag)
- if(!on || !pictures_left || !isturf(target.loc))
- return
- if(!used)//selfie time
- if(user == target)
- to_chat(user, " You take a selfie!")
- else
- to_chat(user, " You take a photo with [target]!")
- to_chat(target, " [user] takes a photo with you!")
- to_chat(target, " You'll remember this moment forever!")
-
- used = TRUE
- target.AddComponent(/datum/component/dejavu, 2)
- .=..()
-
-/obj/item/camera/rewind/loot
- pictures_left = 5
- pictures_max = 5
-
-//Timefreeze camera - Old Burning Sepia result. Kept in case admins want to spawn it
-/obj/item/camera/timefreeze
- name = "sepia-tinted camera"
- desc = "They say a picture is like a moment stopped in time."
- pictures_left = 1
- pictures_max = 1
- var/used = FALSE
-
-/obj/item/camera/timefreeze/afterattack(atom/target, mob/user, flag)
- if(!on || !pictures_left || !isturf(target.loc))
- return
- if(!used) //refilling the film does not refill the timestop
- new /obj/effect/timestop(get_turf(target), 2, 50, list(user))
- used = TRUE
- desc = "This camera has seen better days."
- . = ..()
-
-
-//Hypercharged slime cell - Charged Yellow
-/obj/item/stock_parts/cell/high/slime/hypercharged
- name = "hypercharged slime core"
- desc = "A charged yellow slime extract, infused with even more plasma. It almost hurts to touch."
- rating = 7 //Roughly 1.5 times the original.
- maxcharge = 20000 //2 times the normal one.
- chargerate = 2250 //1.5 times the normal rate.
-
-//Barrier cube - Chilling Grey
-/obj/item/barriercube
- name = "barrier cube"
- desc = "A compressed cube of slime. When squeezed, it grows to massive size!"
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "barriercube"
- w_class = WEIGHT_CLASS_TINY
-
-/obj/item/barriercube/attack_self(mob/user)
- if(locate(/obj/structure/barricade/slime) in get_turf(loc))
- to_chat(user, " You can't fit more than one barrier in the same space!")
- return
- to_chat(user, " You squeeze [src].")
- var/obj/B = new /obj/structure/barricade/slime(get_turf(loc))
- B.visible_message(" [src] suddenly grows into a large, gelatinous barrier!")
- qdel(src)
-
-//Slime barricade - Chilling Grey
-/obj/structure/barricade/slime
- name = "gelatinous barrier"
- desc = "A huge chunk of grey slime. Bullets might get stuck in it."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "slimebarrier"
- proj_pass_rate = 40
- max_integrity = 60
-
-//Melting Gel Wall - Chilling Metal
-/obj/effect/forcefield/slimewall
- name = "solidified gel"
- desc = "A mass of solidified slime gel - completely impenetrable, but it's melting away!"
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "slimebarrier_thick"
- CanAtmosPass = ATMOS_PASS_NO
- opacity = TRUE
- timeleft = 100
-
-//Rainbow barrier - Chilling Rainbow
-/obj/effect/forcefield/slimewall/rainbow
- name = "rainbow barrier"
- desc = "Despite others' urgings, you probably shouldn't taste this."
- icon_state = "rainbowbarrier"
-
-//Ration pack - Chilling Silver
-/obj/item/reagent_containers/food/snacks/rationpack
- name = "ration pack"
- desc = "A square bar that sadly looks like chocolate, packaged in a nondescript grey wrapper. Has saved soldiers' lives before - usually by stopping bullets."
- icon_state = "rationpack"
- bitesize = 3
- junkiness = 15
- filling_color = "#964B00"
- tastes = list("cardboard" = 3, "sadness" = 3)
- foodtype = null //Don't ask what went into them. You're better off not knowing.
- list_reagents = list(/datum/reagent/consumable/nutriment/stabilized = 10, /datum/reagent/consumable/nutriment = 2) //Won't make you fat. Will make you question your sanity.
-
-/obj/item/reagent_containers/food/snacks/rationpack/checkLiked(fraction, mob/M) //Nobody likes rationpacks. Nobody.
- if(last_check_time + 50 < world.time)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- if(H.mind && !HAS_TRAIT(H, TRAIT_AGEUSIA))
- to_chat(H," That didn't taste very good...") //No disgust, though. It's just not good tasting.
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "gross_food", /datum/mood_event/gross_food)
- last_check_time = world.time
- return
- ..()
-
-//Ice stasis block - Chilling Dark Blue
-/obj/structure/ice_stasis
- name = "ice block"
- desc = "A massive block of ice. You can see something vaguely humanoid inside."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "frozen"
- density = TRUE
- max_integrity = 100
- armor = list("melee" = 30, "bullet" = 50, "laser" = -50, "energy" = -50, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = -80, "acid" = 30)
-
-/obj/structure/ice_stasis/Initialize()
- . = ..()
- playsound(src, 'sound/magic/ethereal_exit.ogg', 50, TRUE)
-
-/obj/structure/ice_stasis/Destroy()
- for(var/atom/movable/M in contents)
- M.forceMove(loc)
- playsound(src, 'sound/effects/glassbr3.ogg', 50, TRUE)
- return ..()
-
-//Gold capture device - Chilling Gold
-/obj/item/capturedevice
- name = "gold capture device"
- desc = "Bluespace technology packed into a roughly egg-shaped device, used to store nonhuman creatures. Can't catch them all, though - it only fits one."
- w_class = WEIGHT_CLASS_SMALL
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "capturedevice"
-
-/obj/item/capturedevice/attack(mob/living/M, mob/user)
- if(length(contents))
- to_chat(user, " The device already has something inside.")
- return
- if(!isanimal(M))
- to_chat(user, " The capture device only works on simple creatures.")
- return
- if(M.mind)
- to_chat(user, " You offer the device to [M].")
- if(alert(M, "Would you like to enter [user]'s capture device?", "Gold Capture Device", "Yes", "No") == "Yes")
- if(user.canUseTopic(src, BE_CLOSE) && user.canUseTopic(M, BE_CLOSE))
- to_chat(user, " You store [M] in the capture device.")
- to_chat(M, " The world warps around you, and you're suddenly in an endless void, with a window to the outside floating in front of you.")
- store(M, user)
- else
- to_chat(user, " You were too far away from [M].")
- to_chat(M, " You were too far away from [user].")
- else
- to_chat(user, " [M] refused to enter the device.")
- return
- else
- if(istype(M, /mob/living/simple_animal/hostile) && !("neutral" in M.faction))
- to_chat(user, " This creature is too aggressive to capture.")
- return
- to_chat(user, " You store [M] in the capture device.")
- store(M)
-
-/obj/item/capturedevice/attack_self(mob/user)
- if(contents.len)
- to_chat(user, " You open the capture device!")
- release()
- else
- to_chat(user, " The device is empty...")
-
-/obj/item/capturedevice/proc/store(mob/living/M)
- M.forceMove(src)
-
-/obj/item/capturedevice/proc/release()
- for(var/atom/movable/M in contents)
- M.forceMove(get_turf(loc))
diff --git a/code/modules/research/xenobiology/crossbreeding/_mobs.dm b/code/modules/research/xenobiology/crossbreeding/_mobs.dm
deleted file mode 100644
index 0d155f2f90f7..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_mobs.dm
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Slimecrossing Mobs
- Mobs and effects added by the slimecrossing system.
- Collected here for clarity.
-*/
-
-//Slime transformation power - Burning Black
-/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform
- name = "Slime Transformation"
- desc = "Transform from a human to a slime, or back again!"
- action_icon_state = "transformslime"
- cooldown_min = 0
- charge_max = 0
- invocation_type = "none"
- shapeshift_type = /mob/living/simple_animal/slime/transformedslime
- convert_damage = TRUE
- convert_damage_type = CLONE
- var/remove_on_restore = FALSE
-
-/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform/Restore(mob/living/M)
- if(remove_on_restore)
- if(M.mind)
- M.mind.RemoveSpell(src)
- ..()
-
-//Transformed slime - Burning Black
-/mob/living/simple_animal/slime/transformedslime
-
-/mob/living/simple_animal/slime/transformedslime/Reproduce() //Just in case.
- to_chat(src, " I can't reproduce...")
- return
-
-//Slime corgi - Chilling Pink
-/mob/living/simple_animal/pet/dog/corgi/puppy/slime
- name = "\improper slime corgi puppy"
- real_name = "slime corgi puppy"
- desc = "An unbearably cute pink slime corgi puppy."
- icon_state = "slime_puppy"
- icon_living = "slime_puppy"
- icon_dead = "slime_puppy_dead"
- nofur = TRUE
- gold_core_spawnable = NO_SPAWN
- speak_emote = list("blorbles", "bubbles", "borks")
- emote_hear = list("bubbles!", "splorts.", "splops!")
- emote_see = list("gets goop everywhere.", "flops.", "jiggles!")
diff --git a/code/modules/research/xenobiology/crossbreeding/_potions.dm b/code/modules/research/xenobiology/crossbreeding/_potions.dm
deleted file mode 100644
index fc9d9ef06c6a..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_potions.dm
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
-Slimecrossing Potions
- Potions added by the slimecrossing system.
- Collected here for clarity.
-*/
-
-//Extract cloner - Charged Grey
-/obj/item/slimepotion/extract_cloner
- name = "extract cloning potion"
- desc = "An more powerful version of the extract enhancer potion, capable of cloning regular slime extracts."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potpurple"
-
-/obj/item/slimepotion/extract_cloner/afterattack(obj/item/target, mob/user , proximity)
- if(!proximity)
- return
- if(istype(target, /obj/item/reagent_containers))
- return ..(target, user, proximity)
- if(istype(target, /obj/item/slimecross))
- to_chat(user, " [target] is too complex for the potion to clone!")
- return
- if(!istype(target, /obj/item/slime_extract))
- return
- var/obj/item/slime_extract/S = target
- if(S.recurring)
- to_chat(user, " [target] is too complex for the potion to clone!")
- return
- var/path = S.type
- var/obj/item/slime_extract/C = new path(get_turf(target))
- C.Uses = S.Uses
- to_chat(user, " You pour the potion onto [target], and the fluid solidifies into a copy of it!")
- qdel(src)
- return
-
-//Peace potion - Charged Light Pink
-/obj/item/slimepotion/peacepotion
- name = "pacification potion"
- desc = "A light pink solution of chemicals, smelling like liquid peace. And mercury salts."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potlightpink"
-
-/obj/item/slimepotion/peacepotion/attack(mob/living/M, mob/user)
- if(!isliving(M) || M.stat == DEAD)
- to_chat(user, " [src] only works on the living.")
- return ..()
- if(istype(M, /mob/living/simple_animal/hostile/megafauna))
- to_chat(user, " [src] does not work on beings of pure evil!")
- return ..()
- if(M != user)
- M.visible_message(" [user] starts to feed [M] [src]!",
- " [user] starts to feed you [src]!")
- else
- M.visible_message(" [user] starts to drink [src]!",
- " You start to drink [src]!")
-
- if(!do_after(user, 100, target = M))
- return
- if(M != user)
- to_chat(user, " You feed [M] [src]!")
- else
- to_chat(user, " You drink [src]!")
- if(isanimal(M))
- ADD_TRAIT(M, TRAIT_PACIFISM, MAGIC_TRAIT)
- else if(iscarbon(M))
- var/mob/living/carbon/C = M
- C.gain_trauma(/datum/brain_trauma/severe/pacifism, TRAUMA_RESILIENCE_SURGERY)
- qdel(src)
-
-//Love potion - Charged Pink
-/obj/item/slimepotion/lovepotion
- name = "love potion"
- desc = "A pink chemical mix thought to inspire feelings of love."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potpink"
-
-/obj/item/slimepotion/lovepotion/attack(mob/living/M, mob/user)
- if(!isliving(M) || M.stat == DEAD)
- to_chat(user, " The love potion only works on living things, sicko!")
- return ..()
- if(istype(M, /mob/living/simple_animal/hostile/megafauna))
- to_chat(user, " The love potion does not work on beings of pure evil!")
- return ..()
- if(user == M)
- to_chat(user, " You can't drink the love potion. What are you, a narcissist?")
- return ..()
- if(M.has_status_effect(STATUS_EFFECT_INLOVE))
- to_chat(user, " [M] is already lovestruck!")
- return ..()
-
- M.visible_message(" [user] starts to feed [M] a love potion!",
- " [user] starts to feed you a love potion!")
-
- if(!do_after(user, 50, target = M))
- return
- to_chat(user, " You feed [M] the love potion!")
- to_chat(M, " You develop feelings for [user], and anyone [user.p_they()] like.")
- if(M.mind)
- M.mind.store_memory("You are in love with [user].")
- M.faction |= "[REF(user)]"
- M.apply_status_effect(STATUS_EFFECT_INLOVE, user)
- qdel(src)
-
-//Pressure potion - Charged Dark Blue
-/obj/item/slimepotion/spaceproof
- name = "slime pressurization potion"
- desc = "A potent chemical sealant that will render any article of clothing airtight. Has two uses."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potblue"
- var/uses = 2
-
-/obj/item/slimepotion/spaceproof/afterattack(obj/item/clothing/C, mob/user, proximity)
- . = ..()
- if(!uses)
- qdel(src)
- return
- if(!proximity)
- return
- if(!istype(C))
- to_chat(user, " The potion can only be used on clothing!")
- return
- if(C.min_cold_protection_temperature == SPACE_SUIT_MIN_TEMP_PROTECT && C.clothing_flags & STOPSPRESSUREDAMAGE)
- to_chat(user, " The [C] is already pressure-resistant!")
- return ..()
- to_chat(user, " You slather the blue gunk over the [C], making it airtight.")
- C.name = "pressure-resistant [C.name]"
- C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY)
- C.min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
- C.cold_protection = C.body_parts_covered
- C.clothing_flags |= STOPSPRESSUREDAMAGE
- uses--
- if(!uses)
- qdel(src)
-
-//Enhancer potion - Charged Cerulean
-/obj/item/slimepotion/enhancer/max
- name = "extract maximizer"
- desc = "An extremely potent chemical mix that will maximize a slime extract's uses."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potpurple"
-
-//Lavaproofing potion - Charged Red
-/obj/item/slimepotion/lavaproof
- name = "slime lavaproofing potion"
- desc = "A strange, reddish goo said to repel lava as if it were water, without reducing flammability. Has two uses."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potred"
- resistance_flags = LAVA_PROOF | FIRE_PROOF
- var/uses = 2
-
-/obj/item/slimepotion/lavaproof/afterattack(obj/item/C, mob/user, proximity)
- . = ..()
- if(!uses)
- qdel(src)
- return ..()
- if(!proximity)
- return ..()
- if(!istype(C))
- to_chat(user, " You can't coat this with lavaproofing fluid!")
- return ..()
- to_chat(user, " You slather the red gunk over the [C], making it lavaproof.")
- C.name = "lavaproof [C.name]"
- C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- C.add_atom_colour("#800000", FIXED_COLOUR_PRIORITY)
- C.resistance_flags |= LAVA_PROOF
- if (istype(C, /obj/item/clothing))
- var/obj/item/clothing/CL = C
- CL.clothing_flags |= LAVAPROTECT
- uses--
- if(!uses)
- qdel(src)
-
-//Revival potion - Charged Grey
-/obj/item/slimepotion/slime_reviver
- name = "slime revival potion"
- desc = "Infused with plasma and compressed gel, this brings dead slimes back to life."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potsilver"
-
-/obj/item/slimepotion/slime_reviver/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- to_chat(user, " The potion only works on slimes!")
- return ..()
- if(M.stat != DEAD)
- to_chat(user, " The slime is still alive!")
- return
- if(M.maxHealth <= 0)
- to_chat(user, " The slime is too unstable to return!")
- M.revive(full_heal = TRUE, admin_revive = FALSE)
- M.set_stat(CONSCIOUS)
- M.visible_message(" [M] is filled with renewed vigor and blinks awake!")
- M.maxHealth -= 10 //Revival isn't healthy.
- M.health -= 10
- M.regenerate_icons()
- qdel(src)
-
-//Stabilizer potion - Charged Blue
-/obj/item/slimepotion/slime/chargedstabilizer
- name = "slime omnistabilizer"
- desc = "An extremely potent chemical mix that will stop a slime from mutating completely."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potcyan"
-
-/obj/item/slimepotion/slime/chargedstabilizer/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- to_chat(user, " The stabilizer only works on slimes!")
- return ..()
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(M.mutation_chance == 0)
- to_chat(user, " The slime already has no chance of mutating!")
- return
-
- to_chat(user, " You feed the slime the omnistabilizer. It will not mutate this cycle!")
- M.mutation_chance = 0
- qdel(src)
diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
deleted file mode 100644
index 651eb2fece14..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
+++ /dev/null
@@ -1,971 +0,0 @@
-/atom/movable/screen/alert/status_effect/rainbow_protection
- name = "Rainbow Protection"
- desc = "You are defended from harm, but so are those you might seek to injure!"
- icon_state = "slime_rainbowshield"
-
-/datum/status_effect/rainbow_protection
- id = "rainbow_protection"
- duration = 100
- alert_type = /atom/movable/screen/alert/status_effect/rainbow_protection
- var/originalcolor
-
-/datum/status_effect/rainbow_protection/on_apply()
- owner.status_flags |= GODMODE
- ADD_TRAIT(owner, TRAIT_PACIFISM, /datum/status_effect/rainbow_protection)
- owner.visible_message(" [owner] shines with a brilliant rainbow light.",
- " You feel protected by an unknown force!")
- originalcolor = owner.color
- return ..()
-
-/datum/status_effect/rainbow_protection/tick()
- owner.color = rgb(rand(0,255),rand(0,255),rand(0,255))
- return ..()
-
-/datum/status_effect/rainbow_protection/on_remove()
- owner.status_flags &= ~GODMODE
- owner.color = originalcolor
- REMOVE_TRAIT(owner, TRAIT_PACIFISM, /datum/status_effect/rainbow_protection)
- owner.visible_message(" [owner] stops glowing, the rainbow light fading away.",
- " You no longer feel protected...")
-
-/atom/movable/screen/alert/status_effect/slimeskin
- name = "Adamantine Slimeskin"
- desc = "You are covered in a thick, non-neutonian gel."
- icon_state = "slime_stoneskin"
-
-/datum/status_effect/slimeskin
- id = "slimeskin"
- duration = 300
- alert_type = /atom/movable/screen/alert/status_effect/slimeskin
- var/originalcolor
-
-/datum/status_effect/slimeskin/on_apply()
- originalcolor = owner.color
- owner.color = "#3070CC"
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.damage_resistance += 10
- owner.visible_message(" [owner] is suddenly covered in a strange, blue-ish gel!",
- " You are covered in a thick, rubbery gel.")
- return ..()
-
-/datum/status_effect/slimeskin/on_remove()
- owner.color = originalcolor
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.damage_resistance -= 10
- owner.visible_message(" [owner]'s gel coating liquefies and dissolves away.",
- " Your gel second-skin dissolves!")
-
-/datum/status_effect/slimerecall
- id = "slime_recall"
- duration = -1 //Will be removed by the extract.
- alert_type = null
- var/interrupted = FALSE
- var/mob/target
- var/icon/bluespace
-
-/datum/status_effect/slimerecall/on_apply()
- RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(resistField))
- to_chat(owner, " You feel a sudden tug from an unknown force, and feel a pull to bluespace!")
- to_chat(owner, " Resist if you wish avoid the force!")
- bluespace = icon('icons/effects/effects.dmi',"chronofield")
- owner.add_overlay(bluespace)
- return ..()
-
-/datum/status_effect/slimerecall/proc/resistField()
- interrupted = TRUE
- owner.remove_status_effect(src)
-/datum/status_effect/slimerecall/on_remove()
- UnregisterSignal(owner, COMSIG_LIVING_RESIST)
- owner.cut_overlay(bluespace)
- if(interrupted || !ismob(target))
- to_chat(owner, " The bluespace tug fades away, and you feel that the force has passed you by.")
- return
- owner.visible_message(" [owner] disappears in a flurry of sparks!",
- " The unknown force snatches briefly you from reality, and deposits you next to [target]!")
- do_sparks(3, TRUE, owner)
- owner.forceMove(target.loc)
-
-/atom/movable/screen/alert/status_effect/freon/stasis
- desc = "You're frozen inside of a protective ice cube! While inside, you can't do anything, but are immune to harm! Resist to get out."
-
-/datum/status_effect/frozenstasis
- id = "slime_frozen"
- status_type = STATUS_EFFECT_UNIQUE
- duration = -1 //Will remove self when block breaks.
- alert_type = /atom/movable/screen/alert/status_effect/freon/stasis
- var/obj/structure/ice_stasis/cube
-
-/datum/status_effect/frozenstasis/on_apply()
- RegisterSignal(owner, COMSIG_LIVING_RESIST, PROC_REF(breakCube))
- cube = new /obj/structure/ice_stasis(get_turf(owner))
- owner.forceMove(cube)
- owner.status_flags |= GODMODE
- return ..()
-
-/datum/status_effect/frozenstasis/tick()
- if(!cube || owner.loc != cube)
- owner.remove_status_effect(src)
-
-/datum/status_effect/frozenstasis/proc/breakCube()
- owner.remove_status_effect(src)
-
-/datum/status_effect/frozenstasis/on_remove()
- if(cube)
- qdel(cube)
- owner.status_flags &= ~GODMODE
- UnregisterSignal(owner, COMSIG_LIVING_RESIST)
-
-/datum/status_effect/slime_clone
- id = "slime_cloned"
- status_type = STATUS_EFFECT_UNIQUE
- duration = -1
- alert_type = null
- var/mob/living/clone
- var/datum/mind/originalmind //For when the clone gibs.
-
-/datum/status_effect/slime_clone/on_apply()
- var/typepath = owner.type
- clone = new typepath(owner.loc)
- var/mob/living/carbon/O = owner
- var/mob/living/carbon/C = clone
- if(istype(C) && istype(O))
- C.real_name = O.real_name
- O.dna.transfer_identity(C)
- C.updateappearance(mutcolor_update=1)
- if(owner.mind)
- originalmind = owner.mind
- owner.mind.transfer_to(clone)
- clone.apply_status_effect(/datum/status_effect/slime_clone_decay)
- return ..()
-
-/datum/status_effect/slime_clone/tick()
- if(!istype(clone) || clone.stat != CONSCIOUS)
- owner.remove_status_effect(src)
-
-/datum/status_effect/slime_clone/on_remove()
- if(clone && clone.mind && owner)
- clone.mind.transfer_to(owner)
- else
- if(owner && originalmind)
- originalmind.transfer_to(owner)
- if(originalmind.key)
- owner.ckey = originalmind.key
- if(clone)
- clone.unequip_everything()
- qdel(clone)
-
-/atom/movable/screen/alert/status_effect/clone_decay
- name = "Clone Decay"
- desc = "You are simply a construct, and cannot maintain this form forever. You will be returned to your original body if you should fall."
- icon_state = "slime_clonedecay"
-
-/datum/status_effect/slime_clone_decay
- id = "slime_clonedecay"
- status_type = STATUS_EFFECT_UNIQUE
- duration = -1
- alert_type = /atom/movable/screen/alert/status_effect/clone_decay
-
-/datum/status_effect/slime_clone_decay/tick()
- owner.adjustToxLoss(1, 0)
- owner.adjustOxyLoss(1, 0)
- owner.adjustBruteLoss(1, 0)
- owner.adjustFireLoss(1, 0)
- owner.color = "#007BA7"
-
-/atom/movable/screen/alert/status_effect/bloodchill
- name = "Bloodchilled"
- desc = "You feel a shiver down your spine after getting hit with a glob of cold blood. You'll move slower and get frostbite for a while!"
- icon_state = "bloodchill"
-
-/datum/status_effect/bloodchill
- id = "bloodchill"
- duration = 100
- alert_type = /atom/movable/screen/alert/status_effect/bloodchill
-
-/datum/status_effect/bloodchill/on_apply()
- owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill)
- return ..()
-
-/datum/status_effect/bloodchill/tick()
- if(prob(50))
- owner.adjustFireLoss(2)
-
-/datum/status_effect/bloodchill/on_remove()
- owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bloodchill)
-
-/datum/status_effect/bonechill
- id = "bonechill"
- duration = 80
- alert_type = /atom/movable/screen/alert/status_effect/bonechill
-
-/datum/status_effect/bonechill/on_apply()
- owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill)
- return ..()
-
-/datum/status_effect/bonechill/tick()
- if(prob(50))
- owner.adjustFireLoss(1)
- owner.Jitter(3)
- owner.adjust_bodytemperature(-10)
-
-/datum/status_effect/bonechill/on_remove()
- owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill)
-/atom/movable/screen/alert/status_effect/bonechill
- name = "Bonechilled"
- desc = "You feel a shiver down your spine after hearing the haunting noise of bone rattling. You'll move slower and get frostbite for a while!"
- icon_state = "bloodchill"
-
-/datum/status_effect/rebreathing
- id = "rebreathing"
- duration = -1
- alert_type = null
-
-/datum/status_effect/rebreathing/tick()
- owner.adjustOxyLoss(-6, 0) //Just a bit more than normal breathing.
-
-///////////////////////////////////////////////////////
-//////////////////CONSUMING EXTRACTS///////////////////
-///////////////////////////////////////////////////////
-
-/datum/status_effect/firecookie
- id = "firecookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/firecookie/on_apply()
- ADD_TRAIT(owner, TRAIT_RESISTCOLD,"firecookie")
- owner.adjust_bodytemperature(110)
- return ..()
-
-/datum/status_effect/firecookie/on_remove()
- REMOVE_TRAIT(owner, TRAIT_RESISTCOLD,"firecookie")
-
-/datum/status_effect/watercookie
- id = "watercookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/watercookie/on_apply()
- ADD_TRAIT(owner, TRAIT_NOSLIPWATER,"watercookie")
- return ..()
-
-/datum/status_effect/watercookie/tick()
- for(var/turf/open/T in range(get_turf(owner),1))
- T.MakeSlippery(TURF_WET_WATER, min_wet_time = 10, wet_time_to_add = 5)
-
-/datum/status_effect/watercookie/on_remove()
- REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER,"watercookie")
-
-/datum/status_effect/metalcookie
- id = "metalcookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/metalcookie/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.brute_mod *= 0.9
- return ..()
-
-/datum/status_effect/metalcookie/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.brute_mod /= 0.9
-
-/datum/status_effect/sparkcookie
- id = "sparkcookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 300
- var/original_coeff
-
-/datum/status_effect/sparkcookie/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- original_coeff = H.physiology.siemens_coeff
- H.physiology.siemens_coeff = 0
- return ..()
-
-/datum/status_effect/sparkcookie/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.siemens_coeff = original_coeff
-
-/datum/status_effect/toxincookie
- id = "toxincookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 600
-
-/datum/status_effect/toxincookie/on_apply()
- ADD_TRAIT(owner, TRAIT_TOXINLOVER,"toxincookie")
- return ..()
-
-/datum/status_effect/toxincookie/on_remove()
- REMOVE_TRAIT(owner, TRAIT_TOXINLOVER,"toxincookie")
-
-/datum/status_effect/timecookie
- id = "timecookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 600
-
-/datum/status_effect/timecookie/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H
- H.physiology.do_after_speed *= 0.95
- return ..()
-
-/datum/status_effect/timecookie/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H
- H.physiology.do_after_speed /= 0.95
-
-/datum/status_effect/lovecookie
- id = "lovecookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 300
-
-/datum/status_effect/lovecookie/tick()
- if(owner.stat != CONSCIOUS)
- return
- if(iscarbon(owner))
- var/mob/living/carbon/C = owner
- if(C.handcuffed)
- return
- var/list/huggables = list()
- for(var/mob/living/carbon/L in range(get_turf(owner),1))
- if(L != owner)
- huggables += L
- if(length(huggables))
- var/mob/living/carbon/hugged = pick(huggables)
- owner.visible_message(" [owner] hugs [hugged]!", " You hug [hugged]!")
-
-/datum/status_effect/tarcookie
- id = "tarcookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/tarcookie/tick()
- for(var/mob/living/carbon/human/L in range(get_turf(owner),1))
- if(L != owner)
- L.apply_status_effect(/datum/status_effect/tarfoot)
-
-/datum/status_effect/tarfoot
- id = "tarfoot"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 30
-
-/datum/status_effect/tarfoot/on_apply()
- owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot)
- return ..()
-
-/datum/status_effect/tarfoot/on_remove()
- owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/tarfoot)
-
-/datum/status_effect/spookcookie
- id = "spookcookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 300
-
-/datum/status_effect/spookcookie/on_apply()
- var/image/I = image(icon = 'icons/mob/simple_human.dmi', icon_state = "skeleton", layer = ABOVE_MOB_LAYER, loc = owner)
- I.override = 1
- owner.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "spookyscary", I)
- return ..()
-
-/datum/status_effect/spookcookie/on_remove()
- owner.remove_alt_appearance("spookyscary")
-
-/datum/status_effect/peacecookie
- id = "peacecookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/peacecookie/tick()
- for(var/mob/living/L in range(get_turf(owner),1))
- L.apply_status_effect(/datum/status_effect/plur)
-
-/datum/status_effect/plur
- id = "plur"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 30
-
-/datum/status_effect/plur/on_apply()
- ADD_TRAIT(owner, TRAIT_PACIFISM, "peacecookie")
- return ..()
-
-/datum/status_effect/plur/on_remove()
- REMOVE_TRAIT(owner, TRAIT_PACIFISM, "peacecookie")
-
-/datum/status_effect/adamantinecookie
- id = "adamantinecookie"
- status_type = STATUS_EFFECT_REPLACE
- alert_type = null
- duration = 100
-
-/datum/status_effect/adamantinecookie/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.burn_mod *= 0.9
- return ..()
-
-/datum/status_effect/adamantinecookie/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.burn_mod /= 0.9
-
-///////////////////////////////////////////////////////
-//////////////////STABILIZED EXTRACTS//////////////////
-///////////////////////////////////////////////////////
-
-/datum/status_effect/stabilized //The base stabilized extract effect, has no effect of its' own.
- id = "stabilizedbase"
- duration = -1
- alert_type = null
- var/obj/item/slimecross/stabilized/linked_extract
- var/colour = "null"
-
-/datum/status_effect/stabilized/tick()
- if(!linked_extract || !linked_extract.loc) //Sanity checking
- qdel(src)
- return
- if(linked_extract && linked_extract.loc != owner && linked_extract.loc.loc != owner)
- linked_extract.linked_effect = null
- if(!QDELETED(linked_extract))
- linked_extract.owner = null
- START_PROCESSING(SSobj,linked_extract)
- qdel(src)
- return ..()
-
-/datum/status_effect/stabilized/null //This shouldn't ever happen, but just in case.
- id = "stabilizednull"
-
-
-//Stabilized effects start below.
-/datum/status_effect/stabilized/grey
- id = "stabilizedgrey"
- colour = "grey"
-
-/datum/status_effect/stabilized/grey/tick()
- for(var/mob/living/simple_animal/slime/S in range(1, get_turf(owner)))
- if(!(owner in S.Friends))
- to_chat(owner, " [linked_extract] pulses gently as it communicates with [S].")
- S.set_friendship(owner, 1)
- return ..()
-
-/datum/status_effect/stabilized/orange
- id = "stabilizedorange"
- colour = "orange"
-
-/datum/status_effect/stabilized/orange/tick()
- var/body_temperature_difference = owner.get_body_temp_normal(apply_change=FALSE) - owner.bodytemperature
- owner.adjust_bodytemperature(min(5,body_temperature_difference))
- return ..()
-
-/datum/status_effect/stabilized/purple
- id = "stabilizedpurple"
- colour = "purple"
-
-/datum/status_effect/stabilized/purple/tick()
- var/is_healing = FALSE
- if(owner.getBruteLoss() > 0)
- owner.adjustBruteLoss(-0.2)
- is_healing = TRUE
- if(owner.getFireLoss() > 0)
- owner.adjustFireLoss(-0.2)
- is_healing = TRUE
- if(owner.getToxLoss() > 0)
- owner.adjustToxLoss(-0.2, forced = TRUE) //Slimepeople should also get healed.
- is_healing = TRUE
- if(is_healing)
- examine_text = " SUBJECTPRONOUN is regenerating slowly, purplish goo filling in small injuries!"
- new /obj/effect/temp_visual/heal(get_turf(owner), "#FF0000")
- else
- examine_text = null
- ..()
-
-/datum/status_effect/stabilized/blue
- id = "stabilizedblue"
- colour = "blue"
-
-/datum/status_effect/stabilized/blue/on_apply()
- ADD_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus")
- return ..()
-
-/datum/status_effect/stabilized/blue/on_remove()
- REMOVE_TRAIT(owner, TRAIT_NOSLIPWATER, "slimestatus")
-
-/datum/status_effect/stabilized/metal
- id = "stabilizedmetal"
- colour = "metal"
- var/cooldown = 30
- var/max_cooldown = 30
-
-/datum/status_effect/stabilized/metal/tick()
- if(cooldown > 0)
- cooldown--
- else
- cooldown = max_cooldown
- var/list/sheets = list()
- for(var/obj/item/stack/sheet/S in owner.GetAllContents())
- if(S.amount < S.max_amount)
- sheets += S
-
- if(sheets.len > 0)
- var/obj/item/stack/sheet/S = pick(sheets)
- S.amount++
- to_chat(owner, " [linked_extract] adds a layer of slime to [S], which metamorphosizes into another sheet of material!")
- return ..()
-
-
-/datum/status_effect/stabilized/yellow
- id = "stabilizedyellow"
- colour = "yellow"
- var/cooldown = 10
- var/max_cooldown = 10
- examine_text = " Nearby electronics seem just a little more charged wherever SUBJECTPRONOUN goes."
-
-/datum/status_effect/stabilized/yellow/tick()
- if(cooldown > 0)
- cooldown--
- return ..()
- cooldown = max_cooldown
- var/list/batteries = list()
- for(var/obj/item/stock_parts/cell/C in owner.GetAllContents())
- if(C.charge < C.maxcharge)
- batteries += C
- if(batteries.len)
- var/obj/item/stock_parts/cell/ToCharge = pick(batteries)
- ToCharge.charge += min(ToCharge.maxcharge - ToCharge.charge, ToCharge.maxcharge/10) //10% of the cell, or to maximum.
- to_chat(owner, " [linked_extract] discharges some energy into a device you have.")
- return ..()
-
-/obj/item/hothands
- name = "burning fingertips"
- desc = "You shouldn't see this."
-
-/obj/item/hothands/get_temperature()
- return 290 //Below what's required to ignite plasma.
-
-/datum/status_effect/stabilized/darkpurple
- id = "stabilizeddarkpurple"
- colour = "dark purple"
- var/obj/item/hothands/fire
- examine_text = " Their fingertips burn brightly!"
-
-/datum/status_effect/stabilized/darkpurple/on_apply()
- ADD_TRAIT(owner, TRAIT_RESISTHEATHANDS, "slimestatus")
- fire = new(owner)
- return ..()
-
-/datum/status_effect/stabilized/darkpurple/tick()
- var/obj/item/I = owner.get_active_held_item()
- var/obj/item/reagent_containers/food/snacks/F = I
- if(istype(F))
- if(F.cooked_type)
- to_chat(owner, " [linked_extract] flares up brightly, and your hands alone are enough cook [F]!")
- var/obj/item/result = F.microwave_act()
- if(istype(result))
- owner.put_in_hands(result)
- else
- I.attackby(fire, owner)
- return ..()
-
-/datum/status_effect/stabilized/darkpurple/on_remove()
- REMOVE_TRAIT(owner, TRAIT_RESISTHEATHANDS, "slimestatus")
- qdel(fire)
-
-/datum/status_effect/stabilized/darkblue
- id = "stabilizeddarkblue"
- colour = "dark blue"
-
-/datum/status_effect/stabilized/darkblue/tick()
- if(owner.fire_stacks > 0 && prob(80))
- owner.fire_stacks--
- if(owner.fire_stacks <= 0)
- to_chat(owner, " [linked_extract] coats you in a watery goo, extinguishing the flames.")
- var/obj/O = owner.get_active_held_item()
- if(O)
- O.extinguish() //All shamelessly copied from water's expose_obj, since I didn't seem to be able to get it here for some reason.
- O.acid_level = 0
- // Monkey cube
- if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
- to_chat(owner, " [linked_extract] kept your hands wet! It makes [O] expand!")
- var/obj/item/reagent_containers/food/snacks/monkeycube/cube = O
- cube.Expand()
-
- // Dehydrated carp
- else if(istype(O, /obj/item/toy/plush/carpplushie/dehy_carp))
- to_chat(owner, " [linked_extract] kept your hands wet! It makes [O] expand!")
- var/obj/item/toy/plush/carpplushie/dehy_carp/dehy = O
- dehy.Swell() // Makes a carp
-
- else if(istype(O, /obj/item/stack/sheet/hairlesshide))
- to_chat(owner, " [linked_extract] kept your hands wet! It wets [O]!")
- var/obj/item/stack/sheet/hairlesshide/HH = O
- new /obj/item/stack/sheet/wethide(get_turf(HH), HH.amount)
- qdel(HH)
- ..()
-
-/datum/status_effect/stabilized/silver
- id = "stabilizedsilver"
- colour = "silver"
-
-/datum/status_effect/stabilized/silver/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.hunger_mod *= 0.8 //20% buff
- return ..()
-
-/datum/status_effect/stabilized/silver/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.hunger_mod /= 0.8
-
-//Bluespace has an icon because it's kinda active.
-/atom/movable/screen/alert/status_effect/bluespaceslime
- name = "Stabilized Bluespace Extract"
- desc = "You shouldn't see this, since we set it to change automatically!"
- icon_state = "slime_bluespace_on"
-
-/datum/status_effect/bluespacestabilization
- id = "stabilizedbluespacecooldown"
- duration = 1200
- alert_type = null
-
-/datum/status_effect/stabilized/bluespace
- id = "stabilizedbluespace"
- colour = "bluespace"
- alert_type = /atom/movable/screen/alert/status_effect/bluespaceslime
- var/healthcheck
-
-/datum/status_effect/stabilized/bluespace/tick()
- if(owner.has_status_effect(/datum/status_effect/bluespacestabilization))
- linked_alert.desc = "The stabilized bluespace extract is still aligning you with the bluespace axis."
- linked_alert.icon_state = "slime_bluespace_off"
- return ..()
- else
- linked_alert.desc = "The stabilized bluespace extract will try to redirect you from harm!"
- linked_alert.icon_state = "slime_bluespace_on"
-
- if(healthcheck && (healthcheck - owner.health) > 5)
- owner.visible_message(" [linked_extract] notices the sudden change in [owner]'s physical health, and activates!")
- do_sparks(5,FALSE,owner)
- var/F = find_safe_turf(zlevels = owner.z, extended_safety_checks = TRUE)
- var/range = 0
- if(!F)
- F = get_turf(owner)
- range = 50
- if(do_teleport(owner, F, range, channel = TELEPORT_CHANNEL_BLUESPACE))
- to_chat(owner, " [linked_extract] will take some time to re-align you on the bluespace axis.")
- do_sparks(5,FALSE,owner)
- owner.apply_status_effect(/datum/status_effect/bluespacestabilization)
- healthcheck = owner.health
- return ..()
-
-/datum/status_effect/stabilized/sepia
- id = "stabilizedsepia"
- colour = "sepia"
- var/mod = 0
-
-/datum/status_effect/stabilized/sepia/tick()
- if(prob(50) && mod > -1)
- mod--
- owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = -0.5)
- else if(mod < 1)
- mod++
- // yeah a value of 0 does nothing but replacing the trait in place is cheaper than removing and adding repeatedly
- owner.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia, multiplicative_slowdown = 0)
- return ..()
-
-/datum/status_effect/stabilized/sepia/on_remove()
- owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/sepia)
-
-/datum/status_effect/stabilized/cerulean
- id = "stabilizedcerulean"
- colour = "cerulean"
- var/mob/living/clone
-
-/datum/status_effect/stabilized/cerulean/on_apply()
- var/typepath = owner.type
- clone = new typepath(owner.loc)
- var/mob/living/carbon/O = owner
- var/mob/living/carbon/C = clone
- if(istype(C) && istype(O))
- C.real_name = O.real_name
- O.dna.transfer_identity(C)
- C.updateappearance(mutcolor_update=1)
- return ..()
-
-/datum/status_effect/stabilized/cerulean/tick()
- if(owner.stat == DEAD)
- if(clone && clone.stat != DEAD)
- owner.visible_message(" [owner] blazes with brilliant light, [linked_extract] whisking [owner.p_their()] soul away.",
- " You feel a warm glow from [linked_extract], and you open your eyes... elsewhere.")
- if(owner.mind)
- owner.mind.transfer_to(clone)
- clone = null
- qdel(linked_extract)
- if(!clone || clone.stat == DEAD)
- to_chat(owner, " [linked_extract] desperately tries to move your soul to a living body, but can't find one!")
- qdel(linked_extract)
- ..()
-
-/datum/status_effect/stabilized/cerulean/on_remove()
- if(clone)
- clone.visible_message(" [clone] dissolves into a puddle of goo!")
- clone.unequip_everything()
- qdel(clone)
-
-/datum/status_effect/stabilized/pyrite
- id = "stabilizedpyrite"
- colour = "pyrite"
- var/originalcolor
-
-/datum/status_effect/stabilized/pyrite/on_apply()
- originalcolor = owner.color
- return ..()
-
-/datum/status_effect/stabilized/pyrite/tick()
- owner.color = rgb(rand(0,255),rand(0,255),rand(0,255))
- return ..()
-
-/datum/status_effect/stabilized/pyrite/on_remove()
- owner.color = originalcolor
-
-/datum/status_effect/stabilized/red
- id = "stabilizedred"
- colour = "red"
-
-/datum/status_effect/stabilized/red/on_apply()
- . = ..()
- owner.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/equipment_speedmod)
-
-/datum/status_effect/stabilized/red/on_remove()
- owner.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/equipment_speedmod)
- return ..()
-
-/datum/status_effect/stabilized/green
- id = "stabilizedgreen"
- colour = "green"
- var/datum/dna/originalDNA
- var/originalname
-
-/datum/status_effect/stabilized/green/on_apply()
- to_chat(owner, " You feel different...")
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- originalDNA = new H.dna.type
- originalname = H.real_name
- H.dna.copy_dna(originalDNA)
- randomize_human(H)
- return ..()
-
-/datum/status_effect/stabilized/green/tick() //Only occasionally give examiners a warning.
- if(prob(50))
- examine_text = " SUBJECTPRONOUN looks a bit green and gooey..."
- else
- examine_text = null
- return ..()
-
-/datum/status_effect/stabilized/green/on_remove()
- to_chat(owner, " You feel more like yourself.")
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- originalDNA.transfer_identity(H)
- H.real_name = originalname
- H.updateappearance(mutcolor_update=1)
-
-/datum/status_effect/brokenpeace
- id = "brokenpeace"
- duration = 1200
- alert_type = null
-
-/datum/status_effect/pinkdamagetracker
- id = "pinkdamagetracker"
- duration = -1
- alert_type = null
- var/damage = 0
- var/lasthealth
-
-/datum/status_effect/pinkdamagetracker/tick()
- if((lasthealth - owner.health) > 0)
- damage += (lasthealth - owner.health)
- lasthealth = owner.health
-
-/datum/status_effect/stabilized/pink
- id = "stabilizedpink"
- colour = "pink"
- var/list/mobs = list()
- var/faction_name
-
-/datum/status_effect/stabilized/pink/on_apply()
- faction_name = owner.real_name
- return ..()
-
-/datum/status_effect/stabilized/pink/tick()
- for(var/mob/living/simple_animal/M in view(7,get_turf(owner)))
- if(!(M in mobs))
- mobs += M
- M.apply_status_effect(/datum/status_effect/pinkdamagetracker)
- M.faction |= faction_name
- for(var/mob/living/simple_animal/M in mobs)
- if(!(M in view(7,get_turf(owner))))
- M.faction -= faction_name
- M.remove_status_effect(/datum/status_effect/pinkdamagetracker)
- mobs -= M
- var/datum/status_effect/pinkdamagetracker/C = M.has_status_effect(/datum/status_effect/pinkdamagetracker)
- if(istype(C) && C.damage > 0)
- C.damage = 0
- owner.apply_status_effect(/datum/status_effect/brokenpeace)
- var/HasFaction = FALSE
- for(var/i in owner.faction)
- if(i == faction_name)
- HasFaction = TRUE
-
- if(HasFaction && owner.has_status_effect(/datum/status_effect/brokenpeace))
- owner.faction -= faction_name
- to_chat(owner, " The peace has been broken! Hostile creatures will now react to you!")
- if(!HasFaction && !owner.has_status_effect(/datum/status_effect/brokenpeace))
- to_chat(owner, " [linked_extract] pulses, generating a fragile aura of peace.")
- owner.faction |= faction_name
- return ..()
-
-/datum/status_effect/stabilized/pink/on_remove()
- for(var/mob/living/simple_animal/M in mobs)
- M.faction -= faction_name
- M.remove_status_effect(/datum/status_effect/pinkdamagetracker)
- for(var/i in owner.faction)
- if(i == faction_name)
- owner.faction -= faction_name
-
-/datum/status_effect/stabilized/oil
- id = "stabilizedoil"
- colour = "oil"
- examine_text = " SUBJECTPRONOUN smells of sulfer and oil!"
-
-/datum/status_effect/stabilized/oil/tick()
- if(owner.stat == DEAD)
- explosion(get_turf(owner),1,2,4,flame_range = 5)
- return ..()
-
-/datum/status_effect/stabilized/black
- id = "stabilizedblack"
- colour = "black"
- var/messagedelivered = FALSE
- var/heal_amount = 1
-
-/datum/status_effect/stabilized/black/tick()
- if(owner.pulling && isliving(owner.pulling) && owner.grab_state == GRAB_KILL)
- var/mob/living/M = owner.pulling
- if(M.stat == DEAD)
- return
- if(!messagedelivered)
- to_chat(owner," You feel your hands melt around [M]'s neck and start to drain [M.p_them()] of life.")
- to_chat(owner.pulling, " [owner]'s hands melt around your neck, and you can feel your life starting to drain away!")
- messagedelivered = TRUE
- examine_text = " SUBJECTPRONOUN is draining health from [owner.pulling]!"
- var/list/healing_types = list()
- if(owner.getBruteLoss() > 0)
- healing_types += BRUTE
- if(owner.getFireLoss() > 0)
- healing_types += BURN
- if(owner.getToxLoss() > 0)
- healing_types += TOX
- if(owner.getCloneLoss() > 0)
- healing_types += CLONE
-
- owner.apply_damage_type(-heal_amount, damagetype=pick(healing_types))
- owner.adjust_nutrition(3)
- M.adjustCloneLoss(heal_amount * 1.2) //This way, two people can't just convert each other's damage away.
- else
- messagedelivered = FALSE
- examine_text = null
- return ..()
-
-/datum/status_effect/stabilized/lightpink
- id = "stabilizedlightpink"
- colour = "light pink"
-
-/datum/status_effect/stabilized/lightpink/on_apply()
- owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
- return ..()
-
-/datum/status_effect/stabilized/lightpink/tick()
- for(var/mob/living/carbon/human/H in range(1, get_turf(owner)))
- if(H != owner && H.stat != DEAD && H.health <= 0 && !H.reagents.has_reagent(/datum/reagent/medicine/epinephrine))
- to_chat(owner, "[linked_extract] pulses in sync with [H]'s heartbeat, trying to keep [H.p_them()] alive.")
- H.reagents.add_reagent(/datum/reagent/medicine/epinephrine,5)
- return ..()
-
-/datum/status_effect/stabilized/lightpink/on_remove()
- owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/lightpink)
-
-/datum/status_effect/stabilized/adamantine
- id = "stabilizedadamantine"
- colour = "adamantine"
- examine_text = " SUBJECTPRONOUN has a strange metallic coating on their skin."
-
-/datum/status_effect/stabilized/gold
- id = "stabilizedgold"
- colour = "gold"
- var/mob/living/simple_animal/familiar
-
-/datum/status_effect/stabilized/gold/tick()
- var/obj/item/slimecross/stabilized/gold/linked = linked_extract
- if(QDELETED(familiar))
- familiar = new linked.mob_type(get_turf(owner.loc))
- familiar.name = linked.mob_name
- familiar.del_on_death = TRUE
- familiar.copy_languages(owner, LANGUAGE_MASTER)
- if(linked.saved_mind)
- linked.saved_mind.transfer_to(familiar)
- familiar.update_atom_languages()
- familiar.ckey = linked.saved_mind.key
- else
- if(familiar.mind)
- linked.saved_mind = familiar.mind
- return ..()
-
-/datum/status_effect/stabilized/gold/on_remove()
- if(familiar)
- qdel(familiar)
-
-/datum/status_effect/stabilized/adamantine/on_apply()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.damage_resistance += 5
- return ..()
-
-/datum/status_effect/stabilized/adamantine/on_remove()
- if(ishuman(owner))
- var/mob/living/carbon/human/H = owner
- H.physiology.damage_resistance -= 5
-
-/datum/status_effect/stabilized/rainbow
- id = "stabilizedrainbow"
- colour = "rainbow"
-
-/datum/status_effect/stabilized/rainbow/tick()
- if(owner.health <= 0)
- var/obj/item/slimecross/stabilized/rainbow/X = linked_extract
- if(istype(X))
- if(X.regencore)
- X.regencore.afterattack(owner,owner,TRUE)
- X.regencore = null
- owner.visible_message(" [owner] flashes a rainbow of colors, and [owner.p_their()] skin is coated in a milky regenerative goo!")
- qdel(src)
- qdel(linked_extract)
- return ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
deleted file mode 100644
index 3f80f17e8a32..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Slimecrossing Weapons
- Weapons added by the slimecrossing system.
- Collected here for clarity.
-*/
-
-//Boneblade - Burning Green
-/obj/item/melee/arm_blade/slime
- name = "slimy boneblade"
- desc = "What remains of the bones in your arm. Incredibly sharp, and painful for both you and your opponents."
- force = 22.5
- force_string = "painful"
-
-/obj/item/melee/arm_blade/slime/attack(mob/living/L, mob/user)
- . = ..()
- if(prob(20))
- user.emote("scream")
-
-//Adamantine shield - Chilling Adamantine
-/obj/item/shield/adamantineshield
- name = "adamantine shield"
- desc = "A gigantic shield made of solid adamantium."
- icon = 'icons/obj/slimecrossing.dmi'
- icon_state = "adamshield"
- item_state = "adamshield"
- w_class = WEIGHT_CLASS_HUGE
- armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
- slot_flags = ITEM_SLOT_BACK
- block_chance = 50
- force = 0
- throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...?
- throw_speed = 2
- attack_verb = list("bashed","pounded","slammed")
- item_flags = SLOWS_WHILE_IN_HAND
-
-/obj/item/shield/adamantineshield/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_wielded=15)
diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm
deleted file mode 100644
index 26c151e42316..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/burning.dm
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
-Burning extracts:
- Have a unique, primarily offensive effect when
- filled with 10u plasma and activated in-hand.
-*/
-/obj/item/slimecross/burning
- name = "burning extract"
- desc = "It's boiling over with barely-contained energy."
- effect = "burning"
- icon_state = "burning"
-
-/obj/item/slimecross/burning/Initialize()
- . = ..()
- create_reagents(10, INJECTABLE | DRAWABLE)
-
-/obj/item/slimecross/burning/attack_self(mob/user)
- if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
- to_chat(user, " This extract needs to be full of plasma to activate!")
- return
- reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
- to_chat(user, " You squeeze the extract, and it absorbs the plasma!")
- playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
- playsound(src, 'sound/magic/fireball.ogg', 50, TRUE)
- do_effect(user)
-
-/obj/item/slimecross/burning/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..()
- qdel(src)
- return
-
-/obj/item/slimecross/burning/grey
- colour = "grey"
- effect_desc = "Creates a hungry and speedy slime that will love you forever."
-
-/obj/item/slimecross/burning/grey/do_effect(mob/user)
- var/mob/living/simple_animal/slime/S = new(get_turf(user),"grey")
- S.visible_message(" A baby slime emerges from [src], and it nuzzles [user] before burbling hungrily!")
- S.set_friendship(user, 20) //Gas, gas, gas
- S.bodytemperature = T0C + 400 //We gonna step on the gas.
- S.set_nutrition(S.get_hunger_nutrition()) //Tonight, we fight!
- ..()
-
-/obj/item/slimecross/burning/orange
- colour = "orange"
- effect_desc = "Expels pepperspray in a radius when activated."
-
-/obj/item/slimecross/burning/orange/do_effect(mob/user)
- user.visible_message(" [src] boils over with a caustic gas!")
- var/datum/reagents/R = new/datum/reagents(100)
- R.add_reagent(/datum/reagent/consumable/condensedcapsaicin, 100)
-
- var/datum/effect_system/smoke_spread/chem/smoke = new
- smoke.set_up(R, 7, get_turf(user))
- smoke.start()
- ..()
-
-/obj/item/slimecross/burning/purple
- colour = "purple"
- effect_desc = "Creates a clump of invigorating gel, it has healing properties and makes you feel good."
-
-/obj/item/slimecross/burning/purple/do_effect(mob/user)
- user.visible_message(" [src] fills with a bubbling liquid!")
- new /obj/item/slimecrossbeaker/autoinjector/slimestimulant(get_turf(user))
- ..()
-
-/obj/item/slimecross/burning/blue
- colour = "blue"
- effect_desc = "Freezes the floor around you and chills nearby people."
-
-/obj/item/slimecross/burning/blue/do_effect(mob/user)
- user.visible_message(" [src] flash-freezes the area!")
- for(var/turf/open/T in range(3, get_turf(user)))
- T.MakeSlippery(TURF_WET_PERMAFROST, min_wet_time = 10, wet_time_to_add = 5)
- for(var/mob/living/carbon/M in range(5, get_turf(user)))
- if(M != user && iscarbon(M))
- var/mob/living/carbon/C = M
- M.bodytemperature = C.dna.species.bodytemp_cold_damage_limit + 10 //Not quite cold enough to hurt.
- to_chat(M, " You feel a chill run down your spine, and the floor feels a bit slippery with frost...")
- ..()
-
-/obj/item/slimecross/burning/metal
- colour = "metal"
- effect_desc = "Instantly destroys walls around you."
-
-/obj/item/slimecross/burning/metal/do_effect(mob/user)
- for(var/turf/closed/wall/W in range(1,get_turf(user)))
- W.dismantle_wall(devastated = TRUE)
- playsound(W, 'sound/effects/break_stone.ogg', 50, TRUE)
- user.visible_message(" [src] pulses violently, and shatters the walls around it!")
- ..()
-
-/obj/item/slimecross/burning/yellow
- colour = "yellow"
- effect_desc = "Electrocutes people near you."
-
-/obj/item/slimecross/burning/yellow/do_effect(mob/user)
- user.visible_message(" [src] explodes into an electrical field!")
- playsound(get_turf(src), 'sound/weapons/zapbang.ogg', 50, TRUE)
- for(var/mob/living/M in range(4,get_turf(user)))
- if(M != user)
- var/mob/living/carbon/C = M
- if(istype(C))
- C.electrocute_act(25,src)
- else
- M.adjustFireLoss(25)
- to_chat(M, " You feel a sharp electrical pulse!")
- ..()
-
-/obj/item/slimecross/burning/darkpurple
- colour = "dark purple"
- effect_desc = "Creates a cloud of plasma."
-
-/obj/item/slimecross/burning/darkpurple/do_effect(mob/user)
- user.visible_message(" [src] sublimates into a cloud of plasma!")
- var/turf/T = get_turf(user)
- T.atmos_spawn_air("plasma=60")
- ..()
-
-/obj/item/slimecross/burning/darkblue
- colour = "dark blue"
- effect_desc = "Expels a burst of chilling smoke while also filling you with cryoxadone."
-
-/obj/item/slimecross/burning/darkblue/do_effect(mob/user)
- user.visible_message(" [src] releases a burst of chilling smoke!")
- var/datum/reagents/R = new/datum/reagents(100)
- R.add_reagent(/datum/reagent/consumable/frostoil, 40)
- user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,10)
- var/datum/effect_system/smoke_spread/chem/smoke = new
- smoke.set_up(R, 7, get_turf(user))
- smoke.start()
- ..()
-
-/obj/item/slimecross/burning/silver
- colour = "silver"
- effect_desc = "Creates a few pieces of slime jelly laced food."
-
-/obj/item/slimecross/burning/silver/do_effect(mob/user)
- var/amount = rand(3,6)
- var/list/turfs = list()
- for(var/turf/open/T in range(1,get_turf(user)))
- turfs += T
- for(var/i = 0, i < amount, i++)
- var/path = get_random_food()
- var/obj/item/O = new path(pick(turfs))
- O.reagents.add_reagent(/datum/reagent/toxin/slimejelly,5) //Oh god it burns
- if(prob(50))
- O.desc += " It smells strange..."
- user.visible_message(" [src] produces a few pieces of food!")
- ..()
-
-/obj/item/slimecross/burning/bluespace
- colour = "bluespace"
- effect_desc = "Teleports anyone directly next to you."
-
-/obj/item/slimecross/burning/bluespace/do_effect(mob/user)
- user.visible_message(" [src] sparks, and lets off a shockwave of bluespace energy!")
- for(var/mob/living/L in range(1, get_turf(user)))
- if(L != user)
- do_teleport(L, get_turf(L), 6, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE) //Somewhere between the effectiveness of fake and real BS crystal
- new /obj/effect/particle_effect/sparks(get_turf(L))
- playsound(get_turf(L), "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- ..()
-
-/obj/item/slimecross/burning/sepia
- colour = "sepia"
- effect_desc = "Turns into a special camera that rewinds time when used."
-
-/obj/item/slimecross/burning/sepia/do_effect(mob/user)
- user.visible_message(" [src] shapes itself into a camera!")
- new /obj/item/camera/rewind(get_turf(user))
- ..()
-
-/obj/item/slimecross/burning/cerulean
- colour = "cerulean"
- effect_desc = "Produces an extract cloning potion, which copies an extract, as well as its extra uses."
-
-/obj/item/slimecross/burning/cerulean/do_effect(mob/user)
- user.visible_message(" [src] produces a potion!")
- new /obj/item/slimepotion/extract_cloner(get_turf(user))
- ..()
-
-/obj/item/slimecross/burning/pyrite
- colour = "pyrite"
- effect_desc = "Shatters all lights in the current room."
-
-/obj/item/slimecross/burning/pyrite/do_effect(mob/user)
- user.visible_message(" [src] releases a colorful wave of energy, which shatters the lights!")
- var/area/A = get_area(user.loc)
- for(var/obj/machinery/light/L in A) //Shamelessly copied from the APC effect.
- L.on = TRUE
- L.break_light_tube()
- L.on = FALSE
- stoplag()
- ..()
-
-/obj/item/slimecross/burning/red
- colour = "red"
- effect_desc = "Makes nearby slimes rabid, and they'll also attack their friends."
-
-/obj/item/slimecross/burning/red/do_effect(mob/user)
- user.visible_message(" [src] pulses a hazy red aura for a moment, which wraps around [user]!")
- for(var/mob/living/simple_animal/slime/S in view(7, get_turf(user)))
- if(user in S.Friends)
- var/friendliness = S.Friends[user]
- S.clear_friends()
- S.set_friendship(user, friendliness)
- else
- S.clear_friends()
- S.rabid = 1
- S.visible_message(" The [S] is driven into a dangerous frenzy!")
- ..()
-
-/obj/item/slimecross/burning/green
- colour = "green"
- effect_desc = "The user gets a dull arm blade in the hand it is used in."
-
-/obj/item/slimecross/burning/green/do_effect(mob/user)
- var/which_hand = "l_hand"
- if(!(user.active_hand_index % 2))
- which_hand = "r_hand"
- var/mob/living/L = user
- if(!istype(user))
- return
- var/obj/item/held = L.get_active_held_item() //This should be itself, but just in case...
- L.dropItemToGround(held)
- var/obj/item/melee/arm_blade/slime/blade = new(user)
- if(!L.put_in_hands(blade))
- qdel(blade)
- user.visible_message(" [src] melts onto [user]'s arm, boiling the flesh horribly!")
- else
- user.visible_message(" [src] sublimates the flesh around [user]'s arm, transforming the bone into a gruesome blade!")
- user.emote("scream")
- L.apply_damage(30,BURN,which_hand)
- ..()
-
-/obj/item/slimecross/burning/pink
- colour = "pink"
- effect_desc = "Creates a beaker of synthpax."
-
-/obj/item/slimecross/burning/pink/do_effect(mob/user)
- user.visible_message(" [src] shrinks into a small, gel-filled pellet!")
- new /obj/item/slimecrossbeaker/pax(get_turf(user))
- ..()
-
-/obj/item/slimecross/burning/gold
- colour = "gold"
- effect_desc = "Creates a gank squad of monsters that are friendly to the user."
-
-/obj/item/slimecross/burning/gold/do_effect(mob/user)
- user.visible_message(" [src] shudders violently, and summons an army for [user]!")
- for(var/i in 1 to 3) //Less than gold normally does, since it's safer and faster.
- var/mob/living/simple_animal/S = create_random_mob(get_turf(user), HOSTILE_SPAWN)
- S.faction |= "[REF(user)]"
- if(prob(50))
- for(var/j = 1, j <= rand(1, 3), j++)
- step(S, pick(NORTH,SOUTH,EAST,WEST))
- ..()
-
-/obj/item/slimecross/burning/oil
- colour = "oil"
- effect_desc = "Creates an explosion after a few seconds."
-
-/obj/item/slimecross/burning/oil/do_effect(mob/user)
- user.visible_message(" [user] activates [src]. It's going to explode!", " You activate [src]. It crackles in anticipation")
- addtimer(CALLBACK(src, PROC_REF(boom)), 50)
-
-/obj/item/slimecross/burning/oil/proc/boom()
- var/turf/T = get_turf(src)
- playsound(T, 'sound/effects/explosion2.ogg', 200, TRUE)
- for(var/mob/living/M in range(2, T))
- new /obj/effect/temp_visual/explosion(get_turf(M))
- M.ex_act(EXPLODE_HEAVY)
- qdel(src)
-
-/obj/item/slimecross/burning/black
- colour = "black"
- effect_desc = "Transforms the user into a slime. They can transform back at will and do not lose any items."
-
-/obj/item/slimecross/burning/black/do_effect(mob/user)
- var/mob/living/L = user
- if(!istype(L))
- return
- user.visible_message(" [src] absorbs [user], transforming [user.p_them()] into a slime!")
- var/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform/S = new()
- S.remove_on_restore = TRUE
- user.mind.AddSpell(S)
- S.cast(list(user),user)
- ..()
-
-/obj/item/slimecross/burning/lightpink
- colour = "light pink"
- effect_desc = "Paxes everyone in sight."
-
-/obj/item/slimecross/burning/lightpink/do_effect(mob/user)
- user.visible_message(" [src] lets off a hypnotizing pink glow!")
- for(var/mob/living/carbon/C in view(7, get_turf(user)))
- C.reagents.add_reagent(/datum/reagent/pax,5)
- ..()
-
-/obj/item/slimecross/burning/adamantine
- colour = "adamantine"
- effect_desc = "Creates a mighty adamantine shield."
-
-/obj/item/slimecross/burning/adamantine/do_effect(mob/user)
- user.visible_message(" [src] crystallizes into a large shield!")
- new /obj/item/shield/adamantineshield(get_turf(user))
- ..()
-
diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm
deleted file mode 100644
index f01b148d4d5e..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/charged.dm
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
-Charged extracts:
- Have a unique, effect when filled with
- 10u plasma and activated in-hand, related to their
- normal extract effect.
-*/
-/obj/item/slimecross/charged
- name = "charged extract"
- desc = "It sparks with electric power."
- effect = "charged"
- icon_state = "charged"
-
-/obj/item/slimecross/charged/Initialize()
- . = ..()
- create_reagents(10, INJECTABLE | DRAWABLE)
-
-/obj/item/slimecross/charged/attack_self(mob/user)
- if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
- to_chat(user, " This extract needs to be full of plasma to activate!")
- return
- reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
- to_chat(user, " You squeeze the extract, and it absorbs the plasma!")
- playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
- playsound(src, 'sound/effects/light_flicker.ogg', 50, TRUE)
- do_effect(user)
-
-/obj/item/slimecross/charged/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..()
- qdel(src)
- return
-
-/obj/item/slimecross/charged/grey
- colour = "grey"
- effect_desc = "Produces a slime reviver potion, which revives dead slimes."
-
-/obj/item/slimecross/charged/grey/do_effect(mob/user)
- new /obj/item/slimepotion/slime_reviver(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/orange
- colour = "orange"
- effect_desc = "Instantly makes a large burst of flame for a moment."
-
-/obj/item/slimecross/charged/orange/do_effect(mob/user)
- for(var/turf/turf in range(5,get_turf(user)))
- if(!locate(/obj/effect/hotspot) in turf)
- new /obj/effect/hotspot(turf)
- ..()
-
-/obj/item/slimecross/charged/purple
- colour = "purple"
- effect_desc = "Creates a packet of omnizine."
-
-/obj/item/slimecross/charged/purple/do_effect(mob/user)
- new /obj/item/slimecrossbeaker/omnizine(get_turf(user))
- user.visible_message(" [src] sparks, and floods with a regenerative solution!")
- ..()
-
-/obj/item/slimecross/charged/blue
- colour = "blue"
- effect_desc = "Creates a potion that neuters the mutation chance of a slime, which passes on to new generations."
-
-/obj/item/slimecross/charged/blue/do_effect(mob/user)
- new /obj/item/slimepotion/slime/chargedstabilizer(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/metal
- colour = "metal"
- effect_desc = "Produces a bunch of metal and plasteel."
-
-/obj/item/slimecross/charged/metal/do_effect(mob/user)
- new /obj/item/stack/sheet/metal(get_turf(user), 25)
- new /obj/item/stack/sheet/plasteel(get_turf(user), 10)
- user.visible_message(" [src] grows into a plethora of metals!")
- ..()
-
-/obj/item/slimecross/charged/yellow
- colour = "yellow"
- effect_desc = "Creates a hypercharged slime cell battery, which has high capacity and recharges constantly at a very fast rate."
-
-/obj/item/slimecross/charged/yellow/do_effect(mob/user)
- new /obj/item/stock_parts/cell/high/slime/hypercharged(get_turf(user))
- user.visible_message(" [src] sparks violently, and swells with electric power!")
- ..()
-
-/obj/item/slimecross/charged/darkpurple
- colour = "dark purple"
- effect_desc = "Creates several sheets of plasma."
-
-/obj/item/slimecross/charged/darkpurple/do_effect(mob/user)
- new /obj/item/stack/sheet/mineral/plasma(get_turf(user), 10)
- user.visible_message(" [src] produces a large amount of plasma!")
- ..()
-
-/obj/item/slimecross/charged/darkblue
- colour = "dark blue"
- effect_desc = "Produces a pressure proofing potion."
-
-/obj/item/slimecross/charged/darkblue/do_effect(mob/user)
- new /obj/item/slimepotion/spaceproof(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/silver
- colour = "silver"
- effect_desc = "Creates a slime cake and some drinks."
-
-/obj/item/slimecross/charged/silver/do_effect(mob/user)
- new /obj/item/food/cake/slimecake(get_turf(user))
- for(var/i in 1 to 10)
- var/drink_type = get_random_drink()
- new drink_type(get_turf(user))
- user.visible_message(" [src] produces a party's worth of cake and drinks!")
- ..()
-
-/obj/item/slimecross/charged/bluespace
- colour = "bluespace"
- effect_desc = "Makes a bluespace polycrystal."
-
-/obj/item/slimecross/charged/bluespace/do_effect(mob/user)
- new /obj/item/stack/sheet/bluespace_crystal(get_turf(user), 10)
- user.visible_message(" [src] produces several sheets of polycrystal!")
- ..()
-
-/obj/item/slimecross/charged/sepia
- colour = "sepia"
- effect_desc = "Creates a camera obscura."
-
-/obj/item/slimecross/charged/sepia/do_effect(mob/user)
- new /obj/item/camera/spooky(get_turf(user))
- user.visible_message(" [src] flickers in a strange, ethereal manner, and produces a camera!")
- ..()
-
-/obj/item/slimecross/charged/cerulean
- colour = "cerulean"
- effect_desc = "Creates an extract enhancer, giving whatever it's used on five more uses."
-
-/obj/item/slimecross/charged/cerulean/do_effect(mob/user)
- new /obj/item/slimepotion/enhancer/max(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/pyrite
- colour = "pyrite"
- effect_desc = "Creates bananium. Oh no."
-
-/obj/item/slimecross/charged/pyrite/do_effect(mob/user)
- new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(user), 10)
- user.visible_message(" [src] solidifies with a horrifying banana stench!")
- ..()
-
-/obj/item/slimecross/charged/red
- colour = "red"
- effect_desc = "Produces a lavaproofing potion"
-
-/obj/item/slimecross/charged/red/do_effect(mob/user)
- new /obj/item/slimepotion/lavaproof(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/green
- colour = "green"
- effect_desc = "Lets you choose what slime species you want to be."
-
-/obj/item/slimecross/charged/green/do_effect(mob/user)
- var/mob/living/carbon/human/H = user
- if(!istype(H))
- to_chat(user, " You must be a humanoid to use this!")
- return
- var/racechoice = input(H, "Choose your slime subspecies.", "Slime Selection") as null|anything in sortList(subtypesof(/datum/species/jelly), /proc/cmp_typepaths_asc)
- if(!racechoice)
- to_chat(user, " You decide not to become a slime for now.")
- return
- if(!user.canUseTopic(src, BE_CLOSE))
- return
- H.set_species(racechoice, icon_update=1)
- H.visible_message(" [H] suddenly shifts form as [src] dissolves into [H.p_their()] skin!")
- ..()
-
-/obj/item/slimecross/charged/pink
- colour = "pink"
- effect_desc = "Produces a... lovepotion... no ERP."
-
-/obj/item/slimecross/charged/pink/do_effect(mob/user)
- new /obj/item/slimepotion/lovepotion(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/gold
- colour = "gold"
- effect_desc = "Slowly spawns 10 hostile monsters."
- var/max_spawn = 10
- var/spawned = 0
-
-/obj/item/slimecross/charged/gold/do_effect(mob/user)
- user.visible_message(" [src] starts shuddering violently!")
- addtimer(CALLBACK(src, PROC_REF(startTimer)), 50)
-
-/obj/item/slimecross/charged/gold/proc/startTimer()
- START_PROCESSING(SSobj, src)
-
-/obj/item/slimecross/charged/gold/process()
- visible_message(" [src] lets off a spark, and produces a living creature!")
- new /obj/effect/particle_effect/sparks(get_turf(src))
- playsound(get_turf(src), "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
- create_random_mob(get_turf(src), HOSTILE_SPAWN)
- spawned++
- if(spawned >= max_spawn)
- visible_message(" [src] collapses into a puddle of goo.")
- qdel(src)
-
-/obj/item/slimecross/charged/gold/Destroy()
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-/obj/item/slimecross/charged/oil
- colour = "oil"
- effect_desc = "Creates an explosion after a few seconds."
-
-/obj/item/slimecross/charged/oil/do_effect(mob/user)
- user.visible_message(" [src] begins to shake with rapidly increasing force!")
- addtimer(CALLBACK(src, PROC_REF(boom)), 50)
-
-/obj/item/slimecross/charged/oil/proc/boom()
- explosion(get_turf(src), 2, 3, 4) //Much smaller effect than normal oils, but devastatingly strong where it does hit.
- qdel(src)
-
-/obj/item/slimecross/charged/black
- colour = "black"
- effect_desc = "Randomizes the user's species."
-
-/obj/item/slimecross/charged/black/do_effect(mob/user)
- var/mob/living/carbon/human/H = user
- if(!istype(H))
- to_chat(user, " You have to be able to have a species to get your species changed.")
- return
- var/list/allowed_species = list()
- for(var/stype in subtypesof(/datum/species))
- var/datum/species/X = stype
- if(initial(X.changesource_flags) & SLIME_EXTRACT)
- allowed_species += stype
-
- var/datum/species/changed = pick(allowed_species)
- if(changed)
- H.set_species(changed, icon_update = 1)
- to_chat(H, " You feel very different!")
- ..()
-
-/obj/item/slimecross/charged/lightpink
- colour = "light pink"
- effect_desc = "Produces a pacification potion, which works on monsters and humanoids."
-
-/obj/item/slimecross/charged/lightpink/do_effect(mob/user)
- new /obj/item/slimepotion/peacepotion(get_turf(user))
- user.visible_message(" [src] distills into a potion!")
- ..()
-
-/obj/item/slimecross/charged/adamantine
- colour = "adamantine"
- effect_desc = "Does nothing. Sorry :)"
-
-/obj/item/slimecross/charged/rainbow
- colour = "rainbow"
- effect_desc = "Produces three living slimes of random colors."
-
-/obj/item/slimecross/charged/rainbow/do_effect(mob/user)
- user.visible_message(" [src] swells and splits into three new slimes!")
- for(var/i in 1 to 3)
- var/mob/living/simple_animal/slime/S = new(get_turf(user))
- S.random_colour()
- ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm
deleted file mode 100644
index 4a13f5d0c425..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/chilling.dm
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
-Chilling extracts:
- Have a unique, primarily defensive effect when
- filled with 10u plasma and activated in-hand.
-*/
-/obj/item/slimecross/chilling
- name = "chilling extract"
- desc = "It's cold to the touch, as if frozen solid."
- effect = "chilling"
- icon_state = "chilling"
-
-/obj/item/slimecross/chilling/Initialize()
- . = ..()
- create_reagents(10, INJECTABLE | DRAWABLE)
-
-/obj/item/slimecross/chilling/attack_self(mob/user)
- if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
- to_chat(user, " This extract needs to be full of plasma to activate!")
- return
- reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
- to_chat(user, " You squeeze the extract, and it absorbs the plasma!")
- playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
- playsound(src, 'sound/effects/glassbr1.ogg', 50, TRUE)
- do_effect(user)
-
-/obj/item/slimecross/chilling/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..()
- qdel(src)
- return
-
-/obj/item/slimecross/chilling/grey
- colour = "grey"
- effect_desc = "Creates some slime barrier cubes. When used they create slimy barricades."
-
-/obj/item/slimecross/chilling/grey/do_effect(mob/user)
- user.visible_message(" [src] produces a few small, grey cubes")
- for(var/i in 1 to 3)
- new /obj/item/barriercube(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/orange
- colour = "orange"
- effect_desc = "Creates a ring of fire one tile away from the user."
-
-/obj/item/slimecross/chilling/orange/do_effect(mob/user)
- user.visible_message(" [src] shatters, and lets out a jet of heat!")
- for(var/turf/T in orange(get_turf(user),2))
- if(get_dist(get_turf(user), T) > 1)
- new /obj/effect/hotspot(T)
- ..()
-
-/obj/item/slimecross/chilling/purple
- colour = "purple"
- effect_desc = "Injects everyone in the area with some regenerative jelly."
-
-/obj/item/slimecross/chilling/purple/do_effect(mob/user)
- var/area/A = get_area(get_turf(user))
- if(A.outdoors)
- to_chat(user, " [src] can't affect such a large area.")
- return
- user.visible_message(" [src] shatters, and a healing aura fills the room briefly.")
- for(var/mob/living/carbon/C in A)
- C.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10)
- ..()
-
-/obj/item/slimecross/chilling/blue
- colour = "blue"
- effect_desc = "Creates a rebreather, a tankless mask."
-
-/obj/item/slimecross/chilling/blue/do_effect(mob/user)
- user.visible_message(" [src] cracks, and spills out a liquid goo, which reforms into a mask!")
- new /obj/item/clothing/mask/nobreath(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/metal
- colour = "metal"
- effect_desc = "Temporarily surrounds the user with unbreakable walls."
-
-/obj/item/slimecross/chilling/metal/do_effect(mob/user)
- user.visible_message(" [src] melts like quicksilver, and surrounds [user] in a wall!")
- for(var/turf/T in orange(get_turf(user),1))
- if(get_dist(get_turf(user), T) > 0)
- new /obj/effect/forcefield/slimewall(T)
- ..()
-
-/obj/item/slimecross/chilling/yellow
- colour = "yellow"
- effect_desc = "Recharges the room's APC by 50%."
-
-/obj/item/slimecross/chilling/yellow/do_effect(mob/user)
- var/area/A = get_area(get_turf(user))
- user.visible_message(" [src] shatters, and a the air suddenly feels charged for a moment.")
- for(var/obj/machinery/power/apc/C in A)
- if(C.cell)
- C.cell.charge = min(C.cell.charge + C.cell.maxcharge/2, C.cell.maxcharge)
- ..()
-
-/obj/item/slimecross/chilling/darkpurple
- colour = "dark purple"
- effect_desc = "Removes all plasma gas in the area."
-
-/obj/item/slimecross/chilling/darkpurple/do_effect(mob/user)
- var/area/A = get_area(get_turf(user))
- if(A.outdoors)
- to_chat(user, " [src] can't affect such a large area.")
- return
- var/filtered = FALSE
- for(var/turf/open/T in A)
- var/datum/gas_mixture/G = T.air
- if(istype(G))
- G.set_moles(GAS_PLASMA, 0)
- filtered = TRUE
- T.air_update_turf()
- if(filtered)
- user.visible_message(" Cracks spread throughout [src], and some air is sucked in!")
- else
- user.visible_message(" [src] cracks, but nothing happens.")
- ..()
-
-/obj/item/slimecross/chilling/darkblue
- colour = "dark blue"
- effect_desc = "Seals the user in a protective block of ice."
-
-/obj/item/slimecross/chilling/darkblue/do_effect(mob/user)
- if(isliving(user))
- user.visible_message(" [src] freezes over [user]'s entire body!")
- var/mob/living/M = user
- M.apply_status_effect(/datum/status_effect/frozenstasis)
- ..()
-
-/obj/item/slimecross/chilling/silver
- colour = "silver"
- effect_desc = "Creates several ration packs."
-
-/obj/item/slimecross/chilling/silver/do_effect(mob/user)
- user.visible_message(" [src] crumbles into icy powder, leaving behind several emergency food supplies!")
- var/amount = rand(5, 10)
- for(var/i in 1 to amount)
- new /obj/item/reagent_containers/food/snacks/rationpack(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/bluespace
- colour = "bluespace"
- effect_desc = "Touching people with this extract adds them to a list, when it is activated it teleports everyone on that list to the user."
- var/list/allies = list()
- var/active = FALSE
-
-/obj/item/slimecross/chilling/bluespace/afterattack(atom/target, mob/user, proximity)
- if(!proximity || !isliving(target) || active)
- return
- if(target in allies)
- allies -= target
- to_chat(user, " You unlink [src] with [target].")
- else
- allies |= target
- to_chat(user, " You link [src] with [target].")
- return
-
-/obj/item/slimecross/chilling/bluespace/do_effect(mob/user)
- if(allies.len <= 0)
- to_chat(user, " [src] is not linked to anyone!")
- return
- to_chat(user, " You feel [src] pulse as it begins charging bluespace energies...")
- active = TRUE
- for(var/mob/living/M in allies)
- var/datum/status_effect/slimerecall/S = M.apply_status_effect(/datum/status_effect/slimerecall)
- S.target = user
- if(do_after(user, 100, target=src))
- to_chat(user, " [src] shatters as it tears a hole in reality, snatching the linked individuals from the void!")
- for(var/mob/living/M in allies)
- var/datum/status_effect/slimerecall/S = M.has_status_effect(/datum/status_effect/slimerecall)
- M.remove_status_effect(S)
- else
- to_chat(user, " [src] falls dark, dissolving into nothing as the energies fade away.")
- for(var/mob/living/M in allies)
- var/datum/status_effect/slimerecall/S = M.has_status_effect(/datum/status_effect/slimerecall)
- if(istype(S))
- S.interrupted = TRUE
- M.remove_status_effect(S)
- ..()
-
-/obj/item/slimecross/chilling/sepia
- colour = "sepia"
- effect_desc = "Touching someone with it adds/removes them from a list. Activating the extract stops time for 7 seconds, and everyone on the list is immune, except the user."
- var/list/allies = list()
-
-/obj/item/slimecross/chilling/sepia/afterattack(atom/target, mob/user, proximity)
- if(!proximity || !isliving(target))
- return
- if(target in allies)
- allies -= target
- to_chat(user, " You unlink [src] with [target].")
- else
- allies |= target
- to_chat(user, " You link [src] with [target].")
- return
-
-/obj/item/slimecross/chilling/sepia/do_effect(mob/user)
- user.visible_message(" [src] shatters, freezing time itself!")
- allies -= user //support class
- new /obj/effect/timestop(get_turf(user), 2, 70, allies)
- ..()
-
-/obj/item/slimecross/chilling/cerulean
- colour = "cerulean"
- effect_desc = "Creates a flimsy copy of the user, that they control."
-
-/obj/item/slimecross/chilling/cerulean/do_effect(mob/user)
- if(isliving(user))
- user.visible_message(" [src] creaks and shifts into a clone of [user]!")
- var/mob/living/M = user
- M.apply_status_effect(/datum/status_effect/slime_clone)
- ..()
-
-/obj/item/slimecross/chilling/pyrite
- colour = "pyrite"
- effect_desc = "Creates a pair of Prism Glasses, which allow the wearer to place colored light crystals."
-
-/obj/item/slimecross/chilling/pyrite/do_effect(mob/user)
- // [CELADON-EDIT] - CELADON_RETURN_CONTENT - Вот тебе и ЛОЛ
- // user.visible_message(" [src] does nothing sorry lol!") // CELADON-EDIT - ORIGINAL
- user.visible_message(" [src] crystallizes into a pair of spectacles!")
- new /obj/item/clothing/glasses/prism_glasses(get_turf(user))
- // [/CELADON-EDIT]
- ..()
-
-/obj/item/slimecross/chilling/red
- colour = "red"
- effect_desc = "Pacifies every slime in your vacinity."
-
-/obj/item/slimecross/chilling/red/do_effect(mob/user)
- var/slimesfound = FALSE
- for(var/mob/living/simple_animal/slime/S in view(get_turf(user), 7))
- slimesfound = TRUE
- S.docile = TRUE
- if(slimesfound)
- user.visible_message(" [src] lets out a peaceful ring as it shatters, and nearby slimes seem calm.")
- else
- user.visible_message(" [src] lets out a peaceful ring as it shatters, but nothing happens...")
- ..()
-
-/obj/item/slimecross/chilling/pink
- colour = "pink"
- effect_desc = "Creates a slime corgi puppy."
-
-/obj/item/slimecross/chilling/pink/do_effect(mob/user)
- user.visible_message(" [src] cracks like an egg, and an adorable puppy comes tumbling out!")
- new /mob/living/simple_animal/pet/dog/corgi/puppy/slime(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/gold
- colour = "gold"
- effect_desc = "Produces a golden capture device"
-
-/obj/item/slimecross/chilling/gold/do_effect(mob/user)
- user.visible_message(" [src] lets off golden light as it melts and reforms into an egg-like device!")
- new /obj/item/capturedevice(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/oil
- colour = "oil"
- effect_desc = "It creates a weak, but wide-ranged explosion."
-
-/obj/item/slimecross/chilling/oil/do_effect(mob/user)
- user.visible_message(" [src] begins to shake with muted intensity!")
- addtimer(CALLBACK(src, PROC_REF(boom)), 50)
-
-/obj/item/slimecross/chilling/oil/proc/boom()
- explosion(get_turf(src), -1, -1, 10, 0) //Large radius, but mostly light damage, and no flash.
- qdel(src)
-
-/obj/item/slimecross/chilling/black
- colour = "black"
- effect_desc = "Does nothing. :)"
-
-/obj/item/slimecross/chilling/lightpink
- colour = "light pink"
- effect_desc = "Creates a Heroine Bud, a special flower that pacifies whoever wears it on their head. They will not be able to take it off without help."
-
-/obj/item/slimecross/chilling/lightpink/do_effect(mob/user)
- user.visible_message(" [src] blooms into a beautiful flower!")
- new /obj/item/clothing/head/peaceflower(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/adamantine
- colour = "adamantine"
- effect_desc = "Solidifies into a set of adamantine armor."
-
-/obj/item/slimecross/chilling/adamantine/do_effect(mob/user)
- user.visible_message(" [src] creaks and breaks as it shifts into a heavy set of armor!")
- new /obj/item/clothing/suit/armor/heavy/adamantine(get_turf(user))
- ..()
-
-/obj/item/slimecross/chilling/rainbow
- colour = "rainbow"
- effect_desc = "Makes an unpassable wall in every door in the area."
-
-/obj/item/slimecross/chilling/rainbow/do_effect(mob/user)
- var/area/area = get_area(user)
- if(area.outdoors)
- to_chat(user, " [src] can't affect such a large area.")
- return
- user.visible_message(" [src] reflects an array of dazzling colors and light, energy rushing to nearby doors!")
- for(var/obj/machinery/door/airlock/door in area)
- new /obj/effect/forcefield/slimewall/rainbow(door.loc)
- return ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/consuming.dm b/code/modules/research/xenobiology/crossbreeding/consuming.dm
deleted file mode 100644
index f2a162af3aac..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/consuming.dm
+++ /dev/null
@@ -1,460 +0,0 @@
-/*
-Consuming extracts:
- Can eat food items.
- After consuming enough, produces special cookies.
-*/
-/obj/item/slimecross/consuming
- name = "consuming extract"
- desc = "It hungers... for more." //My slimecross has finally decided to eat... my buffet!
- icon_state = "consuming"
- effect = "consuming"
- var/nutriment_eaten = 0
- var/nutriment_required = 10
- var/cooldown = 600 //1 minute.
- var/last_produced = 0
- var/cookies = 5 //Number of cookies to spawn
- var/cookietype = /obj/item/slime_cookie
-
-/obj/item/slimecross/consuming/attackby(obj/item/O, mob/user)
- if(istype(O,/obj/item/reagent_containers/food/snacks))
- if(last_produced + cooldown > world.time)
- to_chat(user, " [src] is still digesting after its last meal!")
- return
- var/datum/reagent/N = O.reagents.has_reagent(/datum/reagent/consumable/nutriment)
- if(N)
- nutriment_eaten += N.volume
- to_chat(user, " [src] opens up and swallows [O] whole!")
- qdel(O)
- playsound(src, 'sound/items/eatfood.ogg', 20, TRUE)
- else
- to_chat(user, " [src] burbles unhappily at the offering.")
- if(nutriment_eaten >= nutriment_required)
- nutriment_eaten = 0
- user.visible_message(" [src] swells up and produces a small pile of cookies!")
- playsound(src, 'sound/effects/splat.ogg', 40, TRUE)
- last_produced = world.time
- for(var/i in 1 to cookies)
- var/obj/item/S = spawncookie()
- S.pixel_x = base_pixel_x + rand(-5, 5)
- S.pixel_y = base_pixel_y + rand(-5, 5)
- return
- ..()
-
-/obj/item/slimecross/consuming/proc/spawncookie()
- return new cookietype(get_turf(src))
-
-/obj/item/slime_cookie //While this technically acts like food, it's so removed from it that I made it its' own type.
- name = "error cookie"
- desc = "A weird slime cookie. You shouldn't see this."
- icon = 'icons/obj/food/slimecookies.dmi'
- var/taste = "error"
- var/nutrition = 5
- icon_state = "base"
- force = 0
- w_class = WEIGHT_CLASS_TINY
- throwforce = 0
- throw_speed = 3
- throw_range = 6
-
-/obj/item/slime_cookie/proc/do_effect(mob/living/M, mob/user)
- return
-
-/obj/item/slime_cookie/attack(mob/living/M, mob/user)
- var/fed = FALSE
- if(M == user)
- M.visible_message(" [user] eats [src]!", " You eat [src].")
- fed = TRUE
- else
- M.visible_message(" [user] tries to force [M] to eat [src]!", " [user] tries to force you to eat [src]!")
- if(do_after(user, 20, target = M))
- fed = TRUE
- M.visible_message(" [user] forces [M] to eat [src]!", " [user] forces you to eat [src].")
- if(fed)
- var/mob/living/carbon/human/H = M
-
- if(!istype(H) || !HAS_TRAIT(H, TRAIT_AGEUSIA))
- to_chat(M, " Tastes like [taste].")
- playsound(get_turf(M), 'sound/items/eatfood.ogg', 20, TRUE)
- if(nutrition)
- M.reagents.add_reagent(/datum/reagent/consumable/nutriment,nutrition)
- do_effect(M, user)
- qdel(src)
- return
- ..()
-
-/obj/item/slimecross/consuming/grey
- colour = "grey"
- effect_desc = "Creates a slime cookie."
- cookietype = /obj/item/slime_cookie/grey
-
-/obj/item/slime_cookie/grey
- name = "slime cookie"
- desc = "A grey-ish transparent cookie. Nutritious, probably."
- icon_state = "grey"
- taste = "goo"
- nutrition = 15
-
-/obj/item/slimecross/consuming/orange
- colour = "orange"
- effect_desc = "Creates a slime cookie that heats the target up and grants cold immunity for a short time."
- cookietype = /obj/item/slime_cookie/orange
-
-/obj/item/slime_cookie/orange
- name = "fiery cookie"
- desc = "A orange cookie with a fiery pattern. Feels warm."
- icon_state = "orange"
- taste = "cinnamon and burning"
-
-/obj/item/slime_cookie/orange/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/firecookie)
-
-/obj/item/slimecross/consuming/purple
- colour = "purple"
- effect_desc = "Creates a slime cookie that heals the target from every type of damage."
- cookietype = /obj/item/slime_cookie/purple
-
-/obj/item/slime_cookie/purple
- name = "health cookie"
- desc = "A purple cookie with a cross pattern. Soothing."
- icon_state = "purple"
- taste = "fruit jam and cough medicine"
-
-/obj/item/slime_cookie/purple/do_effect(mob/living/M, mob/user)
- M.adjustBruteLoss(-5)
- M.adjustFireLoss(-5)
- M.adjustToxLoss(-5, forced=1) //To heal slimepeople.
- M.adjustOxyLoss(-5)
- M.adjustCloneLoss(-5)
- M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -5)
-
-/obj/item/slimecross/consuming/blue
- colour = "blue"
- effect_desc = "Creates a slime cookie that wets the floor around you and makes you immune to water based slipping for a short time."
- cookietype = /obj/item/slime_cookie/blue
-
-/obj/item/slime_cookie/blue
- name = "water cookie"
- desc = "A transparent blue cookie. Constantly dripping wet."
- icon_state = "blue"
- taste = /datum/reagent/water
-
-/obj/item/slime_cookie/blue/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/watercookie)
-
-/obj/item/slimecross/consuming/metal
- colour = "metal"
- effect_desc = "Creates a slime cookie that increases the target's resistance to brute damage."
- cookietype = /obj/item/slime_cookie/metal
-
-/obj/item/slime_cookie/metal
- name = "metallic cookie"
- desc = "A shiny grey cookie. Hard to the touch."
- icon_state = "metal"
- taste = /datum/reagent/copper
-
-/obj/item/slime_cookie/metal/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/metalcookie)
-
-/obj/item/slimecross/consuming/yellow
- colour = "yellow"
- effect_desc = "Creates a slime cookie that makes the target immune to electricity for a short time."
- cookietype = /obj/item/slime_cookie/yellow
-
-/obj/item/slime_cookie/yellow
- name = "sparking cookie"
- desc = "A yellow cookie with a lightning pattern. Has a rubbery texture."
- icon_state = "yellow"
- taste = "lemon cake and rubber gloves"
-
-/obj/item/slime_cookie/yellow/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/sparkcookie)
-
-/obj/item/slimecross/consuming/darkpurple
- colour = "dark purple"
- effect_desc = "Creates a slime cookie that reverses how the target's body treats toxins."
- cookietype = /obj/item/slime_cookie/darkpurple
-
-/obj/item/slime_cookie/darkpurple
- name = "toxic cookie"
- desc = "A dark purple cookie, stinking of plasma."
- icon_state = "darkpurple"
- taste = "slime jelly and toxins"
-
-/obj/item/slime_cookie/darkpurple/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/toxincookie)
-
-/obj/item/slimecross/consuming/darkblue
- colour = "dark blue"
- effect_desc = "Creates a slime cookie that chills the target and extinguishes them."
- cookietype = /obj/item/slime_cookie/darkblue
-
-/obj/item/slime_cookie/darkblue
- name = "frosty cookie"
- desc = "A dark blue cookie with a snowflake pattern. Feels cold."
- icon_state = "darkblue"
- taste = "mint and bitter cold"
-
-/obj/item/slime_cookie/darkblue/do_effect(mob/living/M, mob/user)
- M.adjust_bodytemperature(-110)
- M.ExtinguishMob()
-
-/obj/item/slimecross/consuming/silver
- colour = "silver"
- effect_desc = "Creates a slime cookie that never gets the target fat."
- cookietype = /obj/item/slime_cookie/silver
-
-/obj/item/slime_cookie/silver
- name = "waybread cookie"
- desc = "A warm, crispy cookie, sparkling silver in the light. Smells wonderful."
- icon_state = "silver"
- taste = "masterful elven baking"
- nutrition = 0 //We don't want normal nutriment
-
-/obj/item/slime_cookie/silver/do_effect(mob/living/M, mob/user)
- M.reagents.add_reagent(/datum/reagent/consumable/nutriment/stabilized,10)
-
-/obj/item/slimecross/consuming/bluespace
- colour = "bluespace"
- effect_desc = "Creates a slime cookie that teleports the target to a random place in the area."
- cookietype = /obj/item/slime_cookie/bluespace
-
-/obj/item/slime_cookie/bluespace
- name = "space cookie"
- desc = "A white cookie with green icing. Surprisingly hard to hold."
- icon_state = "bluespace"
- taste = "sugar and starlight"
-
-/obj/item/slime_cookie/bluespace/do_effect(mob/living/M, mob/user)
- var/list/L = get_area_turfs(get_area(M))
- var/turf/target
- while (L.len && !target)
- var/I = rand(1, L.len)
- var/turf/T = L[I]
- if (is_centcom_level(T))
- L.Cut(I,I+1)
- continue
- if(!T.density)
- var/clear = TRUE
- for(var/obj/O in T)
- if(O.density)
- clear = FALSE
- break
- if(clear)
- target = T
- if (!target)
- L.Cut(I,I+1)
-
- if(target)
- do_teleport(M, target, 0, asoundin = 'sound/effects/phasein.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
- new /obj/effect/particle_effect/sparks(get_turf(M))
- playsound(get_turf(M), "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
-
-/obj/item/slimecross/consuming/sepia
- colour = "sepia"
- effect_desc = "Creates a slime cookie that makes the target do things slightly faster."
- cookietype = /obj/item/slime_cookie/sepia
-
-/obj/item/slime_cookie/sepia
- name = "time cookie"
- desc = "A light brown cookie with a clock pattern. Takes some time to chew."
- icon_state = "sepia"
- taste = "brown sugar and a metronome"
-
-/obj/item/slime_cookie/sepia/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/timecookie)
-
-/obj/item/slimecross/consuming/cerulean
- colour = "cerulean"
- effect_desc = "Creates a slime cookie that has a chance to make another once you eat it."
- cookietype = /obj/item/slime_cookie/cerulean
- cookies = 3 //You're gonna get more.
-
-/obj/item/slime_cookie/cerulean
- name = "duplicookie"
- desc = "A cerulean cookie with strange proportions. It feels like it could break apart easily."
- icon_state = "cerulean"
- taste = "a sugar cookie"
-
-/obj/item/slime_cookie/cerulean/do_effect(mob/living/M, mob/user)
- if(prob(50))
- to_chat(M, " A piece of [src] breaks off while you chew, and falls to the ground.")
- var/obj/item/slime_cookie/cerulean/C = new(get_turf(M))
- C.taste = taste + " and a sugar cookie"
-
-/obj/item/slimecross/consuming/pyrite
- colour = "pyrite"
- effect_desc = "Creates a slime cookie that randomly colors the target."
- cookietype = /obj/item/slime_cookie/pyrite
-
-/obj/item/slime_cookie/pyrite
- name = "color cookie"
- desc = "A yellow cookie with rainbow-colored icing. Reflects the light strangely."
- icon_state = "pyrite"
- taste = "vanilla and " //Randomly selected color dye.
- var/colour = "#FFFFFF"
-
-/obj/item/slime_cookie/pyrite/Initialize()
- . = ..()
- var/tastemessage = "paint remover"
- switch(rand(1,7))
- if(1)
- tastemessage = "red dye"
- colour = "#FF0000"
- if(2)
- tastemessage = "orange dye"
- colour = "#FFA500"
- if(3)
- tastemessage = "yellow dye"
- colour = "#FFFF00"
- if(4)
- tastemessage = "green dye"
- colour = "#00FF00"
- if(5)
- tastemessage = "blue dye"
- colour = "#0000FF"
- if(6)
- tastemessage = "indigo dye"
- colour = "#4B0082"
- if(7)
- tastemessage = "violet dye"
- colour = "#FF00FF"
- taste += tastemessage
-
-/obj/item/slime_cookie/pyrite/do_effect(mob/living/M, mob/user)
- M.add_atom_colour(colour,WASHABLE_COLOUR_PRIORITY)
-
-/obj/item/slimecross/consuming/red
- colour = "red"
- effect_desc = "Creates a slime cookie that creates a spatter of blood on the floor, while also restoring some of the target's blood."
- cookietype = /obj/item/slime_cookie/red
-
-/obj/item/slime_cookie/red
- name = "blood cookie"
- desc = "A red cookie, oozing a thick red fluid. Vampires might enjoy it."
- icon_state = "red"
- taste = "red velvet and iron"
-
-/obj/item/slime_cookie/red/do_effect(mob/living/M, mob/user)
- new /obj/effect/decal/cleanable/blood(get_turf(M))
- playsound(get_turf(M), 'sound/effects/splat.ogg', 10, TRUE)
- if(iscarbon(M))
- var/mob/living/carbon/C = M
- C.blood_volume += 25 //Half a vampire drain.
-
-/obj/item/slimecross/consuming/green
- colour = "green"
- effect_desc = "Creates a slime cookie that is absolutely disgusting, makes the target vomit, however all reagent in their body are also removed."
- cookietype = /obj/item/slime_cookie/green
-
-/obj/item/slime_cookie/green
- name = "gross cookie"
- desc = "A disgusting green cookie, seeping with pus. You kind of feel ill just looking at it."
- icon_state = "green"
- taste = "the contents of your stomach"
-
-/obj/item/slime_cookie/green/do_effect(mob/living/M, mob/user)
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- H.vomit(25)
- M.reagents.remove_all()
-
-/obj/item/slimecross/consuming/pink
- colour = "pink"
- effect_desc = "Creates a slime cookie that makes the target want to spread the love."
- cookietype = /obj/item/slime_cookie/pink
-
-/obj/item/slime_cookie/pink
- name = "love cookie"
- desc = "A pink cookie with an icing heart. D'aww."
- icon_state = "pink"
- taste = "love and hugs"
-
-/obj/item/slime_cookie/pink/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/lovecookie)
-
-/obj/item/slimecross/consuming/gold
- colour = "gold"
- effect_desc = "Creates a slime cookie that has a gold coin inside."
- cookietype = /obj/item/slime_cookie/gold
-
-/obj/item/slime_cookie/gold
- name = "gilded cookie"
- desc = "A buttery golden cookie, closer to a bread than anything. May good fortune find you."
- icon_state = "gold"
- taste = "sweet cornbread and wealth"
-
-/obj/item/slime_cookie/gold/do_effect(mob/living/M, mob/user)
- var/obj/item/held = M.get_active_held_item() //This should be itself, but just in case...
- M.dropItemToGround(held)
- var/newcoin = /obj/item/coin/gold
- var/obj/item/coin/C = new newcoin(get_turf(M))
- playsound(get_turf(C), 'sound/items/coinflip.ogg', 50, TRUE)
- M.put_in_hand(C)
-
-/obj/item/slimecross/consuming/oil
- colour = "oil"
- effect_desc = "Creates a slime cookie that slows anyone next to the user."
- cookietype = /obj/item/slime_cookie/oil
-
-/obj/item/slime_cookie/oil
- name = "tar cookie"
- desc = "An oily black cookie, which sticks to your hands. Smells like chocolate."
- icon_state = "oil"
- taste = "rich molten chocolate and tar"
-
-/obj/item/slime_cookie/oil/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/tarcookie)
-
-/obj/item/slimecross/consuming/black
- colour = "black"
- effect_desc = "Creates a slime cookie that makes the target look like a spooky skeleton for a little bit."
- cookietype = /obj/item/slime_cookie/black
-
-/obj/item/slime_cookie/black
- name = "spooky cookie"
- desc = "A pitch black cookie with an icing ghost on the front. Spooky!"
- icon_state = "black"
- taste = "ghosts and stuff"
-
-/obj/item/slime_cookie/black/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/spookcookie)
-
-/obj/item/slimecross/consuming/lightpink
- colour = "light pink"
- effect_desc = "Creates a slime cookie that makes the target, and anyone next to the target, pacifistic for a small amount of time."
- cookietype = /obj/item/slime_cookie/lightpink
-
-/obj/item/slime_cookie/lightpink
- name = "peace cookie"
- desc = "A light pink cookie with a peace symbol in the icing. Lovely!"
- icon_state = "lightpink"
- taste = "strawberry icing and P.L.U.R" //Literal candy raver.
-
-/obj/item/slime_cookie/lightpink/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/peacecookie)
-
-/obj/item/slimecross/consuming/adamantine
- colour = "adamantine"
- effect_desc = "Creates a slime cookie that increases the target's resistance to burn damage."
- cookietype = /obj/item/slime_cookie/adamantine
-
-/obj/item/slime_cookie/adamantine
- name = "crystal cookie"
- desc = "A translucent rock candy in the shape of a cookie. Surprisingly chewy."
- icon_state = "adamantine"
- taste = "crystalline sugar and metal"
-
-/obj/item/slime_cookie/adamantine/do_effect(mob/living/M, mob/user)
- M.apply_status_effect(/datum/status_effect/adamantinecookie)
-
-/obj/item/slimecross/consuming/rainbow
- colour = "rainbow"
- effect_desc = "Creates a slime cookie that has the effect of a random cookie."
-
-/obj/item/slimecross/consuming/rainbow/spawncookie()
- var/cookie_type = pick(subtypesof(/obj/item/slime_cookie))
- var/obj/item/slime_cookie/S = new cookie_type(get_turf(src))
- S.name = "rainbow cookie"
- S.desc = "A beautiful rainbow cookie, constantly shifting colors in the light."
- S.icon_state = "rainbow"
- return S
diff --git a/code/modules/research/xenobiology/crossbreeding/industrial.dm b/code/modules/research/xenobiology/crossbreeding/industrial.dm
deleted file mode 100644
index da9387883f0c..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/industrial.dm
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
-Industrial extracts:
- Slowly consume plasma, produce items with it.
-*/
-/obj/item/slimecross/industrial
- name = "industrial extract"
- desc = "A gel-like, sturdy extract, fond of plasma and industry."
- effect = "industrial"
- icon_state = "industrial_still"
- var/plasmarequired = 2 //Units of plasma required to be consumed to produce item.
- var/itempath = /obj/item //The item produced by the extract.
- var/plasmaabsorbed = 0 //Units of plasma aborbed by the extract already. Absorbs at a rate of 2u/obj tick.
- var/itemamount = 1 //How many items to spawn
-
-/obj/item/slimecross/industrial/examine(mob/user)
- . = ..()
- . += "It currently has [plasmaabsorbed] units of plasma floating inside the outer shell, out of [plasmarequired] units."
-
-/obj/item/slimecross/industrial/proc/do_after_spawn(obj/item/spawned)
- return
-
-/obj/item/slimecross/industrial/Initialize()
- . = ..()
- create_reagents(100, INJECTABLE | DRAWABLE)
- START_PROCESSING(SSobj,src)
-
-/obj/item/slimecross/industrial/Destroy()
- STOP_PROCESSING(SSobj,src)
- return ..()
-
-/obj/item/slimecross/industrial/process()
- var/IsWorking = FALSE
- if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 2) && plasmarequired > 1) //Can absorb as much as 2
- IsWorking = TRUE
- reagents.remove_reagent(/datum/reagent/toxin/plasma,2)
- plasmaabsorbed += 2
- else if(reagents.has_reagent(/datum/reagent/toxin/plasma,amount = 1)) //Can absorb as little as 1
- IsWorking = TRUE
- reagents.remove_reagent(/datum/reagent/toxin/plasma,1)
- plasmaabsorbed += 1
-
- if(plasmaabsorbed >= plasmarequired)
- playsound(src, 'sound/effects/attackblob.ogg', 50, TRUE)
- plasmaabsorbed -= plasmarequired
- for(var/i = 0, i < itemamount, i++)
- do_after_spawn(new itempath(get_turf(src)))
- else if(IsWorking)
- playsound(src, 'sound/effects/bubbles.ogg', 5, TRUE)
- if(IsWorking)
- icon_state = "industrial"
- else
- icon_state = "industrial_still"
-
-/obj/item/slimecross/industrial/grey
- colour = "grey"
- effect_desc = "Produces monkey cubes."
- itempath = /obj/item/reagent_containers/food/snacks/monkeycube
- itemamount = 5
-
-/obj/item/slimecross/industrial/orange
- colour = "orange"
- effect_desc = "Produces slime zippo lighters."
- plasmarequired = 6
- itempath = /obj/item/lighter/slime
-
-/obj/item/slimecross/industrial/purple
- colour = "purple"
- effect_desc = "Produces autoinjectors with regen jelly inside."
- plasmarequired = 5
- itempath = /obj/item/slimecrossbeaker/autoinjector/regenpack
-
-/obj/item/slimecross/industrial/blue
- colour = "blue"
- effect_desc = "Produces full fire extinguishers."
- plasmarequired = 10
- itempath = /obj/item/extinguisher
-
-/obj/item/slimecross/industrial/metal
- colour = "metal"
- effect_desc = "Produces metal sheets."
- plasmarequired = 3
- itempath = /obj/item/stack/sheet/metal/ten
-
-/obj/item/slimecross/industrial/yellow
- colour = "yellow"
- effect_desc = "Produces high capacity power cells, which are not fully charged on creation."
- plasmarequired = 5
- itempath = /obj/item/stock_parts/cell/high
-
-/obj/item/slimecross/industrial/yellow/do_after_spawn(obj/item/spawned)
- var/obj/item/stock_parts/cell/high/C = spawned
- if(istype(C))
- C.charge = rand(0,C.maxcharge/2)
-
-/obj/item/slimecross/industrial/darkpurple
- colour = "dark purple"
- effect_desc = "Produces plasma... for plasma."
- plasmarequired = 10
- itempath = /obj/item/stack/sheet/mineral/plasma
-
-/obj/item/slimecross/industrial/darkblue
- colour = "dark blue"
- effect_desc = "Produces one-use fireproofing potions."
- plasmarequired = 6
- itempath = /obj/item/slimepotion/fireproof
-
-/obj/item/slimecross/industrial/darkblue/do_after_spawn(obj/item/spawned)
- var/obj/item/slimepotion/fireproof/potion = spawned
- if(istype(potion))
- potion.uses = 1
-
-/obj/item/slimecross/industrial/silver
- colour = "silver"
- effect_desc = "Produces random food and drink items."
- plasmarequired = 1
- //Item picked below.
-
-/obj/item/slimecross/industrial/silver/process()
- itempath = pick(list(get_random_food(), get_random_drink()))
- ..()
-
-/obj/item/slimecross/industrial/bluespace
- colour = "bluespace"
- effect_desc = "Produces synthetic bluespace crystals."
- plasmarequired = 7
- itempath = /obj/item/stack/ore/bluespace_crystal/artificial
-
-/obj/item/slimecross/industrial/sepia
- colour = "sepia"
- effect_desc = "Produces cameras."
- plasmarequired = 2
- itempath = /obj/item/camera
-
-/obj/item/slimecross/industrial/cerulean
- colour = "cerulean"
- effect_desc = "Produces normal slime extract enhancers."
- plasmarequired = 5
- itempath = /obj/item/slimepotion/enhancer
-
-/obj/item/slimecross/industrial/pyrite
- colour = "pyrite"
- effect_desc = "Produces cans of spraypaint."
- plasmarequired = 2
- itempath = /obj/item/toy/crayon/spraycan
-
-/obj/item/slimecross/industrial/red
- colour = "red"
- effect_desc = "Produces blood orbs."
- plasmarequired = 5
- itempath = /obj/item/slimecrossbeaker/bloodpack
-
-/obj/item/slimecross/industrial/green
- colour = "green"
- effect_desc = "Produces self-use-only slime jelly autoinjectors."
- plasmarequired = 7
- itempath = /obj/item/slimecrossbeaker/autoinjector/slimejelly
-
-/obj/item/slimecross/industrial/pink
- colour = "pink"
- effect_desc = "Produces synthpax and space drug autoinjectors."
- plasmarequired = 6
- itempath = /obj/item/slimecrossbeaker/autoinjector/peaceandlove
-
-/obj/item/slimecross/industrial/gold
- colour = "gold"
- effect_desc = "Produces random coins."
- plasmarequired = 10
-
-/obj/item/slimecross/industrial/gold/process()
- itempath = pick(/obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium)
- ..()
-
-/obj/item/slimecross/industrial/oil
- colour = "oil"
- effect_desc = "Produces IEDs."
- plasmarequired = 4
- itempath = /obj/item/grenade/iedcasing/spawned
-
-/obj/item/slimecross/industrial/black //What does this have to do with black slimes? No clue! Fun, though
- colour = "black"
- effect_desc = "Produces slime brand regenerative cigarettes."
- plasmarequired = 6
- itempath = /obj/item/storage/fancy/cigarettes/cigpack_xeno
-
-/obj/item/slimecross/industrial/lightpink
- colour = "light pink"
- effect_desc = "Produces heart shaped boxes that have candies in them."
- plasmarequired = 3
- itempath = /obj/item/storage/fancy/heart_box
-
-/obj/item/slimecross/industrial/rainbow
- colour = "rainbow"
- effect_desc = "Produces random slime extracts."
- plasmarequired = 5
- //Item picked below.
-
-/obj/item/slimecross/industrial/rainbow/process()
- itempath = pick(subtypesof(/obj/item/slime_extract))
- ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/mutative.dm b/code/modules/research/xenobiology/crossbreeding/mutative.dm
deleted file mode 100644
index 6b58a7aa0c93..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/mutative.dm
+++ /dev/null
@@ -1,32 +0,0 @@
-/obj/item/slimecross/mutative
- name = "mutative extract"
- desc = "It's softly pulsing with mutagenic energy."
- effect = "mutative"
- icon_state = "mutative"
-
-/obj/item/slimecross/mutative/Initialize()
- . = ..()
- create_reagents(10, INJECTABLE | DRAWABLE)
-
-/obj/item/slimecross/mutative/attack_self(mob/user)
- if(!reagents.has_reagent(/datum/reagent/toxin/plasma,10))
- to_chat(user, " This extract needs to be full of plasma to activate!")
- return
- reagents.remove_reagent(/datum/reagent/toxin/plasma,10)
- to_chat(user, " You squeeze the extract, and it absorbs the plasma!")
- playsound(src, 'sound/effects/bubbles.ogg', 50, TRUE)
- playsound(src, 'sound/magic/fireball.ogg', 50, TRUE)
- do_effect(user)
-
-/obj/item/slimecross/mutative/proc/do_effect(mob/user) //If, for whatever reason, you don't want to delete the extract, don't do ..()
- qdel(src)
- return
-
-/obj/item/slimecross/mutative/rainbow
- colour = "rainbow"
- effect_desc = "Hardens into a shard of slimy crystal. Prick yourself with it to bring forth a Slime Guardian."
-
-/obj/item/slimecross/mutative/rainbow/do_effect(mob/user)
- user.visible_message(" [src] collapses in a chromatic flash, transforming into jagged crystal!")
- new /obj/item/guardiancreator/slime(get_turf(user))
- ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/prismatic.dm b/code/modules/research/xenobiology/crossbreeding/prismatic.dm
deleted file mode 100644
index 9cfc4542d526..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/prismatic.dm
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
-Prismatic extracts:
- Becomes an infinite-use paintbrush.
-*/
-/obj/item/slimecross/prismatic
- name = "prismatic extract"
- desc = "It's constantly wet with a semi-transparent, colored goo."
- effect = "prismatic"
- effect_desc = "When used it paints whatever it hits."
- icon_state = "prismatic"
- var/paintcolor = "#FFFFFF"
-
-/obj/item/slimecross/prismatic/afterattack(turf/target, mob/user, proximity)
- if(!proximity)
- return
- if(!istype(target) || isspaceturf(target))
- return
- target.add_atom_colour(paintcolor, WASHABLE_COLOUR_PRIORITY)
- playsound(target, 'sound/effects/slosh.ogg', 20, TRUE)
-
-/obj/item/slimecross/prismatic/grey/
- colour = "grey"
- desc = "It's constantly wet with a pungent-smelling, clear chemical."
-
-/obj/item/slimecross/prismatic/grey/afterattack(turf/target, mob/user, proximity)
- . = ..()
- if(!proximity)
- return
- if(istype(target) && target.color != initial(target.color))
- target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- playsound(target, 'sound/effects/slosh.ogg', 20, TRUE)
-
-/obj/item/slimecross/prismatic/orange
- paintcolor = "#FFA500"
- colour = "orange"
-
-/obj/item/slimecross/prismatic/purple
- paintcolor = "#B19CD9"
- colour = "purple"
-
-/obj/item/slimecross/prismatic/blue
- paintcolor = "#ADD8E6"
- colour = "blue"
-
-/obj/item/slimecross/prismatic/metal
- paintcolor = "#7E7E7E"
- colour = "metal"
-
-/obj/item/slimecross/prismatic/yellow
- paintcolor = "#FFFF00"
- colour = "yellow"
-
-/obj/item/slimecross/prismatic/darkpurple
- paintcolor = "#551A8B"
- colour = "dark purple"
-
-/obj/item/slimecross/prismatic/darkblue
- paintcolor = "#0000FF"
- colour = "dark blue"
-
-/obj/item/slimecross/prismatic/silver
- paintcolor = "#D3D3D3"
- colour = "silver"
-
-/obj/item/slimecross/prismatic/bluespace
- paintcolor = "#32CD32"
- colour = "bluespace"
-
-/obj/item/slimecross/prismatic/sepia
- paintcolor = "#704214"
- colour = "sepia"
-
-/obj/item/slimecross/prismatic/cerulean
- paintcolor = "#2956B2"
- colour = "cerulean"
-
-/obj/item/slimecross/prismatic/pyrite
- paintcolor = "#FAFAD2"
- colour = "pyrite"
-
-/obj/item/slimecross/prismatic/red
- paintcolor = "#FF0000"
- colour = "red"
-
-/obj/item/slimecross/prismatic/green
- paintcolor = "#00FF00"
- colour = "green"
-
-/obj/item/slimecross/prismatic/pink
- paintcolor = "#FF69B4"
- colour = "pink"
-
-/obj/item/slimecross/prismatic/gold
- paintcolor = "#FFD700"
- colour = "gold"
-
-/obj/item/slimecross/prismatic/oil
- paintcolor = "#505050"
- colour = "oil"
-
-/obj/item/slimecross/prismatic/black
- paintcolor = "#000000"
- colour = "black"
-
-/obj/item/slimecross/prismatic/lightpink
- paintcolor = "#FFB6C1"
- colour = "light pink"
-
-/obj/item/slimecross/prismatic/adamantine
- paintcolor = "#008B8B"
- colour = "adamantine"
-
-/obj/item/slimecross/prismatic/rainbow
- paintcolor = "#FFFFFF"
- colour = "rainbow"
-
-/obj/item/slimecross/prismatic/rainbow/attack_self(mob/user)
- var/newcolor = input(user, "Choose the slime color:", "Color change",paintcolor) as color|null
- if(user.get_active_held_item() != src || user.stat != CONSCIOUS || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
- return
- if(!newcolor)
- return
- paintcolor = newcolor
- return
diff --git a/code/modules/research/xenobiology/crossbreeding/recurring.dm b/code/modules/research/xenobiology/crossbreeding/recurring.dm
deleted file mode 100644
index 4a094744f7f8..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/recurring.dm
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-Recurring extracts:
- Generates a new charge every few seconds.
- If depleted of its' last charge, stops working.
-*/
-/obj/item/slimecross/recurring
- name = "recurring extract"
- desc = "A tiny, glowing core, wrapped in several layers of goo."
- effect = "recurring"
- icon_state = "recurring"
- var/extract_type
- var/obj/item/slime_extract/extract
- var/cooldown = 0
- var/max_cooldown = 5 //In sets of 2 seconds.
-
-/obj/item/slimecross/recurring/Initialize()
- . = ..()
- extract = new extract_type(src.loc)
- visible_message(" [src] wraps a layer of goo around itself!")
- extract.name = name
- extract.desc = desc
- extract.icon = icon
- extract.icon_state = icon_state
- extract.color = color
- extract.recurring = TRUE
- src.forceMove(extract)
- START_PROCESSING(SSobj,src)
-
-/obj/item/slimecross/recurring/process()
- if(cooldown > 0)
- cooldown--
- else if(extract.Uses < 10 && extract.Uses > 0)
- extract.Uses++
- cooldown = max_cooldown
- else if(extract.Uses <= 0)
- extract.visible_message(" The light inside [extract] flickers and dies out.")
- extract.desc = "A tiny, inert core, bleeding dark, cerulean-colored goo."
- extract.icon_state = "prismatic"
- qdel(src)
-
-/obj/item/slimecross/recurring/Destroy()
- . = ..()
- STOP_PROCESSING(SSobj,src)
-
-/obj/item/slimecross/recurring/grey
- extract_type = /obj/item/slime_extract/grey
- colour = "grey"
-
-/obj/item/slimecross/recurring/orange
- extract_type = /obj/item/slime_extract/orange
- colour = "orange"
-
-/obj/item/slimecross/recurring/purple
- extract_type = /obj/item/slime_extract/purple
- colour = "purple"
-
-/obj/item/slimecross/recurring/blue
- extract_type = /obj/item/slime_extract/blue
- colour = "blue"
-
-/obj/item/slimecross/recurring/metal
- extract_type = /obj/item/slime_extract/metal
- colour = "metal"
- max_cooldown = 10
-
-/obj/item/slimecross/recurring/yellow
- extract_type = /obj/item/slime_extract/yellow
- colour = "yellow"
- max_cooldown = 10
-
-/obj/item/slimecross/recurring/darkpurple
- extract_type = /obj/item/slime_extract/darkpurple
- colour = "dark purple"
- max_cooldown = 10
-
-/obj/item/slimecross/recurring/darkblue
- extract_type = /obj/item/slime_extract/darkblue
- colour = "dark blue"
-
-/obj/item/slimecross/recurring/silver
- extract_type = /obj/item/slime_extract/silver
- colour = "silver"
-
-/obj/item/slimecross/recurring/bluespace
- extract_type = /obj/item/slime_extract/bluespace
- colour = "bluespace"
-
-/obj/item/slimecross/recurring/sepia
- extract_type = /obj/item/slime_extract/sepia
- colour = "sepia"
- max_cooldown = 18 //No infinite timestop for you!
-
-/obj/item/slimecross/recurring/cerulean
- extract_type = /obj/item/slime_extract/cerulean
- colour = "cerulean"
-
-/obj/item/slimecross/recurring/pyrite
- extract_type = /obj/item/slime_extract/pyrite
- colour = "pyrite"
-
-/obj/item/slimecross/recurring/red
- extract_type = /obj/item/slime_extract/red
- colour = "red"
-
-/obj/item/slimecross/recurring/green
- extract_type = /obj/item/slime_extract/green
- colour = "green"
-
-/obj/item/slimecross/recurring/pink
- extract_type = /obj/item/slime_extract/pink
- colour = "pink"
-
-/obj/item/slimecross/recurring/gold
- extract_type = /obj/item/slime_extract/gold
- colour = "gold"
- max_cooldown = 15
-
-/obj/item/slimecross/recurring/oil
- extract_type = /obj/item/slime_extract/oil
- colour = "oil" //Why would you want this?
-
-/obj/item/slimecross/recurring/black
- extract_type = /obj/item/slime_extract/black
- colour = "black"
-
-/obj/item/slimecross/recurring/lightpink
- extract_type = /obj/item/slime_extract/lightpink
- colour = "light pink"
-
-/obj/item/slimecross/recurring/adamantine
- extract_type = /obj/item/slime_extract/adamantine
- colour = "adamantine"
- max_cooldown = 10
-
-/obj/item/slimecross/recurring/rainbow
- extract_type = /obj/item/slime_extract/rainbow
- colour = "rainbow"
- max_cooldown = 20 //It's pretty powerful.
diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm
deleted file mode 100644
index 75a1201d924a..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
-Regenerative extracts:
- Work like a legion regenerative core.
- Has a unique additional effect.
-*/
-/obj/item/slimecross/regenerative
- name = "regenerative extract"
- desc = "It's filled with a milky substance, and pulses like a heartbeat."
- effect = "regenerative"
- icon_state = "regenerative"
-
- var/oxy_loss = 0
- var/tox_loss = 0
- var/fire_loss = 0
- var/brute_loss = 0
- var/stamina_loss = 0
- var/blood_loss = 100
- var/organ_loss = 3
- var/slime_heal_modifier = 1 //Specialised types only heal half
- var/jelly_amount = 7.5
- var/bone_loss = FALSE
- var/life_loss = FALSE
- var/slime_delay = 10
-
-/obj/item/slimecross/regenerative/proc/core_effect(mob/living/carbon/human/target, mob/user)
- return
-/obj/item/slimecross/regenerative/proc/core_effect_before(mob/living/carbon/human/target, mob/user)
- return
-
-/obj/item/slimecross/regenerative/afterattack(atom/target,mob/user,prox)
- . = ..()
- if(!prox || !isliving(target))
- return
- var/mob/living/H = target
- if(H.stat == DEAD && life_loss)
- slime_delay = 200 //Reviving the dead takes a while, 20 seconds to be exact
- to_chat(user, " You begin using the [src] to try and bring [H] back from the dead...")
- else
- slime_delay = 10
- if(H.stat == DEAD && !life_loss) // Won't revive the dead, except for specific extracts
- to_chat(user, " [src] will not work on the dead!")
- return
- if(H != user)
- if(!do_after(user, slime_delay, H)) // 1 second delay
- return FALSE
- user.visible_message(" [user] crushes the [src] over [H], the milky goo quickly regenerating some of [H.p_their()] injuries!",
- " You squeeze the [src], and it bursts over [H], the milky goo regenerating some of [H.p_their()] injuries.")
- else
- if(!do_after(user, (slime_delay * 1.5), H)) // 1.5 second delay
- return FALSE
- user.visible_message(" [user] crushes the [src] over [user.p_them()]self, the milky goo quickly regenerating some of [user.p_their()] injuries!",
- " You squeeze the [src], and it bursts in your hand, splashing you with milky goo which quickly regenerates some of your injuries!")
-// Slimes are good at healing clone damage, but don't heal other damage types as much. Additionally heals 15 organ damage.
- core_effect_before(H, user) // can affect heal multiplier
- oxy_loss = (12.5 + (H.getOxyLoss() * 0.4 * slime_heal_modifier))
- tox_loss = (12.5 + (H.getToxLoss() * 0.4 * slime_heal_modifier))
- fire_loss = (12.5 + (H.getFireLoss() * 0.4 * slime_heal_modifier))
- brute_loss = (12.5 + (H.getBruteLoss() * 0.4 * slime_heal_modifier))
- stamina_loss = (12.5 + (H.getStaminaLoss() * 0.5 * slime_heal_modifier))
- core_effect(H, user) // can affect specific healing values
- H.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,jelly_amount) // Splits the healing effect across an instant heal, and a smaller heal after.
- H.specific_heal(brute_amt = brute_loss, fire_amt = fire_loss, tox_amt = tox_loss, oxy_amt = oxy_loss, stam_amt = stamina_loss, organ_amt = organ_loss, clone_amt = 100, blood_amt = blood_loss, specific_bones = bone_loss, specific_revive = life_loss)
- playsound(target, 'sound/effects/splat.ogg', 40, TRUE)
- qdel(src)
-
-/obj/item/slimecross/regenerative/grey
- colour = "grey" //Has no bonus effect.
- effect_desc = "Partially heals the target and does nothing else."
-
-/obj/item/slimecross/regenerative/orange
- colour = "orange"
-
-/obj/item/slimecross/regenerative/orange/core_effect_before(mob/living/target, mob/user)
- target.visible_message(" The [src] boils over!")
- for(var/turf/turf in range(1,target))
- if(!locate(/obj/effect/hotspot) in turf)
- new /obj/effect/hotspot(turf)
-
-/obj/item/slimecross/regenerative/purple
- colour = "purple"
- effect_desc = "Weakly heals the target, but treats toxin damage especially well. Additionally injects them with some additional regen jelly."
-
-/obj/item/slimecross/regenerative/purple/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.75
-
-/obj/item/slimecross/regenerative/purple/core_effect(mob/living/target, mob/user)
- tox_loss = (10 + (target.getBruteLoss() * 0.8))
- jelly_amount += 10
-
-/obj/item/slimecross/regenerative/blue
- colour = "blue"
- effect_desc = "Weakly heals the target, but extra effective at treating burns. Additionally makes the floor wet."
-
-/obj/item/slimecross/regenerative/blue/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.5
-
-/obj/item/slimecross/regenerative/blue/core_effect(mob/living/target, mob/user)
- if(isturf(target.loc))
- var/turf/open/T = get_turf(target)
- T.MakeSlippery(TURF_WET_WATER, min_wet_time = 10, wet_time_to_add = 5)
- target.visible_message(" The milky goo in the extract gets all over the floor!")
- fire_loss = (10 + (target.getFireLoss() * 0.8))
- jelly_amount *= 0.2
-
-/obj/item/slimecross/regenerative/metal
- colour = "metal"
- effect_desc = "Barely heals the target, but fixes their bones .Additionally encases the target in a locker."
-
-/obj/item/slimecross/regenerative/metal/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.1
-
-/obj/item/slimecross/regenerative/metal/core_effect(mob/living/target, mob/user)
- target.visible_message(" The milky goo hardens and reshapes itself, encasing [target]!")
- var/obj/structure/closet/C = new /obj/structure/closet(target.loc)
- C.name = "slimy closet"
- C.desc = "Looking closer, it seems to be made of a sort of solid, opaque, metal-like goo."
- target.forceMove(C)
- bone_loss = TRUE
- jelly_amount *= 0.2
-
-/obj/item/slimecross/regenerative/yellow
- colour = "yellow"
- effect_desc = "Partially heals the target, can revive the dead. additionally Partially recharges a single item on the target."
- life_loss = TRUE //Will revive the dead. Heals normally unless target is dead, in which case it heals less.
-
-/obj/item/slimecross/regenerative/yellow/core_effect_before(mob/living/target, mob/user)
- if(target.stat == DEAD)
- slime_heal_modifier = 0.1 //use surgery to fix wounds
- else
- slime_heal_modifier = 0.75 //discourages spamming these to revive a target, combine with other cores
-
-/obj/item/slimecross/regenerative/yellow/core_effect(mob/living/target, mob/user)
- var/list/batteries = list()
- for(var/obj/item/stock_parts/cell/C in target.GetAllContents())
- if(C.charge < C.maxcharge)
- batteries += C
- if(batteries.len)
- var/obj/item/stock_parts/cell/ToCharge = pick(batteries)
- ToCharge.charge = ToCharge.maxcharge
- to_chat(target, " You feel a strange electrical pulse, and one of your electrical items was recharged.")
- if(target.stat == DEAD)
- blood_loss = 100
- organ_loss = 30 // More effective at fixing organs if the target is dead
- jelly_amount *= 0.2
- target.visible_message(" The [src] sparks as it tries to revive [target]!")
-
-/obj/item/slimecross/regenerative/darkpurple
- colour = "dark purple"
- effect_desc = "Partially heals the target and gives them purple clothing if they are naked."
-
-/obj/item/slimecross/regenerative/darkpurple/core_effect(mob/living/target, mob/user)
- var/equipped = 0
- equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), ITEM_SLOT_FEET)
- equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), ITEM_SLOT_ICLOTHING)
- equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), ITEM_SLOT_GLOVES)
- equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), ITEM_SLOT_HEAD)
- if(equipped > 0)
- target.visible_message(" The milky goo congeals into clothing!")
-
-/obj/item/slimecross/regenerative/darkblue
- colour = "dark blue"
- effect_desc = "Partially heals the target and fireproofs their clothes."
-
-/obj/item/slimecross/regenerative/darkblue/core_effect(mob/living/target, mob/user)
- if(!ishuman(target))
- return
- var/mob/living/carbon/human/H = target
- var/fireproofed = FALSE
- if(H.get_item_by_slot(ITEM_SLOT_OCLOTHING))
- fireproofed = TRUE
- var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_OCLOTHING)
- fireproof(C)
- if(H.get_item_by_slot(ITEM_SLOT_HEAD))
- fireproofed = TRUE
- var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_HEAD)
- fireproof(C)
- if(fireproofed)
- target.visible_message(" Some of [target]'s clothing gets coated in the goo, and turns blue!")
-
-/obj/item/slimecross/regenerative/darkblue/proc/fireproof(obj/item/clothing/C)
- C.name = "fireproofed [C.name]"
- C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY)
- C.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- C.heat_protection = C.body_parts_covered
- C.resistance_flags |= FIRE_PROOF
-
-/obj/item/slimecross/regenerative/silver
- colour = "silver"
- effect_desc = "Partially heals the target and makes their belly feel round and full."
-
-/obj/item/slimecross/regenerative/silver/core_effect(mob/living/target, mob/user)
- target.set_nutrition(NUTRITION_LEVEL_FULL - 1)
- to_chat(target, " You feel satiated.")
-
-/obj/item/slimecross/regenerative/bluespace
- colour = "bluespace"
- effect_desc = "Partially heals the target and teleports them to where this core was created."
- var/turf/open/T
-
-/obj/item/slimecross/regenerative/bluespace/core_effect(mob/living/target, mob/user)
- target.visible_message(" [src] disappears in a shower of sparks!"," The milky goo teleports you somewhere it remembers!")
- do_sparks(5,FALSE,target)
- target.forceMove(T)
- do_sparks(5,FALSE,target)
-
-/obj/item/slimecross/regenerative/bluespace/Initialize()
- . = ..()
- T = get_turf(src)
-
-/obj/item/slimecross/regenerative/sepia
- colour = "sepia"
- effect_desc = "Partially heals the target and stops time."
-
-/obj/item/slimecross/regenerative/sepia/core_effect_before(mob/living/target, mob/user)
- to_chat(target, " You try to forget how you feel.")
- target.AddComponent(/datum/component/dejavu)
-
-/obj/item/slimecross/regenerative/cerulean
- colour = "cerulean"
- effect_desc = "Slightly heals the target, but provides a boost of oxygen for a while. Additionally makes a second regenerative core with no special effects."
-
-/obj/item/slimecross/regenerative/cerulean/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.5
-
-/obj/item/slimecross/regenerative/cerulean/core_effect(mob/living/target, mob/user)
- src.forceMove(user.loc)
- var/obj/item/slimecross/X = new /obj/item/slimecross/regenerative(user.loc)
- X.name = name
- X.desc = desc
- user.put_in_active_hand(X)
- oxy_loss = 150
- target.reagents.add_reagent(/datum/reagent/medicine/salbutamol,15) //Similar to the luminescent effect, lets you breathe without oxygen for a while.
- to_chat(user, " Some of the milky goo congeals in your hand!")
-
-/obj/item/slimecross/regenerative/pyrite
- colour = "pyrite"
- effect_desc = "Partially heals and randomly colors the target."
-
-/obj/item/slimecross/regenerative/pyrite/core_effect(mob/living/target, mob/user)
- target.visible_message(" The milky goo coating [target] leaves [target.p_them()] a different color!")
- target.add_atom_colour(rgb(rand(0,255),rand(0,255),rand(0,255)),WASHABLE_COLOUR_PRIORITY)
-
-/obj/item/slimecross/regenerative/red
- colour = "red"
- effect_desc = "Slightly heals the target and injects them with a lot of blood, what a rush!"
-
-/obj/item/slimecross/regenerative/red/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.5
-
-/obj/item/slimecross/regenerative/red/core_effect(mob/living/target, mob/user)
- to_chat(target, " You feel... faster.")
- target.reagents.add_reagent(/datum/reagent/medicine/ephedrine,3)
- blood_loss += 700
-
-/obj/item/slimecross/regenerative/green
- colour = "green"
- effect_desc = "Weakly heals the target, but fixes their organs .Additionally changes the spieces or color of a slime or jellyperson."
-
-/obj/item/slimecross/regenerative/green/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.5
-
-/obj/item/slimecross/regenerative/green/core_effect(mob/living/target, mob/user)
- if(isslime(target))
- target.visible_message(" The [target] suddenly changes color!")
- var/mob/living/simple_animal/slime/S = target
- S.random_colour()
- organ_loss += 17
-
-
-/obj/item/slimecross/regenerative/pink
- colour = "pink"
- effect_desc = "Partially heals the target and injects them with some krokodil."
-
-/obj/item/slimecross/regenerative/pink/core_effect(mob/living/target, mob/user)
- to_chat(target, " You feel more calm.")
- target.reagents.add_reagent(/datum/reagent/drug/krokodil,4)
-
-/obj/item/slimecross/regenerative/gold
- colour = "gold"
- effect_desc = "Partially heals the target and produces a random coin."
-
-/obj/item/slimecross/regenerative/gold/core_effect(mob/living/target, mob/user)
- var/newcoin = pick(/obj/item/coin/silver, /obj/item/coin/iron, /obj/item/coin/gold, /obj/item/coin/diamond, /obj/item/coin/plasma, /obj/item/coin/uranium)
- var/obj/item/coin/C = new newcoin(target.loc)
- playsound(C, 'sound/items/coinflip.ogg', 50, TRUE)
- target.put_in_hand(C)
-
-/obj/item/slimecross/regenerative/oil
- colour = "oil"
- effect_desc = "Partially heals the target and flashes everyone in sight."
-
-/obj/item/slimecross/regenerative/oil/core_effect(mob/living/target, mob/user)
- playsound(src, 'sound/weapons/flash.ogg', 100, TRUE)
- for(var/mob/living/L in view(user,7))
- L.flash_act()
-
-/obj/item/slimecross/regenerative/black
- colour = "black"
- effect_desc = "Partially heals the target and creates a duplicate of them, that drops dead soon after."
-
-/obj/item/slimecross/regenerative/black/core_effect_before(mob/living/target, mob/user)
- var/dummytype = target.type
- var/mob/living/dummy = new dummytype(target.loc)
- to_chat(target, " The milky goo flows from your skin, forming an imperfect copy of you.")
- if(iscarbon(target))
- var/mob/living/carbon/T = target
- var/mob/living/carbon/D = dummy
- T.dna.transfer_identity(D)
- D.updateappearance(mutcolor_update=1)
- D.real_name = T.real_name
- dummy.adjustBruteLoss(target.getBruteLoss())
- dummy.adjustFireLoss(target.getFireLoss())
- dummy.adjustToxLoss(target.getToxLoss())
- dummy.adjustOxyLoss(200)
-
-/obj/item/slimecross/regenerative/lightpink
- colour = "light pink"
- effect_desc = "Partially heals the target and also heals the user."
-
-// Doesn't heal the user as much as the target
-/obj/item/slimecross/regenerative/lightpink/core_effect(mob/living/target, mob/user)
- if(!isliving(user))
- return
- if(target == user)
- return
- var/mob/living/U = user
- var/oxy_loss = (10 + (U.getOxyLoss() * 0.3))
- var/tox_loss = (10 + (U.getToxLoss() * 0.3))
- var/fire_loss = (10 + (U.getFireLoss() * 0.3))
- var/brute_loss = (10 + (U.getBruteLoss() * 0.3))
- var/stamina_loss = (10 + (U.getStaminaLoss() * 0.35))
- U.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10) // Splits the healing effect across an instant heal, and a smaller heal after.
- U.specific_heal(brute_amt = brute_loss, fire_amt = fire_loss, tox_amt = tox_loss, oxy_amt = oxy_loss, stam_amt = stamina_loss, organ_amt = 2, clone_amt = 100)
- to_chat(U, " Some of the milky goo sprays onto you, as well!")
-
-/obj/item/slimecross/regenerative/adamantine
- colour = "adamantine"
- effect_desc = "weakly heals the target, but extra effective at treating brute trauma. Additionally boosts their armor."
-
-/obj/item/slimecross/regenerative/adamantine/core_effect_before(mob/living/target, mob/user)
- slime_heal_modifier = 0.3
-
-/obj/item/slimecross/regenerative/adamantine/core_effect(mob/living/target, mob/user) //WIP - Find out why this doesn't work.
- target.apply_status_effect(STATUS_EFFECT_SLIMESKIN)
- brute_loss = (10 + (target.getBruteLoss() * 0.65)) //most common damage type, let's not go overboard
- jelly_amount *= 0.5
-
-/obj/item/slimecross/regenerative/rainbow
- colour = "rainbow"
- effect_desc = "Partially heals the target and temporarily makes them immortal, but pacifistic."
-
-/obj/item/slimecross/regenerative/rainbow/core_effect(mob/living/target, mob/user)
- target.apply_status_effect(STATUS_EFFECT_RAINBOWPROTECTION)
diff --git a/code/modules/research/xenobiology/crossbreeding/reproductive.dm b/code/modules/research/xenobiology/crossbreeding/reproductive.dm
deleted file mode 100644
index f51c5a271177..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/reproductive.dm
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
-Reproductive extracts:
- When fed three monkey cubes, produces between
- 1 and 4 normal slime extracts of the same colour.
-*/
-/obj/item/slimecross/reproductive
- name = "reproductive extract"
- desc = "It pulses with a strange hunger."
- icon_state = "reproductive"
- effect = "reproductive"
- effect_desc = "When fed monkey cubes it produces more extracts. Bio bag compatible as well."
- var/extract_type = /obj/item/slime_extract/
- var/cubes_eaten = 0
- var/last_produce = 0
- var/cooldown = 30 // 3 seconds.
-
-/obj/item/slimecross/reproductive/attackby(obj/item/O, mob/user)
- if((last_produce + cooldown) > world.time)
- to_chat(user, " [src] is still digesting!")
- return
- if(istype(O, /obj/item/storage/bag/bio))
- var/list/inserted = list()
- SEND_SIGNAL(O, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/monkeycube, src, 1, null, null, user, inserted)
- if(inserted.len)
- var/obj/item/reagent_containers/food/snacks/monkeycube/M = inserted[1]
- if(istype(M))
- eat_cube(M, user)
- else
- to_chat(user, " There are no monkey cubes in the bio bag!")
- if(istype(O,/obj/item/reagent_containers/food/snacks/monkeycube))
- eat_cube(O, user)
- if(cubes_eaten >= 3)
- var/cores = rand(1,4)
- visible_message(" [src] briefly swells to a massive size, and expels [cores] extract[cores > 1 ? "s":""]!")
- playsound(src, 'sound/effects/splat.ogg', 40, TRUE)
- last_produce = world.time
- for(var/i = 0, i < cores, i++)
- new extract_type(get_turf(loc))
- cubes_eaten = 0
-
-/obj/item/slimecross/reproductive/proc/eat_cube(obj/item/reagent_containers/food/snacks/monkeycube, mob/user)
- qdel(monkeycube)
- cubes_eaten++
- to_chat(user, " You feed [monkeycube] to [src], and it pulses gently.")
- playsound(src, 'sound/items/eatfood.ogg', 20, TRUE)
-
-/obj/item/slimecross/reproductive/grey
- extract_type = /obj/item/slime_extract/grey
- colour = "grey"
-
-/obj/item/slimecross/reproductive/orange
- extract_type = /obj/item/slime_extract/orange
- colour = "orange"
-
-/obj/item/slimecross/reproductive/purple
- extract_type = /obj/item/slime_extract/purple
- colour = "purple"
-
-/obj/item/slimecross/reproductive/blue
- extract_type = /obj/item/slime_extract/blue
- colour = "blue"
-
-/obj/item/slimecross/reproductive/metal
- extract_type = /obj/item/slime_extract/metal
- colour = "metal"
-
-/obj/item/slimecross/reproductive/yellow
- extract_type = /obj/item/slime_extract/yellow
- colour = "yellow"
-
-/obj/item/slimecross/reproductive/darkpurple
- extract_type = /obj/item/slime_extract/darkpurple
- colour = "dark purple"
-
-/obj/item/slimecross/reproductive/darkblue
- extract_type = /obj/item/slime_extract/darkblue
- colour = "dark blue"
-
-/obj/item/slimecross/reproductive/silver
- extract_type = /obj/item/slime_extract/silver
- colour = "silver"
-
-/obj/item/slimecross/reproductive/bluespace
- extract_type = /obj/item/slime_extract/bluespace
- colour = "bluespace"
-
-/obj/item/slimecross/reproductive/sepia
- extract_type = /obj/item/slime_extract/sepia
- colour = "sepia"
-
-/obj/item/slimecross/reproductive/cerulean
- extract_type = /obj/item/slime_extract/cerulean
- colour = "cerulean"
-
-/obj/item/slimecross/reproductive/pyrite
- extract_type = /obj/item/slime_extract/pyrite
- colour = "pyrite"
-
-/obj/item/slimecross/reproductive/red
- extract_type = /obj/item/slime_extract/red
- colour = "red"
-
-/obj/item/slimecross/reproductive/green
- extract_type = /obj/item/slime_extract/green
- colour = "green"
-
-/obj/item/slimecross/reproductive/pink
- extract_type = /obj/item/slime_extract/pink
- colour = "pink"
-
-/obj/item/slimecross/reproductive/gold
- extract_type = /obj/item/slime_extract/gold
- colour = "gold"
-
-/obj/item/slimecross/reproductive/oil
- extract_type = /obj/item/slime_extract/oil
- colour = "oil"
-
-/obj/item/slimecross/reproductive/black
- extract_type = /obj/item/slime_extract/black
- colour = "black"
-
-/obj/item/slimecross/reproductive/lightpink
- extract_type = /obj/item/slime_extract/lightpink
- colour = "light pink"
-
-/obj/item/slimecross/reproductive/adamantine
- extract_type = /obj/item/slime_extract/adamantine
- colour = "adamantine"
-
-/obj/item/slimecross/reproductive/rainbow
- extract_type = /obj/item/slime_extract/rainbow
- colour = "rainbow"
diff --git a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm b/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm
deleted file mode 100644
index 814083c3bb50..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/selfsustaining.dm
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-Self-sustaining extracts:
- Produces 4 extracts that do not need reagents.
-*/
-/obj/item/slimecross/selfsustaining
- name = "self-sustaining extract"
- effect = "self-sustaining"
- icon_state = "selfsustaining"
- var/extract_type = /obj/item/slime_extract
-
-/obj/item/autoslime
- name = "autoslime"
- desc = "It resembles a normal slime extract, but seems filled with a strange, multi-colored fluid."
- var/obj/item/slime_extract/extract
- var/effect_desc = "A self-sustaining slime extract. When used, lets you choose which reaction you want."
-
-//Just divides into the actual item.
-/obj/item/slimecross/selfsustaining/Initialize()
- ..()
- visible_message(" The [src] shudders, and splits into four smaller extracts.")
- for(var/i = 0, i < 4, i++)
- var/obj/item/autoslime/A = new /obj/item/autoslime(src.loc)
- var/obj/item/slime_extract/X = new extract_type(A)
- A.extract = X
- A.icon = icon
- A.icon_state = icon_state
- A.color = color
- A.name = "self-sustaining " + colour + " extract"
- return INITIALIZE_HINT_QDEL
-
-/obj/item/autoslime/Initialize()
- return ..()
-
-/obj/item/autoslime/attack_self(mob/user)
- var/reagentselect = input(user, "Choose the reagent the extract will produce.", "Self-sustaining Reaction") as null|anything in sortList(extract.activate_reagents, /proc/cmp_typepaths_asc)
- var/amount = 5
- var/secondary
-
- if (user.get_active_held_item() != src || user.stat != CONSCIOUS || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
- return
- if(!reagentselect)
- return
- if(reagentselect == "lesser plasma")
- amount = 4
- reagentselect = /datum/reagent/toxin/plasma
- if(reagentselect == "holy water and uranium")
- reagentselect = /datum/reagent/water/holywater
- secondary = /datum/reagent/uranium
- extract.forceMove(user.drop_location())
- qdel(src)
- user.put_in_active_hand(extract)
- extract.reagents.add_reagent(reagentselect,amount)
- if(secondary)
- extract.reagents.add_reagent(secondary,amount)
-
-/obj/item/autoslime/examine(mob/user)
- . = ..()
- if(effect_desc)
- . += " [effect_desc]"
-
-//Different types.
-
-/obj/item/slimecross/selfsustaining/grey
- extract_type = /obj/item/slime_extract/grey
- colour = "grey"
-
-/obj/item/slimecross/selfsustaining/orange
- extract_type = /obj/item/slime_extract/orange
- colour = "orange"
-
-/obj/item/slimecross/selfsustaining/purple
- extract_type = /obj/item/slime_extract/purple
- colour = "purple"
-
-/obj/item/slimecross/selfsustaining/blue
- extract_type = /obj/item/slime_extract/blue
- colour = "blue"
-
-/obj/item/slimecross/selfsustaining/metal
- extract_type = /obj/item/slime_extract/metal
- colour = "metal"
-
-/obj/item/slimecross/selfsustaining/yellow
- extract_type = /obj/item/slime_extract/yellow
- colour = "yellow"
-
-/obj/item/slimecross/selfsustaining/darkpurple
- extract_type = /obj/item/slime_extract/darkpurple
- colour = "dark purple"
-
-/obj/item/slimecross/selfsustaining/darkblue
- extract_type = /obj/item/slime_extract/darkblue
- colour = "dark blue"
-
-/obj/item/slimecross/selfsustaining/silver
- extract_type = /obj/item/slime_extract/silver
- colour = "silver"
-
-/obj/item/slimecross/selfsustaining/bluespace
- extract_type = /obj/item/slime_extract/bluespace
- colour = "bluespace"
-
-/obj/item/slimecross/selfsustaining/sepia
- extract_type = /obj/item/slime_extract/sepia
- colour = "sepia"
-
-/obj/item/slimecross/selfsustaining/cerulean
- extract_type = /obj/item/slime_extract/cerulean
- colour = "cerulean"
-
-/obj/item/slimecross/selfsustaining/pyrite
- extract_type = /obj/item/slime_extract/pyrite
- colour = "pyrite"
-
-/obj/item/slimecross/selfsustaining/red
- extract_type = /obj/item/slime_extract/red
- colour = "red"
-
-/obj/item/slimecross/selfsustaining/green
- extract_type = /obj/item/slime_extract/green
- colour = "green"
-
-/obj/item/slimecross/selfsustaining/pink
- extract_type = /obj/item/slime_extract/pink
- colour = "pink"
-
-/obj/item/slimecross/selfsustaining/gold
- extract_type = /obj/item/slime_extract/gold
- colour = "gold"
-
-/obj/item/slimecross/selfsustaining/oil
- extract_type = /obj/item/slime_extract/oil
- colour = "oil"
-
-/obj/item/slimecross/selfsustaining/black
- extract_type = /obj/item/slime_extract/black
- colour = "black"
-
-/obj/item/slimecross/selfsustaining/lightpink
- extract_type = /obj/item/slime_extract/lightpink
- colour = "light pink"
-
-/obj/item/slimecross/selfsustaining/adamantine
- extract_type = /obj/item/slime_extract/adamantine
- colour = "adamantine"
-
-/obj/item/slimecross/selfsustaining/rainbow
- extract_type = /obj/item/slime_extract/rainbow
- colour = "rainbow"
diff --git a/code/modules/research/xenobiology/crossbreeding/stabilized.dm b/code/modules/research/xenobiology/crossbreeding/stabilized.dm
deleted file mode 100644
index eee23636f780..000000000000
--- a/code/modules/research/xenobiology/crossbreeding/stabilized.dm
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-Stabilized extracts:
- Provides a passive buff to the holder.
-*/
-
-//To add: Create an effect in crossbreeding/_status_effects.dm with the name "/datum/status_effect/stabilized/[color]"
-//Status effect will automatically be applied while held, and lost on drop.
-
-/obj/item/slimecross/stabilized
- name = "stabilized extract"
- desc = "It seems inert, but anything it touches glows softly..."
- effect = "stabilized"
- icon_state = "stabilized"
- var/datum/status_effect/linked_effect
- var/mob/living/owner
-
-/obj/item/slimecross/stabilized/Initialize()
- . = ..()
- START_PROCESSING(SSobj,src)
-
-/obj/item/slimecross/stabilized/Destroy()
- STOP_PROCESSING(SSobj,src)
- qdel(linked_effect)
- return ..()
-
-/obj/item/slimecross/stabilized/process()
- var/humanfound = null
- if(ishuman(loc))
- humanfound = loc
- if(ishuman(loc.loc)) //Check if in backpack.
- humanfound = (loc.loc)
- if(!humanfound)
- return
- var/mob/living/carbon/human/H = humanfound
- var/effectpath = /datum/status_effect/stabilized
- var/static/list/effects = subtypesof(/datum/status_effect/stabilized)
- for(var/X in effects)
- var/datum/status_effect/stabilized/S = X
- if(initial(S.colour) == colour)
- effectpath = S
- break
- if(!H.has_status_effect(effectpath))
- var/datum/status_effect/stabilized/S = H.apply_status_effect(effectpath)
- owner = H
- S.linked_extract = src
- STOP_PROCESSING(SSobj,src)
-
-
-
-//Colors and subtypes:
-/obj/item/slimecross/stabilized/grey
- colour = "grey"
- effect_desc = "Makes slimes friendly to the owner"
-
-/obj/item/slimecross/stabilized/orange
- colour = "orange"
- effect_desc = "Passively tries to increase or decrease the owner's body temperature to normal"
-
-/obj/item/slimecross/stabilized/purple
- colour = "purple"
- effect_desc = "Provides a regeneration effect"
-
-/obj/item/slimecross/stabilized/blue
- colour = "blue"
- effect_desc = "Makes the owner immune to slipping on water, soap or foam. Space lube and ice are still too slippery."
-
-/obj/item/slimecross/stabilized/metal
- colour = "metal"
- effect_desc = "Every 30 seconds, adds a sheet of material to a random stack in the owner's backpack."
-
-/obj/item/slimecross/stabilized/yellow
- colour = "yellow"
- effect_desc = "Every ten seconds it recharges a device on the owner by 10%."
-
-/obj/item/slimecross/stabilized/darkpurple
- colour = "dark purple"
- effect_desc = "Gives you burning fingertips, automatically cooking any microwavable food you hold."
-
-/obj/item/slimecross/stabilized/darkblue
- colour = "dark blue"
- effect_desc = "Slowly extinguishes the owner if they are on fire, also wets items like monkey cubes, creating a monkey."
-
-/obj/item/slimecross/stabilized/silver
- colour = "silver"
- effect_desc = "Slows the rate at which the owner loses nutrition"
-
-/obj/item/slimecross/stabilized/bluespace
- colour = "bluespace"
- effect_desc = "On a two minute cooldown, when the owner has taken enough damage, they are teleported to a safe place."
-
-/obj/item/slimecross/stabilized/sepia
- colour = "sepia"
- effect_desc = "Randomly adjusts the owner's speed."
-
-/obj/item/slimecross/stabilized/cerulean
- colour = "cerulean"
- effect_desc = "Creates a duplicate of the owner. If the owner dies they will take control of the duplicate, unless the death was from beheading or gibbing."
-
-/obj/item/slimecross/stabilized/pyrite
- colour = "pyrite"
- effect_desc = "Randomly colors the owner every few seconds."
-
-/obj/item/slimecross/stabilized/red
- colour = "red"
- effect_desc = "Nullifies all equipment based slowdowns."
-
-/obj/item/slimecross/stabilized/green
- colour = "green"
- effect_desc = "Changes the owner's name and appearance while holding this extract."
-
-/obj/item/slimecross/stabilized/pink
- colour = "pink"
- effect_desc = "As long as no creatures are harmed in the owner's presense, they will not attack you. If the peace is broken it takes two minutes to restore."
-
-/obj/item/slimecross/stabilized/gold
- colour = "gold"
- effect_desc = "Creates a pet when held."
- var/mob_type
- var/datum/mind/saved_mind
- var/mob_name = "Familiar"
-
-/obj/item/slimecross/stabilized/gold/proc/generate_mobtype()
- var/static/list/mob_spawn_pets = list()
- if(mob_spawn_pets.len <= 0)
- for(var/T in typesof(/mob/living/simple_animal))
- var/mob/living/simple_animal/SA = T
- switch(initial(SA.gold_core_spawnable))
- if(FRIENDLY_SPAWN)
- mob_spawn_pets += T
- mob_type = pick(mob_spawn_pets)
-
-/obj/item/slimecross/stabilized/gold/Initialize()
- . = ..()
- generate_mobtype()
-
-/obj/item/slimecross/stabilized/gold/attack_self(mob/user)
- var/choice = input(user, "Which do you want to reset?", "Familiar Adjustment") as null|anything in sortList(list("Familiar Location", "Familiar Species", "Familiar Sentience", "Familiar Name"))
- if(!user.canUseTopic(src, BE_CLOSE))
- return
- if(isliving(user))
- var/mob/living/L = user
- if(L.has_status_effect(/datum/status_effect/stabilized/gold))
- L.remove_status_effect(/datum/status_effect/stabilized/gold)
- if(choice == "Familiar Location")
- to_chat(user, " You prod [src], and it shudders slightly.")
- START_PROCESSING(SSobj, src)
- if(choice == "Familiar Species")
- to_chat(user, " You squeeze [src], and a shape seems to shift around inside.")
- generate_mobtype()
- START_PROCESSING(SSobj, src)
- if(choice == "Familiar Sentience")
- to_chat(user, " You poke [src], and it lets out a glowing pulse.")
- saved_mind = null
- START_PROCESSING(SSobj, src)
- if(choice == "Familiar Name")
- var/newname = sanitize_name(stripped_input(user, "Would you like to change the name of [mob_name]", "Name change", mob_name, MAX_NAME_LEN))
- if(newname)
- mob_name = newname
- to_chat(user, " You speak softly into [src], and it shakes slightly in response.")
- START_PROCESSING(SSobj, src)
-
-/obj/item/slimecross/stabilized/oil
- colour = "oil"
- effect_desc = "The owner will violently explode when they die while holding this extract."
-
-/obj/item/slimecross/stabilized/black
- colour = "black"
- effect_desc = "While strangling someone, the owner's hands melt around their neck, draining their life in exchange for food and healing."
-
-/obj/item/slimecross/stabilized/lightpink
- colour = "light pink"
- effect_desc = "The owner moves at high speeds while holding this extract, also stabilizes anyone in critical condition around you using Epinephrine."
-
-/obj/item/slimecross/stabilized/adamantine
- colour = "adamantine"
- effect_desc = "Owner gains a slight boost in damage resistance to all types."
-
-/obj/item/slimecross/stabilized/rainbow
- colour = "rainbow"
- effect_desc = "Accepts a regenerative extract and automatically uses it if the owner enters a critical condition."
- var/obj/item/slimecross/regenerative/regencore
-
-/obj/item/slimecross/stabilized/rainbow/attackby(obj/item/O, mob/user)
- var/obj/item/slimecross/regenerative/regen = O
- if(istype(regen) && !regencore)
- to_chat(user, " You place [O] in [src], prepping the extract for automatic application!")
- regencore = regen
- regen.forceMove(src)
- return
- return ..()
diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm
deleted file mode 100644
index 81ac7db98b01..000000000000
--- a/code/modules/research/xenobiology/xenobio_camera.dm
+++ /dev/null
@@ -1,473 +0,0 @@
-//Xenobio control console
-/mob/camera/aiEye/remote/xenobio
- visible_icon = TRUE
- icon = 'icons/mob/cameramob.dmi'
- icon_state = "generic_camera"
- var/allowed_area = null
-
-/mob/camera/aiEye/remote/xenobio/Initialize()
- var/area/A = get_area(loc)
- allowed_area = A.name
- . = ..()
-
-/mob/camera/aiEye/remote/xenobio/setLoc(t)
- var/area/new_area = get_area(t)
- if(new_area && new_area.name == allowed_area || new_area && (new_area.area_flags & XENOBIOLOGY_COMPATIBLE))
- return ..()
- else
- return
-
-/obj/machinery/computer/camera_advanced/xenobio
- name = "Slime management console"
- desc = "A computer used for remotely handling slimes."
- networks = list("ss13")
- circuit = /obj/item/circuitboard/computer/xenobiology
- var/datum/action/innate/slime_place/slime_place_action
- var/datum/action/innate/slime_pick_up/slime_up_action
- var/datum/action/innate/feed_slime/feed_slime_action
- var/datum/action/innate/monkey_recycle/monkey_recycle_action
- var/datum/action/innate/slime_scan/scan_action
- var/datum/action/innate/feed_potion/potion_action
- var/datum/action/innate/hotkey_help/hotkey_help
-
- var/obj/machinery/monkey_recycler/connected_recycler
- var/list/stored_slimes
- var/obj/item/slimepotion/slime/current_potion
- var/max_slimes = 5
- var/monkeys = 0
-
- icon_screen = "slime_comp"
- icon_keyboard = "rd_key"
-
- light_color = LIGHT_COLOR_PINK
-
-/obj/machinery/computer/camera_advanced/xenobio/Initialize(mapload)
- . = ..()
- slime_place_action = new
- slime_up_action = new
- feed_slime_action = new
- monkey_recycle_action = new
- scan_action = new
- potion_action = new
- hotkey_help = new
- stored_slimes = list()
- for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers)
- if(get_area(recycler.loc) == get_area(loc))
- connected_recycler = recycler
- connected_recycler.connected += src
-
-/obj/machinery/computer/camera_advanced/xenobio/Destroy()
- QDEL_NULL(current_potion)
- for(var/thing in stored_slimes)
- var/mob/living/simple_animal/slime/S = thing
- S.forceMove(drop_location())
- stored_slimes.Cut()
- if(connected_recycler)
- connected_recycler.connected -= src
- connected_recycler = null
- return ..()
-
-/obj/machinery/computer/camera_advanced/xenobio/handle_atom_del(atom/A)
- if(A == current_potion)
- current_potion = null
- if(A in stored_slimes)
- stored_slimes -= A
- return ..()
-
-/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
- eyeobj = new /mob/camera/aiEye/remote/xenobio(get_turf(src))
- eyeobj.origin = src
- eyeobj.visible_icon = TRUE
- eyeobj.icon = 'icons/mob/cameramob.dmi'
- eyeobj.icon_state = "generic_camera"
-
-/obj/machinery/computer/camera_advanced/xenobio/GrantActions(mob/living/user)
- ..()
-
- if(slime_up_action)
- slime_up_action.target = src
- slime_up_action.Grant(user)
- actions += slime_up_action
-
- if(slime_place_action)
- slime_place_action.target = src
- slime_place_action.Grant(user)
- actions += slime_place_action
-
- if(feed_slime_action)
- feed_slime_action.target = src
- feed_slime_action.Grant(user)
- actions += feed_slime_action
-
- if(monkey_recycle_action)
- monkey_recycle_action.target = src
- monkey_recycle_action.Grant(user)
- actions += monkey_recycle_action
-
- if(scan_action)
- scan_action.target = src
- scan_action.Grant(user)
- actions += scan_action
-
- if(potion_action)
- potion_action.target = src
- potion_action.Grant(user)
- actions += potion_action
-
- if(hotkey_help)
- hotkey_help.target = src
- hotkey_help.Grant(user)
- actions += hotkey_help
-
- RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL, PROC_REF(XenoSlimeClickCtrl))
- RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT, PROC_REF(XenoSlimeClickAlt))
- RegisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT, PROC_REF(XenoSlimeClickShift))
- RegisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT, PROC_REF(XenoTurfClickShift))
- RegisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL, PROC_REF(XenoTurfClickCtrl))
- RegisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL, PROC_REF(XenoMonkeyClickCtrl))
-
- //Checks for recycler on every interact, prevents issues with load order on certain maps.
- if(!connected_recycler)
- for(var/obj/machinery/monkey_recycler/recycler in GLOB.monkey_recyclers)
- if(get_area(recycler.loc) == get_area(loc))
- connected_recycler = recycler
- connected_recycler.connected += src
-
-/obj/machinery/computer/camera_advanced/xenobio/remove_eye_control(mob/living/user)
- UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_CTRL)
- UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_ALT)
- UnregisterSignal(user, COMSIG_XENO_SLIME_CLICK_SHIFT)
- UnregisterSignal(user, COMSIG_XENO_TURF_CLICK_SHIFT)
- UnregisterSignal(user, COMSIG_XENO_TURF_CLICK_CTRL)
- UnregisterSignal(user, COMSIG_XENO_MONKEY_CLICK_CTRL)
- ..()
-
-/obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/reagent_containers/food/snacks/monkeycube))
- monkeys++
- to_chat(user, " You feed [O] to [src]. It now has [monkeys] monkey cubes stored.")
- qdel(O)
- return
- else if(istype(O, /obj/item/storage/bag))
- var/obj/item/storage/P = O
- var/loaded = FALSE
- for(var/obj/G in P.contents)
- if(istype(G, /obj/item/reagent_containers/food/snacks/monkeycube))
- loaded = TRUE
- monkeys++
- qdel(G)
- if(loaded)
- to_chat(user, " You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.")
- return
- else if(istype(O, /obj/item/slimepotion/slime))
- var/replaced = FALSE
- if(user && !user.transferItemToLoc(O, src))
- return
- if(!QDELETED(current_potion))
- current_potion.forceMove(drop_location())
- replaced = TRUE
- current_potion = O
- to_chat(user, " You load [O] in the console's potion slot[replaced ? ", replacing the one that was there before" : ""].")
- return
- ..()
-
-/obj/machinery/computer/camera_advanced/xenobio/multitool_act(mob/living/user, obj/item/multitool/I)
- . = ..()
- if (istype(I) && istype(I.buffer,/obj/machinery/monkey_recycler))
- to_chat(user, " You link [src] with [I.buffer] in [I] buffer.")
- connected_recycler = I.buffer
- connected_recycler.connected += src
- return TRUE
-
-/datum/action/innate/slime_place
- name = "Place Slimes"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "slime_down"
-
-/datum/action/innate/slime_place/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = target
-
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/simple_animal/slime/S in X.stored_slimes)
- S.forceMove(remote_eye.loc)
- S.visible_message(" [S] warps in!")
- X.stored_slimes -= S
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-/datum/action/innate/slime_pick_up
- name = "Pick up Slime"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "slime_up"
-
-/datum/action/innate/slime_pick_up/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = target
-
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
- if(X.stored_slimes.len >= X.max_slimes)
- break
- if(!S.ckey)
- if(S.buckled)
- S.Feedstop(silent = TRUE)
- S.visible_message(" [S] vanishes in a flash of light!")
- S.forceMove(X)
- X.stored_slimes += S
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-
-/datum/action/innate/feed_slime
- name = "Feed Slimes"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "monkey_down"
-
-/datum/action/innate/feed_slime/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = target
-
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- if(X.monkeys >= 1)
- var/mob/living/carbon/monkey/food = new /mob/living/carbon/monkey(remote_eye.loc, TRUE, owner)
- if (!QDELETED(food))
- food.LAssailant = WEAKREF(C)
- X.monkeys--
- X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
- to_chat(owner, " [X] now has [X.monkeys] monkeys stored.")
- else
- to_chat(owner, " [X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.")
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-
-/datum/action/innate/monkey_recycle
- name = "Recycle Monkeys"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "monkey_up"
-
-/datum/action/innate/monkey_recycle/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = target
- var/obj/machinery/monkey_recycler/recycler = X.connected_recycler
-
- if(!recycler)
- to_chat(owner, " There is no connected monkey recycler. Use a multitool to link one.")
- return
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/carbon/monkey/M in remote_eye.loc)
- if(M.stat)
- M.visible_message(" [M] vanishes as [M.p_theyre()] reclaimed for recycling!")
- recycler.use_power(500)
- X.monkeys += recycler.cube_production
- X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
- qdel(M)
- to_chat(owner, " [X] now has [X.monkeys] monkeys available.")
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-/datum/action/innate/slime_scan
- name = "Scan Slime"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "slime_scan"
-
-/datum/action/innate/slime_scan/Activate()
- if(!target || !isliving(owner))
- return
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
-
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
- slime_scan(S, C)
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-/datum/action/innate/feed_potion
- name = "Apply Potion"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "slime_potion"
-
-/datum/action/innate/feed_potion/Activate()
- if(!target || !isliving(owner))
- return
-
- var/mob/living/C = owner
- var/mob/camera/aiEye/remote/xenobio/remote_eye = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = target
-
- if(QDELETED(X.current_potion))
- to_chat(owner, " No potion loaded.")
- return
-
- if(GLOB.cameranet.checkTurfVis(remote_eye.loc))
- for(var/mob/living/simple_animal/slime/S in remote_eye.loc)
- X.current_potion.attack(S, C)
- break
- else
- to_chat(owner, " Target is not near a camera. Cannot proceed.")
-
-/datum/action/innate/hotkey_help
- name = "Hotkey Help"
- icon_icon = 'icons/mob/actions/actions_silicon.dmi'
- button_icon_state = "hotkey_help"
-
-/datum/action/innate/hotkey_help/Activate()
- if(!target || !isliving(owner))
- return
- to_chat(owner, " Click shortcuts:")
- to_chat(owner, "Shift-click a slime to pick it up, or the floor to drop all held slimes.")
- to_chat(owner, "Ctrl-click a slime to scan it.")
- to_chat(owner, "Alt-click a slime to feed it a potion.")
- to_chat(owner, "Ctrl-click or a dead monkey to recycle it, or the floor to place a new monkey.")
-
-//
-// Alternate clicks for slime, monkey and open turf if using a xenobio console
-
-// Scans slime
-/mob/living/simple_animal/slime/CtrlClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_CTRL, src)
- ..()
-
-//Feeds a potion to slime
-/mob/living/simple_animal/slime/AltClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_ALT, src)
- ..()
-
-//Picks up slime
-/mob/living/simple_animal/slime/ShiftClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_SLIME_CLICK_SHIFT, src)
- ..()
-
-//Place slimes
-/turf/open/ShiftClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_TURF_CLICK_SHIFT, src)
- ..()
-
-//Place monkey
-/turf/open/CtrlClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_TURF_CLICK_CTRL, src)
- ..()
-
-//Pick up monkey
-/mob/living/carbon/monkey/CtrlClick(mob/user)
- SEND_SIGNAL(user, COMSIG_XENO_MONKEY_CLICK_CTRL, src)
- ..()
-
-// Scans slime
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickCtrl(mob/living/user, mob/living/simple_animal/slime/S)
- if(!GLOB.cameranet.checkTurfVis(S.loc))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/area/mobarea = get_area(S.loc)
- if(mobarea.name == E.allowed_area || (mobarea & XENOBIOLOGY_COMPATIBLE))
- slime_scan(S, C)
-
-//Feeds a potion to slime
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickAlt(mob/living/user, mob/living/simple_animal/slime/S)
- if(!GLOB.cameranet.checkTurfVis(S.loc))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
- var/area/mobarea = get_area(S.loc)
- if(QDELETED(X.current_potion))
- to_chat(C, " No potion loaded.")
- return
- if(mobarea.name == E.allowed_area ||(mobarea & XENOBIOLOGY_COMPATIBLE))
- X.current_potion.attack(S, C)
-
-//Picks up slime
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoSlimeClickShift(mob/living/user, mob/living/simple_animal/slime/S)
- if(!GLOB.cameranet.checkTurfVis(S.loc))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
- var/area/mobarea = get_area(S.loc)
- if(mobarea.name == E.allowed_area || (mobarea & XENOBIOLOGY_COMPATIBLE))
- if(X.stored_slimes.len >= X.max_slimes)
- to_chat(C, " Slime storage is full.")
- return
- if(S.ckey)
- to_chat(C, " The slime wiggled free!")
- return
- if(S.buckled)
- S.Feedstop(silent = TRUE)
- S.visible_message(" [S] vanishes in a flash of light!")
- S.forceMove(X)
- X.stored_slimes += S
-
-//Place slimes
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickShift(mob/living/user, turf/open/T)
- if(!GLOB.cameranet.checkTurfVis(T))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
- var/area/turfarea = get_area(T)
- if(turfarea.name == E.allowed_area || (turfarea & XENOBIOLOGY_COMPATIBLE))
- for(var/mob/living/simple_animal/slime/S in X.stored_slimes)
- S.forceMove(T)
- S.visible_message(" [S] warps in!")
- X.stored_slimes -= S
-
-//Place monkey
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoTurfClickCtrl(mob/living/user, turf/open/T)
- if(!GLOB.cameranet.checkTurfVis(T))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
- var/area/turfarea = get_area(T)
- if(turfarea.name == E.allowed_area || (turfarea & XENOBIOLOGY_COMPATIBLE))
- if(X.monkeys >= 1)
- var/mob/living/carbon/monkey/food = new /mob/living/carbon/monkey(T, TRUE, C)
- if (!QDELETED(food))
- food.LAssailant = WEAKREF(C)
- X.monkeys--
- X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
- to_chat(C, " [X] now has [X.monkeys] monkeys stored.")
- else
- to_chat(C, " [X] needs to have at least 1 monkey stored. Currently has [X.monkeys] monkeys stored.")
-
-//Pick up monkey
-/obj/machinery/computer/camera_advanced/xenobio/proc/XenoMonkeyClickCtrl(mob/living/user, mob/living/carbon/monkey/M)
- if(!isturf(M.loc) || !GLOB.cameranet.checkTurfVis(M.loc))
- to_chat(user, " Target is not near a camera. Cannot proceed.")
- return
- var/mob/living/C = user
- var/mob/camera/aiEye/remote/xenobio/E = C.remote_control
- var/obj/machinery/computer/camera_advanced/xenobio/X = E.origin
- var/area/mobarea = get_area(M.loc)
- if(!X.connected_recycler)
- to_chat(C, " There is no connected monkey recycler. Use a multitool to link one.")
- return
- if(mobarea.name == E.allowed_area || (mobarea & XENOBIOLOGY_COMPATIBLE))
- if(!M.stat)
- return
- M.visible_message(" [M] vanishes as [p_theyre()] reclaimed for recycling!")
- X.connected_recycler.use_power(500)
- X.monkeys += connected_recycler.cube_production
- X.monkeys = round(X.monkeys, 0.1) //Prevents rounding errors
- qdel(M)
- to_chat(C, " [X] now has [X.monkeys] monkeys available.")
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
deleted file mode 100644
index c907f11c1cfa..000000000000
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ /dev/null
@@ -1,1072 +0,0 @@
-/// Slime Extracts ///
-
-/obj/item/slime_extract
- name = "slime extract"
- desc = "Goo extracted from a slime. Legends claim these to have \"magical powers\"."
- icon = 'icons/mob/slimes.dmi'
- icon_state = "grey slime extract"
- force = 0
- w_class = WEIGHT_CLASS_TINY
- throwforce = 0
- throw_speed = 3
- throw_range = 6
- grind_results = list()
- var/Uses = 1 ///uses before it goes inert
- var/qdel_timer = null ///deletion timer, for delayed reactions
- var/effectmod ///Which type of crossbred
- var/crossbreed_modifier = 1 //Modifies how many extracts are needed to cross a core.
- var/list/activate_reagents = list() ///Reagents required for activation
- var/recurring = FALSE
- var/research ///Research point value for slime cores. These are defines stored in [/__DEFINES/research] - the actual values are updated there.
-
-/obj/item/slime_extract/examine(mob/user)
- . = ..()
- if(Uses > 1)
- . += "It has [Uses] uses remaining."
-
-/obj/item/slime_extract/attackby(obj/item/O, mob/user)
- if(istype(O, /obj/item/slimepotion/enhancer))
- if(Uses >= 5 || recurring)
- to_chat(user, " You cannot enhance this extract further!")
- return ..()
- if(O.type == /obj/item/slimepotion/enhancer) //Seriously, why is this defined here...?
- to_chat(user, " You apply the enhancer to the slime extract. It may now be reused one more time.")
- Uses++
- if(O.type == /obj/item/slimepotion/enhancer/max)
- to_chat(user, " You dump the maximizer on the slime extract. It can now be used a total of 5 times!")
- Uses = 5
- qdel(O)
- ..()
-
-/obj/item/slime_extract/Initialize()
- . = ..()
- create_reagents(100, INJECTABLE | DRAWABLE)
-
-/obj/item/slime_extract/on_grind()
- if(Uses)
- grind_results[/datum/reagent/toxin/slimejelly] = 20
-
-/**
-* Effect when activated by a Luminescent.
-*
-* This proc is called whenever a Luminescent consumes a slime extract. Each one is separated into major and minor effects depending on the extract. Cooldown is measured in deciseconds.
-*
-* * arg1 - The mob absorbing the slime extract.
-* * arg2 - The valid species for the absorbtion. Should always be a Luminescent unless something very major has changed.
-* * arg3 - Whether or not the activation is major or minor. Major activations have large, complex effects, minor are simple.
-*/
-/obj/item/slime_extract/proc/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- to_chat(user, " Nothing happened... This slime extract cannot be activated this way.")
- return 0
-
-/**
-* Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract.
-*
-* By using a valid core on a living adult slime, then feeding it nine more of the same type, you can mutate it into more useful items. Not every slime type has an implemented core cross.
-*/
-/obj/item/slime_extract/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- return ..()
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(!M.is_adult)
- to_chat(user, " The slime must be an adult to cross its core!")
- return
- if(M.effectmod && M.effectmod != effectmod)
- to_chat(user, " The slime is already being crossed with a different extract!")
- return
-
- if(!M.effectmod)
- M.effectmod = effectmod
- M.crossbreed_modifier = crossbreed_modifier
-
- M.applied++
- qdel(src)
- to_chat(user, " You feed the slime [src], [M.applied == 1 ? "starting to mutate its core." : "further mutating its core."]")
- playsound(M, 'sound/effects/attackblob.ogg', 50, TRUE)
-
- if(M.applied >= (SLIME_EXTRACT_CROSSING_REQUIRED * crossbreed_modifier))
- M.spawn_corecross()
-
-/obj/item/slime_extract/grey
- name = "grey slime extract"
- icon_state = "grey slime extract"
- effectmod = "reproductive"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_0
- custom_price = 1000
-
-/obj/item/slime_extract/grey/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/obj/item/reagent_containers/food/snacks/monkeycube/M = new
- if(!user.put_in_active_hand(M))
- M.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- to_chat(user, " You spit out a monkey cube.")
- return 120
- if(SLIME_ACTIVATE_MAJOR)
- to_chat(user, " Your [name] starts pulsing...")
- if(do_after(user, 40, target = user))
- var/mob/living/simple_animal/slime/S = new(get_turf(user), "grey")
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- to_chat(user, " You spit out [S].")
- return 350
- else
- return 0
-
-/obj/item/slime_extract/gold
- name = "gold slime extract"
- icon_state = "gold slime extract"
- effectmod = "symbiont"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_4
-
-/obj/item/slime_extract/gold/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- user.visible_message(" [user] starts shaking!"," Your [name] starts pulsing gently...")
- if(do_after(user, 40, target = user))
- var/mob/living/simple_animal/S = create_random_mob(user.drop_location(), FRIENDLY_SPAWN)
- S.faction |= "neutral"
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [S]!", " You spit out [S]!")
- return 300
-
- if(SLIME_ACTIVATE_MAJOR)
- user.visible_message(" [user] starts shaking violently!"," Your [name] starts pulsing violently...")
- if(do_after(user, 50, target = user))
- var/mob/living/simple_animal/S = create_random_mob(user.drop_location(), HOSTILE_SPAWN)
- if(user.a_intent != INTENT_HARM)
- S.faction |= "neutral"
- else
- S.faction |= "slime"
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [S]!", " You spit out [S]!")
- return 600
-
-/obj/item/slime_extract/silver
- name = "silver slime extract"
- icon_state = "silver slime extract"
- effectmod = "consuming"
- activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_2
-
-/obj/item/slime_extract/silver/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/food_type = get_random_food()
- var/obj/O = new food_type
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 200
- if(SLIME_ACTIVATE_MAJOR)
- var/drink_type = get_random_drink()
- var/obj/O = new drink_type
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 200
-
-/obj/item/slime_extract/metal
- name = "metal slime extract"
- icon_state = "metal slime extract"
- effectmod = "industrial"
- activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_1
-
-/obj/item/slime_extract/metal/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/obj/item/stack/sheet/glass/O = new(null, 5)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- var/obj/item/stack/sheet/metal/O = new(null, 5)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 200
-
-/obj/item/slime_extract/purple
- name = "purple slime extract"
- icon_state = "purple slime extract"
- effectmod = "regenerative"
- crossbreed_modifier = 0.3
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_1
-
-/obj/item/slime_extract/purple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- user.adjust_nutrition(50)
- user.blood_volume += 50
- to_chat(user, " You activate [src], and your body is refilled with fresh slime jelly!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- to_chat(user, " You activate [src], and it releases regenerative chemicals!")
- user.reagents.add_reagent(/datum/reagent/medicine/regen_jelly,10)
- return 600
-
-/obj/item/slime_extract/darkpurple
- name = "dark purple slime extract"
- icon_state = "dark purple slime extract"
- effectmod = "self-sustaining"
- activate_reagents = list(/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_2
-
-/obj/item/slime_extract/darkpurple/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/obj/item/stack/sheet/mineral/plasma/O = new(null, 1)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- var/turf/open/T = get_turf(user)
- if(istype(T))
- T.atmos_spawn_air("plasma=20")
- to_chat(user, " You activate [src], and a cloud of plasma bursts out of your skin!")
- return 900
-
-/obj/item/slime_extract/orange
- name = "orange slime extract"
- icon_state = "orange slime extract"
- effectmod = "burning"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_1
-
-/obj/item/slime_extract/orange/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You activate [src]. You start feeling hot!")
- user.reagents.add_reagent(/datum/reagent/consumable/capsaicin,10)
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- user.reagents.add_reagent(/datum/reagent/phosphorus,5)//
- user.reagents.add_reagent(/datum/reagent/potassium,5) // = smoke, along with any reagents inside mr. slime
- user.reagents.add_reagent(/datum/reagent/consumable/sugar,5) //
- to_chat(user, " You activate [src], and a cloud of smoke bursts out of your skin!")
- return 450
-
-/obj/item/slime_extract/yellow
- name = "yellow slime extract"
- icon_state = "yellow slime extract"
- effectmod = "charged"
- crossbreed_modifier = 0.8
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_2
-
-/obj/item/slime_extract/yellow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- if(species.glow_intensity != LUMINESCENT_DEFAULT_GLOW)
- to_chat(user, " Your glow is already enhanced!")
- return
- species.update_glow(user, 5)
- addtimer(CALLBACK(species, TYPE_PROC_REF(/datum/species/jelly/luminescent, update_glow), user, LUMINESCENT_DEFAULT_GLOW), 600)
- to_chat(user, " You start glowing brighter.")
-
- if(SLIME_ACTIVATE_MAJOR)
- user.visible_message(" [user]'s skin starts flashing intermittently...", " Your skin starts flashing intermittently...")
- if(do_after(user, 25, target = user))
- empulse(user, 1, 2)
- user.visible_message(" [user]'s skin flashes!", " Your skin flashes as you emit an electromagnetic pulse!")
- return 600
-
-/obj/item/slime_extract/red
- name = "red slime extract"
- icon_state = "red slime extract"
- effectmod = "sanguine"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_4
-
-/obj/item/slime_extract/red/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You activate [src]. You start feeling fast!")
- user.reagents.add_reagent(/datum/reagent/medicine/ephedrine,5)
- return 450
-
- if(SLIME_ACTIVATE_MAJOR)
- user.visible_message(" [user]'s skin flashes red for a moment...", " Your skin flashes red as you emit rage-inducing pheromones...")
- for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(user), null))
- slime.rabid = TRUE
- slime.visible_message(" The [slime] is driven into a frenzy!")
- return 600
-
-/obj/item/slime_extract/blue
- name = "blue slime extract"
- icon_state = "blue slime extract"
- effectmod = "stabilized"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_1
-
-/obj/item/slime_extract/blue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You activate [src]. Your genome feels more stable!")
- user.adjustCloneLoss(-15)
- user.reagents.add_reagent(/datum/reagent/medicine/mutadone, 10)
- user.reagents.add_reagent(/datum/reagent/medicine/potass_iodide, 10)
- return 250
-
- if(SLIME_ACTIVATE_MAJOR)
- user.reagents.create_foam(/datum/effect_system/foam_spread,20)
- user.visible_message(" Foam spews out from [user]'s skin!", " You activate [src], and foam bursts out of your skin!")
- return 600
-
-/obj/item/slime_extract/darkblue
- name = "dark blue slime extract"
- icon_state = "dark blue slime extract"
- effectmod = "chilling"
- activate_reagents = list(/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_2
-
-/obj/item/slime_extract/darkblue/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You activate [src]. You start feeling colder!")
- user.ExtinguishMob()
- user.adjust_fire_stacks(-20)
- user.reagents.add_reagent(/datum/reagent/consumable/frostoil,4)
- user.reagents.add_reagent(/datum/reagent/medicine/cryoxadone,5)
- return 100
-
- if(SLIME_ACTIVATE_MAJOR)
- var/turf/open/T = get_turf(user)
- if(istype(T))
- T.atmos_spawn_air("nitrogen=40;TEMP=2.7")
- to_chat(user, " You activate [src], and icy air bursts out of your skin!")
- return 900
-
-/obj/item/slime_extract/pink
- name = "pink slime extract"
- icon_state = "pink slime extract"
- effectmod = "gentle"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_4
-
-/obj/item/slime_extract/pink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- if(user.gender != MALE && user.gender != FEMALE)
- to_chat(user, " You can't swap your gender!")
- return
-
- if(user.gender == MALE)
- user.gender = FEMALE
- user.visible_message(" [user] suddenly looks more feminine!", " You suddenly feel more feminine!")
- else
- user.gender = MALE
- user.visible_message(" [user] suddenly looks more masculine!", " You suddenly feel more masculine!")
- return 100
-
- if(SLIME_ACTIVATE_MAJOR)
- user.visible_message(" [user]'s skin starts flashing hypnotically...", " Your skin starts forming odd patterns, pacifying creatures around you.")
- for(var/mob/living/carbon/C in viewers(user, null))
- if(C != user)
- C.reagents.add_reagent(/datum/reagent/pax,2)
- return 600
-
-/obj/item/slime_extract/green
- name = "green slime extract"
- icon_state = "green slime extract"
- effectmod = "mutative"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/uranium/radium)
- research = SLIME_RESEARCH_TIER_4
-
-/obj/item/slime_extract/green/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You feel yourself reverting to human form...")
- if(do_after(user, 120, target = user))
- to_chat(user, " You feel human again!")
- user.set_species(/datum/species/human)
- return
- to_chat(user, " You stop the transformation.")
-
- if(SLIME_ACTIVATE_MAJOR)
- to_chat(user, " You feel yourself radically changing your slime type...")
- if(do_after(user, 120, target = user))
- to_chat(user, " You feel different!")
- user.set_species(pick(/datum/species/jelly/slime, /datum/species/jelly/stargazer))
- return
- to_chat(user, " You stop the transformation.")
-
-/obj/item/slime_extract/lightpink
- name = "light pink slime extract"
- icon_state = "light pink slime extract"
- effectmod = "loyal"
- activate_reagents = list(/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_5
-
-/obj/item/slime_extract/lightpink/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/obj/item/slimepotion/slime/renaming/O = new(null, 1)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- var/obj/item/slimepotion/slime/sentience/O = new(null, 1)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 450
-
-/obj/item/slime_extract/black
- name = "black slime extract"
- icon_state = "black slime extract"
- effectmod = "transformative"
- activate_reagents = list(/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_5
-
-/obj/item/slime_extract/black/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You feel something wrong inside you...")
- user.ForceContractDisease(new /datum/disease/transformation/slime(), FALSE, TRUE)
- return 100
-
- if(SLIME_ACTIVATE_MAJOR)
- to_chat(user, " You feel your own light turning dark...")
- if(do_after(user, 120, target = user))
- to_chat(user, " You feel a longing for darkness.")
- user.set_species(pick(/datum/species/shadow))
- return
- to_chat(user, " You stop feeding [src].")
-
-/obj/item/slime_extract/oil
- name = "oil slime extract"
- icon_state = "oil slime extract"
- effectmod = "detonating"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_5
-
-/obj/item/slime_extract/oil/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You vomit slippery oil.")
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- new /obj/effect/decal/cleanable/oil/slippery(get_turf(user))
- return 450
-
- if(SLIME_ACTIVATE_MAJOR)
- user.visible_message(" [user]'s skin starts pulsing and glowing ominously...", " You feel unstable...")
- if(do_after(user, 60, target = user))
- to_chat(user, " You explode!")
- explosion(get_turf(user), 1 ,3, 6)
- user.gib()
- return
- to_chat(user, " You stop feeding [src], and the feeling passes.")
-
-/obj/item/slime_extract/adamantine
- name = "adamantine slime extract"
- icon_state = "adamantine slime extract"
- effectmod = "crystalline"
- activate_reagents = list(/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_5
-
-/obj/item/slime_extract/adamantine/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- if(species.armor > 0)
- to_chat(user, " Your skin is already hardened!")
- return
- to_chat(user, " You feel your skin harden and become more resistant.")
- species.armor += 25
- addtimer(CALLBACK(src, PROC_REF(reset_armor), species), 1200)
- return 450
-
-/obj/item/slime_extract/adamantine/proc/reset_armor(datum/species/jelly/luminescent/species)
- if(istype(species))
- species.armor -= 25
-
-/obj/item/slime_extract/bluespace
- name = "bluespace slime extract"
- icon_state = "bluespace slime extract"
- effectmod = "warping"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- var/teleport_ready = FALSE
- var/teleport_x = 0
- var/teleport_y = 0
- var/teleport_z = 0
- research = SLIME_RESEARCH_TIER_3
-
-/obj/item/slime_extract/bluespace/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- to_chat(user, " You feel your body vibrating...")
- if(do_after(user, 25, target = user))
- to_chat(user, " You teleport!")
- do_teleport(user, get_turf(user), 6, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
- return 300
-
- if(SLIME_ACTIVATE_MAJOR)
- if(!teleport_ready)
- to_chat(user, " You feel yourself anchoring to this spot...")
- var/turf/T = get_turf(user)
- teleport_x = T.x
- teleport_y = T.y
- teleport_z = T.z
- teleport_ready = TRUE
- else
- teleport_ready = FALSE
- if(teleport_x && teleport_y && teleport_z)
- var/turf/T = locate(teleport_x, teleport_y, teleport_z)
- to_chat(user, " You snap back to your anchor point!")
- do_teleport(user, T, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
- return 450
-
-
-/obj/item/slime_extract/pyrite
- name = "pyrite slime extract"
- icon_state = "pyrite slime extract"
- effectmod = "prismatic"
- crossbreed_modifier = 0.5
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_3
-
-/obj/item/slime_extract/pyrite/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/chosen = pick(difflist(subtypesof(/obj/item/toy/crayon),typesof(/obj/item/toy/crayon/spraycan)))
- var/obj/item/O = new chosen(null)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- var/blacklisted_cans = list(/obj/item/toy/crayon/spraycan/borg, /obj/item/toy/crayon/spraycan/infinite)
- var/chosen = pick(subtypesof(/obj/item/toy/crayon/spraycan) - blacklisted_cans)
- var/obj/item/O = new chosen(null)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 250
-
-/obj/item/slime_extract/cerulean
- name = "cerulean slime extract"
- icon_state = "cerulean slime extract"
- effectmod = "recurring"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma)
- research = SLIME_RESEARCH_TIER_3
-
-/obj/item/slime_extract/cerulean/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- user.reagents.add_reagent(/datum/reagent/medicine/salbutamol,15)
- to_chat(user, " You feel like you don't need to breathe!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- var/turf/open/T = get_turf(user)
- if(istype(T))
- T.atmos_spawn_air("o2=11;n2=41;TEMP=293.15")
- to_chat(user, " You activate [src], and fresh air bursts out of your skin!")
- return 600
-
-/obj/item/slime_extract/sepia
- name = "sepia slime extract"
- icon_state = "sepia slime extract"
- effectmod = "lengthened"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,/datum/reagent/water)
- research = SLIME_RESEARCH_TIER_3
-
-/obj/item/slime_extract/sepia/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- var/obj/item/camera/O = new(null, 1)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
- if(SLIME_ACTIVATE_MAJOR)
- to_chat(user, " You feel time slow down...")
- if(do_after(user, 30, target = user))
- new /obj/effect/timestop(get_turf(user), 2, 50, list(user))
- return 900
-
-/obj/item/slime_extract/rainbow
- name = "rainbow slime extract"
- icon_state = "rainbow slime extract"
- effectmod = "hyperchromatic"
- activate_reagents = list(/datum/reagent/blood,/datum/reagent/toxin/plasma,"lesser plasma",/datum/reagent/toxin/slimejelly,"holy water and uranium") //Curse this snowflake reagent list.
- research = SLIME_RESEARCH_TIER_RAINBOW
-
-/obj/item/slime_extract/rainbow/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
- switch(activation_type)
- if(SLIME_ACTIVATE_MINOR)
- user.dna.features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
- user.updateappearance(mutcolor_update=1)
- species.update_glow(user)
- to_chat(user, " You feel different...")
- return 100
-
- if(SLIME_ACTIVATE_MAJOR)
- var/chosen = pick(subtypesof(/obj/item/slime_extract))
- var/obj/item/O = new chosen(null)
- if(!user.put_in_active_hand(O))
- O.forceMove(user.drop_location())
- playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
- user.visible_message(" [user] spits out [O]!", " You spit out [O]!")
- return 150
-
-////Slime-derived potions///
-
-/**
-* #Slime potions
-*
-* Feed slimes potions either by hand or using the slime console.
-*
-* Slime potions either augment the slime's behavior, its extract output, or its intelligence. These all come either from extract effects or cross cores.
-* A few of the more powerful ones can modify someone's equipment or gender.
-* New ones should probably be accessible only through cross cores as all the normal core types already have uses. Rule of thumb is 'stronger effects go in cross cores'.
-*/
-
-/obj/item/slimepotion
- name = "slime potion"
- desc = "A hard yet gelatinous capsule excreted by a slime, containing mysterious substances."
- w_class = WEIGHT_CLASS_BULKY
-
-/obj/item/slimepotion/afterattack(obj/item/reagent_containers/target, mob/user , proximity)
- . = ..()
- if(!proximity)
- return
- if (istype(target))
- to_chat(user, " You cannot transfer [src] to [target]! It appears the potion must be given directly to a slime to absorb." )
- return
-
-/obj/item/slimepotion/slime/docility
- name = "docility potion"
- desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potsilver"
-
-/obj/item/slimepotion/slime/docility/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- to_chat(user, " The potion only works on slimes!")
- return ..()
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(M.rabid) //Stops being rabid, but doesn't become truly docile.
- to_chat(M, " You absorb the potion, and your rabid hunger finally settles to a normal desire to feed.")
- to_chat(user, " You feed the slime the potion, calming its rabid rage.")
- M.rabid = FALSE
- qdel(src)
- return
- M.docile = 1
- M.set_nutrition(700)
- to_chat(M, " You absorb the potion and feel your intense desire to feed melt away.")
- to_chat(user, " You feed the slime the potion, removing its hunger and calming it.")
- var/newname = sanitize_name(stripped_input(user, "Would you like to give the slime a name?", "Name your new pet", "pet slime", MAX_NAME_LEN))
-
- if (!newname)
- newname = "pet slime"
- M.name = newname
- M.real_name = newname
- qdel(src)
-
-/obj/item/slimepotion/slime/sentience
- name = "intelligence potion"
- desc = "A miraculous chemical mix that grants human like intelligence to living beings."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potpink"
- var/list/not_interested = list()
- var/being_used = FALSE
- var/sentience_type = SENTIENCE_ORGANIC
-
-/obj/item/slimepotion/slime/sentience/attack(mob/living/M, mob/user)
- if(being_used || !ismob(M))
- return
- if(!isanimal(M) || M.ckey) //only works on animals that aren't player controlled
- to_chat(user, " [M] is already too intelligent for this to work!")
- return
- if(M.stat)
- to_chat(user, " [M] is dead!")
- return
- var/mob/living/simple_animal/SM = M
- if(SM.sentience_type != sentience_type)
- to_chat(user, " [src] won't work on [SM].")
- return
-
- to_chat(user, " You offer [src] to [SM]...")
- being_used = TRUE
-
- var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm
- if(LAZYLEN(candidates))
- var/mob/dead/observer/C = pick(candidates)
- SM.key = C.key
- SM.mind.enslave_mind_to_creator(user)
- SM.sentience_act()
- to_chat(SM, " All at once it makes sense: you know what you are and who you are! Self awareness is yours!")
- to_chat(SM, " You are grateful to be self aware and owe [user.real_name] a great debt. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.")
- if(SM.flags_1 & HOLOGRAM_1) //Check to see if it's a holodeck creature
- to_chat(SM, " You also become depressingly aware that you are not a real creature, but instead a holoform. Your existence is limited to the parameters of the holodeck.")
- to_chat(user, " [SM] accepts [src] and suddenly becomes attentive and aware. It worked!")
- SM.copy_languages(user)
- after_success(user, SM)
- qdel(src)
- else
- to_chat(user, " [SM] looks interested for a moment, but then looks back down. Maybe you should try again later.")
- being_used = FALSE
- ..()
-
-/obj/item/slimepotion/slime/sentience/proc/after_success(mob/living/user, mob/living/simple_animal/SM)
- return
-
-/obj/item/slimepotion/slime/sentience/nuclear
- name = "syndicate intelligence potion"
- desc = "A miraculous chemical mix that grants human like intelligence to living beings. It has been modified with Syndicate technology to also grant an internal radio implant to the target and authenticate with identification systems."
-
-/obj/item/slimepotion/slime/sentience/nuclear/after_success(mob/living/user, mob/living/simple_animal/SM)
- var/obj/item/implant/radio/syndicate/imp = new(src)
- imp.implant(SM, user)
-
- SM.access_card = new /obj/item/card/id/syndicate(SM)
- ADD_TRAIT(SM.access_card, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
-
-/obj/item/slimepotion/transference
- name = "consciousness transference potion"
- desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potorange"
- var/prompted = 0
- var/animal_type = SENTIENCE_ORGANIC
-
-/obj/item/slimepotion/transference/afterattack(mob/living/M, mob/user, proximity)
- if(!proximity)
- return
- if(prompted || !ismob(M))
- return
- if(!isanimal(M) || M.ckey) //much like sentience, these will not work on something that is already player controlled
- to_chat(user, " [M] already has a higher consciousness!")
- return ..()
- if(M.stat)
- to_chat(user, " [M] is dead!")
- return ..()
- var/mob/living/simple_animal/SM = M
- if(SM.sentience_type != animal_type)
- to_chat(user, " You cannot transfer your consciousness to [SM]." )
- return ..()
- var/jb = is_banned_from(user.ckey, ROLE_MIND_TRANSFER)
- if(QDELETED(src) || QDELETED(M) || QDELETED(user))
- return
-
- if(jb)
- to_chat(user, " Your mind goes blank as you attempt to use the potion.")
- return
-
- prompted = 1
- if(alert("This will permanently transfer your consciousness to [SM]. Are you sure you want to do this?",,"Yes","No")=="No")
- prompted = 0
- return
-
- to_chat(user, " You drink the potion then place your hands on [SM]...")
-
-
- user.mind.transfer_to(SM)
- SM.faction = user.faction.Copy()
- SM.sentience_act() //Same deal here as with sentience
- user.death()
- to_chat(SM, " In a quick flash, you feel your consciousness flow into [SM]!")
- to_chat(SM, " You are now [SM]. Your allegiances, alliances, and role is still the same as it was prior to consciousness transfer!")
- SM.name = "[user.real_name]"
- qdel(src)
-
-/obj/item/slimepotion/slime/steroid
- name = "slime steroid"
- desc = "A potent chemical mix that will cause a baby slime to generate more extract."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potred"
-
-/obj/item/slimepotion/slime/steroid/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))//If target is not a slime.
- to_chat(user, " The steroid only works on baby slimes!")
- return ..()
- if(M.is_adult) //Can't steroidify adults
- to_chat(user, " Only baby slimes can use the steroid!")
- return
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(M.cores >= 5)
- to_chat(user, " The slime already has the maximum amount of extract!")
- return
-
- to_chat(user, " You feed the slime the steroid. It will now produce one more extract.")
- M.cores++
- qdel(src)
-
-/obj/item/slimepotion/enhancer
- name = "extract enhancer"
- desc = "A potent chemical mix that will give a slime extract an additional use."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potpurple"
-
-/obj/item/slimepotion/slime/stabilizer
- name = "slime stabilizer"
- desc = "A potent chemical mix that will reduce the chance of a slime mutating."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potcyan"
-
-/obj/item/slimepotion/slime/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- to_chat(user, " The stabilizer only works on slimes!")
- return ..()
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(M.mutation_chance == 0)
- to_chat(user, " The slime already has no chance of mutating!")
- return
-
- to_chat(user, " You feed the slime the stabilizer. It is now less likely to mutate.")
- M.mutation_chance = clamp(M.mutation_chance-15,0,100)
- qdel(src)
-
-/obj/item/slimepotion/slime/mutator
- name = "slime mutator"
- desc = "A potent chemical mix that will increase the chance of a slime mutating."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potgreen"
-
-/obj/item/slimepotion/slime/mutator/attack(mob/living/simple_animal/slime/M, mob/user)
- if(!isslime(M))
- to_chat(user, " The mutator only works on slimes!")
- return ..()
- if(M.stat)
- to_chat(user, " The slime is dead!")
- return
- if(M.mutator_used)
- to_chat(user, " This slime has already consumed a mutator, any more would be far too unstable!")
- return
- if(M.mutation_chance == 100)
- to_chat(user, " The slime is already guaranteed to mutate!")
- return
-
- to_chat(user, " You feed the slime the mutator. It is now more likely to mutate.")
- M.mutation_chance = clamp(M.mutation_chance+12,0,100)
- M.mutator_used = TRUE
- qdel(src)
-
-/obj/item/slimepotion/speed
- name = "slime speed potion"
- desc = "A potent chemical mix that will reduce the slowdown from any item."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potyellow"
-
-/obj/item/slimepotion/speed/afterattack(obj/C, mob/user, proximity)
- . = ..()
- if(!proximity)
- return
- if(!istype(C))
- to_chat(user, " The potion can only be used on items or vehicles!")
- return
- if(isitem(C))
- var/obj/item/I = C
- if(I.slowdown <= 0.25 || I.obj_flags & IMMUTABLE_SLOW)
- to_chat(user, " The [C] can't be made any faster!")
- return ..()
- I.slowdown = 0.25
-
- if(istype(C, /obj/vehicle))
- var/obj/vehicle/V = C
- var/datum/component/riding/R = V.GetComponent(/datum/component/riding)
- if(R)
- var/vehicle_speed_mod = round(CONFIG_GET(number/movedelay/run_delay) * 0.85, 0.01)
- if(R.vehicle_move_delay <= vehicle_speed_mod)
- to_chat(user, " The [C] can't be made any faster!")
- return ..()
- R.vehicle_move_delay = vehicle_speed_mod
-
- to_chat(user, " You slather the red gunk over the [C], making it faster.")
- C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- C.add_atom_colour("#FF0000", FIXED_COLOUR_PRIORITY)
- qdel(src)
-
-/obj/item/slimepotion/fireproof
- name = "slime chill potion"
- desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potblue"
- resistance_flags = FIRE_PROOF
- var/uses = 3
-
-/obj/item/slimepotion/fireproof/afterattack(obj/item/clothing/C, mob/user, proximity)
- . = ..()
- if(!proximity)
- return
- if(!uses)
- qdel(src)
- return
- if(!istype(C))
- to_chat(user, " The potion can only be used on clothing!")
- return
- if(C.max_heat_protection_temperature >= FIRE_IMMUNITY_MAX_TEMP_PROTECT)
- to_chat(user, " The [C] is already fireproof!")
- return
- to_chat(user, " You slather the blue gunk over the [C], fireproofing it.")
- C.name = "fireproofed [C.name]"
- C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY)
- C.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- C.heat_protection = C.body_parts_covered
- C.resistance_flags |= FIRE_PROOF
- uses --
- if(!uses)
- qdel(src)
-
-/obj/item/slimepotion/genderchange
- name = "gender change potion"
- desc = "An interesting chemical mix that changes the biological gender of what its applied to. Cannot be used on things that lack gender entirely."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potlightpink"
-
-/obj/item/slimepotion/genderchange/attack(mob/living/L, mob/user)
- if(!istype(L) || L.stat == DEAD)
- to_chat(user, " The potion can only be used on living things!")
- return
-
- if(L.gender != MALE && L.gender != FEMALE)
- to_chat(user, " The potion can only be used on gendered things!")
- return
-
- if(L.gender == MALE)
- L.gender = FEMALE
- L.visible_message(" [L] suddenly looks more feminine!", " You suddenly feel more feminine!")
- else
- L.gender = MALE
- L.visible_message(" [L] suddenly looks more masculine!", " You suddenly feel more masculine!")
- L.regenerate_icons()
- qdel(src)
-
-/obj/item/slimepotion/slime/renaming
- name = "renaming potion"
- desc = "A potion that allows a self-aware being to change what name it subconciously presents to the world."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potgreen"
-
- var/being_used = FALSE
-
-/obj/item/slimepotion/slime/renaming/attack(mob/living/M, mob/user)
- if(being_used || !ismob(M))
- return
- if(!M.ckey) //only works on animals that aren't player controlled
- to_chat(user, " [M] is not self aware, and cannot pick its own name.")
- return
-
- being_used = TRUE
-
- to_chat(user, " You offer [src] to [user]...")
-
- var/new_name = stripped_input(M, "What would you like your name to be?", "Input a name", M.real_name, MAX_NAME_LEN)
-
- if(!new_name || QDELETED(src) || QDELETED(M) || new_name == M.real_name || !M.Adjacent(user))
- being_used = FALSE
- return
-
- M.visible_message(" [M] has a new name, [new_name].", " Your old name of [M.real_name] fades away, and your new name [new_name] anchors itself in your mind.")
- message_admins("[ADMIN_LOOKUPFLW(user)] used [src] on [ADMIN_LOOKUPFLW(M)], letting them rename themselves into [new_name].")
-
- // pass null as first arg to not update records or ID/PDA
- M.fully_replace_character_name(null, new_name)
-
- qdel(src)
-
-/obj/item/slimepotion/slime/slimeradio
- name = "bluespace radio potion"
- desc = "A strange chemical that grants those who ingest it the ability to broadcast and receive subscape radio waves."
- icon = 'icons/obj/chemical/misc.dmi'
- icon_state = "potgrey"
-
-/obj/item/slimepotion/slime/slimeradio/attack(mob/living/M, mob/user)
- if(!ismob(M))
- return
- if(!isanimal(M))
- to_chat(user, " [M] is too complex for the potion!")
- return
- if(M.stat)
- to_chat(user, " [M] is dead!")
- return
-
- to_chat(user, " You feed the potion to [M].")
- to_chat(M, " Your mind tingles as you are fed the potion. You can hear radio waves now!")
- var/obj/item/implant/radio/slime/imp = new(src)
- imp.implant(M, user)
- qdel(src)
-
-///Definitions for slime products that don't have anywhere else to go (Floor tiles, blueprints).
-
-/obj/item/stack/tile/bluespace
- name = "bluespace floor tile"
- singular_name = "floor tile"
- desc = "Through a series of micro-teleports these tiles let people move at incredible speeds."
- icon_state = "tile-bluespace"
- item_state = "tile-bluespace"
- w_class = WEIGHT_CLASS_NORMAL
- force = 6
- custom_materials = list(/datum/material/iron=500)
- throwforce = 10
- throw_speed = 3
- throw_range = 7
- flags_1 = CONDUCT_1
- max_amount = 60
- turf_type = /turf/open/floor/bluespace
-
-
-/obj/item/stack/tile/sepia
- name = "sepia floor tile"
- singular_name = "floor tile"
- desc = "Time seems to flow very slowly around these tiles."
- icon_state = "tile-sepia"
- item_state = "tile-sepia"
- w_class = WEIGHT_CLASS_NORMAL
- force = 6
- custom_materials = list(/datum/material/iron=500)
- throwforce = 10
- throw_speed = 0.1
- throw_range = 28
- flags_1 = CONDUCT_1
- max_amount = 60
- turf_type = /turf/open/floor/sepia
-
-
-/obj/item/areaeditor/blueprints/slime
- name = "cerulean prints"
- desc = "A one use yet of blueprints made of jelly like organic material. Extends the reach of the management console."
- color = "#2956B2"
-
-/obj/item/areaeditor/blueprints/slime/edit_area()
- ..()
- var/area/A = get_area(src)
- for(var/turf/T in A)
- T.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
- T.add_atom_colour("#2956B2", FIXED_COLOUR_PRIORITY)
- A.area_flags |= XENOBIOLOGY_COMPATIBLE
- qdel(src)
diff --git a/code/modules/ruins/rockplanet_ruin_code/mining_base.dm b/code/modules/ruins/rockplanet_ruin_code/mining_base.dm
new file mode 100644
index 000000000000..afd34e00a6eb
--- /dev/null
+++ b/code/modules/ruins/rockplanet_ruin_code/mining_base.dm
@@ -0,0 +1,93 @@
+/obj/machinery/porta_turret/ship/nt/light/mining_base
+ req_ship_access = FALSE
+ lethal = TRUE
+ turret_flags = TURRET_FLAG_SHOOT_FAUNA
+
+/obj/machinery/porta_turret/ship/nt/light/mining_base/Initialize()
+ . = ..()
+ take_damage(rand(120, 150),BRUTE)
+
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_manager
+ mob_name = "gruff sarathi man"
+ mob_gender = MALE
+ mob_species = /datum/species/lizard
+ icon_state = "corpsehuman"
+ outfit = /datum/outfit/job/nanotrasen/quartermaster
+ brute_damage = 120
+
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner
+ outfit = /datum/outfit/job/nanotrasen/miner
+
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner/armored
+ outfit = /datum/outfit/job/nanotrasen/miner/armored
+
+/datum/outfit/job/nanotrasen/miner/armored
+ name = "Nanotrasen - Armored Miner"
+ suit = /obj/item/clothing/suit/hooded/explorer
+ mask = /obj/item/clothing/mask/gas/explorer
+
+/obj/effect/mob_spawn/human/corpse/ruin/ns_mine_miner/Initialize()
+ . = ..()
+ mob_species = pick_weight(list(
+ /datum/species/human = 50,
+ /datum/species/lizard = 20,
+ /datum/species/ipc = 10,
+ /datum/species/elzuose = 10,
+ /datum/species/moth = 5,
+ /datum/species/spider = 5
+ )
+ )
+
+/obj/item/taperecorder/preset/mining_base
+ starting_tape_type = /obj/item/tape/random/preset/mining_base/one
+
+/obj/item/tape/random/preset/mining_base/one
+ ruined = 1
+ used_capacity = 120
+
+/obj/item/tape/random/preset/mining_base/one/Initialize()
+ . = ..()
+ storedinfo = list(
+ "\[00:00\] Recording started.",
+ "\[00:02\] [span_name("gruff sarathi man")] firmly declares \"-urn in hell for thisss.\"",
+ "\[00:05\] [span_name("stern human woman")] retorts \"A hell of my own making.\"",
+ "\[00:08\] [span_name("gruff sarathi man")] states \"And we'll sssend you-\"",
+ "\[00:11\] [span_name("gruff sarathi man")] suddenly gasps",
+ "\[00:12\] [span_name("stern human woman")] confidently delivers \"If you're so sure, why aren't you the one with the gun?\"",
+ "\[00:17\] [span_name("gruff sarathi man")] stammers \"y-you won't get away with thisss\"",
+ "\[00:20\] [span_name("stern human woman")] says \"The last Nanotrasen cuck I killed said that too~\"",
+ "\[00:25\] sudden clattering and a dull thump.",
+ "\[00:26\] [span_name("gruff sarathi man")] gasps for breath!",
+ "\[00:27\] [span_name("stern human woman")] contemptously declares \"Different boot. Same pathetic people.\"",
+ "\[00:30\] A pistol's slide is racked.",
+ "\[00:32\] [span_name("stern human woman")] says \"Burn in hell.\"",
+ "\[00:33\] A pistol is fired!",
+ "\[00:36\] [span_name("stern human woman")] states \"Get moving. I want us out and a garrison deployed within the hour.\"",
+ "\[00:38\] armored footsteps thump against a metal floor",
+ "\[00:44\] an airlock hisses open.",
+ "\[00:45\] [span_name("stern human woman")] taunts \"tchuss, tovai.\"",
+ "\[00:50\] an airlock suddenly closes!",
+ "\[02:00\] Recording ended.",
+ )
+ timestamp = list(
+ 0,
+ 2,
+ 5,
+ 8,
+ 11,
+ 12,
+ 17,
+ 20,
+ 25,
+ 26,
+ 27,
+ 30,
+ 32,
+ 33,
+ 36,
+ 38,
+ 44,
+ 45,
+ 50,
+ 120
+ )
diff --git a/code/modules/ruins/sandplanet_ruin_code/cave_base.dm b/code/modules/ruins/sandplanet_ruin_code/cave_base.dm
new file mode 100644
index 000000000000..91caf21e1edf
--- /dev/null
+++ b/code/modules/ruins/sandplanet_ruin_code/cave_base.dm
@@ -0,0 +1,224 @@
+//the satchel charge that'll explode
+
+/obj/item/grenade/c4/satchel_charge/cave_base
+ det_time = 15
+ desc = "With Love - Kerberos-574"
+
+//i am such a bitch
+/obj/item/grenade/c4/satchel_charge/cave_base/Initialize()
+ . = ..()
+ AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_OBSERVER, use_anchor = TRUE)
+ wires.attach_assembly_init(/obj/item/assembly/signaler/preset/cave_base)
+
+/obj/item/assembly_holder/premade/cave_base
+ a_left = /obj/item/assembly/signaler/preset/cave_base
+ a_right = /obj/item/assembly/prox_sensor/preset/cave_base
+
+/obj/item/grenade/c4/cave_base
+
+/obj/item/grenade/c4/cave_base/Initialize()
+ . = ..()
+ AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_OBSERVER, use_anchor = TRUE)
+ wires.attach_assembly_init(/obj/item/assembly/voice/preset/cave_base)
+
+/obj/item/assembly/signaler/preset/cave_base
+ code = 44
+ frequency = 1451
+
+/obj/item/assembly/voice/preset/cave_base
+ mode = 1
+ recorded = "Goodbye~"
+
+/obj/item/assembly/prox_sensor/preset/cave_base
+
+//pre-netted cams
+/obj/machinery/camera/cave_base
+ network = list("ForwardPost")
+
+/obj/machinery/computer/security/retro/cave_base
+ network = list("ForwardPost")
+
+//turret
+/obj/machinery/porta_turret/cave_base
+ max_integrity = 100
+ faction = list("turret", "Forward_Ops_Post")
+ stun_projectile = /obj/projectile/beam/laser/heavylaser
+ stun_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ lethal_projectile = /obj/projectile/beam/laser/heavylaser
+ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
+ turret_flags = TURRET_FLAG_SHOOT_ALLMOBS
+
+//gut wrenching content
+
+/datum/preset_holoimage/hapless_ipc
+ species_type = /datum/species/ipc
+ outfit_type = /datum/outfit/job/independent/security/pirate/jupiter
+
+/datum/outfit/cave_base_ipc
+ name = "Cave Base IPC"
+ uniform = /obj/item/clothing/under/utility
+ head = /obj/item/clothing/head/soft/black
+ shoes = /obj/item/clothing/shoes/combat
+ l_pocket = /obj/item/melee/knife/combat
+ suit = /obj/item/clothing/suit/hooded/cloak/goliath
+
+
+/datum/preset_holoimage/hunting_ipc
+ species_type = /datum/species/ipc
+ outfit_type = /datum/outfit/cave_base_ipc
+
+/obj/item/disk/holodisk/ruin/cave_base/one
+ name = "holorecord disk - Journal #1"
+ desc = "Stores recorder holocalls, has a layer of dust on it."
+ preset_image_type = /datum/preset_holoimage/hapless_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 10
+ SAY My Name is Kerberos-574. I've been assigned to this Operations Post for the foreseeable future.
+ DELAY 40
+ SAY Command's orders included some fine print.
+ DELAY 20
+ SAY Said *I* need to keep a journal for my morale's sake.
+ SOUND keyboard
+ DELAY 40
+ SAY Don't know how long I'm gonna be down here but I'm not too keen on journaling.
+ DELAY 30
+ SAY We'll see how it goes, though.
+ DELAY 30
+ "}
+
+/obj/item/disk/holodisk/ruin/cave_base/two
+ name = "holorecord disk - Journal #2"
+ preset_image_type = /datum/preset_holoimage/hapless_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 30
+ SAY Been about... 2 months since my last journal entry. Haven't heard *shit* from anyone for the past....
+ DELAY 50
+ SOUND keyboard
+ DELAY 10
+ SAY 2 weeks?
+ DELAY 40
+ SAY Checked the relay and made sure that everything was linked up. Got a no connection error when I - well - tried to forcibly re-establish one.
+ DELAY 40
+ SAY Miss being able to chat. But. It is what it is.
+ DELAY 20
+ "}
+
+/obj/item/disk/holodisk/ruin/cave_base/three
+ name = "holorecord disk - Journal #3"
+ preset_image_type = /datum/preset_holoimage/hapless_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 30
+ SAY 'Nother month down the drain, aye Kerberos?
+ DELAY 40
+ SAY Yup. Still haven't heard anything from anyone.
+ DELAY 40
+ SAY Just making sure this place runs, and that *I'm* okay.
+ DELAY 50
+ SAY Weather has been picking up something fierce lately. Scanners are saying that the planetoid is entering it's winter.
+ DELAY 40
+ SAY Heh. Maybe some new beasts will show themselves.
+ DELAY 40
+ SAY I was dropped with an AMR and kit for a reason after all...
+ DELAY 30
+ SAY Self-defense. And you know what the Solarians say about the best defense.
+ SOUND rustle
+ DELAY 50
+ "}
+
+/obj/item/disk/holodisk/ruin/cave_base/four
+ name = "holorecord disk - Journal #4"
+ preset_image_type = /datum/preset_holoimage/hunting_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 20
+ SAY One Four Point Five
+ SOUND sparks
+ DELAY 20
+ SAY One Four Point Five By One Four Six Point Seven.
+ SOUND sparks
+ DELAY 20
+ SOUND sparks
+ DELAY 40
+ SAY -and that animal clipped me in something important.
+ DELAY 30
+ SAY I got knocked around - and landed by something *buzzing*.
+ DELAY 30
+ SAY Got the gun. Scrambled away.
+ DELAY 20
+ SAY But I've been blacking out for bits. Losing days.
+ DELAY 15
+ SOUND rustle
+ DELAY 20
+ SAY And still no word from command. Starting to wor-
+ DELAY 5
+ SOUND sparks
+ DELAY 20
+ SAY One Fou-
+ DELAY 5
+ "}
+
+/obj/item/disk/holodisk/ruin/cave_base/five
+ name = "holorecord disk - Journal #5"
+ preset_image_type = /datum/preset_holoimage/hunting_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 20
+ SAY I used to be a renegade!~
+ DELAY 30
+ SAY Used to fool around!~
+ SOUND sparks
+ DELAY 30
+ SAY But they left me on this godsdamned rock!~
+ DELAY 30
+ SAY And I had to learn new rounds!~
+ DELAY 30
+ SAY Don't know where I picked up that beat. Maybe that static put it in my processors.
+ DELAY 50
+ SAY I'm runnin out of rounds for my crunch gun too.
+ DELAY 25
+ SAY Not that I'm keen to heft 50kg around.
+ SOUND rustle
+ DELAY 40
+ SAY But I've been going through my old intel reports, and there're some ships in the dust that I could get to. With a few weeks.
+ DELAY 80
+ SOUND sparks
+ SAY I'm gonna go for it soon. Just gotta get everything in order.
+ DELAY 40
+ "}
+
+/obj/item/disk/holodisk/ruin/cave_base/six
+ name = "holorecord disk - Journal #6"
+ preset_image_type = /datum/preset_holoimage/hunting_ipc
+ preset_record_text = {"
+ NAME Kerberos-574
+ DELAY 30
+ SAY Hey!
+ DELAY 25
+ SAY I missed you earlier.
+ SOUND sparks
+ DELAY 30
+ SAY Gonna be out for a bit, gotta find a ship.
+ DELAY 40
+ SAY Gotta find a radio. Gotta call help.
+ DELAY 30
+ SAY Maybe they can fix me somewhere~
+ DELAY 30
+ SOUND sparks
+ DELAY 10
+ SAY I've got this place ah - set just in case anyone comes snooping around.
+ DELAY 40
+ SOUND sparks
+ SAY There is no strategic information.
+ DELAY 20
+ SAY There is no essential equipment.
+ DELAY 20
+ SAY Just you and me~
+ SOUND hiss
+ DELAY 30
+ SAY Maybe one day we'll really meet. For now?
+ DELAY 40
+ SAY Goodbye~
+ "}
diff --git a/code/modules/ruins/wasteplanet_ruin_code/tradepost.dm b/code/modules/ruins/wasteplanet_ruin_code/tradepost.dm
new file mode 100644
index 000000000000..5369d0e2f2d1
--- /dev/null
+++ b/code/modules/ruins/wasteplanet_ruin_code/tradepost.dm
@@ -0,0 +1,61 @@
+/obj/item/tape/random/preset/tradepost/one
+ ruined = 1
+ used_capacity = 120
+
+/obj/item/tape/random/preset/tradepost/one/Initialize()
+ . = ..()
+ storedinfo = list(
+ "\[00:00\] Recording started.",
+ "\[00:06\] [span_name("firm elzousa")] drawls \"Now I figure that... give or take a few months a' tradin out here, I'll 'ave enough money t' pay you boys forra 'nother year.\"",
+ "\[00:14\] [span_name("muffled rachnid woman")] declares \"Caelum. If you don't have payment rendered soon we this contract is called.\"",
+ "\[00:23\] [span_name("firm elzousa")] drawls \"I know. I know. I gotcha few more weeks of pay annif I don' make any trades, then 's done.\"",
+ "\[00:32\] [span_name("firm elzousa")] drawls \"Don'tcha wave those things at me.\"",
+ "\[00:37\] [span_name("muffled rachnid woman")] declares \"You have two weeks. My enforcers are reporting that the area is drawing the attention of scrapbots.\"",
+ "\[00:46\] [span_name("muffled rachnid woman")] declares \"If we don't have the money to buy more ammo, I don't need to tell you what'll happen.\"",
+ "\[00:50\] [span_name("firm elzousa")] lets out a sigh.",
+ "\[00:53\] [span_name("firm elzousa")] drawls \" Cour ma'am. Cour. \"",
+ )
+ timestamp = list(
+ 0,
+ 6,
+ 14,
+ 23,
+ 32,
+ 37,
+ 46,
+ 50,
+ 53
+ )
+
+/obj/effect/mob_spawn/human/corpse/inteq/medic/tradepost
+ mob_name = "Jenny Amasatsu"
+ brute_damage = 140
+ burn_damage = 78
+ mob_gender = FEMALE
+ outfit = /datum/outfit/job/inteq/paramedic/tradepost
+
+/obj/effect/mob_spawn/human/corpse/inteq/vanguard/tradepost
+ outfit = /datum/outfit/job/inteq/captain/tradepost
+ mob_species = /datum/species/spider
+ gender = FEMALE
+
+/obj/effect/mob_spawn/human/corpse/indie/engineer
+ outfit = /datum/outfit/job/independent/engineer
+
+/obj/effect/mob_spawn/human/corpse/indie/manager
+ outfit = /datum/outfit/job/independent/captain/manager
+ mob_species = /datum/species/elzuose
+ backpack_contents = null
+
+
+/datum/outfit/job/inteq/paramedic/tradepost
+ name = "Trade Post Corpsman"
+ belt = /obj/item/storage/belt/medical/webbing
+
+/datum/outfit/job/inteq/captain/tradepost
+ name = "Trade Post Vanguard"
+
+ r_pocket = null
+ l_pocket = null
+
+ backpack_contents = null
diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm
index 6cb9f7304585..65e893994912 100644
--- a/code/modules/shuttle/on_move.dm
+++ b/code/modules/shuttle/on_move.dm
@@ -82,6 +82,7 @@ All ShuttleMove procs go here
/turf/proc/afterShuttleMove(turf/oldT, rotation, list/all_towed_shuttles)
//Dealing with the turf we left behind
oldT.TransferComponents(src)
+ src.base_icon_state = oldT.base_icon_state
SEND_SIGNAL(oldT, COMSIG_TURF_AFTER_SHUTTLE_MOVE, src) //Mostly for decals
if(rotation)
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 5af554a60557..5b6e6239f6a7 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -5,9 +5,9 @@
//NORTH default dir
/obj/docking_port
- invisibility = INVISIBILITY_ABSTRACT
- icon = 'icons/obj/device.dmi'
- icon_state = "pinonfar"
+ invisibility = INVISIBILITY_OBSERVER
+ icon = 'icons/effects/mapping/docking_ports.dmi'
+ icon_state = "static"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | LANDING_PROOF | HYPERSPACE_PROOF
anchored = TRUE
@@ -249,7 +249,7 @@
name = "transit dock"
var/datum/map_zone/reserved_mapzone
- var/area/shuttle/transit/assigned_area
+ var/area/hyperspace/assigned_area
var/obj/docking_port/mobile/owner
/obj/docking_port/stationary/transit/Initialize()
@@ -272,7 +272,7 @@
/obj/docking_port/mobile
name = "shuttle"
- icon_state = "pinonclose"
+ icon_state = "mobile"
var/area_type = SHUTTLE_DEFAULT_SHUTTLE_AREA_TYPE
@@ -409,7 +409,7 @@
shuttle_areas = list()
var/list/all_turfs = return_ordered_turfs(x, y, z, dir)
for(var/turf/curT as anything in all_turfs)
- var/area/shuttle/cur_area = curT.loc
+ var/area/ship/cur_area = curT.loc
if(istype(cur_area, area_type))
turf_count++
shuttle_areas[cur_area] = TRUE
@@ -651,7 +651,7 @@
continue // out of bounds
if(T0.type == T0.baseturfs)
continue // indestructible
- if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/shuttle/transit))
+ if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/hyperspace))
continue // not part of the shuttle
ripple_turfs += T1
@@ -722,13 +722,13 @@
var/obj/docking_port/stationary/S0 = docked
if(istype(S0, /obj/docking_port/stationary/transit) && timeLeft(1) <= PARALLAX_LOOP_TIME)
for(var/place in shuttle_areas)
- var/area/shuttle/shuttle_area = place
+ var/area/ship/shuttle_area = place
if(shuttle_area.parallax_movedir)
parallax_slowdown()
/obj/docking_port/mobile/proc/parallax_slowdown()
for(var/place in shuttle_areas)
- var/area/shuttle/shuttle_area = place
+ var/area/ship/shuttle_area = place
shuttle_area.parallax_movedir = FALSE
if(assigned_transit && assigned_transit.assigned_area)
assigned_transit.assigned_area.parallax_movedir = FALSE
diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm
index 4f785516f5cc..9888384d59cb 100644
--- a/code/modules/shuttle/supply.dm
+++ b/code/modules/shuttle/supply.dm
@@ -1,18 +1,15 @@
GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list(
/mob/living,
- /obj/effect/rune,
/obj/structure/spider/spiderling,
/obj/item/disk/nuclear,
/obj/machinery/nuclearbomb,
/obj/item/beacon,
- /obj/singularity/narsie,
/obj/singularity/wizard,
/obj/machinery/teleport/station,
/obj/machinery/teleport/hub,
/obj/machinery/quantumpad,
/obj/effect/mob_spawn,
/obj/effect/hierophant,
- /obj/structure/receiving_pad,
/obj/item/warp_cube,
/obj/machinery/rnd/production, //print tracking beacons, send shuttle
/obj/machinery/autolathe, //same
@@ -34,168 +31,3 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list(
/obj/item/pipe
//[/CELADON-ADD]
)))
-
-/*
-/obj/docking_port/mobile/supply
- name = "supply shuttle"
- callTime = 600
-
- dir = WEST
- port_direction = EAST
- width = 12
- dwidth = 5
- height = 7
- movement_force = list("KNOCKDOWN" = 0, "THROW" = 0)
-
-
- //Export categories for this run, this is set by console sending the shuttle.
- var/export_categories = EXPORT_CARGO
-
-/obj/docking_port/mobile/supply/register()
- . = ..()
- SSshuttle.supply = src
-
-/obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances)
- for(var/place in areaInstances)
- var/area/shuttle/shuttle_area = place
- for(var/trf in shuttle_area)
- var/turf/T = trf
- for(var/a in T.GetAllContents())
- if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types) && !istype(a, /obj/docking_port))
- return FALSE
- return TRUE
-
-/obj/docking_port/mobile/supply/request(obj/docking_port/stationary/S)
- if(mode != SHUTTLE_IDLE)
- return 2
- return ..()
-
-
-/obj/docking_port/mobile/supply/initiate_docking()
- if(get_docked() == SSshuttle.supply_away_port) // Buy when we leave home.
- buy()
- . = ..() // Fly/enter transit.
- if(. != DOCKING_SUCCESS)
- return
- if(get_docked() == SSshuttle.supply_away_port) // Sell when we get home
- sell()
-
-/obj/docking_port/mobile/supply/proc/buy()
- var/list/obj/miscboxes = list() //miscboxes are combo boxes that contain all small_item orders grouped
- var/list/misc_order_num = list() //list of strings of order numbers, so that the manifest can show all orders in a box
- var/list/misc_contents = list() //list of lists of items that each box will contain
- if(!SSshuttle.shoppinglist.len)
- return
-
- var/list/empty_turfs = list()
- for(var/place in shuttle_areas)
- var/area/shuttle/shuttle_area = place
- for(var/turf/open/floor/T in shuttle_area)
- if(T.is_blocked_turf())
- continue
- empty_turfs += T
-
- var/value = 0
- var/purchases = 0
- for(var/datum/supply_order/SO in SSshuttle.shoppinglist)
- if(!empty_turfs.len)
- break
- var/price = SO.pack.cost
- var/datum/bank_account/D
- if(SO.paying_account) //Someone paid out of pocket
- D = SO.paying_account
- price *= 1.1 //TODO make this customizable by the quartermaster
- else
- D = SSeconomy.get_dep_account(ACCOUNT_CAR)
- if(D)
- if(!D.adjust_money(-price))
- if(SO.paying_account)
- D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]")
- continue
-
- if(SO.paying_account)
- D.bank_card_talk("Cargo order #[SO.id] has shipped. [price] credits have been charged to your bank account.")
- var/datum/bank_account/department/cargo = SSeconomy.get_dep_account(ACCOUNT_CAR)
- cargo.adjust_money(price - SO.pack.cost) //Cargo gets the handling fee
- value += SO.pack.cost
- SSshuttle.shoppinglist -= SO
- SSshuttle.orderhistory += SO
-
- if(SO.pack.small_item) //small_item means it gets piled in the miscbox
- if(SO.paying_account)
- if(!miscboxes.len || !miscboxes[D.account_holder]) //if there's no miscbox for this person
- miscboxes[D.account_holder] = new /obj/structure/closet/crate/secure/owned(pick_n_take(empty_turfs), SO.paying_account)
- miscboxes[D.account_holder].name = "small items crate - purchased by [D.account_holder]"
- misc_contents[D.account_holder] = list()
- for (var/item in SO.pack.contains)
- misc_contents[D.account_holder] += item
- misc_order_num[D.account_holder] = "[misc_order_num[D.account_holder]]#[SO.id] "
- else //No private payment, so we just stuff it all into a generic crate
- if(!miscboxes.len || !miscboxes["Cargo"])
- miscboxes["Cargo"] = new /obj/structure/closet/crate/secure(pick_n_take(empty_turfs))
- miscboxes["Cargo"].name = "small items crate"
- misc_contents["Cargo"] = list()
- miscboxes["Cargo"].req_access = list()
- for (var/item in SO.pack.contains)
- misc_contents["Cargo"] += item
- //new item(miscboxes["Cargo"])
- if(SO.pack.access)
- miscboxes["Cargo"].req_access += SO.pack.access
- misc_order_num["Cargo"] = "[misc_order_num["Cargo"]]#[SO.id] "
- else
- SO.generate(pick_n_take(empty_turfs))
-
- SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]"))
- investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO)
- if(SO.pack.dangerous)
- message_admins("\A [SO.pack.name] ordered by [ADMIN_LOOKUPFLW(SO.orderer_ckey)], paid by [D.account_holder] has shipped.")
- purchases++
-
- for(var/I in miscboxes)
- var/datum/supply_order/SO = new/datum/supply_order()
- SO.id = misc_order_num[I]
- SO.generateCombo(miscboxes[I], I, misc_contents[I])
- qdel(SO)
-
- var/datum/bank_account/cargo_budget = SSeconomy.get_dep_account(ACCOUNT_CAR)
- investigate_log("[purchases] orders in this shipment, worth [value] credits. [cargo_budget.account_balance] credits left.", INVESTIGATE_CARGO)
-
-/obj/docking_port/mobile/supply/proc/sell()
- var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR)
- var/presale_points = D.account_balance
-
- if(!GLOB.exports_list.len) // No exports list? Generate it!
- setupExports()
-
- var/msg = ""
- var/matched_bounty = FALSE
-
- var/datum/export_report/ex = new
-
- for(var/place in shuttle_areas)
- var/area/shuttle/shuttle_area = place
- for(var/atom/movable/AM in shuttle_area)
- if(iscameramob(AM))
- continue
- if(bounty_ship_item_and_contents(AM, dry_run = FALSE))
- matched_bounty = TRUE
- if(!AM.anchored || istype(AM, /obj/mecha))
- export_item_and_contents(AM, export_categories , dry_run = FALSE, external_report = ex)
-
- if(ex.exported_atoms)
- ex.exported_atoms += "." //ugh
-
- if(matched_bounty)
- msg += "Bounty items received. An update has been sent to all bounty consoles. "
-
- for(var/datum/export/E in ex.total_amount)
- var/export_text = E.total_printout(ex)
- if(!export_text)
- continue
-
- msg += export_text + "\n"
- D.adjust_money(ex.total_value[E])
-
- SSshuttle.centcom_message = msg
- investigate_log("Shuttle contents sold for [D.account_balance - presale_points] credits. Contents: [ex.exported_atoms ? ex.exported_atoms.Join(",") + "." : "none."] Message: [SSshuttle.centcom_message || "none."]", INVESTIGATE_CARGO)
-*/
diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm
index c67e82cf7e7d..bc453eecd3d1 100644
--- a/code/modules/spells/spell.dm
+++ b/code/modules/spells/spell.dm
@@ -117,7 +117,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used
var/clothes_req = TRUE //see if it requires clothes
- var/cult_req = FALSE //SPECIAL SNOWFLAKE clothes required for cult only spells
var/human_req = FALSE //spell can only be cast by humans
var/nonabstract_req = FALSE //spell can only be cast by mobs that are physical entities
var/stat_allowed = FALSE //see if it requires being conscious/alive, need to set to 1 for ghostpells
@@ -209,19 +208,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
if(!is_type_in_typecache(H.head, casting_clothes))
to_chat(H, " You don't feel strong enough without your hat!")
return FALSE
- if(cult_req) //CULT_REQ CLOTHES CHECK
- // [CELADON-EDIT] - CELADON_RETURN_CONTENT
- // if(!istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) // CELADON-EDIT - ORIGINAL
- if(!istype(H.wear_suit, /obj/item/clothing/suit/magusred) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult))
- // [/CELADON-EDIT]
- to_chat(H, " You don't feel strong enough without your armor.")
- return FALSE
- // [CELADON-EDIT] - CELADON_RETURN_CONTENT
- // if(!istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) // CELADON-EDIT - ORIGINAL
- if(!istype(H.head, /obj/item/clothing/head/magus) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult))
- // [/CELADON-EDIT]
- to_chat(H, " You don't feel strong enough without your helmet.")
- return FALSE
else
if(clothes_req || human_req)
to_chat(user, " This spell can only be cast by humans!")
diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm
deleted file mode 100644
index 61c05c4170fe..000000000000
--- a/code/modules/spells/spell_types/construct_spells.dm
+++ /dev/null
@@ -1,327 +0,0 @@
-//////////////////////////////Construct Spells/////////////////////////
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser
- charge_max = 1800
- action_background_icon_state = "bg_demon"
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser/cult
- clothes_req = TRUE
- charge_max = 2500
-
-/obj/effect/proc_holder/spell/aoe_turf/area_conversion
- name = "Area Conversion"
- desc = "This spell instantly converts a small area around you."
-
- school = "transmutation"
- charge_max = 50
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 2
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "areaconvert"
- action_background_icon_state = "bg_cult"
-
-/obj/effect/proc_holder/spell/aoe_turf/area_conversion/cast(list/targets, mob/user = usr)
- playsound(get_turf(user), 'sound/items/welder.ogg', 75, TRUE)
- for(var/turf/T in targets)
- T.narsie_act(FALSE, TRUE, 100 - (get_dist(user, T) * 25))
-
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/floor
- name = "Summon Cult Floor"
- desc = "This spell constructs a cult floor."
-
- school = "conjuration"
- charge_max = 20
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 0
- summon_type = list(/turf/open/floor/engine/cult)
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "floorconstruct"
- action_background_icon_state = "bg_cult"
-
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/wall
- name = "Summon Cult Wall"
- desc = "This spell constructs a cult wall."
-
- school = "conjuration"
- charge_max = 100
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 0
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "lesserconstruct"
- action_background_icon_state = "bg_cult"
-
- summon_type = list(/turf/closed/wall/mineral/cult/artificer) //we don't want artificer-based runed metal farms
-
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/wall/reinforced
- name = "Greater Construction"
- desc = "This spell constructs a reinforced metal wall."
-
- school = "conjuration"
- charge_max = 300
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 0
-
- summon_type = list(/turf/closed/wall/r_wall)
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone
- name = "Summon Soulstone"
- desc = "This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space."
-
- school = "conjuration"
- charge_max = 2400
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 0
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "summonsoulstone"
- action_background_icon_state = "bg_demon"
-
- summon_type = list(/obj/item/soulstone)
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult
- clothes_req = TRUE
- charge_max = 3600
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult
- summon_type = list(/obj/item/soulstone/anybody)
-
-/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified
- summon_type = list(/obj/item/soulstone/anybody/purified)
-
-/obj/effect/proc_holder/spell/targeted/forcewall/cult
- name = "Shield"
- desc = "This spell creates a temporary forcefield to shield yourself and allies from incoming fire."
- school = "transmutation"
- charge_max = 400
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- wall_type = /obj/effect/forcefield/cult
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "cultforcewall"
- action_background_icon_state = "bg_demon"
-
-
-
-/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift
- name = "Phase Shift"
- desc = "This spell allows you to pass through walls."
-
- school = "transmutation"
- charge_max = 250
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = -1
- include_user = TRUE
- jaunt_duration = 50 //in deciseconds
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "phaseshift"
- action_background_icon_state = "bg_demon"
- jaunt_in_time = 6
- jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith
- jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out
-
-/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc)
- return
-
-/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic
- jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith/angelic
- jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out/angelic
-
-/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser
- name = "Lesser Magic Missile"
- desc = "This spell fires several, slow moving, magic projectiles at nearby targets."
-
- school = "evocation"
- charge_max = 400
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- max_targets = 6
- action_icon_state = "magicm"
- action_background_icon_state = "bg_demon"
- proj_type = /obj/projectile/magic/spell/magic_missile/lesser
-
-/obj/projectile/magic/spell/magic_missile/lesser
- color = "red" //Looks more culty this way
- range = 10
-
-/obj/effect/proc_holder/spell/targeted/smoke/disable
- name = "Paralysing Smoke"
- desc = "This spell spawns a cloud of paralysing smoke."
-
- school = "conjuration"
- charge_max = 200
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = -1
- include_user = TRUE
- cooldown_min = 20 //25 deciseconds reduction per rank
-
- smoke_spread = 3
- smoke_amt = 4
- action_icon_state = "smoke"
- action_background_icon_state = "bg_cult"
-
-/obj/effect/proc_holder/spell/pointed/abyssal_gaze
- name = "Abyssal Gaze"
- desc = "This spell instills a deep terror in your target, temporarily chilling and blinding it."
- charge_max = 750
- range = 5
- stat_allowed = FALSE
- school = "evocation"
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi'
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_background_icon_state = "bg_demon"
- action_icon_state = "abyssal_gaze"
- active_msg = "You prepare to instill a deep terror in a target..."
-
-/obj/effect/proc_holder/spell/pointed/abyssal_gaze/cast(list/targets, mob/user)
- if(!LAZYLEN(targets))
- to_chat(user, " No target found in range!")
- return FALSE
- if(!can_target(targets[1], user))
- return FALSE
-
- var/mob/living/carbon/target = targets[1]
- if(target.anti_magic_check(TRUE, TRUE))
- to_chat(user, " The spell had no effect!")
- to_chat(target, " You feel a freezing darkness closing in on you, but it rapidly dissipates.")
- return FALSE
-
- to_chat(target, " A freezing darkness surrounds you...")
- target.playsound_local(get_turf(target), 'sound/hallucinations/i_see_you1.ogg', 50, 1)
- user.playsound_local(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1)
- target.become_blind(ABYSSAL_GAZE_BLIND)
- addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40)
- target.adjust_bodytemperature(-200)
-
-/**
- * cure_blidness: Cures Abyssal Gaze blindness from the target
- *
- * Arguments:
- * * target The mob that is being cured of the blindness.
- */
-/obj/effect/proc_holder/spell/pointed/abyssal_gaze/proc/cure_blindness(mob/target)
- if(isliving(target))
- var/mob/living/L = target
- L.cure_blind(ABYSSAL_GAZE_BLIND)
-
-/obj/effect/proc_holder/spell/pointed/abyssal_gaze/can_target(atom/target, mob/user, silent)
- . = ..()
- if(!.)
- return FALSE
- if(!iscarbon(target))
- if(!silent)
- to_chat(user, " You can only target carbon based lifeforms!")
- return FALSE
- return TRUE
-
-/obj/effect/proc_holder/spell/pointed/dominate
- name = "Dominate"
- desc = "This spell dominates the mind of a lesser creature to the will of Nar'Sie, allying it only to her direct followers."
- charge_max = 600
- range = 7
- stat_allowed = FALSE
- school = "evocation"
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi'
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_background_icon_state = "bg_demon"
- action_icon_state = "dominate"
- active_msg = "You prepare to dominate the mind of a target..."
-
-/obj/effect/proc_holder/spell/pointed/dominate/cast(list/targets, mob/user)
- if(!LAZYLEN(targets))
- to_chat(user, " No target found in range.")
- return FALSE
- if(!can_target(targets[1], user))
- return FALSE
-
- var/mob/living/simple_animal/S = targets[1]
- S.add_atom_colour("#990000", FIXED_COLOUR_PRIORITY)
- S.faction = list("cult")
- playsound(get_turf(S), 'sound/effects/ghost.ogg', 100, TRUE)
- new /obj/effect/temp_visual/cult/sac(get_turf(S))
-
-/obj/effect/proc_holder/spell/pointed/dominate/can_target(atom/target, mob/user, silent)
- . = ..()
- if(!.)
- return FALSE
- if(!isanimal(target))
- if(!silent)
- to_chat(user, " Target is not a lesser creature!")
- return FALSE
-
- var/mob/living/simple_animal/S = target
- if(S.mind)
- if(!silent)
- to_chat(user, " [S] is too intelligent to dominate!")
- return FALSE
- if(S.stat)
- if(!silent)
- to_chat(user, " [S] is dead!")
- return FALSE
- if(S.sentience_type != SENTIENCE_ORGANIC)
- if(!silent)
- to_chat(user, " [S] cannot be dominated!")
- return FALSE
- if("cult" in S.faction)
- if(!silent)
- to_chat(user, " [S] is already serving Nar'Sie!")
- return FALSE
- return TRUE
-
-/obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut
- name = "Gauntlet Echo"
- desc = "Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack."
- proj_type = /obj/projectile/magic/spell/juggernaut
- charge_max = 350
- clothes_req = FALSE
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "cultfist"
- action_background_icon_state = "bg_demon"
- sound = 'sound/weapons/resonator_blast.ogg'
-
-/obj/projectile/magic/spell/juggernaut
- name = "Gauntlet Echo"
- icon_state = "cultfist"
- alpha = 180
- damage = 30
- damage_type = BRUTE
- knockdown = 50
- hitsound = 'sound/weapons/punch3.ogg'
- trigger_range = 0
- check_holy = TRUE
- ignored_factions = list("cult")
- range = 15
- speed = 7
-
-/obj/projectile/magic/spell/juggernaut/on_hit(atom/target, blocked)
- . = ..()
- var/turf/T = get_turf(src)
- playsound(T, 'sound/weapons/resonator_blast.ogg', 100, FALSE)
- new /obj/effect/temp_visual/cult/sac(T)
- for(var/obj/O in range(src,1))
- if(O.density && !istype(O, /obj/structure/destructible/cult))
- O.take_damage(90, BRUTE, "melee", 0)
- new /obj/effect/temp_visual/cult/turf/floor(get_turf(O))
diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm
deleted file mode 100644
index f1654551df3a..000000000000
--- a/code/modules/spells/spell_types/devil.dm
+++ /dev/null
@@ -1,236 +0,0 @@
-/obj/effect/proc_holder/spell/targeted/conjure_item/violin
- item_type = /obj/item/instrument/violin/golden
- desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin."
- invocation_type = INVOCATION_WHISPER
- invocation = "I ain't had this much fun since Georgia."
- action_icon_state = "golden_violin"
- name = "Summon golden violin"
- action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
- action_background_icon_state = "bg_demon"
-
-/obj/effect/proc_holder/spell/targeted/summon_contract
- name = "Summon infernal contract"
- desc = "Skip making a contract by hand, just do it by magic."
- invocation_type = INVOCATION_WHISPER
- invocation = "Just sign on the dotted line."
- include_user = FALSE
- range = 5
- clothes_req = FALSE
-
- school = "conjuration"
- charge_max = 150
- cooldown_min = 10
- action_icon_state = "spell_default"
- action_background_icon_state = "bg_demon"
-
-/obj/effect/proc_holder/spell/targeted/summon_contract/cast(list/targets, mob/user = usr)
- for(var/mob/living/carbon/C in targets)
- if(C.mind && user.mind)
- if(C.stat == DEAD)
- if(user.dropItemToGround(user.get_active_held_item()))
- var/obj/item/paper/contract/infernal/revive/contract = new(user.loc, C.mind, user.mind)
- user.put_in_hands(contract)
- else
- var/obj/item/paper/contract/infernal/contract // = new(user.loc, C.mind, contractType, user.mind)
- var/contractTypeName = input(user, "What type of contract?") in sortList(list("Power", "Wealth", "Prestige", "Magic", "Knowledge", "Friendship"))
- switch(contractTypeName)
- if("Power")
- contract = new /obj/item/paper/contract/infernal/power(C.loc, C.mind, user.mind)
- if("Wealth")
- contract = new /obj/item/paper/contract/infernal/wealth(C.loc, C.mind, user.mind)
- if("Prestige")
- contract = new /obj/item/paper/contract/infernal/prestige(C.loc, C.mind, user.mind)
- if("Magic")
- contract = new /obj/item/paper/contract/infernal/magic(C.loc, C.mind, user.mind)
- if("Knowledge")
- contract = new /obj/item/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind)
- if("Friendship")
- contract = new /obj/item/paper/contract/infernal/friend(C.loc, C.mind, user.mind)
- C.put_in_hands(contract)
- else
- to_chat(user, " [C] seems to not be sentient. You cannot summon a contract for [C.p_them()].")
-
-
-/obj/effect/proc_holder/spell/aimed/fireball/hellish
- name = "Hellfire"
- desc = "This spell launches hellfire at the target."
-
- school = "evocation"
- charge_max = 80
- clothes_req = FALSE
- invocation = "Your very soul will catch fire!"
- invocation_type = INVOCATION_SHOUT
- range = 2
-
- projectile_type = /obj/projectile/magic
-
- action_background_icon_state = "bg_demon"
-
-/obj/effect/proc_holder/spell/targeted/infernal_jaunt
- name = "Infernal Jaunt"
- desc = "Use hellfire to phase out of existence."
- charge_max = 200
- clothes_req = FALSE
- selection_type = "range"
- range = -1
- cooldown_min = 0
- overlay = null
- include_user = TRUE
- action_icon_state = "jaunt"
- action_background_icon_state = "bg_demon"
- phase_allowed = TRUE
-
-/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr)
- if(istype(user))
- if(istype(user.loc, /obj/effect/dummy/phased_mob/slaughter/))
- if(valid_location(user))
- to_chat(user, " You are now phasing in.")
- if(do_after(user, 1.5 SECONDS, user))
- if(valid_location(user))
- user.infernalphasein()
- else
- to_chat(user, " You are no longer near a potential signer.")
-
- else
- to_chat(user, " You can only re-appear near a potential signer.")
- revert_cast()
- return ..()
- else
- user.notransform = TRUE
- user.fakefire()
- to_chat(src, " You begin to phase back into sinful flames.")
- if(do_after(user, 1.5 SECONDS, user))
- user.infernalphaseout()
- else
- to_chat(user, " You must remain still while exiting.")
- user.notransform = FALSE
- user.fakefireextinguish()
- start_recharge()
- return
- revert_cast()
-
-/obj/effect/proc_holder/spell/targeted/infernal_jaunt/proc/valid_location(mob/living/user = usr)
- if(istype(get_area(user), /area/shuttle/)) // Can always phase in in a shuttle.
- return TRUE
- else
- for(var/mob/living/C in orange(2, get_turf(user))) //Can also phase in when nearby a potential buyer.
- if (C.owns_soul())
- return TRUE
- return FALSE
-
-/mob/living/proc/infernalphaseout()
- dust_animation()
- spawn_dust()
- visible_message(" [src] disappears in a flashfire!")
- playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, TRUE, -1)
- var/obj/effect/dummy/phased_mob/slaughter/holder = new /obj/effect/dummy/phased_mob/slaughter(loc)
- ExtinguishMob()
- forceMove(holder)
- holder = holder
- notransform = FALSE
- fakefireextinguish()
-
-/mob/living/proc/infernalphasein()
- if(notransform)
- to_chat(src, " You're too busy to jaunt in.")
- return FALSE
- fakefire()
- forceMove(drop_location())
- client.eye = src
- visible_message(" [src] appears in a fiery blaze!")
- playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, TRUE, -1)
- addtimer(CALLBACK(src, PROC_REF(fakefireextinguish)), 15, TIMER_UNIQUE)
-
-/obj/effect/proc_holder/spell/targeted/sintouch
- name = "Sin Touch"
- desc = "Subtly encourage someone to sin."
- charge_max = 1800
- clothes_req = FALSE
- selection_type = "range"
- range = 2
- cooldown_min = 0
- overlay = null
- include_user = FALSE
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "sintouch"
- action_background_icon_state = "bg_demon"
- phase_allowed = FALSE
- random_target = TRUE
- random_target_priority = TARGET_RANDOM
- max_targets = 3
- invocation = "TASTE SIN AND INDULGE!!"
- invocation_type = INVOCATION_SHOUT
-
-/obj/effect/proc_holder/spell/targeted/sintouch/ascended
- name = "Greater sin touch"
- charge_max = 100
- range = 7
- max_targets = 10
-
-/obj/effect/proc_holder/spell/targeted/sintouch/cast(list/targets, mob/living/user = usr)
- for(var/mob/living/carbon/human/H in targets)
- if(!H.mind)
- continue
- if(H.mind.has_antag_datum(/datum/antagonist/sintouched))
- continue
- if(H.anti_magic_check(FALSE, TRUE))
- continue
- H.mind.add_antag_datum(/datum/antagonist/sintouched)
- H.Paralyze(400)
-
-
-/obj/effect/proc_holder/spell/targeted/summon_dancefloor
- name = "Summon Dancefloor"
- desc = "When what a Devil really needs is funk."
- include_user = TRUE
- range = -1
- clothes_req = FALSE
-
- school = "conjuration"
- charge_max = 10
- cooldown_min = 50 //5 seconds, so the smoke can't be spammed
- action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
- action_icon_state = "funk"
- action_background_icon_state = "bg_demon"
-
- var/list/dancefloor_turfs
- var/list/dancefloor_turfs_types
- var/dancefloor_exists = FALSE
- var/datum/effect_system/smoke_spread/transparent/dancefloor_devil/smoke
-
-
-/obj/effect/proc_holder/spell/targeted/summon_dancefloor/cast(list/targets, mob/user = usr)
- LAZYINITLIST(dancefloor_turfs)
- LAZYINITLIST(dancefloor_turfs_types)
-
- if(!smoke)
- smoke = new()
- smoke.set_up(0, get_turf(user))
- smoke.start()
-
- if(dancefloor_exists)
- dancefloor_exists = FALSE
- for(var/i in 1 to dancefloor_turfs.len)
- var/turf/T = dancefloor_turfs[i]
- T.ChangeTurf(dancefloor_turfs_types[i], flags = CHANGETURF_INHERIT_AIR)
- else
- var/list/funky_turfs = RANGE_TURFS(1, user)
- for(var/turf/closed/solid in funky_turfs)
- to_chat(user, " You're too close to a wall.")
- return
- dancefloor_exists = TRUE
- var/i = 1
- dancefloor_turfs.len = funky_turfs.len
- dancefloor_turfs_types.len = funky_turfs.len
- for(var/t in funky_turfs)
- var/turf/T = t
- dancefloor_turfs[i] = T
- dancefloor_turfs_types[i] = T.type
- T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b, flags = CHANGETURF_INHERIT_AIR)
- i++
-
-/datum/effect_system/smoke_spread/transparent/dancefloor_devil
- effect_type = /obj/effect/particle_effect/smoke/transparent/dancefloor_devil
-
-/obj/effect/particle_effect/smoke/transparent/dancefloor_devil
- lifetime = 2
diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm
deleted file mode 100644
index 01ea14b15fa8..000000000000
--- a/code/modules/spells/spell_types/devil_boons.dm
+++ /dev/null
@@ -1,76 +0,0 @@
-/obj/effect/proc_holder/spell/targeted/summon_wealth
- name = "Summon wealth"
- desc = "The reward for selling your soul."
- invocation_type = "none"
- include_user = TRUE
- range = -1
- clothes_req = FALSE
- school = "conjuration"
- charge_max = 100
- cooldown_min = 10
- action_icon = 'icons/mob/actions/actions_minor_antag.dmi'
- action_icon_state = "moneybag"
-
-
-/obj/effect/proc_holder/spell/targeted/summon_wealth/cast(list/targets, mob/user = usr)
- for(var/mob/living/carbon/C in targets)
- if(user.dropItemToGround(user.get_active_held_item()))
- var/obj/item = pick(
- new /obj/item/coin/gold(user.drop_location()),
- new /obj/item/coin/diamond(user.drop_location()),
- new /obj/item/coin/silver(user.drop_location()),
- new /obj/item/clothing/accessory/medal/gold(user.drop_location()),
- new /obj/item/stack/sheet/mineral/gold(user.drop_location()),
- new /obj/item/stack/sheet/mineral/silver(user.drop_location()),
- new /obj/item/stack/sheet/mineral/diamond(user.drop_location()),
- new /obj/item/holochip(user.drop_location(), 1000))
- C.put_in_hands(item)
-
-/obj/effect/proc_holder/spell/targeted/view_range
- name = "Distant vision"
- desc = "The reward for selling your soul."
- invocation_type = "none"
- include_user = TRUE
- range = -1
- clothes_req = FALSE
- charge_max = 50
- cooldown_min = 10
- action_icon = 'icons/mob/actions/actions_silicon.dmi'
- action_icon_state = "camera_jump"
- var/ranges = list(7,8,9,10)
-
-/obj/effect/proc_holder/spell/targeted/view_range/cast(list/targets, mob/user = usr)
- for(var/mob/C in targets)
- if(!C.client)
- continue
- C.client.view_size.setTo((input("Select view range:", "Range", 4) in ranges) - 7)
-
-/obj/effect/proc_holder/spell/targeted/summon_friend
- name = "Summon Friend"
- desc = "The reward for selling your soul."
- invocation_type = "none"
- include_user = TRUE
- range = -1
- clothes_req = FALSE
- charge_max = 50
- cooldown_min = 10
- action_icon = 'icons/mob/actions/actions_spells.dmi'
- action_icon_state = "sacredflame"
- var/mob/living/friend
- var/obj/effect/mob_spawn/human/demonic_friend/friendShell
-
-/obj/effect/proc_holder/spell/targeted/summon_friend/cast(list/targets, mob/user = usr)
- if(!QDELETED(friend))
- to_chat(friend, " Your master has deemed you a poor friend. Your durance in hell will now resume.")
- friend.dust(TRUE)
- qdel(friendShell)
- return
- if(!QDELETED(friendShell))
- qdel(friendShell)
- return
- for(var/C in targets)
- var/mob/living/L = C
- friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src)
-
-/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless
- clothes_req = FALSE
diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm
index 0e56c1112488..0cfb0ca04449 100644
--- a/code/modules/spells/spell_types/mime.dm
+++ b/code/modules/spells/spell_types/mime.dm
@@ -174,55 +174,6 @@
invocation_type ="none"
..()
-/obj/effect/proc_holder/spell/aimed/finger_guns
- name = "Finger Guns"
- desc = "Shoot a mimed bullet from your fingers that stuns and does some damage."
- school = "mime"
- panel = "Mime"
- charge_max = 300
- clothes_req = FALSE
- antimagic_allowed = TRUE
- invocation_type = INVOCATION_EMOTE
- invocation_emote_self = " You fire your finger gun!"
- range = 20
- projectile_type = /obj/projectile/bullet/mime
- projectile_amount = 3
- sound = null
- active_msg = "You draw your fingers!"
- deactive_msg = "You put your fingers at ease. Another time."
- active = FALSE
-
- action_icon = 'icons/mob/actions/actions_mime.dmi'
- action_icon_state = "finger_guns0"
- action_background_icon_state = "bg_mime"
- base_icon_state = "finger_guns"
-
-
-/obj/effect/proc_holder/spell/aimed/finger_guns/Click()
- var/mob/living/carbon/human/owner = usr
- if(owner.incapacitated())
- to_chat(owner, " You can't properly point your fingers while incapacitated.")
- return
- if(usr && usr.mind)
- if(!usr.mind.miming)
- to_chat(usr, " You must dedicate yourself to silence first!")
- return
- invocation = " [usr.real_name] fires [usr.p_their()] finger gun!"
- else
- invocation_type ="none"
- ..()
-
-/obj/effect/proc_holder/spell/aimed/finger_guns/InterceptClickOn(mob/living/caller, params, atom/target)
- if(caller.incapacitated())
- to_chat(caller, " You can't properly point your fingers while incapacitated.")
- if(charge_type == "recharge")
- var/refund_percent = current_amount/projectile_amount
- charge_counter = charge_max * refund_percent
- start_recharge()
- remove_ranged_ability()
- on_deactivation(caller)
- ..()
-
/obj/item/book/granter/spell/mimery_blockade
spell = /obj/effect/proc_holder/spell/targeted/forcewall/mime
spellname = "Invisible Blockade"
@@ -237,18 +188,3 @@
return
if(!locate(/obj/effect/proc_holder/spell/targeted/mime/speak) in user.mind.spell_list)
user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak)
-
-/obj/item/book/granter/spell/mimery_guns
- spell = /obj/effect/proc_holder/spell/aimed/finger_guns
- spellname = "Finger Guns"
- name = "Guide to Advanced Mimery Vol 2"
- desc = "There aren't any words written..."
- icon_state ="bookmime"
- remarks = list("...")
-
-/obj/item/book/granter/spell/mimery_guns/attack_self(mob/user)
- . = ..()
- if(!.)
- return
- if(!locate(/obj/effect/proc_holder/spell/targeted/mime/speak) in user.mind.spell_list)
- user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak)
diff --git a/code/modules/spells/spell_types/pointed/mind_transfer.dm b/code/modules/spells/spell_types/pointed/mind_transfer.dm
index e0ef3566fa0d..04a91f09b5e4 100644
--- a/code/modules/spells/spell_types/pointed/mind_transfer.dm
+++ b/code/modules/spells/spell_types/pointed/mind_transfer.dm
@@ -30,14 +30,10 @@
var/mob/living/victim = targets[1] //The target of the spell whos body will be transferred to.
var/datum/mind/VM = victim.mind
- if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/cult) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@")
+ if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@")
if(!silent)
to_chat(user, " [victim.p_their(TRUE)] mind is resisting your spell!")
return FALSE
- if(istype(victim, /mob/living/simple_animal/hostile/guardian))
- var/mob/living/simple_animal/hostile/guardian/stand = victim
- if(stand.summoner)
- victim = stand.summoner
//MIND TRANSFER BEGIN
var/mob/dead/observer/ghost = victim.ghostize()
@@ -84,11 +80,4 @@
if(!silent)
to_chat(user, " [t_He] appear[victim.p_s()] to be catatonic! Not even magic can affect [victim.p_their()] vacant mind.")
return FALSE
- if(istype(victim, /mob/living/simple_animal/hostile/guardian))
- var/mob/living/simple_animal/hostile/guardian/stand = victim
- if(stand.summoner)
- if(stand.summoner == user)
- if(!silent)
- to_chat(user, " Swapping minds with your own guardian would just put you back into your own head!")
- return FALSE
return TRUE
diff --git a/code/modules/spells/spell_types/rightandwrong.dm b/code/modules/spells/spell_types/rightandwrong.dm
index 633aa8dc4f25..a5c542c819ce 100644
--- a/code/modules/spells/spell_types/rightandwrong.dm
+++ b/code/modules/spells/spell_types/rightandwrong.dm
@@ -17,15 +17,15 @@ GLOBAL_LIST_INIT(summoned_guns, list(
/obj/item/gun/ballistic/automatic/pistol/ringneck,
/obj/item/gun/ballistic/shotgun/doublebarrel,
/obj/item/gun/ballistic/shotgun,
- /obj/item/gun/ballistic/shotgun/automatic/combat,
- /obj/item/gun/ballistic/automatic/assault/p16,
+ /obj/item/gun/ballistic/shotgun/automatic/m11,
+ /obj/item/gun/ballistic/automatic/m15,
/obj/item/gun/ballistic/revolver/mateba,
/obj/item/gun/ballistic/rifle/illestren,
/obj/item/pneumatic_cannon/speargun,
/obj/item/gun/energy/lasercannon,
/obj/item/gun/energy/kinetic_accelerator/crossbow/large,
/obj/item/gun/energy/e_gun/nuclear,
- /obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto,
+ /obj/item/gun/ballistic/automatic/smg/skm_carbine/saber,
/obj/item/gun/ballistic/automatic/smg/cobra,
/obj/item/gun/ballistic/automatic/assault/hydra/lmg/extended,
/obj/item/gun/ballistic/automatic/assault/hydra,
diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm
index 254a43dc23af..3c087cc8840d 100644
--- a/code/modules/spells/spell_types/shapeshift.dm
+++ b/code/modules/spells/spell_types/shapeshift.dm
@@ -20,8 +20,7 @@
var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\
/mob/living/simple_animal/pet/dog/corgi,\
/mob/living/simple_animal/bot/secbot/ed209,\
- /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,\
- /mob/living/simple_animal/hostile/construct/juggernaut)
+ /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,)
/obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr)
if(src in user.mob_spell_list)
diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm
index 2fab8c5848ef..bc800a49c7d4 100644
--- a/code/modules/spells/spell_types/wizard.dm
+++ b/code/modules/spells/spell_types/wizard.dm
@@ -132,12 +132,6 @@
sound1 = 'sound/magic/blink.ogg'
sound2 = 'sound/magic/blink.ogg'
-/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult
- name = "quickstep"
-
- charge_max = 100
- clothes_req = TRUE
-
/obj/effect/proc_holder/spell/targeted/area_teleport/teleport
name = "Teleport"
desc = "This spell teleports you to an area of your selection."
@@ -194,20 +188,6 @@
summon_type = list(/mob/living/simple_animal/hostile/carp)
cast_sound = 'sound/magic/summon_karp.ogg'
-/obj/effect/proc_holder/spell/aoe_turf/conjure/construct
- name = "Artificer"
- desc = "This spell conjures a construct which may be controlled by Shades."
- school = "conjuration"
- charge_max = 600
- clothes_req = FALSE
- invocation = "none"
- invocation_type = "none"
- range = 0
- summon_type = list(/obj/structure/constructshell)
- action_icon = 'icons/mob/actions/actions_cult.dmi'
- action_icon_state = "artificer"
- cast_sound = 'sound/magic/summonitems_generic.ogg'
-
/obj/effect/proc_holder/spell/aoe_turf/conjure/creature
name = "Summon Creature Swarm"
desc = "This spell tears the fabric of reality, allowing horrific daemons to spill forth."
@@ -223,12 +203,6 @@
summon_type = list(/mob/living/simple_animal/hostile/netherworld)
cast_sound = 'sound/magic/summonitems_generic.ogg'
-/obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult
- name = "Summon Creatures (DANGEROUS)"
- clothes_req = TRUE
- charge_max = 5000
- summon_amt = 2
-
/obj/effect/proc_holder/spell/aoe_turf/repulse
name = "Repulse"
desc = "This spell throws everything around the user away."
diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm
index 4c9b3556b6aa..e42cb866b508 100644
--- a/code/modules/station_goals/shield.dm
+++ b/code/modules/station_goals/shield.dm
@@ -158,26 +158,3 @@
/obj/machinery/satellite/meteor_shield/toggle(user)
if(!..(user))
return FALSE
- if(obj_flags & EMAGGED)
- if(active)
- change_meteor_chance(2)
- else
- change_meteor_chance(0.5)
-
-/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod)
- var/datum/round_event_control/E = locate(/datum/round_event_control/meteor_wave) in SSevents.control
- if(E)
- E.weight *= mod
-
-/obj/machinery/satellite/meteor_shield/Destroy()
- . = ..()
- if(active && (obj_flags & EMAGGED))
- change_meteor_chance(0.5)
-
-/obj/machinery/satellite/meteor_shield/emag_act(mob/user)
- if(obj_flags & EMAGGED)
- return
- obj_flags |= EMAGGED
- to_chat(user, " You access the satellite's debug mode, increasing the chance of meteor strikes.")
- if(active)
- change_meteor_chance(2)
diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm
index 0807e1e5c8cc..501cad86da4e 100644
--- a/code/modules/surgery/advanced/lobotomy.dm
+++ b/code/modules/surgery/advanced/lobotomy.dm
@@ -25,7 +25,7 @@
name = "perform lobotomy"
implements = list(
TOOL_SCALPEL = 85, // there is no way this should be reasonable to do basically at all without a real surgery. ghetto lobotomy, for real?
- /obj/item/melee/transforming/energy/sword = 25,
+ /obj/item/melee/energy/sword = 25,
/obj/item/melee/knife = 15,
/obj/item/shard = 10,
/obj/item = 5)
diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm
index d24c6c3b049b..ce5372fab39f 100644
--- a/code/modules/surgery/bodyparts/bodyparts.dm
+++ b/code/modules/surgery/bodyparts/bodyparts.dm
@@ -109,8 +109,11 @@
var/px_y = 0
var/species_flags_list = list()
+
///the type of damage overlay (if any) to use when this bodypart is bruised/burned.
var/dmg_overlay_type
+ ///the path for dmg overlay icons.
+ var/dmg_overlay_icon = 'icons/mob/dam_mob.dmi'
//Damage messages used by help_shake_act()
var/light_brute_msg = "bruised"
@@ -121,6 +124,9 @@
var/medium_burn_msg = "blistered"
var/heavy_burn_msg = "peeling away"
+ //band-aid for blood overlays & other external overlays until they get refactored
+ var/stored_icon_state
+
/obj/item/bodypart/Initialize()
. = ..()
name = "[limb_id] [parse_zone(body_zone)]"
@@ -373,7 +379,7 @@
if(total_damage >= max_damage * disable_threshold) //Easy limb disable disables the limb at 40% health instead of 0%
if(!last_maxed)
- if(owner.stat < UNCONSCIOUS)
+ if(owner.stat < UNCONSCIOUS && !HAS_TRAIT(owner, TRAIT_ANALGESIA))
INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob, emote), "scream")
last_maxed = TRUE
set_disabled(TRUE)
@@ -511,8 +517,8 @@
//Updates an organ's brute/burn states for use by update_damage_overlays()
//Returns 1 if we need to update overlays. 0 otherwise.
/obj/item/bodypart/proc/update_bodypart_damage_state()
- var/tbrute = round((brute_dam/max_damage)*3, 1)
- var/tburn = round((burn_dam/max_damage)*3, 1)
+ var/tbrute = min(round((brute_dam/max_damage)*6, 1), 3)
+ var/tburn = min(round((burn_dam/max_damage)*6, 1), 3)
if((tbrute != brutestate) || (tburn != burnstate))
brutestate = tbrute
burnstate = tburn
@@ -564,10 +570,10 @@
no_update = FALSE
if(HAS_TRAIT(C, TRAIT_HUSK) && IS_ORGANIC_LIMB(src))
- dmg_overlay_type = "" //no damage overlay shown when husked
+ //dmg_overlay_type = "" //no damage overlay shown when husked
is_husked = TRUE
else
- dmg_overlay_type = initial(dmg_overlay_type)
+ //dmg_overlay_type = initial(dmg_overlay_type)
is_husked = FALSE
if(!dropping_limb && C.dna?.check_mutation(HULK)) //Please remove hulk from the game. I beg you.
@@ -585,6 +591,11 @@
else
draw_color = null
+ if(C?.dna?.blood_type?.color)
+ damage_color = C.dna.blood_type.color
+ else
+ damage_color = COLOR_BLOOD
+
if(no_update)
return
@@ -677,12 +688,12 @@
image_dir = SOUTH
if(dmg_overlay_type)
if(brutestate)
- var/image/bruteoverlay = image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir)
+ var/image/bruteoverlay = image(dmg_overlay_icon, "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir)
if(use_damage_color)
bruteoverlay.color = damage_color
. += bruteoverlay
if(burnstate)
- . += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
+ . += image(dmg_overlay_icon, "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
var/image/limb = image(layer = -BODYPARTS_LAYER, dir = image_dir)
var/image/aux
@@ -778,6 +789,8 @@
limb_gender,
)*/
+ stored_icon_state = limb.icon_state
+
return
/obj/item/bodypart/deconstruct(disassembled = TRUE)
@@ -799,7 +812,7 @@
///obj/item/bodypart/proc/break_bone_feedback()
owner.visible_message(" You hear a cracking sound coming from [owner]'s [name].", " You feel something crack in your [name]!", " You hear an awful cracking sound.")
- playsound(owner, list('sound/health/bone/bone_break1.ogg','sound/health/bone/bone_break2.ogg','sound/health/bone/bone_break3.ogg','sound/health/bone/bone_break4.ogg','sound/health/bone/bone_break5.ogg','sound/health/bone/bone_break6.ogg'), 100, FALSE, -1)
+ playsound(owner, pick(list('sound/health/bone/bone_break1.ogg','sound/health/bone/bone_break2.ogg','sound/health/bone/bone_break3.ogg','sound/health/bone/bone_break4.ogg','sound/health/bone/bone_break5.ogg','sound/health/bone/bone_break6.ogg')), 100, FALSE, -1)
/obj/item/bodypart/proc/fix_bone()
// owner.update_inv_splints() breaks
@@ -813,7 +826,10 @@
return
if(prob(5))
- to_chat(owner, " [pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]")
+ if(HAS_TRAIT(owner, TRAIT_ANALGESIA))
+ to_chat(owner, span_notice("[pick("You feel something shifting inside your [name].", "There is something moving inside [name].", "Something inside your [name] slips.")]"))
+ else
+ to_chat(owner, " [pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]")
receive_damage(rand(1, 3))
//1-3 damage every 20 tiles for every broken bodypart.
//A single broken bodypart will give you an average of 650 tiles to run before you get a total of 100 damage and fall into crit
diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm
index 07d30e727c77..4a98e6b93ea0 100644
--- a/code/modules/surgery/bodyparts/dismemberment.dm
+++ b/code/modules/surgery/bodyparts/dismemberment.dm
@@ -20,7 +20,8 @@
if(C.stat <= SOFT_CRIT)//No more screaming while unconsious
if(IS_ORGANIC_LIMB(affecting))//Chest is a good indicator for if a carbon is robotic in nature or not.
- INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream")
+ if(!HAS_TRAIT(C, TRAIT_ANALGESIA)) //and do we actually feel pain?
+ INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream")
SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered)
diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm
index 05dffd8b4ffd..4c9a9be3b6d4 100644
--- a/code/modules/surgery/bodyparts/head.dm
+++ b/code/modules/surgery/bodyparts/head.dm
@@ -271,11 +271,6 @@
max_damage = 500
animal_origin = ALIEN_BODYPART
-/obj/item/bodypart/head/devil
- dismemberable = 0
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
-
/obj/item/bodypart/head/larva
icon = 'icons/mob/animal_parts.dmi'
icon_state = "larva_head"
diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm
index 5f89d15aa95f..543a0e5fddde 100644
--- a/code/modules/surgery/bodyparts/parts.dm
+++ b/code/modules/surgery/bodyparts/parts.dm
@@ -43,11 +43,6 @@
max_damage = 500
animal_origin = ALIEN_BODYPART
-/obj/item/bodypart/chest/devil
- dismemberable = 0
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
-
/obj/item/bodypart/chest/larva
icon = 'icons/mob/animal_parts.dmi'
icon_state = "larva_chest"
@@ -153,12 +148,6 @@
max_damage = 100
animal_origin = ALIEN_BODYPART
-/obj/item/bodypart/l_arm/devil
- dismemberable = FALSE
- can_be_disabled = FALSE
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
-
/obj/item/bodypart/r_arm
name = "right arm"
desc = "Over 87% of humans are right handed. That figure is much lower \
@@ -255,12 +244,6 @@
max_damage = 100
animal_origin = ALIEN_BODYPART
-/obj/item/bodypart/r_arm/devil
- dismemberable = FALSE
- can_be_disabled = FALSE
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
-
/obj/item/bodypart/leg/left
name = "left leg"
desc = "Some athletes prefer to tie their left shoelaces first for good \
@@ -346,12 +329,6 @@
max_damage = 100
animal_origin = ALIEN_BODYPART
-/obj/item/bodypart/leg/left/devil
- dismemberable = FALSE
- can_be_disabled = FALSE
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
-
/obj/item/bodypart/leg/right
name = "right leg"
desc = "You put your right leg in, your right leg out. In, out, in, out, \
@@ -438,9 +415,3 @@
can_be_disabled = FALSE
max_damage = 100
animal_origin = ALIEN_BODYPART
-
-/obj/item/bodypart/leg/right/devil
- dismemberable = FALSE
- can_be_disabled = FALSE
- max_damage = 5000
- animal_origin = DEVIL_BODYPART
diff --git a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
index 0794602de953..ebf294a3cccf 100644
--- a/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/ethereal_bodyparts.dm
@@ -4,7 +4,7 @@
limb_id = SPECIES_ELZUOSE
is_dimorphic = FALSE
uses_mutcolor = TRUE
- bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_SNOUT
+ bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_SNOUT_SMALL
/obj/item/bodypart/chest/ethereal
icon = 'icons/mob/species/ethereal/bodyparts.dmi'
diff --git a/code/modules/surgery/bodyparts/species_parts/vox_bodyparts.dm b/code/modules/surgery/bodyparts/species_parts/vox_bodyparts.dm
index 1437e191578f..b2502f6a172c 100644
--- a/code/modules/surgery/bodyparts/species_parts/vox_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/species_parts/vox_bodyparts.dm
@@ -4,6 +4,7 @@
is_dimorphic = FALSE
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
should_draw_greyscale = FALSE
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
/obj/item/bodypart/chest/vox
static_icon = 'icons/mob/species/vox/bodyparts.dmi'
@@ -12,18 +13,21 @@
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
acceptable_bodytype = BODYTYPE_VOX
should_draw_greyscale = FALSE
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
/obj/item/bodypart/l_arm/vox
static_icon = 'icons/mob/species/vox/bodyparts.dmi'
limb_id = SPECIES_VOX
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
should_draw_greyscale = FALSE
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
/obj/item/bodypart/r_arm/vox
static_icon = 'icons/mob/species/vox/bodyparts.dmi'
limb_id = SPECIES_VOX
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
should_draw_greyscale = FALSE
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
/obj/item/bodypart/leg/left/vox
static_icon = 'icons/mob/species/vox/bodyparts.dmi'
@@ -31,6 +35,7 @@
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
should_draw_greyscale = FALSE
dismemberable = FALSE //BIG MEATY THIGHS
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
/obj/item/bodypart/leg/right/vox
static_icon = 'icons/mob/species/vox/bodyparts.dmi'
@@ -38,3 +43,4 @@
bodytype = BODYTYPE_VOX | BODYTYPE_ORGANIC
should_draw_greyscale = FALSE
dismemberable = FALSE
+ dmg_overlay_icon = 'icons/mob/species/vox/vox_overlays.dmi'
diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm
deleted file mode 100644
index c5bfd1108202..000000000000
--- a/code/modules/surgery/core_removal.dm
+++ /dev/null
@@ -1,44 +0,0 @@
-/datum/surgery/core_removal
- name = "Core removal"
- steps = list(/datum/surgery_step/incise, /datum/surgery_step/extract_core)
- target_mobtypes = list(/mob/living/simple_animal/slime)
- possible_locs = list(BODY_ZONE_R_ARM,BODY_ZONE_L_ARM,BODY_ZONE_R_LEG,BODY_ZONE_L_LEG,BODY_ZONE_CHEST,BODY_ZONE_HEAD)
- lying_required = FALSE
- ignore_clothes = TRUE
-
-/datum/surgery/core_removal/can_start(mob/user, mob/living/target)
- if(target.stat == DEAD)
- return 1
- return 0
-
-//extract brain
-/datum/surgery_step/extract_core
- name = "extract core"
- implements = list(
- TOOL_HEMOSTAT = 100,
- TOOL_CROWBAR = 100)
- time = 16
-
-/datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
- display_results(user, target, " You begin to extract a core from [target]...",
- " [user] begins to extract a core from [target].",
- " [user] begins to extract a core from [target].")
-
-/datum/surgery_step/extract_core/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
- var/mob/living/simple_animal/slime/slime = target
- if(slime.cores > 0)
- slime.cores--
- display_results(user, target, " You successfully extract a core from [target]. [slime.cores] core\s remaining.",
- " [user] successfully extracts a core from [target]!",
- " [user] successfully extracts a core from [target]!")
-
- new slime.coretype(slime.loc)
-
- if(slime.cores <= 0)
- slime.icon_state = "[slime.colour] baby slime dead-nocore"
- return ..()
- else
- return 0
- else
- to_chat(user, " There aren't any cores left in [target]!")
- return ..()
diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm
index 31f2b64f0290..b1b98d0fdd30 100644
--- a/code/modules/surgery/experimental_dissection.dm
+++ b/code/modules/surgery/experimental_dissection.dm
@@ -15,7 +15,7 @@
// [/CELADON-REMOVE]
/datum/surgery_step/close)
possible_locs = list(BODY_ZONE_CHEST)
- target_mobtypes = list(/mob/living) //Feel free to dissect devils but they're magic.
+ target_mobtypes = list(/mob/living)
replaced_by = /datum/surgery/advanced/experimental_dissection/adv
requires_tech = FALSE
var/value_multiplier = 0.25
diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm
index 6d00f5ae7588..201e9125c06f 100644
--- a/code/modules/surgery/gastrectomy.dm
+++ b/code/modules/surgery/gastrectomy.dm
@@ -24,7 +24,7 @@
name = "remove lower duodenum"
implements = list(
TOOL_SCALPEL = 95,
- /obj/item/melee/transforming/energy/sword = 33,
+ /obj/item/melee/energy/sword = 33,
/obj/item/melee/knife = 40,
/obj/item/shard = 10)
time = 52
diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm
index 0571cf9b2397..b5b017831d77 100644
--- a/code/modules/surgery/hepatectomy.dm
+++ b/code/modules/surgery/hepatectomy.dm
@@ -23,7 +23,7 @@
name = "remove damaged liver section"
implements = list(
TOOL_SCALPEL = 95,
- /obj/item/melee/transforming/energy/sword = 33,
+ /obj/item/melee/energy/sword = 33,
/obj/item/melee/knife = 40,
/obj/item/shard = 25)
time = 52
diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm
index 79d3d79bcee5..9e9b8e5241a0 100644
--- a/code/modules/surgery/lobectomy.dm
+++ b/code/modules/surgery/lobectomy.dm
@@ -22,7 +22,7 @@
name = "excise damaged lung node"
implements = list(
TOOL_SCALPEL = 95,
- /obj/item/melee/transforming/energy/sword = 33,
+ /obj/item/melee/energy/sword = 33,
/obj/item/melee/knife = 40,
/obj/item/shard = 25)
time = 4.2 SECONDS
diff --git a/code/modules/surgery/mechanical.dm b/code/modules/surgery/mechanical.dm
index 939675fac518..20fd6b9b0b77 100644
--- a/code/modules/surgery/mechanical.dm
+++ b/code/modules/surgery/mechanical.dm
@@ -33,7 +33,7 @@
TOOL_CAUTERY = 60,
TOOL_HEMOSTAT = 60,
TOOL_RETRACTOR = 60,
- /obj/item/melee/transforming/energy = 40,
+ /obj/item/melee/energy = 40,
/obj/item/gun/energy/laser = 20)
time = 2 SECONDS
missinghpbonus = 10
@@ -49,7 +49,7 @@
/datum/surgery_step/heal/mechanic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/repairtype
- if(tool.tool_behaviour == TOOL_WELDER || tool.tool_behaviour == TOOL_CAUTERY || istype(tool, /obj/item/melee/transforming/energy) || istype(tool, /obj/item/gun/energy/laser))
+ if(tool.tool_behaviour == TOOL_WELDER || tool.tool_behaviour == TOOL_CAUTERY || istype(tool, /obj/item/melee/energy) || istype(tool, /obj/item/gun/energy/laser))
brutehealing = 5
burnhealing = 0
repairtype = "dents"
diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm
index 39fb1d71b258..a3df7efc62ae 100644
--- a/code/modules/surgery/organic_steps.dm
+++ b/code/modules/surgery/organic_steps.dm
@@ -4,7 +4,7 @@
name = "make incision"
implements = list(
TOOL_SCALPEL = 100,
- /obj/item/melee/transforming/energy/sword = 40,
+ /obj/item/melee/energy/sword = 40,
/obj/item/melee/knife = 40,
/obj/item/shard = 25,
/obj/item = 15) //any sharp item
diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm
index 665086d1981d..27ccf1421a3f 100644
--- a/code/modules/surgery/organs/augments_arms.dm
+++ b/code/modules/surgery/organs/augments_arms.dm
@@ -242,7 +242,7 @@
/obj/item/organ/cyberimp/arm/esword
name = "arm-mounted energy blade"
desc = "An illegal and highly dangerous cybernetic implant that can project a deadly blade of concentrated energy."
- items_to_create = list(/obj/item/melee/transforming/energy/blade/hardlight)
+ items_to_create = list(/obj/item/melee/energy/blade/hardlight)
/obj/item/organ/cyberimp/arm/medibeam
name = "integrated medical beamgun"
@@ -280,7 +280,7 @@
/obj/item/organ/cyberimp/arm/combat
name = "combat cybernetics implant"
desc = "A powerful cybernetic implant that contains combat modules built into the user's arm."
- items_to_create = list(/obj/item/melee/transforming/energy/blade/hardlight, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/assembly/flash/armimplant)
+ items_to_create = list(/obj/item/melee/energy/blade/hardlight, /obj/item/gun/medbeam, /obj/item/borg/stun, /obj/item/assembly/flash/armimplant)
/obj/item/organ/cyberimp/arm/combat/Initialize()
. = ..()
diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm
index d4fc2f68e4f6..f854449b3598 100644
--- a/code/modules/surgery/organs/lungs.dm
+++ b/code/modules/surgery/organs/lungs.dm
@@ -53,18 +53,22 @@
var/gas_stimulation_min = 0.002 //Nitryl, Stimulum and Freon
var/cold_message = "your face freezing and an icicle forming"
- var/cold_level_1_threshold = 260
- var/cold_level_2_threshold = 200
- var/cold_level_3_threshold = 120
+ var/chilly_message = "chilly air"
+ var/chlly_threshold = T20C-7
+ var/cold_level_1_threshold = 240
+ var/cold_level_2_threshold = 220
+ var/cold_level_3_threshold = 200
var/cold_level_1_damage = COLD_GAS_DAMAGE_LEVEL_1 //Keep in mind with gas damage levels, you can set these to be negative, if you want someone to heal, instead.
var/cold_level_2_damage = COLD_GAS_DAMAGE_LEVEL_2
var/cold_level_3_damage = COLD_GAS_DAMAGE_LEVEL_3
var/cold_damage_type = BURN
var/hot_message = "your face burning and a searing heat"
- var/heat_level_1_threshold = 360
- var/heat_level_2_threshold = 400
- var/heat_level_3_threshold = 1000
+ var/warm_message = "warm air"
+ var/warm_threshold = T20C+10
+ var/heat_level_1_threshold = 316
+ var/heat_level_2_threshold = 323
+ var/heat_level_3_threshold = 343
var/heat_level_1_damage = HEAT_GAS_DAMAGE_LEVEL_1
var/heat_level_2_damage = HEAT_GAS_DAMAGE_LEVEL_2
var/heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3
@@ -72,6 +76,9 @@
var/crit_stabilizing_reagent = /datum/reagent/medicine/epinephrine
+ ///Can we smell odors? If false then we don't smell certain gases
+ var/can_smell = TRUE
+
/obj/item/organ/lungs/New()
. = ..()
populate_gas_info()
@@ -216,6 +223,9 @@
H.reagents.add_reagent(R, breath.get_moles(gas) * 2) // 2 represents molarity of O2, we don't have citadel molarity
mole_adjustments[gas] = (gas in mole_adjustments) ? mole_adjustments[gas] - breath.get_moles(gas) : -breath.get_moles(gas)
+ if(can_smell)
+ handle_smell(breath, H)
+
for(var/gas in mole_adjustments)
breath.adjust_moles(gas, mole_adjustments[gas])
@@ -252,36 +262,18 @@
H.hallucination += 5
H.reagents.add_reagent(/datum/reagent/bz_metabolites,1)
- // Nitryl
- var/nitryl_pp = PP(breath,GAS_NITRYL)
- if (prob(nitryl_pp))
- to_chat(H, " Your mouth feels like it's burning!")
- if (nitryl_pp >40)
- H.emote("gasp")
- H.adjustFireLoss(10)
- if (prob(nitryl_pp/2))
- to_chat(H, " Your throat closes up!")
- H.silent = max(H.silent, 3)
- else
- H.adjustFireLoss(nitryl_pp/4)
- gas_breathed = breath.get_moles(GAS_NITRYL)
- if (gas_breathed > gas_stimulation_min)
- H.reagents.add_reagent(/datum/reagent/nitryl,1)
-
- breath.adjust_moles(GAS_NITRYL, -gas_breathed)
-
// Freon
var/freon_pp = PP(breath,GAS_FREON)
- if (prob(nitryl_pp))
+ if (prob(freon_pp))
to_chat(H, " Your mouth feels like it's burning!")
if (freon_pp >40)
H.emote("gasp")
- H.adjustFireLoss(15)
+ H.adjustOxyLoss(15)
if (prob(freon_pp/2))
to_chat(H, " Your throat closes up!")
H.silent = max(H.silent, 3)
else
- H.adjustFireLoss(freon_pp/4)
+ H.adjustOxyLoss(freon_pp/4)
gas_breathed = breath.get_moles(GAS_FREON)
if (gas_breathed > gas_stimulation_min)
H.reagents.add_reagent(/datum/reagent/freon,1)
@@ -291,15 +283,15 @@
// Chlorine
var/chlorine_pp = PP(breath,GAS_CHLORINE)
if (prob(chlorine_pp))
- to_chat(H, " Your lungs feel awful!")
- if (chlorine_pp >40)
+ to_chat(H, span_alert("Your lungs feel awful!"))
+ if (chlorine_pp >20)
H.emote("gasp")
- H.adjustFireLoss(5)
+ H.adjustOxyLoss(5)
if (prob(chlorine_pp/2))
- to_chat(H, " Your throat closes up!")
+ to_chat(H, span_alert("Your throat closes up!"))
H.silent = max(H.silent, 3)
else
- H.adjustFireLoss(round(chlorine_pp/8))
+ H.adjustOxyLoss(round(chlorine_pp/8))
gas_breathed = breath.get_moles(GAS_CHLORINE)
if (gas_breathed > gas_stimulation_min)
H.reagents.add_reagent(/datum/reagent/chlorine,1)
@@ -308,24 +300,145 @@
// Hydrogen Chloride
var/hydrogen_chloride_pp = PP(breath,GAS_HYDROGEN_CHLORIDE)
if (prob(hydrogen_chloride_pp))
- to_chat(H, " Your lungs feel terrible!")
+ to_chat(H, span_alert("Your lungs feel terrible!"))
if (hydrogen_chloride_pp >20)
H.emote("gasp")
- H.adjustFireLoss(10)
+ H.adjustOxyLoss(10)
if (prob(hydrogen_chloride_pp/2))
- to_chat(H, "Your throat closes up!")
+ to_chat(H, span_alert("Your throat closes up!"))
H.silent = max(H.silent, 3)
else
- H.adjustFireLoss(round(hydrogen_chloride_pp/4))
+ H.adjustOxyLoss(round(hydrogen_chloride_pp/4))
if (gas_breathed > gas_stimulation_min)
H.reagents.add_reagent(/datum/reagent/hydrogen_chloride)
- // Stimulum
- gas_breathed = PP(breath,GAS_STIMULUM)
+ breath.adjust_moles(GAS_HYDROGEN_CHLORIDE, -gas_breathed)
+
+ // Carbon Monoxide
+ var/carbon_monoxide_pp = PP(breath,GAS_CO)
+ if (carbon_monoxide_pp > gas_stimulation_min)
+ H.reagents.add_reagent(/datum/reagent/carbon_monoxide, 1)
+ var/datum/reagent/carbon_monoxide/monoxide_reagent = H.reagents.has_reagent(/datum/reagent/carbon_monoxide)
+ if(monoxide_reagent.volume > 10)
+ monoxide_reagent.metabolization_rate = (10 - carbon_monoxide_pp)
+ else
+ monoxide_reagent.metabolization_rate = monoxide_reagent::metabolization_rate
+ switch(carbon_monoxide_pp)
+ if (0 to 20)
+ monoxide_reagent.accumulation = min(monoxide_reagent.accumulation,50)
+ if (20 to 100)
+ monoxide_reagent.accumulation = min(monoxide_reagent.accumulation, 150)
+ H.reagents.add_reagent(/datum/reagent/carbon_monoxide,2)
+ if (100 to 200)
+ monoxide_reagent.accumulation = min(monoxide_reagent.accumulation, 250)
+ H.reagents.add_reagent(/datum/reagent/carbon_monoxide,4)
+ if (200 to 400)
+ monoxide_reagent.accumulation = min(monoxide_reagent.accumulation, 250)
+ H.reagents.add_reagent(/datum/reagent/carbon_monoxide,8)
+ if (400 to INFINITY)
+ monoxide_reagent.accumulation = max(monoxide_reagent.accumulation, 450)
+ H.reagents.add_reagent(/datum/reagent/carbon_monoxide,16)
+ else
+ var/datum/reagent/carbon_monoxide/monoxide_reagent = H.reagents.has_reagent(/datum/reagent/carbon_monoxide)
+ if(monoxide_reagent)
+ monoxide_reagent.accumulation = min(monoxide_reagent.accumulation, 150)
+ monoxide_reagent.metabolization_rate = 10 //purges 10 per tick
+ breath.adjust_moles(GAS_CO, -gas_breathed)
+
+ // Sulfur Dioxide
+ var/sulfur_dioxide_pp = PP(breath,GAS_SO2)
+ if (prob(sulfur_dioxide_pp) && !HAS_TRAIT(H, TRAIT_ANALGESIA))
+ to_chat(H, span_alert("It hurts to breath."))
+ if (sulfur_dioxide_pp >40)
+ H.emote("gasp")
+ H.adjustOxyLoss(5)
+ if (prob(sulfur_dioxide_pp/2))
+ to_chat(H, span_alert("Your throat closes up!"))
+ H.silent = max(H.silent, 3)
+ else
+ H.adjustOxyLoss(round(sulfur_dioxide_pp/8))
+ gas_breathed = breath.get_moles(GAS_SO2)
+ if (gas_breathed > gas_stimulation_min)
+ H.reagents.add_reagent(/datum/reagent/sulfur_dioxide,1)
+
+ breath.adjust_moles(GAS_SO2, -gas_breathed)
+
+ // Ozone
+ var/ozone_pp = PP(breath,GAS_O3)
+ if (prob(ozone_pp))
+ to_chat(H, span_alert("Your heart feels funny."))
+ if (ozone_pp >40)
+ H.emote("gasp")
+ H.adjustOxyLoss(5)
+ if (prob(ozone_pp/2))
+ to_chat(H, span_alert("Your throat closes up!"))
+ H.silent = max(H.silent, 3)
+ gas_breathed = breath.get_moles(GAS_O3)
+ if (gas_breathed > gas_stimulation_min)
+ H.reagents.add_reagent(/datum/reagent/ozone,1)
+
+ breath.adjust_moles(GAS_O3, -gas_breathed)
+
+ // Ammonia
+ var/ammonia_pp = PP(breath,GAS_AMMONIA)
+ if (prob(ammonia_pp)*2)
+ to_chat(H, span_alert("Your lungs feel terrible!"))
+
+ if (ammonia_pp > 10)
+ H.emote("gasp")
+ H.adjustOxyLoss(5)
+ H.adjustOxyLoss(round(ammonia_pp/8))
+ if (prob(ammonia_pp/2))
+ to_chat(H, span_alert("Your throat burns!"))
+ H.silent = max(H.silent, 2)
+ else
+ H.adjustOxyLoss(round(ammonia_pp/8))
+ gas_breathed = breath.get_moles(GAS_AMMONIA)
if (gas_breathed > gas_stimulation_min)
- var/existing = H.reagents.get_reagent_amount(/datum/reagent/stimulum)
- H.reagents.add_reagent(/datum/reagent/stimulum, max(0, 5 - existing))
- breath.adjust_moles(GAS_STIMULUM, -gas_breathed)
+ if(prob(25))//unlike the chlorine reagent ammonia doesnt do lung damage do we handle it here instead
+ H.adjustOrganLoss(ORGAN_SLOT_LUNGS,2*1.6)
+ //ammonia is actually disposed of naturally by humans, but extremely poorly by non mammals, maybe we can make it toxic ONLY to certain species (plural) sometime?
+ H.reagents.add_reagent(/datum/reagent/ammonia,1)
+
+ breath.adjust_moles(GAS_AMMONIA, -gas_breathed)
+
+///handles the smell a few gases have
+/obj/item/organ/lungs/proc/handle_smell(datum/gas_mixture/breath, mob/living/carbon/human/H)
+ var/pressure = breath.return_pressure()
+ var/total_moles = breath.total_moles()
+
+ var/list/gases_id = breath.get_gases()
+ var/list/gases = list()
+
+ for(var/ID as anything in gases_id)
+ LAZYADD(gases, GLOB.gas_data.datums[ID])
+ for(var/datum/gas/checked_gas as anything in gases)
+ if(!istype(checked_gas))
+ continue
+ if(!checked_gas.odor_power || !checked_gas.odor)
+ continue
+
+ var/odor_pp = PP(breath,checked_gas.id) * checked_gas.odor_power
+
+ if(odor_pp > 8) //level 3
+ if(checked_gas.odor[4])
+ to_chat(H, checked_gas.odor[4])
+ if(checked_gas.odor_emotes && prob(20))
+ H.emote("cough")
+
+ else if(odor_pp > 2) //level 2
+ if(checked_gas.odor[3])
+ to_chat(H, checked_gas.odor[3])
+ if(checked_gas.odor_emotes && prob(5))
+ H.emote("cough")
+
+ else if(odor_pp > gas_stimulation_min) //level 1
+ if(checked_gas.odor[2])
+ to_chat(H, checked_gas.odor[2]) // danger becuse this might be over safety threshold in the case of ammonia
+
+ else if (prob(odor_pp)*20) //level 0
+ if(checked_gas.odor[1])
+ to_chat(H, checked_gas.odor[1])
/obj/item/organ/lungs/proc/handle_too_little_breath(mob/living/carbon/human/H = null, breath_pp = 0, safe_breath_min = 0, true_pp = 0) // MOD_CELADON -> mod_celadon\fixes\code\lungs.dm
. = 0
@@ -347,35 +460,114 @@
H.failed_last_breath = TRUE
-/obj/item/organ/lungs/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/H) // called by human/life, handles temperatures
+/obj/item/organ/lungs/proc/handle_breath_temperature(datum/gas_mixture/breath, mob/living/carbon/human/breather) // called by human/life, handles temperatures
+ if(!breath)
+ return
var/breath_temperature = breath.return_temperature()
- if(!HAS_TRAIT(H, TRAIT_RESISTCOLD)) // COLD DAMAGE
- var/cold_modifier = H.dna.species.coldmod
+ if(!HAS_TRAIT(breather, TRAIT_RESISTCOLD)) // COLD DAMAGE
+ var/cold_modifier = breather.dna.species.coldmod
+ var/breath_effect_prob = 0
+ var/part_count = 0
if(breath_temperature < cold_level_3_threshold)
- H.apply_damage_type(cold_level_3_damage*cold_modifier, cold_damage_type)
+ breather.apply_damage(cold_level_3_damage * cold_modifier, cold_damage_type, spread_damage = TRUE)
+ breath_effect_prob = 100
+ part_count = 8
if(breath_temperature > cold_level_3_threshold && breath_temperature < cold_level_2_threshold)
- H.apply_damage_type(cold_level_2_damage*cold_modifier, cold_damage_type)
+ breather.apply_damage(cold_level_2_damage * cold_modifier, cold_damage_type, spread_damage = TRUE)
+ breath_effect_prob = 75
+ part_count = 5
if(breath_temperature > cold_level_2_threshold && breath_temperature < cold_level_1_threshold)
- H.apply_damage_type(cold_level_1_damage*cold_modifier, cold_damage_type)
- if(breath_temperature < cold_level_1_threshold)
- if(prob(20))
- to_chat(H, " You feel [cold_message] in your [name]!")
+ breather.apply_damage(cold_level_1_damage * cold_modifier, cold_damage_type, spread_damage = TRUE)
+ breath_effect_prob = 50
+ part_count = 3
+ if(breath_temperature > cold_level_1_threshold)
+ breath_effect_prob = 25
+ part_count = 2
- if(!HAS_TRAIT(H, TRAIT_RESISTHEAT)) // HEAT DAMAGE
- var/heat_modifier = H.dna.species.heatmod
+ if(breath_temperature < cold_level_1_threshold)
+ if(prob(sqrt(breath_effect_prob) * 6))
+ to_chat(breather, " You feel [cold_message] in your [name]!")
+ else if(breath_temperature < chlly_threshold)
+ if(!breath_effect_prob)
+ breath_effect_prob = 20
+ part_count = 1
+ if(prob(sqrt(breath_effect_prob) * 6))
+ to_chat(breather, " You feel [chilly_message] in your [name].")
+ if(breath_temperature < chlly_threshold)
+ if(breath_effect_prob)
+ // Breathing into your mask, no particle. We can add fogged up glasses later
+ if(breather.is_mouth_covered())
+ return
+ // Even though breathing via internals TECHNICALLY exhales into the environment, we'll still block it
+ if(breather.internal)
+ return
+
+ if(!HAS_TRAIT(breather, TRAIT_RESISTHEAT)) // HEAT DAMAGE
+ var/heat_modifier = breather.dna.species.heatmod
+ var/heat_message_prob = 0
if(breath_temperature > heat_level_1_threshold && breath_temperature < heat_level_2_threshold)
- H.apply_damage_type(heat_level_1_damage*heat_modifier, heat_damage_type)
+ breather.apply_damage(heat_level_1_damage * heat_modifier, heat_damage_type, spread_damage = TRUE)
+ heat_message_prob = 100
if(breath_temperature > heat_level_2_threshold && breath_temperature < heat_level_3_threshold)
- H.apply_damage_type(heat_level_2_damage*heat_modifier, heat_damage_type)
+ breather.apply_damage(heat_level_2_damage * heat_modifier, heat_damage_type, spread_damage = TRUE)
+ heat_message_prob = 75
if(breath_temperature > heat_level_3_threshold)
- H.apply_damage_type(heat_level_3_damage*heat_modifier, heat_damage_type)
+ breather.apply_damage(heat_level_3_damage * heat_modifier, heat_damage_type, spread_damage = TRUE)
+ heat_message_prob = 50
if(breath_temperature > heat_level_1_threshold)
- if(prob(20))
- to_chat(H, " You feel [hot_message] in your [name]!")
+ heat_message_prob = 25
+
+ if(breath_temperature > heat_level_1_threshold)
+ if(prob(sqrt(heat_message_prob) * 6))
+ to_chat(breather, " You feel [hot_message] in your [name]!")
+ else if(breath_temperature > warm_threshold)
+ if(!heat_message_prob)
+ heat_message_prob = 20
+ if(prob(sqrt(heat_message_prob) * 6))
+ to_chat(breather, " You feel [warm_message] in your [name].")
+
+
// The air you breathe out should match your body temperature
- breath.set_temperature(H.bodytemperature)
+ breath.set_temperature(breather.bodytemperature)
+
+/// Creates a particle effect off the mouth of the passed mob.
+/obj/item/organ/lungs/proc/emit_breath_particle(mob/living/carbon/human/breather, particle_type, part_count)
+ ASSERT(ispath(particle_type, /particles))
+
+ var/obj/effect/abstract/particle_holder/holder = new(breather, particle_type)
+ var/particles/breath_particle = holder.particles
+ var/breath_dir = breather.dir
+
+ var/list/particle_grav = list(0, 0.1, 0)
+ var/list/particle_pos = list(0, 10, 0)
+ if(breath_dir & NORTH)
+ particle_grav[2] = 0.2
+ breath_particle.rotation = pick(-45, 45)
+ // Layer it behind the mob since we're facing away from the camera
+ holder.pixel_w -= 4
+ holder.pixel_y += 4
+ if(breath_dir & WEST)
+ particle_grav[1] = -0.2
+ particle_pos[1] = -5
+ breath_particle.rotation = -45
+ if(breath_dir & EAST)
+ particle_grav[1] = 0.2
+ particle_pos[1] = 5
+ breath_particle.rotation = 45
+ if(breath_dir & SOUTH)
+ particle_grav[2] = 0.2
+ breath_particle.rotation = pick(-45, 45)
+ // Shouldn't be necessary but just for parity
+ holder.pixel_w += 4
+ holder.pixel_y -= 4
+
+ breath_particle.gravity = particle_grav
+ breath_particle.position = particle_pos
+ breath_particle.count = part_count
+
+ QDEL_IN(holder, breath_particle.lifespan)
/obj/item/organ/lungs/on_life()
. = ..()
@@ -400,6 +592,8 @@
breathing_class = BREATH_PLASMA
+ can_smell = FALSE
+
/obj/item/organ/lungs/plasmaman/populate_gas_info()
..()
gas_max -= GAS_PLASMA
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 72b7fba9d2da..190271a53503 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -242,3 +242,10 @@
*/
/obj/item/organ/proc/get_availability(datum/species/S)
return TRUE
+
+// [CELADON-ADD] - CELADON_EMOTES
+/obj/item/organ/proc/is_robotic()
+ if(status & ORGAN_ROBOTIC)
+ return TRUE
+ return FALSE
+// [/CELADON-ADD]
diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm
index add91cbeac96..4bb8588b4dc4 100644
--- a/code/modules/surgery/organs/stomach.dm
+++ b/code/modules/surgery/organs/stomach.dm
@@ -48,46 +48,53 @@
/obj/item/organ/stomach/proc/handle_disgust(mob/living/carbon/human/H)
if(H.disgust)
var/pukeprob = 5 + 0.05 * H.disgust
- if(H.disgust >= DISGUST_LEVEL_GROSS)
- if(prob(10))
- H.stuttering += 1
- H.confused += 2
- if(prob(10) && !H.stat)
- to_chat(H, " You feel kind of iffy...")
- H.jitteriness = max(H.jitteriness - 3, 0)
- if(H.disgust >= DISGUST_LEVEL_VERYGROSS)
- // [CELADON - EDIT] - CELADON_LANIUS
- if(is_species(H, /datum/species/lanius))
- H.confused += 2.5
- H.stuttering += 1
- if (prob(15))
- to_chat(H, " You feel something strange inside your core..")
- H.adjust_nutrition(-10)
- // if(prob(pukeprob)) //iT hAndLeS mOrE ThaN PukInG // [CELADON - EDIT] - ORIGANAL
- else if(prob(pukeprob))
- // [/CELADON - EDIT]
- H.confused += 2.5
- H.stuttering += 1
- H.vomit(10, 0, 1, 0, 1, 0)
- H.Dizzy(5)
- if(H.disgust >= DISGUST_LEVEL_DISGUSTED)
- if(prob(25))
- H.blur_eyes(3) //We need to add more shit down here
+ switch(H.disgust)
+ if(0 to DISGUST_LEVEL_GROSS)
+ //throw alerts
+ H.clear_alert("disgust")
+ SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "disgust")
+ //do our stupid bullshit
+ if(prob(10))
+ H.stuttering += 1
+ H.confused += 2
+ if(!H.stat)
+ to_chat(H, span_warning("You feel queasy..."))
+ H.jitteriness = max(H.jitteriness - 3, 0)
+ if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS)
+ //throw alerts
+ H.throw_alert("disgust", /atom/movable/screen/alert/gross)
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/gross)
+ //do the nausea stuff
+ // [CELADON - EDIT] - CELADON_LANIUS
+ // if(prob(pukeprob)) //iT hAndLeS mOrE ThaN PukInG // [CELADON - EDIT] - ORIGANAL
+ if(prob(pukeprob))
+ // [/CELADON - EDIT]
+ H.vomit(10, 0, 0, 0, 1, 0)
+ H.confused += 2.5
+ H.stuttering += 1
+ H.Dizzy(5)
+ if(DISGUST_LEVEL_VERYGROSS to DISGUST_LEVEL_DISGUSTED)
+ //do the thing
+ H.throw_alert("disgust", /atom/movable/screen/alert/verygross)
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/verygross)
+ //you're not gonna believe it we do the other thing too
+
+ if(prob(pukeprob))
+ H.blur_eyes(3)
+ if(prob(25))
+ H.manual_emote(pick("tears up!", "whimpers!", "chokes!"))
+ H.vomit(20, 0, 1, 1, 1, 0)
+ H.confused += 2.5
+ H.stuttering += 1
+ if(DISGUST_LEVEL_DISGUSTED to DISGUST_LEVEL_MAXEDOUT)
+ H.throw_alert("disgust", /atom/movable/screen/alert/disgusted)
+ SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgusted)
+
+ //profusely vomiting.
+ if(prob(pukeprob))
+ H.vomit(40, 0, 1, 1, 1, 0)
H.adjust_disgust(-0.5 * disgust_metabolism)
- switch(H.disgust)
- if(0 to DISGUST_LEVEL_GROSS)
- H.clear_alert("disgust")
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "disgust")
- if(DISGUST_LEVEL_GROSS to DISGUST_LEVEL_VERYGROSS)
- H.throw_alert("disgust", /atom/movable/screen/alert/gross)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/gross)
- if(DISGUST_LEVEL_VERYGROSS to DISGUST_LEVEL_DISGUSTED)
- H.throw_alert("disgust", /atom/movable/screen/alert/verygross)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/verygross)
- if(DISGUST_LEVEL_DISGUSTED to INFINITY)
- H.throw_alert("disgust", /atom/movable/screen/alert/disgusted)
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "disgust", /datum/mood_event/disgusted)
/obj/item/organ/stomach/Remove(mob/living/carbon/M, special = 0)
var/mob/living/carbon/human/H = owner
diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm
index 10aad97cd021..b50128de64ac 100644
--- a/code/modules/surgery/organs/tongue.dm
+++ b/code/modules/surgery/organs/tongue.dm
@@ -302,7 +302,7 @@
/obj/item/organ/tongue/robot/emp_act(severity)
owner.apply_effect(EFFECT_STUTTER, 120)
- owner.emote("scream")
+ owner.force_scream()
to_chat(owner, " Alert: Vocal cords are malfunctioning.")
/obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args)
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index 6a5a344b177e..4c69dd532a89 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -35,13 +35,13 @@
/datum/action/item_action/organ_action/colossus
name = "Voice of God"
- var/obj/item/organ/vocal_cords/colossus/cords = null
-
-/datum/action/item_action/organ_action/colossus/New()
- ..()
- cords = target
/datum/action/item_action/organ_action/colossus/IsAvailable()
+ if(!istype(target, /obj/item/organ/vocal_cords/colossus))
+ return FALSE
+
+ var/obj/item/organ/vocal_cords/colossus/cords = target
+
if(world.time < cords.next_command)
return FALSE
if(!owner)
@@ -58,6 +58,7 @@
/datum/action/item_action/organ_action/colossus/Trigger()
. = ..()
if(!IsAvailable())
+ var/obj/item/organ/vocal_cords/colossus/cords = target
if(world.time < cords.next_command)
to_chat(owner, " You must wait [DisplayTimeText(cords.next_command - world.time)] before Speaking again.")
return
@@ -99,10 +100,7 @@
var/log_message = uppertext(message)
if(!span_list || !span_list.len)
- if(iscultist(user))
- span_list = list("narsiesmall")
- else
- span_list = list()
+ span_list = list()
user.say(message, spans = span_list, sanitize = FALSE)
@@ -135,10 +133,6 @@
if(user.mind.assigned_role == "Mime")
power_multiplier *= 0.5
- //Cultists are closer to their gods and are more powerful, but they'll give themselves away
- if(iscultist(user))
- power_multiplier *= 2
-
//Try to check if the speaker specified a name or a job to focus on
var/list/specific_listeners = list()
var/found_string = null
@@ -148,15 +142,8 @@
for(var/V in listeners)
var/mob/living/L = V
- var/datum/antagonist/devil/devilinfo = is_devil(L)
- if(devilinfo && findtext(message, devilinfo.truename))
- var/start = findtext(message, devilinfo.truename)
- listeners = list(L) //Devil names are unique.
- power_multiplier *= 5 //if you're a devil and god himself addressed you, you fucked up
- //Cut out the name so it doesn't trigger commands
- message = copytext(message, 1, start) + copytext(message, start + length(devilinfo.truename))
- break
- else if(findtext(message, L.real_name, 1, length(L.real_name) + 1))
+
+ if(findtext(message, L.real_name, 1, length(L.real_name) + 1))
specific_listeners += L //focus on those with the specified name
//Cut out the name so it doesn't trigger commands
found_string = L.real_name
@@ -301,14 +288,14 @@
cooldown = COOLDOWN_DAMAGE
for(var/V in listeners)
var/mob/living/L = V
- L.adjust_bodytemperature(50 * power_multiplier)
+ L.adjust_bodytemperature(5 * power_multiplier)
//COLD
else if((findtext(message, cold_words)))
cooldown = COOLDOWN_DAMAGE
for(var/V in listeners)
var/mob/living/L = V
- L.adjust_bodytemperature(-50 * power_multiplier)
+ L.adjust_bodytemperature(-5 * power_multiplier)
//REPULSE
else if((findtext(message, repulse_words)))
@@ -331,11 +318,7 @@
for(var/V in listeners)
var/mob/living/L = V
var/text = ""
- if(is_devil(L))
- var/datum/antagonist/devil/devilinfo = is_devil(L)
- text = devilinfo.truename
- else
- text = L.real_name
+ text = L.real_name
addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i)
i++
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index d0a352ebd91b..3ec1e1e14180 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -11,7 +11,7 @@
custom_materials = list(/datum/material/iron=6000, /datum/material/glass=3000)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
tool_behaviour = TOOL_RETRACTOR
toolspeed = 1
@@ -19,7 +19,6 @@
desc = "Micro-mechanical manipulator for retracting stuff."
toolspeed = 0.5
-
/obj/item/hemostat
name = "hemostat"
desc = "A tiny needle-eye has been machined into one of the clamps to streamline the application of ligature."
@@ -33,7 +32,7 @@
custom_materials = list(/datum/material/iron=5000, /datum/material/glass=2500)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
attack_verb = list("attacked", "pinched")
tool_behaviour = TOOL_HEMOSTAT
toolspeed = 1
@@ -42,7 +41,6 @@
desc = "Tiny servos power a pair of pincers to stop bleeding."
toolspeed = 0.5
-
/obj/item/cautery
name = "cautery"
desc = "An obtuse, rectangular design is just big enough to accomodate this cautery's incredibly durable battery."
@@ -56,7 +54,7 @@
custom_materials = list(/datum/material/iron=2500, /datum/material/glass=750)
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
attack_verb = list("burnt")
tool_behaviour = TOOL_CAUTERY
toolspeed = 1
@@ -97,7 +95,6 @@
w_class = WEIGHT_CLASS_SMALL
toolspeed = 0.5
-
/obj/item/scalpel
name = "scalpel"
desc = "The handle of the scalpel is an awkward ergonomic mold, designed to encourage proper form. A blade release button on the end allows for easy cleaning and replacement."
@@ -111,7 +108,7 @@
flags_1 = CONDUCT_1
item_flags = SURGICAL_TOOL | EYE_STAB
force = 10
- w_class = WEIGHT_CLASS_TINY
+ w_class = WEIGHT_CLASS_SMALL
throwforce = 5
throw_speed = 3
throw_range = 5
diff --git a/code/modules/tgs/README.md b/code/modules/tgs/README.md
index 6319028d8106..35ca73d7e9a8 100644
--- a/code/modules/tgs/README.md
+++ b/code/modules/tgs/README.md
@@ -1,6 +1,6 @@
# DMAPI Internals
-This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
+This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified.
- [includes.dm](./includes.dm) is the file that should be included by DM code, it handles including the rest.
- The [core](./core) folder includes all code not directly part of any API version.
diff --git a/code/modules/tgs/core/README.md b/code/modules/tgs/core/README.md
index b82d8f49e297..965e21b549a3 100644
--- a/code/modules/tgs/core/README.md
+++ b/code/modules/tgs/core/README.md
@@ -3,7 +3,7 @@
This folder contains all DMAPI code not directly involved in an API.
- [_definitions.dm](./definitions.dm) contains defines needed across DMAPI internals.
+- [byond_world_export.dm](./byond_world_export.dm) contains the default `/datum/tgs_http_handler` implementation which uses `world.Export()`.
- [core.dm](./core.dm) contains the implementations of the `/world/proc/TgsXXX()` procs. Many map directly to the `/datum/tgs_api` functions. It also contains the /datum selection and setup code.
- [datum.dm](./datum.dm) contains the `/datum/tgs_api` declarations that all APIs must implement.
- [tgs_version.dm](./tgs_version.dm) contains the `/datum/tgs_version` definition
--
diff --git a/code/modules/tgs/core/byond_world_export.dm b/code/modules/tgs/core/byond_world_export.dm
new file mode 100644
index 000000000000..6ef8d841b8f7
--- /dev/null
+++ b/code/modules/tgs/core/byond_world_export.dm
@@ -0,0 +1,22 @@
+/datum/tgs_http_handler/byond_world_export
+
+/datum/tgs_http_handler/byond_world_export/PerformGet(url)
+ // This is an infinite sleep until we get a response
+ var/export_response = world.Export(url)
+ TGS_DEBUG_LOG("byond_world_export: Export complete")
+
+ if(!export_response)
+ TGS_ERROR_LOG("byond_world_export: Failed request: [url]")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ var/content = export_response["CONTENT"]
+ if(!content)
+ TGS_ERROR_LOG("byond_world_export: Failed request, missing content!")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ var/response_json = TGS_FILE2TEXT_NATIVE(content)
+ if(!response_json)
+ TGS_ERROR_LOG("byond_world_export: Failed request, failed to load content!")
+ return new /datum/tgs_http_result(null, FALSE)
+
+ return new /datum/tgs_http_result(response_json, TRUE)
diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm
index 15622228e91f..63cb5a2c3514 100644
--- a/code/modules/tgs/core/core.dm
+++ b/code/modules/tgs/core/core.dm
@@ -1,4 +1,4 @@
-/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE)
+/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler = null)
var/current_api = TGS_READ_GLOBAL(tgs)
if(current_api)
TGS_ERROR_LOG("API datum already set (\ref[current_api] ([current_api]))! Was TgsNew() called more than once?")
@@ -55,7 +55,10 @@
TGS_ERROR_LOG("Invalid parameter for event_handler: [event_handler]")
event_handler = null
- var/datum/tgs_api/new_api = new api_datum(event_handler, version)
+ if(!http_handler)
+ http_handler = new /datum/tgs_http_handler/byond_world_export
+
+ var/datum/tgs_api/new_api = new api_datum(event_handler, version, http_handler)
TGS_WRITE_GLOBAL(tgs, new_api)
diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm
index f734fd0527f0..3ca53e9bf7c6 100644
--- a/code/modules/tgs/core/datum.dm
+++ b/code/modules/tgs/core/datum.dm
@@ -6,7 +6,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null)
var/list/warned_deprecated_command_runs
-/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version)
+/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler)
..()
src.event_handler = event_handler
src.version = version
diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm
index 23b714f9d064..f5118ed55a3c 100644
--- a/code/modules/tgs/includes.dm
+++ b/code/modules/tgs/includes.dm
@@ -1,4 +1,5 @@
#include "core\_definitions.dm"
+#include "core\byond_world_export.dm"
#include "core\core.dm"
#include "core\datum.dm"
#include "core\tgs_version.dm"
diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm
index f4806f7adb97..29ea239ad84d 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 92c7a8388a71..a47bfd78000b 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/api.dm b/code/modules/tgs/v5/api.dm
index 95b8edd3ee5c..3e328fc7c27d 100644
--- a/code/modules/tgs/v5/api.dm
+++ b/code/modules/tgs/v5/api.dm
@@ -31,9 +31,12 @@
var/detached = FALSE
-/datum/tgs_api/v5/New()
+ var/datum/tgs_http_handler/http_handler
+
+/datum/tgs_api/v5/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler)
. = ..()
interop_version = version
+ src.http_handler = http_handler
TGS_DEBUG_LOG("V5 API created: [json_encode(args)]")
/datum/tgs_api/v5/ApiVersion()
@@ -50,7 +53,9 @@
version = null // we want this to be the TGS version, not the interop version
// sleep once to prevent an issue where world.Export on the first tick can hang indefinitely
+ TGS_DEBUG_LOG("Starting Export bug prevention sleep tick. time:[world.time] sleep_offline:[world.sleep_offline]")
sleep(world.tick_lag)
+ TGS_DEBUG_LOG("Export bug prevention sleep complete")
var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort()))
if(!istype(bridge_response))
diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm
index 0c5e701a32b6..62201fcc9e58 100644
--- a/code/modules/tgs/v5/bridge.dm
+++ b/code/modules/tgs/v5/bridge.dm
@@ -78,27 +78,24 @@
WaitForReattach(FALSE)
TGS_DEBUG_LOG("Bridge request start")
- // This is an infinite sleep until we get a response
- var/export_response = world.Export(bridge_request)
+ var/datum/tgs_http_result/result = http_handler.PerformGet(bridge_request)
TGS_DEBUG_LOG("Bridge request complete")
- if(!export_response)
- TGS_ERROR_LOG("Failed bridge request: [bridge_request]")
+ if(isnull(result))
+ TGS_ERROR_LOG("Failed bridge request, handler returned null!")
return
- var/content = export_response["CONTENT"]
- if(!content)
- TGS_ERROR_LOG("Failed bridge request, missing content!")
+ if(!istype(result) || result.type != /datum/tgs_http_result)
+ TGS_ERROR_LOG("Failed bridge request, handler returned non-[/datum/tgs_http_result]!")
return
- var/response_json = TGS_FILE2TEXT_NATIVE(content)
- if(!response_json)
- TGS_ERROR_LOG("Failed bridge request, failed to load content!")
+ if(!result.success)
+ TGS_DEBUG_LOG("Failed bridge request, HTTP request failed!")
return
- var/list/bridge_response = json_decode(response_json)
+ var/list/bridge_response = json_decode(result.response_text)
if(!bridge_response)
- TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]")
+ TGS_ERROR_LOG("Failed bridge request, bad json: [result.response_text]")
return
var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE]
diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm
index e1f2cb638578..59e5e63e5cd4 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 237207fdfd05..acd19dfa6411 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_panel/tgui_panel.dm b/code/modules/tgui_panel/tgui_panel.dm
index 1a6fcb37e429..44fbffd917ce 100644
--- a/code/modules/tgui_panel/tgui_panel.dm
+++ b/code/modules/tgui_panel/tgui_panel.dm
@@ -49,7 +49,6 @@
get_asset_datum(/datum/asset/simple/tgui_panel),
))
window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/fontawesome))
- window.send_asset(get_asset_datum(/datum/asset/simple/namespaced/tgfont))
window.send_asset(get_asset_datum(/datum/asset/spritesheet/chat))
request_telemetry()
addtimer(CALLBACK(src, PROC_REF(on_initialize_timed_out)), 5 SECONDS)
diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm
index 4b4e10edd7ac..3195d86e7fb7 100644
--- a/code/modules/unit_tests/_unit_tests.dm
+++ b/code/modules/unit_tests/_unit_tests.dm
@@ -41,6 +41,13 @@
/// Intended to be used in the manner of `TEST_FOCUS(/datum/unit_test/math)`
#define TEST_FOCUS(test_path) ##test_path { focus = TRUE; }
+/// Logs a noticable message on GitHub, but will not mark as an error.
+/// Use this when something shouldn't happen and is of note, but shouldn't block CI.
+/// Does not mark the test as failed.
+#define TEST_NOTICE(source, message) source.log_for_test((##message), "notice", __FILE__, __LINE__)
+/// TEST_NOTICE but more important
+#define TEST_WARNING(source, message) source.log_for_test((##message), "warning", __FILE__, __LINE__)
+
/// Constants indicating unit test completion status
#define UNIT_TEST_PASSED 0
#define UNIT_TEST_FAILED 1
@@ -62,10 +69,9 @@
#define TEST_OUTPUT_GREEN(text) (text)
#endif
-
#ifdef BASIC_TESTS
-//#include "icons/inhands.dm"
+#include "icons/inhands.dm"
#include "icons/missing_icons.dm"
#include "icons/spritesheets.dm"
#include "icons/worn_icons.dm"
@@ -78,10 +84,10 @@
#include "connect_loc.dm"
#include "biome_lists.dm"
#include "emoting.dm"
+#include "gun_sanity.dm"
#include "keybinding_init.dm"
#include "machine_disassembly.dm"
#include "open_air.dm"
-#include "outfit_names.dm"
#include "outfit_sanity.dm"
#include "overmap.dm"
#include "pills.dm"
diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm
index 9aee2ca10624..ed3d9c6ed0a7 100644
--- a/code/modules/unit_tests/create_and_destroy.dm
+++ b/code/modules/unit_tests/create_and_destroy.dm
@@ -13,8 +13,6 @@
/turf/template_noop,
//Never meant to be created, errors out the ass for mobcode reasons
/mob/living/carbon,
- //And another
- /obj/item/slimecross/recurring,
//This should be obvious
/obj/machinery/doomsday_device,
//Template type
@@ -35,8 +33,6 @@
/obj/machinery/power/shuttle/engine/liquid,
//needs a template
/obj/effect/landmark/subship,
- //needs a friend :(
- /obj/effect/mob_spawn/human/demonic_friend,
//needs a derg
/obj/structure/carp_rift,
//doesn't have icons
@@ -145,14 +141,12 @@
// Drastically lower the amount of time it takes to GC, since we don't have clients that can hold it up.
SSgarbage.collection_timeout[GC_QUEUE_CHECK] = 10 SECONDS
- //Prevent the garbage subsystem from harddeling anything, if only to save time
- SSgarbage.collection_timeout[GC_QUEUE_HARDDELETE] = 10000 HOURS
//Clear it, just in case
cached_contents.Cut()
var/list/queues_we_care_about = list()
- // All up to harddel
- for(var/i in 1 to GC_QUEUE_HARDDELETE - 1)
+ // All of em, I want hard deletes too, since we rely on the debug info from them
+ for(var/i in 1 to GC_QUEUE_HARDDELETE)
queues_we_care_about += i
//Now that we've qdel'd everything, let's sleep until the gc has processed all the shit we care about
@@ -162,6 +156,7 @@
time_needed += SSgarbage.collection_timeout[index]
var/start_time = world.time
+ var/real_start_time = REALTIMEOFDAY
var/garbage_queue_processed = FALSE
sleep(time_needed)
@@ -183,7 +178,7 @@
garbage_queue_processed = TRUE
break
- if(world.time > start_time + time_needed + 30 MINUTES) //If this gets us gitbanned I'm going to laugh so hard
+ if(REALTIMEOFDAY > real_start_time + time_needed + 30 MINUTES) //If this gets us gitbanned I'm going to laugh so hard
TEST_FAIL("Something has gone horribly wrong, the garbage queue has been processing for well over 30 minutes. What the hell did you do")
break
@@ -202,6 +197,9 @@
TEST_FAIL("[item.name] failed to respect force deletion [item.no_respect_force] times out of a total del count of [item.qdels]")
if(item.no_hint)
TEST_FAIL("[item.name] failed to return a qdel hint [item.no_hint] times out of a total del count of [item.qdels]")
+ if(LAZYLEN(item.extra_details))
+ var/details = item.extra_details.Join("\n")
+ TEST_FAIL("[item.name] failed with extra info: \n[details]")
cache_for_sonic_speed = SSatoms.BadInitializeCalls
for(var/path in cache_for_sonic_speed)
@@ -216,4 +214,3 @@
SSticker.delay_end = FALSE
//This shouldn't be needed, but let's be polite
SSgarbage.collection_timeout[GC_QUEUE_CHECK] = GC_CHECK_QUEUE
- SSgarbage.collection_timeout[GC_QUEUE_HARDDELETE] = GC_DEL_QUEUE
diff --git a/code/modules/unit_tests/find_reference_sanity.dm b/code/modules/unit_tests/find_reference_sanity.dm
index 67b6072d3b96..f6736ccb1d58 100644
--- a/code/modules/unit_tests/find_reference_sanity.dm
+++ b/code/modules/unit_tests/find_reference_sanity.dm
@@ -15,6 +15,8 @@
return ..()
/atom/movable/ref_test
+ // Gotta make sure we do a full check
+ references_to_clear = INFINITY
var/atom/movable/ref_test/self_ref
/atom/movable/ref_test/Destroy(force)
@@ -27,8 +29,8 @@
SSgarbage.should_save_refs = TRUE
//Sanity check
- victim.DoSearchVar(testbed, "Sanity Check", search_time = 1) //We increment search time to get around an optimization
- TEST_ASSERT(!victim.found_refs.len, "The ref-tracking tool found a ref where none existed")
+ victim.DoSearchVar(testbed, "Sanity Check") //We increment search time to get around an optimization
+ TEST_ASSERT(!LAZYLEN(victim.found_refs), "The ref-tracking tool found a ref where none existed")
SSgarbage.should_save_refs = FALSE
/datum/unit_test/find_reference_baseline/Run()
@@ -41,11 +43,11 @@
testbed.test_list += victim
testbed.test_assoc_list["baseline"] = victim
- victim.DoSearchVar(testbed, "First Run", search_time = 2)
+ victim.DoSearchVar(testbed, "First Run")
- TEST_ASSERT(victim.found_refs["test"], "The ref-tracking tool failed to find a regular value")
- TEST_ASSERT(victim.found_refs[testbed.test_list], "The ref-tracking tool failed to find a list entry")
- TEST_ASSERT(victim.found_refs[testbed.test_assoc_list], "The ref-tracking tool failed to find an assoc list value")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, "test"), "The ref-tracking tool failed to find a regular value")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, testbed.test_list), "The ref-tracking tool failed to find a list entry")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, testbed.test_assoc_list), "The ref-tracking tool failed to find an assoc list value")
SSgarbage.should_save_refs = FALSE
/datum/unit_test/find_reference_exotic/Run()
@@ -58,12 +60,12 @@
testbed.vis_contents += victim
testbed.test_assoc_list[victim] = TRUE
- victim.DoSearchVar(testbed, "Second Run", search_time = 3)
+ victim.DoSearchVar(testbed, "Second Run")
//This is another sanity check
- TEST_ASSERT(!victim.found_refs[testbed.overlays], "The ref-tracking tool found an overlays entry? That shouldn't be possible")
- TEST_ASSERT(victim.found_refs[testbed.vis_contents], "The ref-tracking tool failed to find a vis_contents entry")
- TEST_ASSERT(victim.found_refs[testbed.test_assoc_list], "The ref-tracking tool failed to find an assoc list key")
+ TEST_ASSERT(!LAZYACCESS(victim.found_refs, testbed.overlays), "The ref-tracking tool found an overlays entry? That shouldn't be possible")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, testbed.vis_contents), "The ref-tracking tool failed to find a vis_contents entry")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, testbed.test_assoc_list), "The ref-tracking tool failed to find an assoc list key")
SSgarbage.should_save_refs = FALSE
/datum/unit_test/find_reference_esoteric/Run()
@@ -78,11 +80,11 @@
var/list/to_find_assoc = list(victim)
testbed.test_assoc_list["Nesting"] = to_find_assoc
- victim.DoSearchVar(victim, "Third Run Self", search_time = 4)
- victim.DoSearchVar(testbed, "Third Run Testbed", search_time = 4)
- TEST_ASSERT(victim.found_refs["self_ref"], "The ref-tracking tool failed to find a self reference")
- TEST_ASSERT(victim.found_refs[to_find], "The ref-tracking tool failed to find a nested list entry")
- TEST_ASSERT(victim.found_refs[to_find_assoc], "The ref-tracking tool failed to find a nested assoc list entry")
+ victim.DoSearchVar(victim, "Third Run Self")
+ victim.DoSearchVar(testbed, "Third Run Testbed")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, "self_ref"), "The ref-tracking tool failed to find a self reference")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, to_find), "The ref-tracking tool failed to find a nested list entry")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, to_find_assoc), "The ref-tracking tool failed to find a nested assoc list entry")
SSgarbage.should_save_refs = FALSE
/datum/unit_test/find_reference_null_key_entry/Run()
@@ -93,8 +95,8 @@
//Calm before the storm
testbed.test_assoc_list = list(null = victim)
- victim.DoSearchVar(testbed, "Fourth Run", search_time = 5)
- TEST_ASSERT(testbed.test_assoc_list, "The ref-tracking tool failed to find a null key'd assoc list entry")
+ victim.DoSearchVar(testbed, "Fourth Run")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, testbed.test_assoc_list), "The ref-tracking tool failed to find a null key'd assoc list entry")
/datum/unit_test/find_reference_assoc_investigation/Run()
var/atom/movable/ref_test/victim = allocate(/atom/movable/ref_test)
@@ -107,9 +109,9 @@
var/list/to_find_null_assoc_nested = list(victim)
testbed.test_assoc_list[null] = to_find_null_assoc_nested
- victim.DoSearchVar(testbed, "Fifth Run", search_time = 6)
- TEST_ASSERT(victim.found_refs[to_find_in_key], "The ref-tracking tool failed to find a nested assoc list key")
- TEST_ASSERT(victim.found_refs[to_find_null_assoc_nested], "The ref-tracking tool failed to find a null key'd nested assoc list entry")
+ victim.DoSearchVar(testbed, "Fifth Run")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, to_find_in_key), "The ref-tracking tool failed to find a nested assoc list key")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, to_find_null_assoc_nested), "The ref-tracking tool failed to find a null key'd nested assoc list entry")
SSgarbage.should_save_refs = FALSE
/datum/unit_test/find_reference_static_investigation/Run()
@@ -126,7 +128,7 @@
for(var/key in global.vars)
global_vars[key] = global.vars[key]
- victim.DoSearchVar(global_vars, "Sixth Run", search_time = 7)
+ victim.DoSearchVar(global_vars, "Sixth Run")
- TEST_ASSERT(victim.found_refs[global_vars], "The ref-tracking tool failed to find a natively global variable")
+ TEST_ASSERT(LAZYACCESS(victim.found_refs, global_vars), "The ref-tracking tool failed to find a natively global variable")
SSgarbage.should_save_refs = FALSE
diff --git a/code/modules/unit_tests/gun_sanity.dm b/code/modules/unit_tests/gun_sanity.dm
new file mode 100644
index 000000000000..36630dfea8dc
--- /dev/null
+++ b/code/modules/unit_tests/gun_sanity.dm
@@ -0,0 +1,17 @@
+/datum/unit_test/gun_sanity/Run()
+ for(var/gun_path in subtypesof(/obj/item/gun))
+ var/obj/item/gun/target_gun = new gun_path()
+ if(target_gun.default_ammo_type)
+ if(!ispath(target_gun.default_ammo_type))
+ TEST_FAIL("The default ammo ([target_gun.default_ammo_type]) in [gun_path] is not a type")
+
+ if(!(target_gun.default_ammo_type in target_gun.allowed_ammo_types))
+ TEST_FAIL("The default ammo ([target_gun.default_ammo_type]) in [gun_path] in not in its allowed ammo types")
+
+ if(ispath(gun_path, /obj/item/gun/ballistic))
+ if(!(target_gun.magazine?.type == target_gun.default_ammo_type))
+ TEST_FAIL("[gun_path]'s mag ([target_gun.magazine?.type]) does not equal its default_ammo_type")
+ else
+ if(target_gun.internal_magazine)
+ TEST_FAIL("[gun_path] with an internal mag has no mag")
+ qdel(target_gun)
diff --git a/code/modules/unit_tests/icons/inhands.dm b/code/modules/unit_tests/icons/inhands.dm
index 858c6d2f2840..b3e5265e2f0b 100644
--- a/code/modules/unit_tests/icons/inhands.dm
+++ b/code/modules/unit_tests/icons/inhands.dm
@@ -26,7 +26,7 @@
//Add EVEN MORE paths if needed here!
//generate_possible_icon_states_list("your/folder/path/inhands/")
- for(var/obj/item/item_path as anything in subtypesof(/obj/item))
+ for(var/obj/item/item_path as anything in (subtypesof(/obj/item)))
if(initial(item_path.item_flags) & ABSTRACT)
continue
@@ -53,7 +53,7 @@
match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'")
if(!(skip_left || skip_right) && !lefthand_file && !righthand_file)
- TEST_FAIL("Missing both icon files for [item_path].\n\titem_state = \"[item_state]\"[match_message]")
+ TEST_NOTICE(src, "Missing both icon files for [item_path].\n\titem_state = \"[item_state]\"[match_message]")
continue
var/missing_left
@@ -80,7 +80,7 @@
if(!match_message && right_fallback && left_fallback)
fallback_log_message += "\n\t[item_path] has invalid value, using fallback icon.\n\titem_state = \"[item_state]\""
continue
- TEST_FAIL("Missing inhand sprites for [item_path] in both '[lefthand_file]' & '[righthand_file]'.\n\titem_state = \"[item_state]\"[match_message]")
+ TEST_NOTICE(src, "Missing inhand sprites for [item_path] in both '[lefthand_file]' & '[righthand_file]'.\n\titem_state = \"[item_state]\"[match_message]")
else if(missing_left)
TEST_FAIL("Missing left inhand sprite for [item_path] in '[lefthand_file]'[left_fallback ? ", using fallback icon" : null].\n\titem_state = \"[item_state]\"[match_message]")
else if(missing_right)
@@ -90,5 +90,5 @@
TEST_FAIL("Invalid item_state values should be set to null if there isn't a valid icon.[fallback_log_message]")
if(unset_inhand_var_message)
- log_test("\tNotice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values.[unset_inhand_var_message]")
+ TEST_NOTICE(src, "Possible inhand icon matches found. It is best to be explicit with inhand sprite values.[unset_inhand_var_message]")
diff --git a/code/modules/unit_tests/icons/missing_icons.dm b/code/modules/unit_tests/icons/missing_icons.dm
index f548d2844a0f..36343da89c25 100644
--- a/code/modules/unit_tests/icons/missing_icons.dm
+++ b/code/modules/unit_tests/icons/missing_icons.dm
@@ -54,4 +54,3 @@
for(var/file_place in possible_icon_states[icon_state])
match_message += (match_message ? " & '[file_place]'" : " - Matching sprite found in: '[file_place]'")
TEST_FAIL("Missing icon_state for [obj_path] in '[icon]'.\n\ticon_state = \"[icon_state]\"[match_message]")
-
diff --git a/code/modules/unit_tests/icons/worn_icons.dm b/code/modules/unit_tests/icons/worn_icons.dm
index 673526cc9f68..84e1663407bc 100644
--- a/code/modules/unit_tests/icons/worn_icons.dm
+++ b/code/modules/unit_tests/icons/worn_icons.dm
@@ -5,6 +5,7 @@
/// Make sure this location is also present in tools/deploy.sh
/// If you need additional paths ontop of this second one, you can add another generate_possible_icon_states_list("your/folder/path/") below the if(additional_icon_location) block in Run(), and make sure to add that path to tools/deploy.sh as well.
var/additional_icon_location = null
+ var/required_test = TRUE
/datum/unit_test/mob_overlay_icons/proc/generate_possible_icon_states_list(directory_path)
if(!directory_path)
@@ -16,6 +17,9 @@
else
possible_icon_states += generate_possible_icon_states_list("[directory_path][file_path]")
+/datum/unit_test/mob_overlay_icons/proc/types_to_search()
+ return subtypesof(/obj/item/clothing)
+
/datum/unit_test/mob_overlay_icons/Run()
generate_possible_icon_states_list()
if(additional_icon_location)
@@ -23,7 +27,7 @@
var/list/already_warned_icons = list()
- for(var/obj/item/item_path as anything in (subtypesof(/obj/item/clothing)))
+ for(var/obj/item/item_path as anything in types_to_search())
var/cached_slot_flags = initial(item_path.slot_flags)
if(!cached_slot_flags || (cached_slot_flags & ITEM_SLOT_LPOCKET) || (cached_slot_flags & ITEM_SLOT_RPOCKET) || initial(item_path.item_flags) & ABSTRACT)
continue
@@ -45,7 +49,10 @@
if(mob_overlay_icon) //easiest to check since we override everything. this automatically includes downstream support.
if(!(icon_state in icon_states(mob_overlay_icon, 1)))
- TEST_FAIL("[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in mob_overlay_icon override file, '[mob_overlay_icon]'[match_message]")
+ if(required_test)
+ TEST_FAIL("[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in mob_overlay_icon override file, '[mob_overlay_icon]'[match_message]")
+ else
+ TEST_NOTICE(src, "[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in mob_overlay_icon override file, '[mob_overlay_icon]'[match_message]")
continue
var/icon_file //checks against all the default icon locations if one isn't defined.
@@ -61,15 +68,6 @@
fail_reasons += "[item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
spacer = "\n\t"
- /*
- if(cached_slot_flags & ITEM_SLOT_ID)
- icon_file = 'icons/mob/clothing/id.dmi'
- if(!(icon_state in icon_states(icon_file, 1)))
- already_warned_icons += icon_state
- fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]"
- spacer = "\n\t"
- */
-
if(cached_slot_flags & ITEM_SLOT_GLOVES)
icon_file = 'icons/mob/clothing/hands.dmi'
if(!(icon_state in icon_states(icon_file, 1)))
@@ -117,4 +115,13 @@
spacer = "\n\t"
if(fail_reasons)
- TEST_FAIL(fail_reasons)
+ if(required_test)
+ TEST_FAIL(fail_reasons)
+ else
+ TEST_NOTICE(src, fail_reasons)
+
+/datum/unit_test/mob_overlay_icons/not_clothing
+ required_test = FALSE
+
+/datum/unit_test/mob_overlay_icons/not_clothing/types_to_search()
+ return (subtypesof(/obj/item) - subtypesof(/obj/item/clothing))
diff --git a/code/modules/unit_tests/outfit_names.dm b/code/modules/unit_tests/outfit_names.dm
deleted file mode 100644
index b381bfeb7bf5..000000000000
--- a/code/modules/unit_tests/outfit_names.dm
+++ /dev/null
@@ -1,12 +0,0 @@
-/datum/unit_test/outfit_names/Run()
- var/list/outfit_names = list()
-
- for(var/datum/outfit/outfit_type as anything in subtypesof(/datum/outfit))
- var/name = initial(outfit_type.name)
-
- if(name in outfit_names)
- TEST_FAIL("Outfit name [name] is not unique: [outfit_type], [outfit_names[name]]")
-
- outfit_names[name] = outfit_type
-
-
diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm
index 4dc12b4dc6e3..6fc875d94837 100644
--- a/code/modules/unit_tests/outfit_sanity.dm
+++ b/code/modules/unit_tests/outfit_sanity.dm
@@ -6,7 +6,7 @@
if (outfit.random != TRUE) \
TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
else \
- log_world("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
+ TEST_NOTICE(src, "[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \
} \
}
@@ -26,6 +26,7 @@
var/prototype_name = initial(prototype_outfit.name)
var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human)
+ var/list/outfit_names = list()
for (var/outfit_type in subtypesof(/datum/outfit))
// Only make one human and keep undressing it because it's much faster
for (var/obj/item/I in H.get_equipped_items(include_pockets = TRUE))
@@ -33,8 +34,12 @@
var/datum/outfit/outfit = new outfit_type
- if(outfit.name == prototype_name)
+ var/outfit_name = outfit.name
+ if(outfit_name == prototype_name)
TEST_FAIL("[outfit.type]'s name is invalid! Uses default outfit name!")
+ if(outfit_name in outfit_names)
+ TEST_FAIL("Outfit name [outfit_name] is not unique: [outfit_type], [outfit_names[outfit_name]]")
+ outfit_names[outfit_name] = outfit_type
outfit.pre_equip(H, TRUE)
CHECK_OUTFIT_SLOT(uniform, ITEM_SLOT_ICLOTHING)
@@ -67,7 +72,6 @@
if (outfit.random != TRUE)
TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
else
- log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.")
-
+ TEST_NOTICE(src, "[outfit.name]'s backpack_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 d3fa6e6cdfc7..c725fcdc6dd8 100644
--- a/code/modules/unit_tests/say.dm
+++ b/code/modules/unit_tests/say.dm
@@ -8,7 +8,7 @@
test("Hello", "Hello", list())
test(";HELP", "HELP", list(MODE_HEADSET = TRUE))
test(";%Never gonna give you up", "Never gonna give you up", list(MODE_HEADSET = TRUE, MODE_SING = TRUE))
- test(".c Gun plz", "Gun plz", list(RADIO_KEY = RADIO_KEY_COMMAND, RADIO_EXTENSION = RADIO_CHANNEL_COMMAND))
+ test(".c Gun plz", "Gun plz", list(RADIO_KEY = RADIO_KEY_EMERGENCY, RADIO_EXTENSION = RADIO_CHANNEL_EMERGENCY))
test("...What", "...What", list())
/datum/unit_test/get_message_mods/proc/test(message, expected_message, list/expected_mods)
diff --git a/code/modules/unit_tests/ship_outpost_placement.dm b/code/modules/unit_tests/ship_outpost_placement.dm
index 48bbd6a181e3..0762af79e304 100644
--- a/code/modules/unit_tests/ship_outpost_placement.dm
+++ b/code/modules/unit_tests/ship_outpost_placement.dm
@@ -3,7 +3,7 @@
// disabled or intended as subshuttles
for(var/name as anything in SSmapping.shuttle_templates)
var/datum/map_template/shuttle/map = SSmapping.shuttle_templates[name]
- log_world("Loading [map.name]")
+ log_test("Loading [map.name]")
try
// they'll spawn in empty space, and won't be docked
new /datum/overmap/ship/controlled(list("x" = 1, "y" = 1), map)
@@ -13,10 +13,10 @@
for(var/outpost_type in subtypesof(/datum/overmap/outpost))
var/datum/overmap/outpost/test_outpost = new outpost_type()
- log_world("Testing [test_outpost.type]")
+ log_test("Testing [test_outpost.type]")
for(var/datum/overmap/ship/controlled/cur_ship as anything in SSovermap.controlled_ships)
- log_world(" - Docking [cur_ship.source_template.name]")
+ log_test(" - Docking [cur_ship.source_template.name]")
// already-docked ships are ignored.
// this was added to stop runtimes when subshuttles, which were docked to their parent ship, attempted to dock to the outpost as part of this test.
diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm
index 7240adb33855..18b5b12e7f48 100644
--- a/code/modules/unit_tests/unit_test.dm
+++ b/code/modules/unit_tests/unit_test.dm
@@ -85,38 +85,58 @@ GLOBAL_VAR(test_log)
allocated += instance
return instance
+/// Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions
+/datum/unit_test/proc/log_for_test(text, priority, file, line, test_path)
+ // Need to escape the text to properly support newlines.
+ var/annotation_text = replacetext(text, "%", "%25")
+ annotation_text = replacetext(annotation_text, "\n", "%0A")
+
+ log_world("::[priority] file=[file],line=[line],title=[test_path]: [type]::[annotation_text]")
+
/proc/RunUnitTest(test_path, list/test_results)
var/datum/unit_test/test = new test_path
GLOB.current_test = test
var/duration = REALTIMEOFDAY
+ log_world("::group::[test_path]")
test.Run()
duration = REALTIMEOFDAY - duration
GLOB.current_test = null
GLOB.failed_any_test |= !test.succeeded
- var/list/log_entry = list(
- "[test.succeeded ? TEST_OUTPUT_GREEN("PASS") : TEST_OUTPUT_RED("FAIL")]: [test_path] [duration / 10]s",
- )
+ var/list/log_entry = list()
var/list/fail_reasons = test.fail_reasons
+ var/test_output_desc = "[test_path]"
+ var/message = ""
+
for(var/reasonID in 1 to LAZYLEN(fail_reasons))
var/text = fail_reasons[reasonID][1]
var/file = fail_reasons[reasonID][2]
var/line = fail_reasons[reasonID][3]
- /// Github action annotation.
- log_world("::error file=[file],line=[line],title=[test_path]::[text]")
+ test.log_for_test(text, "error", file, line, test_path)
// Normal log message
- log_entry += "\tREASON #[reasonID]: [text] at [file]:[line]"
+ log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]"
+
+ if(length(log_entry))
+ message = log_entry.Join("\n")
+ log_test(message)
- var/message = log_entry.Join("\n")
- log_test(message)
+ test_output_desc += " [duration / 10]s"
+ if (test.succeeded)
+ log_world("[TEST_OUTPUT_GREEN("PASS")] [test_output_desc]")
- test_results[test_path] = list("status" = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED, "message" = message, "name" = test_path)
+ log_world("::endgroup::")
+
+ if (!test.succeeded)
+ log_world("::error::[TEST_OUTPUT_RED("FAIL")] [test_output_desc]")
+
+ var/final_status = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED
+ test_results[test_path] = list("status" = final_status, "message" = message, "name" = test_path)
qdel(test)
@@ -141,6 +161,10 @@ GLOBAL_VAR(test_log)
CHECK_TICK //We check tick first because the unit test we run last may be so expensive that checking tick will lock up this loop forever
RunUnitTest(unit_path, test_results)
+ var/file_name = "data/unit_tests.json"
+ fdel(file_name)
+ file(file_name) << json_encode(test_results)
+
SSticker.force_ending = TRUE
//We have to call this manually because del_text can preceed us, and SSticker doesn't fire in the post game
SSticker.declare_completion()
diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm
index 877f1f11d854..0cf5a1258964 100644
--- a/code/modules/uplink/uplink_items.dm
+++ b/code/modules/uplink/uplink_items.dm
@@ -360,7 +360,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Bananium Energy Sword"
desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \
impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it."
- item = /obj/item/melee/transforming/energy/sword/bananium
+ item = /obj/item/melee/energy/sword/bananium
cost = 3
surplus = 0
include_modes = list(/datum/game_mode/nuclear/clown_ops)
@@ -417,7 +417,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
name = "Energy Sword"
desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \
pocketed when inactive. Activating it produces a loud, distinctive noise."
- item = /obj/item/melee/transforming/energy/sword/saber
+ item = /obj/item/melee/energy/sword/saber
cost = 8
exclude_modes = list(/datum/game_mode/nuclear/clown_ops)
@@ -445,16 +445,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/clothing/gloves/rapid
cost = 8
-/datum/uplink_item/dangerous/guardian
- name = "Holoparasites"
- desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \
- organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host."
- item = /obj/item/storage/box/syndie_kit/guardian
- cost = 18
- surplus = 0
- exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
- restricted = TRUE
-
/datum/uplink_item/dangerous/machinegun
name = "L6 Squad Automatic Weapon"
desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \
@@ -869,7 +859,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/ammo/toydarts
name = "Box of Riot Darts"
desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!"
- item = /obj/item/ammo_box/foambox/riot
+ item = /obj/item/storage/box/ammo/foam_darts/riot
cost = 2
surplus = 0
illegal_tech = FALSE
@@ -1140,14 +1130,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array."
item = /obj/mecha/combat/gygax/dark/loaded
cost = 80
-
-/datum/uplink_item/support/honker
- name = "Dark H.O.N.K."
- desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000."
- item = /obj/mecha/combat/honker/dark/loaded
- cost = 80
- include_modes = list(/datum/game_mode/nuclear/clown_ops)
-
/datum/uplink_item/support/touro
name = "Touro Exosuit"
desc = "A well-armored and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \
@@ -1516,15 +1498,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/clothing/glasses/thermal/syndi
cost = 4
-/datum/uplink_item/device_tools/potion
- name = "Syndicate Sentience Potion"
- item = /obj/item/slimepotion/slime/sentience/nuclear
- desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \
- Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors."
- cost = 4
- include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops)
- restricted = TRUE
-
/datum/uplink_item/device_tools/guerillagloves
name = "Guerilla Gloves"
desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!"
@@ -1791,13 +1764,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
restricted_roles = list("Curator")
limited_stock = 1 //please don't spam deadchat
-/datum/uplink_item/role_restricted/cultconstructkit
- name = "Cult Construct Kit"
- desc = "Recovered from an abandoned Nar'sie cult lair two construct shells and a stash of empty soulstones was found. These were purified to prevent occult contamination and have been put in a belt so they may be used as an accessible source of disposable minions. The construct shells have been packaged into two beacons for rapid and portable deployment."
- item = /obj/item/storage/box/syndie_kit/cultconstructkit
- cost = 20
- restricted_roles = list("Chaplain")
-
/datum/uplink_item/role_restricted/lawnmower
name = "Gas powered lawn mower"
desc = "A lawn mower is a machine utilizing one or more revolving blades to cut a grass surface to an even height, or bodies if that's your thing"
diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm
index a785ba5985d7..bd0a0f04c84d 100644
--- a/code/modules/vehicles/atv.dm
+++ b/code/modules/vehicles/atv.dm
@@ -40,7 +40,6 @@
/obj/vehicle/ridden/atv/turret/Initialize()
. = ..()
turret = new(loc)
- turret.base = src
/obj/vehicle/ridden/atv/turret/Moved()
. = ..()
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index d4a9aff2d8b2..ad1d3750aa9b 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -83,7 +83,7 @@
//For those who want to play farm simulator 503
/obj/vehicle/ridden/lawnmower
- name = "Donk! Co. TM Deluxe Lawnmower 3003"
+ name = "John J. Jimbler Ultra-Mega-Mower"
desc = "Equipped with reliable safeties to prevent accidents in the workplace. The safety light is on."
icon = 'icons/obj/vehicles.dmi'
icon_state = "lawnmower"
diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm
index afabdc06f0f7..d16f767108dc 100644
--- a/code/modules/vending/_vending.dm
+++ b/code/modules/vending/_vending.dm
@@ -56,7 +56,6 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
integrity_failure = 0.33
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
circuit = /obj/item/circuitboard/machine/vendor
- var/datum/weakref/payment_account_ref
light_power = 0.5
light_range = MINIMUM_USEFUL_LIGHT_RANGE
clicksound = 'sound/machines/pda_button1.ogg'
@@ -139,9 +138,9 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
///Does this machine accept mining points?
var/mining_point_vendor = FALSE
///Default price of items if not overridden
- var/default_price = 25
+ var/default_price = 15
///Default price of premium items if not overridden
- var/extra_price = 50
+ var/extra_price = 30
///Whether our age check is currently functional
var/age_restrictions = TRUE
@@ -194,6 +193,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
Radio = new /obj/item/radio(src)
Radio.listening = 0
+ if(istype(get_area(src.loc), /area/outpost) || istype(get_area(src.loc), /area/ruin))
+ all_items_free = FALSE
/obj/machinery/vending/Destroy()
QDEL_NULL(wires)
@@ -565,7 +566,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
L.client.give_award(/datum/award/achievement/misc/vendor_squish, L) // good job losing a fight with an inanimate object idiot
L.Paralyze(60)
- L.emote("scream")
+ L.force_scream()
playsound(L, 'sound/effects/blobattack.ogg', 40, TRUE)
playsound(L, 'sound/effects/splat.ogg', 50, TRUE)
@@ -815,16 +816,26 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
// else
// account.adjust_money(-price_to_use, "vendor_purchase")
// SSblackbox.record_feedback("amount", "vending_spent", price_to_use) // CELADON-EDIT - ORIGINAL
- var/datum/bank_account/account = C.registered_account
- if(price_to_use)
- if(account.has_money(price_to_use))
- var/datum/bank_account/owner = private_a
- if(owner)
- owner.transfer_money(account, price_to_use)
- else
- account.adjust_money(-price_to_use, "vendor_purchase")
- SSblackbox.record_feedback("amount", "vending_spent", price_to_use)
+ // var/datum/bank_account/account = C.registered_account
+ // if(price_to_use)
+ // if(account.has_money(price_to_use))
+ // var/datum/bank_account/owner = private_a
+ // if(owner)
+ // owner.transfer_money(account, price_to_use)
+ // else
+ // account.adjust_money(-price_to_use, "vendor_purchase")
+ // SSblackbox.record_feedback("amount", "vending_spent", price_to_use) // НАШЕ
// [/CELADON-EDIT]
+ var/datum/bank_account/account = C.registered_account
+ if(coin_records.Find(R) || hidden_records.Find(R))
+ price_to_use = R.custom_premium_price ? R.custom_premium_price : extra_price
+ if(price_to_use && !account.has_money(price_to_use))
+ say("You do not possess the funds to purchase [R.name].")
+ flick(icon_deny,src)
+ vend_ready = TRUE
+ return
+ account.adjust_money(-price_to_use, CREDIT_LOG_VENDOR_PURCHASE)
+ SSblackbox.record_feedback("amount", "vending_spent", price_to_use)
log_econ("[price_to_use] credits were inserted into [src] by [H] to buy [R].")
if(last_shopper != REF(usr) || purchase_message_cooldown < world.time)
say("Thank you for shopping with [src]!")
@@ -834,9 +845,13 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
if(icon_vend) //Show the vending animation if needed
flick(icon_vend,src)
playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3)
- new R.product_path(get_turf(src))
+ var/obj/item/vended_item = new R.product_path(get_turf(src))
if(R.max_amount >= 0)
R.amount--
+ if(usr.CanReach(src) && usr.put_in_hands(vended_item))
+ to_chat(usr, span_notice("You take [R.name] out of the slot."))
+ else
+ to_chat(usr, span_warning("[capitalize(R.name)] falls onto the floor!"))
SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]"))
vend_ready = TRUE
@@ -1088,7 +1103,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
if(owner)
owner.transfer_money(account, S.custom_price)
else
- account.adjust_money(-S.custom_price, "vendor_purchase")
+ account.adjust_money(-S.custom_price, CREDIT_LOG_VENDOR_PURCHASE)
SSblackbox.record_feedback("amount", "vending_spent", S.custom_price)
log_econ("[S.custom_price] credits were spent on [src] buying a [S] by [owner.account_holder], owned by [private_a.account_holder].")
vending_machine_input[N] = max(vending_machine_input[N] - 1, 0)
diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm
index cb3cd0053d8a..44715238ed9f 100644
--- a/code/modules/vending/assist.dm
+++ b/code/modules/vending/assist.dm
@@ -22,7 +22,7 @@
/obj/item/circuitboard/machine/vendor = 3)
refill_canister = /obj/item/vending_refill/assist
product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!"
- default_price = 125
+ default_price = 50
extra_price = 100
light_mask = "generic-light-mask"
diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm
index 295133290c16..5caf3995643c 100644
--- a/code/modules/vending/autodrobe.dm
+++ b/code/modules/vending/autodrobe.dm
@@ -56,7 +56,7 @@
/obj/item/clothing/under/costume/schoolgirl/green = 1,
/obj/item/clothing/under/costume/schoolgirl/orange = 1,
/obj/item/clothing/head/kitty = 1,
- /obj/item/clothing/under/dress/skirt = 1,
+ /obj/item/clothing/under/dress/skirt/color = 1,
/obj/item/clothing/head/beret = 1,
/obj/item/clothing/head/cowboy = 1, //WS - Yee Haw
/obj/item/clothing/accessory/waistcoat = 1,
@@ -130,8 +130,8 @@
/obj/item/shield/riot/roman/fake = 1,
/obj/item/skub = 1)
refill_canister = /obj/item/vending_refill/autodrobe
- default_price = 180
- extra_price = 360
+ default_price = 90
+ extra_price = 180
light_mask="theater-light-mask"
/obj/machinery/vending/autodrobe/canLoadItem(obj/item/I,mob/user)
diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm
index 7477fba82619..67471c869142 100644
--- a/code/modules/vending/boozeomat.dm
+++ b/code/modules/vending/boozeomat.dm
@@ -77,8 +77,8 @@
product_ads = "Drink up!;Booze is good for you!;Alcohol is everyone's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 53 FSC!;Award-winning wine!;Maximum alcohol!;Everyone loves beer.;A toast for progress!"
req_access = list(ACCESS_BAR)
refill_canister = /obj/item/vending_refill/boozeomat
- default_price = 120
- extra_price = 200
+ default_price = 10
+ extra_price = 15
light_mask = "boozeomat-light-mask"
/obj/machinery/vending/boozeomat/all_access
diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm
index b2608b6556f4..b69f40525ac9 100644
--- a/code/modules/vending/cartridge.dm
+++ b/code/modules/vending/cartridge.dm
@@ -14,8 +14,8 @@
/obj/item/cartridge/captain = 3,
/obj/item/cartridge/quartermaster = 10)
refill_canister = /obj/item/vending_refill/cart
- default_price = 250
- extra_price = 500
+ default_price = 200
+ extra_price = 300
light_mask="cart-light-mask"
/obj/item/vending_refill/cart
diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm
index 65437f3bb4ec..3bbb10afb9c9 100644
--- a/code/modules/vending/cigarette.dm
+++ b/code/modules/vending/cigarette.dm
@@ -25,8 +25,8 @@
/obj/item/storage/fancy/cigarettes/cigars/cohiba = 1,
/obj/item/clothing/mask/vape/cigar = 3)
refill_canister = /obj/item/vending_refill/cigarette
- default_price = 75
- extra_price = 250
+ default_price = 10
+ extra_price = 20
light_mask = "cigs-light-mask"
/obj/machinery/vending/cigarette/syndicate
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index b7840f9ba9c0..a4d492b748d7 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -61,14 +61,17 @@
/obj/item/clothing/under/pants/track = 2,
/obj/item/clothing/shoes/sneakers/black = 4,
/obj/item/clothing/head/wig/natural = 4,
- /obj/item/clothing/under/dress/skirt/plaid = 2,
- /obj/item/clothing/under/dress/skirt/plaid/blue = 2,
- /obj/item/clothing/under/dress/skirt/plaid/green = 2,
- /obj/item/clothing/under/dress/skirt/plaid/purple = 2,
- /obj/item/clothing/under/dress/skirt = 2,
- /obj/item/clothing/under/dress/skirt/blue = 2,
- /obj/item/clothing/under/dress/skirt/red = 2,
- /obj/item/clothing/under/dress/skirt/purple = 2,
+ /obj/item/clothing/under/dress/skirt/color = 2,
+ /obj/item/clothing/under/dress/skirt/color/blue = 2,
+ /obj/item/clothing/under/dress/skirt/color/red = 2,
+ /obj/item/clothing/under/dress/skirt/color/purple = 2,
+ /obj/item/clothing/under/dress/skirt/color/white = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore/maroon = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore/cerulean = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore/plaid = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore/plaid/green = 2,
+ /obj/item/clothing/under/dress/skirt/pinafore/plaid/brown = 2,
/obj/item/clothing/under/suit/white/skirt = 2,
/obj/item/clothing/under/rank/command/captain/suit/skirt = 2,
/obj/item/clothing/under/rank/command/head_of_personnel/suit/skirt = 2,
@@ -97,6 +100,8 @@
/obj/item/clothing/under/dress/sailor = 1,
/obj/item/clothing/under/dress/redeveninggown = 1,
/obj/item/clothing/under/dress/blacktango = 1,
+ /obj/item/clothing/under/dress/one_shoulder = 1,
+ /obj/item/clothing/under/dress/white_dress = 1,
/obj/item/clothing/suit/ianshirt = 1,
/obj/item/clothing/shoes/laceup = 2,
/obj/item/clothing/shoes/sandal = 2,
diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm
index 9c4851c134a5..f56336a0d44c 100644
--- a/code/modules/vending/coffee.dm
+++ b/code/modules/vending/coffee.dm
@@ -13,8 +13,8 @@
/obj/item/reagent_containers/food/drinks/cafelatte = 3,
/obj/item/reagent_containers/food/drinks/soylatte = 3)
refill_canister = /obj/item/vending_refill/coffee
- default_price = 45
- extra_price = 150
+ default_price = 5
+ extra_price = 15
light_mask = "coffee-light-mask"
light_color = COLOR_DARK_MODERATE_ORANGE
diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm
index 017fd02334ca..5fc4e8da8ea3 100644
--- a/code/modules/vending/cola.dm
+++ b/code/modules/vending/cola.dm
@@ -26,25 +26,13 @@
/obj/item/reagent_containers/food/drinks/soda_cans/xeno_energy = 1,
/obj/item/reagent_containers/food/drinks/soda_cans/crosstalk = 1)
refill_canister = /obj/item/vending_refill/cola
- default_price = 45
- extra_price = 200
-
+ default_price = 5
+ extra_price = 15
/obj/item/vending_refill/cola
machine_name = "RobustMore Softdrinks"
icon_state = "refill_cola"
-/obj/machinery/vending/cola/random
- name = "\improper Random Drinkies"
- icon_state = "random_cola"
- desc = "Uh oh!"
-
-/obj/machinery/vending/cola/random/Initialize()
- ..()
- var/T = pick(subtypesof(/obj/machinery/vending/cola) - /obj/machinery/vending/cola/random)
- new T(loc)
- return INITIALIZE_HINT_QDEL
-
/obj/machinery/vending/cola/blue
icon_state = "Cola_Machine"
light_mask = "cola-light-mask"
diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm
index b5a9d073e8fa..1050e14de93f 100644
--- a/code/modules/vending/engineering.dm
+++ b/code/modules/vending/engineering.dm
@@ -29,8 +29,8 @@
/obj/item/stock_parts/matter_bin = 5,
/obj/item/stock_parts/manipulator = 5)
refill_canister = /obj/item/vending_refill/engineering
- default_price = 450
- extra_price = 500
+ default_price = 200
+ extra_price = 400
light_mask = "engi-light-mask"
/obj/item/vending_refill/engineering
diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm
index fb096656c1c3..c3b3e175d183 100644
--- a/code/modules/vending/engivend.dm
+++ b/code/modules/vending/engivend.dm
@@ -22,7 +22,7 @@
/obj/item/construction/rcd/loaded = 2,
/obj/item/storage/box/smart_metal_foam = 1)
refill_canister = /obj/item/vending_refill/engivend
- default_price = 450
+ default_price = 250
extra_price = 500
light_mask = "engivend-light-mask"
diff --git a/code/modules/vending/liberation_toy.dm b/code/modules/vending/liberation_toy.dm
index 06069e4db764..931611da1df9 100644
--- a/code/modules/vending/liberation_toy.dm
+++ b/code/modules/vending/liberation_toy.dm
@@ -10,14 +10,14 @@
/obj/item/gun/ballistic/automatic/toy/pistol = 10,
/obj/item/gun/ballistic/shotgun/toy = 10,
/obj/item/toy/sword = 10,
- /obj/item/ammo_box/foambox = 20,
+ /obj/item/storage/box/ammo/foam_darts = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
/obj/item/clothing/head/syndicatefake = 5) //OPS IN DORMS oh wait it's just an assistant
contraband = list(
/obj/item/gun/ballistic/shotgun/toy/crossbow = 10, //Congrats, you unlocked the +18 setting!
- /obj/item/ammo_box/foambox/riot = 20,
+ /obj/item/storage/box/ammo/foam_darts/riot = 20,
/obj/item/toy/katana = 10,
/obj/item/dualsaber/toy = 5,
/obj/item/toy/cards/deck/syndicate = 10) //Gambling and it hurts, making it a +18 item
diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm
index 5a35a75a4495..ec96150e92df 100644
--- a/code/modules/vending/medical.dm
+++ b/code/modules/vending/medical.dm
@@ -36,8 +36,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/medical
- default_price = 250
- extra_price = 500
+ default_price = 150
+ extra_price = 400
light_mask = "med-light-mask"
/obj/item/vending_refill/medical
diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm
index dd498ffded07..41f97ab888a4 100644
--- a/code/modules/vending/medical_wall.dm
+++ b/code/modules/vending/medical_wall.dm
@@ -21,8 +21,8 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/wallmed
- default_price = 250
- extra_price = 500
+ default_price = 200
+ extra_price = 400
tiltable = FALSE
light_mask = "wallmed-light-mask"
diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm
index 37a51b27bb89..8ffd760c9533 100644
--- a/code/modules/vending/security.dm
+++ b/code/modules/vending/security.dm
@@ -12,8 +12,6 @@
/obj/item/assembly/flash/handheld = 5,
/obj/item/storage/box/evidence = 6,
/obj/item/flashlight/seclite = 4,
- /obj/item/ammo_box/c9mm/rubbershot = 3,
- /obj/item/ammo_box/c9mm = 1,
/obj/item/stock_parts/cell/gun = 3,
/obj/item/clothing/glasses/sunglasses = 2)
premium = list(
@@ -107,7 +105,7 @@
premium = list()
voucher_items = list(
"Tactical Energy Gun" = /obj/item/gun/energy/e_gun/hades,
- "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/combat)
+ "Combat Shotgun" = /obj/item/gun/ballistic/shotgun/automatic/m11)
/obj/machinery/vending/security/marine/syndicate
icon_state = "syndicate-marine"
diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm
index 45d76a4754fa..034d9df27ba4 100644
--- a/code/modules/vending/snack.dm
+++ b/code/modules/vending/snack.dm
@@ -16,27 +16,16 @@
/obj/item/storage/box/gum = 3,
/obj/item/reagent_containers/food/snacks/energybar = 6,
/obj/item/reagent_containers/food/snacks/syndicake = 6,
- /obj/item/reagent_containers/food/snacks/candy/bronx = 1)
+ )
refill_canister = /obj/item/vending_refill/snack
canload_access_list = list(ACCESS_KITCHEN)
- default_price = 60
- extra_price = 160
+ default_price = 5
+ extra_price = 10
input_display_header = "Chef's Food Selection"
/obj/item/vending_refill/snack
machine_name = "RobustMore DrinkFoods LLC"
-/obj/machinery/vending/snack/random
- name = "\improper Random Snackies"
- icon_state = "random_snack"
- desc = "Uh oh!"
-
-/obj/machinery/vending/snack/random/Initialize()
- ..()
- var/T = pick(subtypesof(/obj/machinery/vending/snack) - /obj/machinery/vending/snack/random)
- new T(loc)
- return INITIALIZE_HINT_QDEL
-
/obj/machinery/vending/snack/blue
icon_state = "snackblue"
diff --git a/code/modules/vending/toys.dm b/code/modules/vending/toys.dm
index 08af917aa86a..3ee07932fddd 100644
--- a/code/modules/vending/toys.dm
+++ b/code/modules/vending/toys.dm
@@ -12,7 +12,7 @@
/obj/item/gun/ballistic/automatic/toy/pistol = 10,
/obj/item/gun/ballistic/shotgun/toy = 10,
/obj/item/toy/sword = 10,
- /obj/item/ammo_box/foambox = 20,
+ /obj/item/storage/box/ammo/foam_darts = 20,
/obj/item/toy/foamblade = 10,
/obj/item/toy/balloon/syndicate = 10,
/obj/item/clothing/suit/syndicatefake = 5,
@@ -23,7 +23,7 @@
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50)
resistance_flags = FIRE_PROOF
refill_canister = /obj/item/vending_refill/donksoft
- default_price = 150
+ default_price = 100
extra_price = 300
/obj/item/vending_refill/donksoft
diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm
index e6db60047da0..4dac5845fe13 100644
--- a/code/modules/vending/wardrobes.dm
+++ b/code/modules/vending/wardrobes.dm
@@ -2,8 +2,8 @@
icon_state = "refill_clothes"
/obj/machinery/vending/wardrobe
- default_price = 350
- extra_price = 450
+ default_price = 200
+ extra_price = 500
input_display_header = "Returned Clothing"
light_mask = "wardrobe-light-mask"
diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm
index 98a5331b2744..d4335680a513 100644
--- a/code/modules/vending/youtool.dm
+++ b/code/modules/vending/youtool.dm
@@ -25,5 +25,5 @@
/obj/item/clothing/gloves/color/yellow = 1)
armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70)
resistance_flags = FIRE_PROOF
- default_price = 125
- extra_price = 350
+ default_price = 75
+ extra_price = 250
diff --git a/config/config.txt b/config/config.txt
index 7a348b2c9cc0..d81d1a7e63cc 100644
--- a/config/config.txt
+++ b/config/config.txt
@@ -6,7 +6,6 @@ $include dbconfig.txt
$include comms.txt
$include resources.txt
$include interviews.txt
-$include atmos_mix.txt
# You can use the @ character at the beginning of a config option to lock it from being edited in-game
# Example usage:
@@ -156,9 +155,6 @@ LOG_CLONING
## log shuttle actions
LOG_SHUTTLE
-## Enable the demo subsystem
-# DEMOS_ENABLED
-
## Log all timers on timer auto reset
# LOG_TIMERS_ON_BUCKET_RESET
@@ -210,9 +206,6 @@ VOTE_AUTOTRANSFER_INTERVAL 18000
## disable abandon mob
#NORESPAWN
-## disables calling del(src) on newmobs if they logout before spawnin in
-# DONT_DEL_NEWMOB
-
## set a hosted by name for unix platforms
HOSTEDBY Yournamehere
@@ -300,8 +293,6 @@ CHECK_RANDOMIZER
# INVOKE_YOUTUBEDL youtube-dl
## In-game features
-##Toggle for having jobs load up from the .txt
-# LOAD_JOBS_FROM_TXT
## Uncomment this to forbid admins from possessing the singularity.
#FORBID_SINGULO_POSSESSION
@@ -399,7 +390,7 @@ NOTIFY_NEW_PLAYER_ACCOUNT_AGE 1
#AGGRESSIVE_CHANGELOG
## Comment this out if you've used the mass conversion sql proc for notes or want to stop converting notes
-AUTOCONVERT_NOTES
+#AUTOCONVERT_NOTES
## Comment this out to stop admin messages sent anytime an admin disconnects from a round in play, you can edit the messages in admin.dm
ANNOUNCE_ADMIN_LOGOUT
@@ -407,15 +398,6 @@ ANNOUNCE_ADMIN_LOGOUT
## Uncomment to have an admin message sent anytime an admin connects to a round in play, you can edit the messages in admin.dm
#ANNOUNCE_ADMIN_LOGIN
-## Map rotation
-## You should edit maps.txt to match your configuration when you enable this.
-MAPROTATION
-
-## Map voting
-## Allows players to vote with their preffered map setting
-## When it's set to zero, the map will be randomly picked each round
-PREFERENCE_MAP_VOTING 1
-
## AUTOADMIN
## The default admin rank
AUTOADMIN_RANK Game Master
diff --git a/config/game_options.txt b/config/game_options.txt
index 9c46eb7865f0..3dc42b17a69c 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -93,16 +93,10 @@ PROBABILITY TRAITORBRO 2
PROBABILITY TRAITORCHAN 3
PROBABILITY INTERNAL_AFFAIRS 3
PROBABILITY NUCLEAR 2
-PROBABILITY REVOLUTION 2
-PROBABILITY CULT 2
PROBABILITY CHANGELING 2
PROBABILITY WIZARD 4
-PROBABILITY MONKEY 1
-PROBABILITY METEOR 0
PROBABILITY EXTENDED 1
PROBABILITY SECRET_EXTENDED 1
-PROBABILITY DEVIL 0
-PROBABILITY DEVIL_AGENTS 0
PROBABILITY CLOWNOPS 2
## You probably want to keep sandbox off by default for secret and random.
@@ -120,15 +114,11 @@ CONTINUOUS TRAITORBRO
CONTINUOUS TRAITORCHAN
CONTINUOUS INTERNAL_AFFAIRS
#CONTINUOUS NUCLEAR
-#CONTINUOUS REVOLUTION
-CONTINUOUS CULT
CONTINUOUS CHANGELING
CONTINUOUS WIZARD
-#CONTINUOUS MONKEY
##Note: do not toggle continuous off for these modes, as they have no antagonists and would thus end immediately!
-CONTINUOUS METEOR
CONTINUOUS EXTENDED
CONTINUOUS SECRET_EXTENDED
@@ -141,11 +131,8 @@ MIDROUND_ANTAG TRAITOR
MIDROUND_ANTAG TRAITORCHAN
MIDROUND_ANTAG INTERNAL_AFFAIRS
#MIDROUND_ANTAG NUCLEAR
-#MIDROUND_ANTAG REVOLUTION
-MIDROUND_ANTAG CULT
MIDROUND_ANTAG CHANGELING
MIDROUND_ANTAG WIZARD
-#MIDROUND_ANTAG MONKEY
## Uncomment these for overrides of the minimum / maximum number of players in a round type.
## If you set any of these occasionally check to see if you still need them as the modes
@@ -168,39 +155,17 @@ MIDROUND_ANTAG WIZARD
#MIN_POP NUCLEAR 0
#MAX_POP NUCLEAR -1
-#MIN_POP REVOLUTION 20
-#MAX_POP REVOLUTION -1
-
-#MIN_POP CULT 24
-#MAX_POP CULT -1
-
#MIN_POP CHANGELING 15
#MAX_POP CHANGELING -1
#MIN_POP WIZARD 20
#MAX_POP WIZARD -1
-#MIN_POP MONKEY 20
-#MAX_POP MONKEY -1
-
-#MIN_POP METEOR 0
-#MAX_POP METEOR -1
-
-#MIN_POP DEVIL 0
-#MAX_POP DEVIL -1
-
-#MIN_POP DEVIL_AGENTS 25
-#MAX_POP DEVIL_AGENTS -1
-
## Setting at least one mode to be playable at 0/1 players is required.
#MIN_POP EXTENDED 0
#MAX_POP EXTENDED -1
-
-## The amount of time it takes for the emergency shuttle to be called, from round start.
-SHUTTLE_REFUEL_DELAY 12000
-
## Variables calculate how number of antagonists will scale to population.
## Used as (Antagonists = Population / Coeff)
## Set to 0 to disable scaling and use default numbers instead.
@@ -272,19 +237,6 @@ ALLOW_AI_MULTICAM
## Uncomment to prevent the peacekeeper cyborg module from being chosen
#DISABLE_PEACEBORG
-## AWAY MISSIONS ###
-
-## Uncomment to load the virtual reality hub map
-#VIRTUAL_REALITY
-
-## Uncomment to load one of the missions from awaymissionconfig.txt at roundstart.
-#ROUNDSTART_AWAY
-
-## How long the delay is before the Away Mission gate opens. Default is half an hour.
-## 600 is one minute.
-GATEWAY_DELAY 18000
-
-
## ACCESS ###
## If the number of players ready at round starts exceeds this threshold, JOBS_HAVE_MINIMAL_ACCESS will automatically be enabled. Otherwise, it will be disabled.
@@ -333,8 +285,8 @@ NEAR_DEATH_EXPERIENCE
## ROUNDSTART SILICON LAWS ###
## This controls what the AI's laws are at the start of the round.
-## Set to 0/commented out for "off", silicons will just start with Asimov.
-## Set to 1 for "custom", silicons will start with the custom laws defined in silicon_laws.txt. (If silicon_laws.txt is empty, the AI will spawn with asimov and Custom boards will auto-delete.)
+## Set to 0/commented out for "off", silicons will start with no laws.
+## Set to 1 for "custom", silicons will start with the custom laws defined in silicon_laws.txt. (If silicon_laws.txt is empty, the AI will spawn with Asimov and Custom boards will auto-delete.)
## Set to 2 for "random", silicons will start with a random lawset picked from random laws specified below.
## Set to 3 for "weighted random", using values in "silicon_weights.txt", a law will be selected, with weights specifed in that file.
DEFAULT_LAWS 2
@@ -470,9 +422,6 @@ ROUNDSTART_RACES jelly
## The amount of loadout items players are allowed to spawn with. Default 10
MAX_LOADOUT_ITEMS 10
-##Overflow job. Default is assistant
-OVERFLOW_JOB Assistant
-
## Overflow slot cap. Set to -1 for unlimited. If limited, it will still open up if every other job is full.
OVERFLOW_CAP -1
@@ -480,9 +429,6 @@ OVERFLOW_CAP -1
## This is disabled by default to make testing quicker, should be enabled on production servers or testing servers messing with lighting
#STARLIGHT
-## Uncomment to bring back old grey suit assistants instead of the now default rainbow colored assistants.
-#GREY_ASSISTANTS
-
## Midround Antag (aka Mulligan antag) config options ###
## A time, in minutes, after which the midround antag system stops attempting to run and continuous rounds end immediately upon completion.
@@ -515,17 +461,6 @@ BOMBCAP 20
## LagHell (7, 14, 28)
#BOMBCAP 28
-
-## Lavaland "Budget"
-## Lavaland ruin spawning has an imaginary budget to spend on ruins, where
-## a less lootfilled or smaller or less round effecting ruin costs less to
-## spawn, while the converse is true. Alter this number to affect the amount
-## of ruins.
-LAVALAND_BUDGET 60
-
-## Space Ruin Budged
-Space_Budget 16
-
## How many wirechewing rodents you want to spawn on exposed maintenane wires at the start of the round. You may wish to set this to 0 if you're testing powernets.
MICE_ROUNDSTART 10
@@ -534,12 +469,6 @@ MICE_ROUNDSTART 10
SMUGGLER_SATCHELS 3
-## If the percentage of players alive (doesn't count conversions) drops below this threshold the emergency shuttle will be forcefully called (provided it can be)
-#EMERGENCY_SHUTTLE_AUTOCALL_THRESHOLD 0.2
-
-## Determines if players are allowed to print integrated circuits, uncomment to allow.
-#IC_PRINTING
-
## Uncomment to allow roundstart quirk selection in the character setup menu.
## This used to be named traits, hence the config name, but it handles quirks, not the other kind of trait!
ROUNDSTART_TRAITS
@@ -547,9 +476,6 @@ ROUNDSTART_TRAITS
## Uncomment to disable human moods.
#DISABLE_HUMAN_MOOD
-## Enable night shifts ##
-#ENABLE_NIGHT_SHIFTS
-
## Enable randomized shift start times##
#RANDOMIZE_SHIFT_TIME
@@ -562,9 +488,6 @@ MONKEYCAP 64
## A cap on how many mice can be bred via cheese wedges
RATCAP 64
-## Maximum fine for a citation
-MAXFINE 2000
-
## Enable the capitalist agenda on your server.
ECONOMY
diff --git a/dependencies.sh b/dependencies.sh
index 6f5a61810a81..b702df60dacd 100755
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -24,7 +24,7 @@ export SPACEMAN_DMM_VERSION=suite-1.8
export PYTHON_VERSION=3.9.0
#auxmos repository
-export AUXMOS_REPO=https://github.com/Putnam3145/auxmos
+export AUXMOS_REPO=https://github.com/shiptest-ss13/auxmos
#auxmos version
-export AUXMOS_VERSION=v2.5.1
+export AUXMOS_VERSION=v2.5.5.3
diff --git a/html/changelogs/archive/2019-03.yml b/html/changelogs/archive/2019-03.yml
index b5fd83b8ae4c..af4cd2063ffc 100644
--- a/html/changelogs/archive/2019-03.yml
+++ b/html/changelogs/archive/2019-03.yml
@@ -430,7 +430,7 @@
- bugfix: Rolling a 17 on the d20 of fate no longer gives you an empty box.
Basilman:
- bugfix: fixed runtime from selectin missing bodypart due to ran_zone
- - code_imp: changed how ran_zone selects a zone from a switch to pickweight
+ - code_imp: changed how ran_zone selects a zone from a switch to pick_weight
Kierany9:
- bugfix: Added a 15 second grace period after death to prevent people from avoiding
a hivemind host's Reclaim by succumbing.
diff --git a/icons/effects/anomalies.dmi b/icons/effects/anomalies.dmi
index e1671b816ec5..c716fc799097 100644
Binary files a/icons/effects/anomalies.dmi and b/icons/effects/anomalies.dmi differ
diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi
index aed7e9b4fbf4..ed74435fb0a6 100644
Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ
diff --git a/icons/effects/blood_vox.dmi b/icons/effects/blood_vox.dmi
deleted file mode 100644
index d6d8f1c80208..000000000000
Binary files a/icons/effects/blood_vox.dmi and /dev/null differ
diff --git a/icons/effects/icons.dmi b/icons/effects/icons.dmi
new file mode 100644
index 000000000000..0d62217efbf2
Binary files /dev/null and b/icons/effects/icons.dmi differ
diff --git a/icons/effects/landmarks_static.dmi b/icons/effects/landmarks_static.dmi
deleted file mode 100644
index 05301f14a831..000000000000
Binary files a/icons/effects/landmarks_static.dmi and /dev/null differ
diff --git a/icons/effects/mapping/docking_ports.dmi b/icons/effects/mapping/docking_ports.dmi
new file mode 100644
index 000000000000..96909d7bd0f3
Binary files /dev/null and b/icons/effects/mapping/docking_ports.dmi differ
diff --git a/icons/effects/mapping/landmarks_static.dmi b/icons/effects/mapping/landmarks_static.dmi
new file mode 100644
index 000000000000..3e51e3f9a6e5
Binary files /dev/null and b/icons/effects/mapping/landmarks_static.dmi differ
diff --git a/icons/effects/mapping/mapping_helpers.dmi b/icons/effects/mapping/mapping_helpers.dmi
new file mode 100644
index 000000000000..430ac86c6db5
Binary files /dev/null and b/icons/effects/mapping/mapping_helpers.dmi differ
diff --git a/icons/effects/mapping/random_spawners.dmi b/icons/effects/mapping/random_spawners.dmi
new file mode 100644
index 000000000000..d6e06fb140d0
Binary files /dev/null and b/icons/effects/mapping/random_spawners.dmi differ
diff --git a/icons/effects/mapping_helpers.dmi b/icons/effects/mapping_helpers.dmi
deleted file mode 100644
index 50e88be487b0..000000000000
Binary files a/icons/effects/mapping_helpers.dmi and /dev/null differ
diff --git a/icons/effects/particles/smoke.dmi b/icons/effects/particles/smoke.dmi
index 4a3239499b96..99123beeb59a 100644
Binary files a/icons/effects/particles/smoke.dmi and b/icons/effects/particles/smoke.dmi differ
diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi
index 99de0dbf9441..6e12eadc662b 100644
Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ
diff --git a/icons/misc/overmap.dmi b/icons/misc/overmap.dmi
index f0c9f6e44677..94ac33e29584 100644
Binary files a/icons/misc/overmap.dmi and b/icons/misc/overmap.dmi differ
diff --git a/icons/mob/clothing/accessories.dmi b/icons/mob/clothing/accessories.dmi
index 7e87f94fd183..2cf6dbff2416 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 5ca5b6bd045d..53910743285b 100644
Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ
diff --git a/icons/mob/clothing/ears.dmi b/icons/mob/clothing/ears.dmi
index e7376425f545..f973447b6f46 100644
Binary files a/icons/mob/clothing/ears.dmi and b/icons/mob/clothing/ears.dmi differ
diff --git a/icons/mob/clothing/faction/nanotrasen/mask.dmi b/icons/mob/clothing/faction/nanotrasen/mask.dmi
new file mode 100644
index 000000000000..47824c7a69f7
Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/mask.dmi differ
diff --git a/icons/mob/clothing/faction/nanotrasen/mask_kepori.dmi b/icons/mob/clothing/faction/nanotrasen/mask_kepori.dmi
new file mode 100644
index 000000000000..cf3a4392972e
Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/mask_kepori.dmi differ
diff --git a/icons/mob/clothing/faction/nanotrasen/vox.dmi b/icons/mob/clothing/faction/nanotrasen/vox.dmi
new file mode 100644
index 000000000000..c5793cc61076
Binary files /dev/null and b/icons/mob/clothing/faction/nanotrasen/vox.dmi differ
diff --git a/icons/mob/clothing/faction/ngr/mask.dmi b/icons/mob/clothing/faction/ngr/mask.dmi
index 0baead0a39b1..298cf3ed8303 100644
Binary files a/icons/mob/clothing/faction/ngr/mask.dmi and b/icons/mob/clothing/faction/ngr/mask.dmi differ
diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi
index 0afcd0ad26c5..f191314a13b0 100644
Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ
diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi
index d2970f6b9ead..638398b7b649 100644
Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ
diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi
index 8affe54d81d4..cebe3a9f847b 100644
Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ
diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi
index b595f529b7ee..ef694ddd6116 100644
Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ
diff --git a/icons/mob/clothing/under/color.dmi b/icons/mob/clothing/under/color.dmi
index 8bda1f9c7d6c..d87321f4f018 100644
Binary files a/icons/mob/clothing/under/color.dmi and b/icons/mob/clothing/under/color.dmi differ
diff --git a/icons/mob/clothing/under/command.dmi b/icons/mob/clothing/under/command.dmi
index 6ed86df85dab..4935f41abc82 100644
Binary files a/icons/mob/clothing/under/command.dmi and b/icons/mob/clothing/under/command.dmi differ
diff --git a/icons/mob/clothing/under/dress.dmi b/icons/mob/clothing/under/dress.dmi
deleted file mode 100644
index a67fcb85331f..000000000000
Binary files a/icons/mob/clothing/under/dress.dmi and /dev/null differ
diff --git a/icons/mob/clothing/under/dresses/dress.dmi b/icons/mob/clothing/under/dresses/dress.dmi
new file mode 100644
index 000000000000..318b67abbb19
Binary files /dev/null and b/icons/mob/clothing/under/dresses/dress.dmi differ
diff --git a/icons/mob/clothing/under/dresses/dress_kepori.dmi b/icons/mob/clothing/under/dresses/dress_kepori.dmi
new file mode 100644
index 000000000000..d6b8e2dfad78
Binary files /dev/null and b/icons/mob/clothing/under/dresses/dress_kepori.dmi differ
diff --git a/icons/mob/clothing/under/suits.dmi b/icons/mob/clothing/under/suits.dmi
index c7eceebc3540..cf2178188307 100644
Binary files a/icons/mob/clothing/under/suits.dmi and b/icons/mob/clothing/under/suits.dmi differ
diff --git a/icons/mob/clothing/under/syndicate.dmi b/icons/mob/clothing/under/syndicate.dmi
index cc5e484b89c4..eb93d4b3530d 100644
Binary files a/icons/mob/clothing/under/syndicate.dmi and b/icons/mob/clothing/under/syndicate.dmi differ
diff --git a/icons/mob/hair_gradients.dmi b/icons/mob/hair_gradients.dmi
index df0fd1b6f744..7537193b1314 100644
Binary files a/icons/mob/hair_gradients.dmi and b/icons/mob/hair_gradients.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index a819dd3ca780..0c0efee7cbb7 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi
index 50a17a22d470..64efd1262a22 100644
Binary files a/icons/mob/inhands/64x64_lefthand.dmi and b/icons/mob/inhands/64x64_lefthand.dmi differ
diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi
index bbeddf915282..e91c7830c614 100644
Binary files a/icons/mob/inhands/64x64_righthand.dmi and b/icons/mob/inhands/64x64_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/axes_lefthand.dmi b/icons/mob/inhands/weapons/axes_lefthand.dmi
index 3b95d17cdc78..accff4a2bb7f 100644
Binary files a/icons/mob/inhands/weapons/axes_lefthand.dmi and b/icons/mob/inhands/weapons/axes_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/axes_righthand.dmi b/icons/mob/inhands/weapons/axes_righthand.dmi
index 1f5273d20d30..79a3b19b7798 100644
Binary files a/icons/mob/inhands/weapons/axes_righthand.dmi and b/icons/mob/inhands/weapons/axes_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/bombs_lefthand.dmi b/icons/mob/inhands/weapons/bombs_lefthand.dmi
index 4772c01a2284..c434190de82b 100644
Binary files a/icons/mob/inhands/weapons/bombs_lefthand.dmi and b/icons/mob/inhands/weapons/bombs_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/bombs_righthand.dmi b/icons/mob/inhands/weapons/bombs_righthand.dmi
index 9046e788d297..f4cc72aeff79 100644
Binary files a/icons/mob/inhands/weapons/bombs_righthand.dmi and b/icons/mob/inhands/weapons/bombs_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/chainsaw_lefthand.dmi b/icons/mob/inhands/weapons/chainsaw_lefthand.dmi
index 5235f1510102..658f772c9c75 100644
Binary files a/icons/mob/inhands/weapons/chainsaw_lefthand.dmi and b/icons/mob/inhands/weapons/chainsaw_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/chainsaw_righthand.dmi b/icons/mob/inhands/weapons/chainsaw_righthand.dmi
index 0800a5273156..21035a077de9 100644
Binary files a/icons/mob/inhands/weapons/chainsaw_righthand.dmi and b/icons/mob/inhands/weapons/chainsaw_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi
index ff71ba99e3c0..fd76394a835a 100644
Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/polearms_lefthand.dmi b/icons/mob/inhands/weapons/polearms_lefthand.dmi
index afe36277e9f5..f7a1aa75a665 100644
Binary files a/icons/mob/inhands/weapons/polearms_lefthand.dmi and b/icons/mob/inhands/weapons/polearms_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/polearms_righthand.dmi b/icons/mob/inhands/weapons/polearms_righthand.dmi
index b72556f0b135..1fae6b8eb45d 100644
Binary files a/icons/mob/inhands/weapons/polearms_righthand.dmi and b/icons/mob/inhands/weapons/polearms_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/staves_lefthand.dmi b/icons/mob/inhands/weapons/staves_lefthand.dmi
index da61d8df47ea..151e9645b371 100644
Binary files a/icons/mob/inhands/weapons/staves_lefthand.dmi and b/icons/mob/inhands/weapons/staves_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/staves_righthand.dmi b/icons/mob/inhands/weapons/staves_righthand.dmi
index 3cb569627eaa..8df69b74cc36 100644
Binary files a/icons/mob/inhands/weapons/staves_righthand.dmi and b/icons/mob/inhands/weapons/staves_righthand.dmi differ
diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi
index 49732e254e41..fc5ed5ee90b2 100644
Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ
diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi
index 9797eb3ee366..6e04504c3fb7 100644
Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ
diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi
index ec6900432306..28ace37f4170 100644
Binary files a/icons/mob/pets.dmi and b/icons/mob/pets.dmi differ
diff --git a/icons/mob/simple_frontiersman.dmi b/icons/mob/simple_frontiersman.dmi
index c5b9962fd236..76532a9b45e9 100644
Binary files a/icons/mob/simple_frontiersman.dmi and b/icons/mob/simple_frontiersman.dmi differ
diff --git a/icons/mob/simple_human.dmi b/icons/mob/simple_human.dmi
index 133544acc999..080343345783 100644
Binary files a/icons/mob/simple_human.dmi and b/icons/mob/simple_human.dmi differ
diff --git a/icons/mob/species/kepori/kepori_overlays.dmi b/icons/mob/species/kepori/kepori_overlays.dmi
new file mode 100644
index 000000000000..29406cb32aeb
Binary files /dev/null and b/icons/mob/species/kepori/kepori_overlays.dmi differ
diff --git a/icons/mob/species/kepori/onmob_mask_kepori.dmi b/icons/mob/species/kepori/onmob_mask_kepori.dmi
index d455cf0bd3e5..51391bd773c2 100644
Binary files a/icons/mob/species/kepori/onmob_mask_kepori.dmi and b/icons/mob/species/kepori/onmob_mask_kepori.dmi differ
diff --git a/icons/mob/species/kepori/onmob_suit_kepori.dmi b/icons/mob/species/kepori/onmob_suit_kepori.dmi
index ae5750dd0558..18b8c9bceaa3 100644
Binary files a/icons/mob/species/kepori/onmob_suit_kepori.dmi and b/icons/mob/species/kepori/onmob_suit_kepori.dmi differ
diff --git a/icons/mob/species/kepori/onmob_uniform_kepori.dmi b/icons/mob/species/kepori/onmob_uniform_kepori.dmi
index f6d35ec4c795..e2450f7a749d 100644
Binary files a/icons/mob/species/kepori/onmob_uniform_kepori.dmi and b/icons/mob/species/kepori/onmob_uniform_kepori.dmi differ
diff --git a/icons/mob/species/misc/digitigrade.dmi b/icons/mob/species/misc/digitigrade.dmi
index 8736b8057f14..9c93fb623596 100644
Binary files a/icons/mob/species/misc/digitigrade.dmi and b/icons/mob/species/misc/digitigrade.dmi differ
diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi
index 9d08980b1e58..fb3dd6693471 100644
Binary files a/icons/mob/species/misc/digitigrade_shoes.dmi and b/icons/mob/species/misc/digitigrade_shoes.dmi differ
diff --git a/icons/mob/species/vox/bodyparts.dmi b/icons/mob/species/vox/bodyparts.dmi
index fb098fa01d80..20e39116a8e0 100644
Binary files a/icons/mob/species/vox/bodyparts.dmi and b/icons/mob/species/vox/bodyparts.dmi differ
diff --git a/icons/mob/species/vox/onmob_hands_vox.dmi b/icons/mob/species/vox/onmob_hands_vox.dmi
index 977e9a71a7c5..40e5d9896da1 100644
Binary files a/icons/mob/species/vox/onmob_hands_vox.dmi and b/icons/mob/species/vox/onmob_hands_vox.dmi differ
diff --git a/icons/mob/species/vox/onmob_head_vox.dmi b/icons/mob/species/vox/onmob_head_vox.dmi
index 6b150380891f..027b3bd4d011 100644
Binary files a/icons/mob/species/vox/onmob_head_vox.dmi and b/icons/mob/species/vox/onmob_head_vox.dmi differ
diff --git a/icons/mob/species/vox/onmob_mask_vox.dmi b/icons/mob/species/vox/onmob_mask_vox.dmi
index 7aa3dfb2e046..e005fabe5e27 100644
Binary files a/icons/mob/species/vox/onmob_mask_vox.dmi and b/icons/mob/species/vox/onmob_mask_vox.dmi differ
diff --git a/icons/mob/species/vox/onmob_suit_vox.dmi b/icons/mob/species/vox/onmob_suit_vox.dmi
index 47e2b625c116..d43891315e7a 100644
Binary files a/icons/mob/species/vox/onmob_suit_vox.dmi and b/icons/mob/species/vox/onmob_suit_vox.dmi differ
diff --git a/icons/mob/species/vox/onmob_uniform_vox.dmi b/icons/mob/species/vox/onmob_uniform_vox.dmi
index 04c77c742128..9bafaedb2006 100644
Binary files a/icons/mob/species/vox/onmob_uniform_vox.dmi and b/icons/mob/species/vox/onmob_uniform_vox.dmi differ
diff --git a/icons/mob/species/vox/vox_overlays.dmi b/icons/mob/species/vox/vox_overlays.dmi
new file mode 100644
index 000000000000..f0fc59ec59dc
Binary files /dev/null and b/icons/mob/species/vox/vox_overlays.dmi differ
diff --git a/icons/mob/vox_parts.dmi b/icons/mob/species/vox/vox_parts.dmi
similarity index 100%
rename from icons/mob/vox_parts.dmi
rename to icons/mob/species/vox/vox_parts.dmi
diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi
index ec5f14748540..633a49eda54c 100644
Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ
diff --git a/icons/obj/ammo_bullets.dmi b/icons/obj/ammo_bullets.dmi
deleted file mode 100644
index 087cdd4c771e..000000000000
Binary files a/icons/obj/ammo_bullets.dmi and /dev/null differ
diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi
deleted file mode 100644
index 55b00cdd0b21..000000000000
Binary files a/icons/obj/ammo_shotshells.dmi and /dev/null differ
diff --git a/icons/obj/ammunition/ammo.dmi b/icons/obj/ammunition/ammo.dmi
new file mode 100644
index 000000000000..26b7fd826793
Binary files /dev/null and b/icons/obj/ammunition/ammo.dmi differ
diff --git a/icons/obj/ammunition/ammo_boxes.dmi b/icons/obj/ammunition/ammo_boxes.dmi
new file mode 100644
index 000000000000..ac963d46212b
Binary files /dev/null and b/icons/obj/ammunition/ammo_boxes.dmi differ
diff --git a/icons/obj/ammunition/ammo_bullets.dmi b/icons/obj/ammunition/ammo_bullets.dmi
new file mode 100644
index 000000000000..6ac65ff5bb66
Binary files /dev/null and b/icons/obj/ammunition/ammo_bullets.dmi differ
diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi
index 17bab47dc9ef..486b7be4e6f3 100644
Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ
diff --git a/icons/obj/chemical/chem_jug.dmi b/icons/obj/chemical/chem_jug.dmi
index d872ba00ff1d..e5ab15a43e14 100644
Binary files a/icons/obj/chemical/chem_jug.dmi and b/icons/obj/chemical/chem_jug.dmi differ
diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi
index ecf54fb9f61a..fd66991eb776 100644
Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index d1857dbe878d..931f502def1d 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/clothing/faction/nanotrasen/mask.dmi b/icons/obj/clothing/faction/nanotrasen/mask.dmi
new file mode 100644
index 000000000000..8c175975bdf7
Binary files /dev/null and b/icons/obj/clothing/faction/nanotrasen/mask.dmi differ
diff --git a/icons/obj/clothing/faction/ngr/mask.dmi b/icons/obj/clothing/faction/ngr/mask.dmi
index c867f6f569d7..a276f37437bc 100644
Binary files a/icons/obj/clothing/faction/ngr/mask.dmi and b/icons/obj/clothing/faction/ngr/mask.dmi differ
diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi
index ba27bd4c8166..25e6005778c2 100644
Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index 52d9036e0211..f4a978b1c733 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi
index 9685db38db1e..895cad1c91a8 100644
Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ
diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi
index 3109928ff7ae..0c4ba91632f7 100644
Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ
diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi
index e3ceffdb3329..63ec75a06a0b 100644
Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ
diff --git a/icons/obj/clothing/under/SolGov.dmi b/icons/obj/clothing/under/SolGov.dmi
index 258c492e5305..ef03505ae1c3 100644
Binary files a/icons/obj/clothing/under/SolGov.dmi and b/icons/obj/clothing/under/SolGov.dmi differ
diff --git a/icons/obj/clothing/under/cargo.dmi b/icons/obj/clothing/under/cargo.dmi
index 471b45513297..820757a47ad3 100644
Binary files a/icons/obj/clothing/under/cargo.dmi and b/icons/obj/clothing/under/cargo.dmi differ
diff --git a/icons/obj/clothing/under/centcom.dmi b/icons/obj/clothing/under/centcom.dmi
index 3fd5a370973e..4522141772a8 100644
Binary files a/icons/obj/clothing/under/centcom.dmi and b/icons/obj/clothing/under/centcom.dmi differ
diff --git a/icons/obj/clothing/under/color.dmi b/icons/obj/clothing/under/color.dmi
index 7a616f4c3362..d9c37e30212c 100644
Binary files a/icons/obj/clothing/under/color.dmi and b/icons/obj/clothing/under/color.dmi differ
diff --git a/icons/obj/clothing/under/command.dmi b/icons/obj/clothing/under/command.dmi
index 17b8285232fc..ca0c7735979e 100644
Binary files a/icons/obj/clothing/under/command.dmi and b/icons/obj/clothing/under/command.dmi differ
diff --git a/icons/obj/clothing/under/dress.dmi b/icons/obj/clothing/under/dress.dmi
index 7cb59b080c3f..491ae9d6988f 100644
Binary files a/icons/obj/clothing/under/dress.dmi and b/icons/obj/clothing/under/dress.dmi differ
diff --git a/icons/obj/clothing/under/engineering.dmi b/icons/obj/clothing/under/engineering.dmi
index a05a369e94e7..34581d3dfcc9 100644
Binary files a/icons/obj/clothing/under/engineering.dmi and b/icons/obj/clothing/under/engineering.dmi differ
diff --git a/icons/obj/clothing/under/misc.dmi b/icons/obj/clothing/under/misc.dmi
index 8d68510d3780..66d52fb35499 100644
Binary files a/icons/obj/clothing/under/misc.dmi and b/icons/obj/clothing/under/misc.dmi differ
diff --git a/icons/obj/clothing/under/rnd.dmi b/icons/obj/clothing/under/rnd.dmi
index 8093b0a19504..e6c138a8b00b 100644
Binary files a/icons/obj/clothing/under/rnd.dmi and b/icons/obj/clothing/under/rnd.dmi differ
diff --git a/icons/obj/clothing/under/security.dmi b/icons/obj/clothing/under/security.dmi
index 67e8868958f4..449964637b3a 100644
Binary files a/icons/obj/clothing/under/security.dmi and b/icons/obj/clothing/under/security.dmi differ
diff --git a/icons/obj/clothing/under/service.dmi b/icons/obj/clothing/under/service.dmi
index b6aad157b3cc..a6a0ea8b49ba 100644
Binary files a/icons/obj/clothing/under/service.dmi and b/icons/obj/clothing/under/service.dmi differ
diff --git a/icons/obj/clothing/under/shorts_pants.dmi b/icons/obj/clothing/under/shorts_pants.dmi
index 948fc01d4c83..1d319b25f693 100644
Binary files a/icons/obj/clothing/under/shorts_pants.dmi and b/icons/obj/clothing/under/shorts_pants.dmi differ
diff --git a/icons/obj/clothing/under/suits.dmi b/icons/obj/clothing/under/suits.dmi
index 453cb656de89..bda067487f9e 100644
Binary files a/icons/obj/clothing/under/suits.dmi and b/icons/obj/clothing/under/suits.dmi differ
diff --git a/icons/obj/clothing/under/syndicate.dmi b/icons/obj/clothing/under/syndicate.dmi
index 1a2fcad74b84..4c3f0b5fc26a 100644
Binary files a/icons/obj/clothing/under/syndicate.dmi and b/icons/obj/clothing/under/syndicate.dmi differ
diff --git a/icons/obj/deskflags.dmi b/icons/obj/deskflags.dmi
index 6a950bcebc4e..10f24d037fd7 100644
Binary files a/icons/obj/deskflags.dmi and b/icons/obj/deskflags.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index d7a44b667a0c..468069b7c228 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/drinks/drinks.dmi b/icons/obj/drinks/drinks.dmi
index 2ab3cd0db5ef..67447e75ee3d 100644
Binary files a/icons/obj/drinks/drinks.dmi and b/icons/obj/drinks/drinks.dmi differ
diff --git a/icons/obj/food/donuts.dmi b/icons/obj/food/donuts.dmi
index 07c8d7ed162c..31b4d3188f39 100644
Binary files a/icons/obj/food/donuts.dmi and b/icons/obj/food/donuts.dmi differ
diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi
index 2998913f59b2..0bc1904bc6d4 100644
Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ
diff --git a/icons/obj/guns/attachments.dmi b/icons/obj/guns/attachments.dmi
index c06a2c7e109c..83232d3427e7 100644
Binary files a/icons/obj/guns/attachments.dmi and b/icons/obj/guns/attachments.dmi differ
diff --git a/icons/obj/guns/cell_latch.dmi b/icons/obj/guns/cell_latch.dmi
new file mode 100644
index 000000000000..6372df688776
Binary files /dev/null and b/icons/obj/guns/cell_latch.dmi differ
diff --git a/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi b/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi
index e0567289abf6..5d24f6a88770 100644
Binary files a/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi and b/icons/obj/guns/manufacturer/clip_lanchester/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi
index 70bbef00e1af..6c3851f0ca7f 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/48x32.dmi and b/icons/obj/guns/manufacturer/hunterspride/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi
index 6471cef8b5eb..febc543be1b5 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/lefthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi
index 361899e3c523..539b811aacd6 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/onmob.dmi and b/icons/obj/guns/manufacturer/hunterspride/onmob.dmi differ
diff --git a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi
index fbf4f7cf3fbf..ec9a8a53ba7f 100644
Binary files a/icons/obj/guns/manufacturer/hunterspride/righthand.dmi and b/icons/obj/guns/manufacturer/hunterspride/righthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/inteq/48x32.dmi b/icons/obj/guns/manufacturer/inteq/48x32.dmi
index 021ff448ecb5..74adceab3ba1 100644
Binary files a/icons/obj/guns/manufacturer/inteq/48x32.dmi and b/icons/obj/guns/manufacturer/inteq/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/inteq/lefthand.dmi b/icons/obj/guns/manufacturer/inteq/lefthand.dmi
index 84707c2e5cdc..7ed89aacf95e 100644
Binary files a/icons/obj/guns/manufacturer/inteq/lefthand.dmi and b/icons/obj/guns/manufacturer/inteq/lefthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/inteq/righthand.dmi b/icons/obj/guns/manufacturer/inteq/righthand.dmi
index 481731992655..d7668fe0437b 100644
Binary files a/icons/obj/guns/manufacturer/inteq/righthand.dmi and b/icons/obj/guns/manufacturer/inteq/righthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi b/icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi
index bac0ccc8f210..66d714e245ee 100644
Binary files a/icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi and b/icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi b/icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi
index 24ac86c3e0b5..f91c263424ef 100644
Binary files a/icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi and b/icons/obj/guns/manufacturer/nanotrasen_sharplite/lefthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi b/icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi
index b6831ec9696a..ef01a242944d 100644
Binary files a/icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi and b/icons/obj/guns/manufacturer/nanotrasen_sharplite/righthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi b/icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi
new file mode 100644
index 000000000000..7425d2544575
Binary files /dev/null and b/icons/obj/guns/manufacturer/serene_outdoors/48x32.dmi differ
diff --git a/icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi b/icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi
new file mode 100644
index 000000000000..1442d4c75a62
Binary files /dev/null and b/icons/obj/guns/manufacturer/serene_outdoors/lefthand.dmi differ
diff --git a/icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi b/icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi
new file mode 100644
index 000000000000..9b0c1e524f76
Binary files /dev/null and b/icons/obj/guns/manufacturer/serene_outdoors/onmob.dmi differ
diff --git a/icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi b/icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi
new file mode 100644
index 000000000000..58fd6ab48f2a
Binary files /dev/null and b/icons/obj/guns/manufacturer/serene_outdoors/righthand.dmi differ
diff --git a/icons/obj/hazard.dmi b/icons/obj/hazard.dmi
index 5c350c5afb9b..f9df336f607d 100644
Binary files a/icons/obj/hazard.dmi and b/icons/obj/hazard.dmi differ
diff --git a/icons/obj/landmine.dmi b/icons/obj/landmine.dmi
index dd19fd9d3991..40b3e3e4ba12 100644
Binary files a/icons/obj/landmine.dmi and b/icons/obj/landmine.dmi differ
diff --git a/icons/obj/lavaland/artefacts.dmi b/icons/obj/lavaland/artefacts.dmi
index 6793b0c10cb8..4239f83aa0e9 100644
Binary files a/icons/obj/lavaland/artefacts.dmi and b/icons/obj/lavaland/artefacts.dmi differ
diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi
index ae86489bb340..45e0a73c898a 100644
Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ
diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi
index 49c818b217d0..e7f379175a5e 100644
Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ
diff --git a/icons/obj/nutanks.dmi b/icons/obj/nutanks.dmi
index 94e4c7288512..b8a584ef4609 100644
Binary files a/icons/obj/nutanks.dmi and b/icons/obj/nutanks.dmi differ
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi
index 8479c100f1b0..628c19d63e43 100644
Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ
diff --git a/icons/obj/platform.dmi b/icons/obj/platform.dmi
new file mode 100644
index 000000000000..a1923bdace27
Binary files /dev/null and b/icons/obj/platform.dmi differ
diff --git a/icons/obj/railing.dmi b/icons/obj/railing.dmi
index 9243199cd865..09b8f0fbd62d 100644
Binary files a/icons/obj/railing.dmi and b/icons/obj/railing.dmi differ
diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi
index bdf8bc6e8839..1632e2a08368 100644
Binary files a/icons/obj/shards.dmi and b/icons/obj/shards.dmi differ
diff --git a/icons/obj/statue.dmi b/icons/obj/statue.dmi
index cfb783ef1b10..7e9be0eed189 100644
Binary files a/icons/obj/statue.dmi and b/icons/obj/statue.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 5353677357cf..d9c488a1fe85 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/obj/structures/handrail.dmi b/icons/obj/structures/handrail.dmi
index 1a8d98d6697d..4326fccaf9e7 100644
Binary files a/icons/obj/structures/handrail.dmi and b/icons/obj/structures/handrail.dmi differ
diff --git a/icons/obj/structures/signs/wallflags.dmi b/icons/obj/structures/signs/wallflags.dmi
index 837e442f27ca..94dfc2144e66 100644
Binary files a/icons/obj/structures/signs/wallflags.dmi and b/icons/obj/structures/signs/wallflags.dmi differ
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index 816d3671a8d9..e213c294d669 100644
Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ
diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi
index d331d2852361..ab07fb775a04 100644
Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index 731cd15fcfb8..b265239b2c7f 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ
diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi
index 6905749d1e52..a2a6e29e2c46 100644
Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ
diff --git a/icons/obj/wallmounts.dmi b/icons/obj/wallmounts.dmi
index 96e0c28e715c..236d94fbfb52 100644
Binary files a/icons/obj/wallmounts.dmi and b/icons/obj/wallmounts.dmi differ
diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi
index a9f32f001798..f18adf30b10d 100644
Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ
diff --git a/icons/obj/weapon/axe.dmi b/icons/obj/weapon/axe.dmi
index 0ff8a4364833..ff735abf5ebe 100644
Binary files a/icons/obj/weapon/axe.dmi and b/icons/obj/weapon/axe.dmi differ
diff --git a/icons/obj/weapon/baton.dmi b/icons/obj/weapon/baton.dmi
index c39a8b4e073b..4c63ef28b8aa 100644
Binary files a/icons/obj/weapon/baton.dmi and b/icons/obj/weapon/baton.dmi differ
diff --git a/icons/obj/weapon/blunt.dmi b/icons/obj/weapon/blunt.dmi
index 480515bbd794..013f4fd1db2b 100644
Binary files a/icons/obj/weapon/blunt.dmi and b/icons/obj/weapon/blunt.dmi differ
diff --git a/icons/obj/weapon/energy.dmi b/icons/obj/weapon/energy.dmi
index 5100d715923a..79742da9d23c 100644
Binary files a/icons/obj/weapon/energy.dmi and b/icons/obj/weapon/energy.dmi differ
diff --git a/icons/obj/weapon/knife.dmi b/icons/obj/weapon/knife.dmi
deleted file mode 100644
index 2e95a9154512..000000000000
Binary files a/icons/obj/weapon/knife.dmi and /dev/null differ
diff --git a/icons/obj/weapon/knives/knife.dmi b/icons/obj/weapon/knives/knife.dmi
new file mode 100644
index 000000000000..f8a7929c54bf
Binary files /dev/null and b/icons/obj/weapon/knives/knife.dmi differ
diff --git a/icons/obj/weapon/knives/knife_world.dmi b/icons/obj/weapon/knives/knife_world.dmi
new file mode 100644
index 000000000000..e2049e6ab413
Binary files /dev/null and b/icons/obj/weapon/knives/knife_world.dmi differ
diff --git a/icons/obj/weapon/spear.dmi b/icons/obj/weapon/spear.dmi
index 98b3761430ed..384f1c751bcf 100644
Binary files a/icons/obj/weapon/spear.dmi and b/icons/obj/weapon/spear.dmi differ
diff --git a/icons/obj/weapon/sword.dmi b/icons/obj/weapon/sword.dmi
index dc8fd8fd5d7d..915be217a2af 100644
Binary files a/icons/obj/weapon/sword.dmi and b/icons/obj/weapon/sword.dmi differ
diff --git a/icons/obj/world/landmine.dmi b/icons/obj/world/landmine.dmi
new file mode 100644
index 000000000000..be8db65a3f5f
Binary files /dev/null and b/icons/obj/world/landmine.dmi differ
diff --git a/icons/obj/world/melee.dmi b/icons/obj/world/melee.dmi
deleted file mode 100644
index ff8e2114e827..000000000000
Binary files a/icons/obj/world/melee.dmi and /dev/null differ
diff --git a/icons/stamp_icons/large_stamp-artificer.png b/icons/stamp_icons/large_stamp-artificer.png
deleted file mode 100644
index 058a4407428c..000000000000
Binary files a/icons/stamp_icons/large_stamp-artificer.png and /dev/null differ
diff --git a/icons/stamp_icons/large_stamp-biodynamics.png b/icons/stamp_icons/large_stamp-biodynamics.png
new file mode 100644
index 000000000000..0d09b4f37c00
Binary files /dev/null and b/icons/stamp_icons/large_stamp-biodynamics.png differ
diff --git a/icons/stamp_icons/large_stamp-centcom.png b/icons/stamp_icons/large_stamp-centcom.png
deleted file mode 100644
index 6250cbff885a..000000000000
Binary files a/icons/stamp_icons/large_stamp-centcom.png and /dev/null differ
diff --git a/icons/stamp_icons/large_stamp-inteq_artificer.png b/icons/stamp_icons/large_stamp-inteq_artificer.png
new file mode 100644
index 000000000000..fc75d381200e
Binary files /dev/null and b/icons/stamp_icons/large_stamp-inteq_artificer.png differ
diff --git a/icons/stamp_icons/large_stamp-inteq_corpsman.png b/icons/stamp_icons/large_stamp-inteq_corpsman.png
new file mode 100644
index 000000000000..22b4f97c7e4c
Binary files /dev/null and b/icons/stamp_icons/large_stamp-inteq_corpsman.png differ
diff --git a/icons/stamp_icons/large_stamp-maa.png b/icons/stamp_icons/large_stamp-inteq_maa.png
similarity index 100%
rename from icons/stamp_icons/large_stamp-maa.png
rename to icons/stamp_icons/large_stamp-inteq_maa.png
diff --git a/icons/stamp_icons/large_stamp-vanguard.png b/icons/stamp_icons/large_stamp-inteq_vanguard.png
similarity index 100%
rename from icons/stamp_icons/large_stamp-vanguard.png
rename to icons/stamp_icons/large_stamp-inteq_vanguard.png
diff --git a/icons/stamp_icons/large_stamp-ngr.png b/icons/stamp_icons/large_stamp-ngr.png
new file mode 100644
index 000000000000..dfc75056911e
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_captain.png b/icons/stamp_icons/large_stamp-ngr_captain.png
new file mode 100644
index 000000000000..46ca33b76853
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_captain.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_ensign.png b/icons/stamp_icons/large_stamp-ngr_ensign.png
new file mode 100644
index 000000000000..9e7bc9056789
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_ensign.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_foreman.png b/icons/stamp_icons/large_stamp-ngr_foreman.png
new file mode 100644
index 000000000000..09b34ab632e1
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_foreman.png differ
diff --git a/icons/stamp_icons/large_stamp-ngr_lieutenant.png b/icons/stamp_icons/large_stamp-ngr_lieutenant.png
new file mode 100644
index 000000000000..f96be7a5ee56
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ngr_lieutenant.png differ
diff --git a/icons/stamp_icons/large_stamp-ns_captain.png b/icons/stamp_icons/large_stamp-ns_captain.png
new file mode 100644
index 000000000000..8a453eece6df
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ns_captain.png differ
diff --git a/icons/stamp_icons/large_stamp-ns_generic.png b/icons/stamp_icons/large_stamp-ns_generic.png
new file mode 100644
index 000000000000..e5f6c0865544
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ns_generic.png differ
diff --git a/icons/stamp_icons/large_stamp-ns_sup_dir.png b/icons/stamp_icons/large_stamp-ns_sup_dir.png
new file mode 100644
index 000000000000..88d898b862c2
Binary files /dev/null and b/icons/stamp_icons/large_stamp-ns_sup_dir.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_captain.png b/icons/stamp_icons/large_stamp-nt_captain.png
new file mode 100644
index 000000000000..e5cca91631bb
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_captain.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_central.png b/icons/stamp_icons/large_stamp-nt_central.png
new file mode 100644
index 000000000000..fd045bfc030c
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_central.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_eng_dir.png b/icons/stamp_icons/large_stamp-nt_eng_dir.png
new file mode 100644
index 000000000000..53215352eb57
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_eng_dir.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_generic.png b/icons/stamp_icons/large_stamp-nt_generic.png
new file mode 100644
index 000000000000..7d1a66fb901d
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_generic.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_med_dir.png b/icons/stamp_icons/large_stamp-nt_med_dir.png
new file mode 100644
index 000000000000..11ec17c927d3
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_med_dir.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_officer.png b/icons/stamp_icons/large_stamp-nt_officer.png
new file mode 100644
index 000000000000..e3442672175c
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_officer.png differ
diff --git a/icons/stamp_icons/large_stamp-nt_sci_dir.png b/icons/stamp_icons/large_stamp-nt_sci_dir.png
new file mode 100644
index 000000000000..50b01922ce5f
Binary files /dev/null and b/icons/stamp_icons/large_stamp-nt_sci_dir.png differ
diff --git a/icons/stamp_icons/large_stamp-vi_captain.png b/icons/stamp_icons/large_stamp-vi_captain.png
new file mode 100644
index 000000000000..0b1536102bf4
Binary files /dev/null and b/icons/stamp_icons/large_stamp-vi_captain.png differ
diff --git a/icons/stamp_icons/large_stamp-vi_generic.png b/icons/stamp_icons/large_stamp-vi_generic.png
new file mode 100644
index 000000000000..a9956adbad12
Binary files /dev/null and b/icons/stamp_icons/large_stamp-vi_generic.png differ
diff --git a/icons/stamp_icons/large_stamp-vi_loss_prevention.png b/icons/stamp_icons/large_stamp-vi_loss_prevention.png
new file mode 100644
index 000000000000..4e6ee3bcb311
Binary files /dev/null and b/icons/stamp_icons/large_stamp-vi_loss_prevention.png differ
diff --git a/icons/stamp_icons/large_stamp-vi_sec_dir.png b/icons/stamp_icons/large_stamp-vi_sec_dir.png
new file mode 100644
index 000000000000..2702e4d8017d
Binary files /dev/null and b/icons/stamp_icons/large_stamp-vi_sec_dir.png differ
diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi
index 68d030ee383d..79ca6ed0ed87 100644
Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ
diff --git a/icons/turf/decals/decals.dmi b/icons/turf/decals/decals.dmi
index a62024cc8e0e..58ef66b36d20 100644
Binary files a/icons/turf/decals/decals.dmi and b/icons/turf/decals/decals.dmi differ
diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm
index 16cc956b5f73..d324bd882a30 100644
--- a/interface/stylesheet.dm
+++ b/interface/stylesheet.dm
@@ -43,14 +43,13 @@ em {font-style: normal; font-weight: bold;}
.binarysay a:active, .binarysay a:visited {color: #88ff88;}
.radio {color: #008000;}
.ntradio {color: #4e3399;}
-.comradio {color: #948f02;}
-.pirradio {color: #a30000;}
+.emrgradio {color: #a30000;}
+.pirradio {color: #948f02;}
.clipradio {color: #337296;}
.irmgradio {color: #885231;}
.pgfradio {color: #127a35;}
.syndradio {color: ##612425;}
.centcomradio {color: #686868;}
-.aiprivradio {color: #ff00ff;}
.redteamradio {color: #ff0000;}
.blueteamradio {color: #0000ff;}
diff --git a/mod_celadon/_components/__components.dme b/mod_celadon/_components/__components.dme
index 24ca01e2450f..e1cbabfe4da9 100644
--- a/mod_celadon/_components/__components.dme
+++ b/mod_celadon/_components/__components.dme
@@ -3,15 +3,15 @@
#include "__components.dm"
+// Изменения корня датумов
+#include "code/datum/species.dm"
+
+#include "code/mob/living.dm"
+
// Система оповещений ролей в Discord
#include "code/_components.dm"
// Оутфиты для ролей // Префиксы для кораблей ищи в дефайнах ~mod_celadon/names.dm
#include "code/_outfits.dm"
-// Emotes and Emote Panel
-#include "code/emotes/emotes_living.dm"
-#include "code/emotes/emotes.dm"
-#include "code/emotes/emote_panel.dm"
-
#endif
diff --git a/mod_celadon/_components/code/datum/species.dm b/mod_celadon/_components/code/datum/species.dm
new file mode 100644
index 000000000000..0228687f3296
--- /dev/null
+++ b/mod_celadon/_components/code/datum/species.dm
@@ -0,0 +1,8 @@
+/datum/species
+ var/bodyflags = 0
+
+/datum/species/vox
+ bodyflags = HAS_TAIL | TAIL_WAGGING
+
+/datum/species/lizard
+ bodyflags = HAS_TAIL | TAIL_WAGGING
diff --git a/mod_celadon/_components/code/emotes/emote_panel.dm b/mod_celadon/_components/code/emotes/emote_panel.dm
deleted file mode 100644
index 1b0e95dcb3d2..000000000000
--- a/mod_celadon/_components/code/emotes/emote_panel.dm
+++ /dev/null
@@ -1,408 +0,0 @@
-var/last_emote_time = 0
-var/timer = 20
-
-/proc/emote_with_delay(emote, delay)
- if (world.time - last_emote_time < delay)
- return
- usr.emote(emote)
- last_emote_time = world.time
-
-/mob/living/carbon/human/verb/emote_airguitar()
- set name = "~ Воображаемая гитара"
- set category = "Эмоции"
- emote_with_delay("airguitar", timer)
-
-/mob/living/carbon/human/verb/emote_blink()
- set name = "~ Моргать"
- set category = "Эмоции"
- emote_with_delay("blink", timer)
-
-/mob/living/carbon/human/verb/emote_blink_r()
- set name = "~ Быстро моргать"
- set category = "Эмоции"
- emote_with_delay("blink_r", timer)
-
-/mob/living/carbon/human/verb/emote_blush()
- set name = "~ Краснеть"
- set category = "Эмоции"
- emote_with_delay("blush", timer)
-
-/mob/living/carbon/human/verb/emote_bow()
- set name = "~ Поклон"
- set category = "Эмоции"
- emote_with_delay("bow", timer)
-
-/mob/living/carbon/human/verb/emote_burp()
- set name = "~ Рыгать"
- set category = "Эмоции"
- emote_with_delay("burp", timer)
-
-/mob/living/carbon/human/verb/emote_clap()
- set name = "> Хлопать"
- set category = "Эмоции"
- emote_with_delay("clap", timer)
-
-/mob/living/carbon/human/verb/emote_crack()
- set name = "> Хрустнуть костяшками"
- set category = "Эмоции"
- emote_with_delay("crack", timer)
-
-/mob/living/carbon/human/verb/emote_cross()
- set name = "~ Скрестить руки"
- set category = "Эмоции"
- emote_with_delay("cross", timer)
-
-// /mob/living/carbon/human/verb/emote_mothchitter() // Moth
-// set name = "< Жужать >"
-// set category = "Эмоции"
-// emote_with_delay("mothchitter", timer)
-
-/mob/living/carbon/human/verb/emote_laugh()
- set name = "> Смеяться"
- set category = "Эмоции"
- emote_with_delay("laugh", timer)
-
-/mob/living/carbon/human/verb/collapse()
- set name = "> Споткнуться"
- set category = "Эмоции"
- emote_with_delay("collapse", timer)
-
-/mob/living/carbon/human/verb/cough()
- set name = "> Кашлять"
- set category = "Эмоции"
- emote_with_delay("cough", timer)
-
-/mob/living/carbon/human/verb/dance()
- set name = "~ Танцевать "
- set category = "Эмоции"
- emote_with_delay("dance", timer)
-
-/mob/living/carbon/human/verb/emote_drool()
- set name = "~ Пускать слюни"
- set category = "Эмоции"
- emote_with_delay("drool", timer)
-
-/mob/living/carbon/human/verb/emote_faint()
- set name = "> Потерять сознание"
- set category = "Эмоции"
- emote_with_delay("faint", timer)
-
-// /mob/living/carbon/human/verb/emote_flap() // Moth/Kepori
-// set name = "< Махнуть крыльями >"
-// set category = "Эмоции"
-// emote_with_delay("flap", timer)
-
-/mob/living/carbon/human/verb/emote_flip()
- set name = "> Сделать кувырок"
- set category = "Эмоции"
- emote_with_delay("flip", timer)
-
-// /mob/living/carbon/human/verb/aflap() // Moth/Kepori
-// set name = "< Взмахнуть крыльями > "
-// set category = "Эмоции"
-// emote_with_delay("aflap", timer)
-
-/mob/living/carbon/human/verb/emote_frown()
- set name = "~ Недовольно смотреть"
- set category = "Эмоции"
- emote_with_delay("frown", timer)
-
-/mob/living/carbon/human/verb/emote_gag()
- set name = "> Подавиться"
- set category = "Эмоции"
- emote_with_delay("gag", timer)
-
-/mob/living/carbon/human/verb/emote_gasp()
- set name = "> Задыхаться"
- set category = "Эмоции"
- emote_with_delay("gasp", timer)
-
-/mob/living/carbon/human/verb/emote_warcray()
- set name = "> Боевой клич"
- set category = "Эмоции"
- emote_with_delay("warcray", timer)
-
-/mob/living/carbon/human/verb/emote_giggle()
- set name = "> Хихикать"
- set category = "Эмоции"
- emote_with_delay("giggle", timer)
-
-/mob/living/carbon/human/verb/emote_grin()
- set name = "~ Ухмыльнуться"
- set category = "Эмоции"
- emote_with_delay("grin", timer)
-
-/mob/living/carbon/human/verb/emote_groan()
- set name = "> Стонать"
- set category = "Эмоции"
- emote_with_delay("groan", timer)
-
-/mob/living/carbon/human/verb/emote_growl()
- set name = "~ Рычать"
- set category = "Эмоции"
- emote_with_delay("growl", timer)
-
-/mob/living/carbon/human/verb/emote_grimace()
- set name = "~ Кривляться"
- set category = "Эмоции"
- emote_with_delay("grimace", timer)
-
-/mob/living/carbon/human/verb/emote_jump()
- set name = "~ Прыгать"
- set category = "Эмоции"
- emote_with_delay("jump", timer)
-
-/mob/living/carbon/human/verb/emote_kiss()
- set name = "> Воздушный поцелуй"
- set category = "Эмоции"
- emote_with_delay("kiss", timer)
-
-/mob/living/carbon/human/verb/emote_look()
- set name = "~ Смотреть"
- set category = "Эмоции"
- emote_with_delay("look", timer)
-
-/mob/living/carbon/human/verb/emote_nod()
- set name = "~ Кивнуть"
- set category = "Эмоции"
- emote_with_delay("nod", timer)
-
-/mob/living/carbon/human/verb/emote_msqueak()
- set name = "~ Пискнуть"
- set category = "Эмоции"
- emote_with_delay("msqueak", timer)
-
-/mob/living/carbon/human/verb/emote_peace()
- set name = "< Знак мира >"
- set category = "Эмоции"
- emote_with_delay("peace", timer)
-
-/mob/living/carbon/human/verb/emote_pout()
- set name = "~ Дуться"
- set category = "Эмоции"
- emote_with_delay("pout", timer)
-
-/mob/living/carbon/human/verb/emote_scowl()
- set name = "~ Хмуриться"
- set category = "Эмоции"
- emote_with_delay("scowl", timer)
-
-/mob/living/carbon/human/verb/emote_shake()
- set name = "~ Мотать головой"
- set category = "Эмоции"
- emote_with_delay("shake", timer)
-
-/mob/living/carbon/human/verb/emote_shiver()
- set name = "~ Трепетать"
- set category = "Эмоции"
- emote_with_delay("shiver", timer)
-
-/mob/living/carbon/human/verb/emote_slap()
- set name = "> Шлёпнуть"
- set category = "Эмоции"
- emote_with_delay("slap", timer)
-
-/mob/living/carbon/human/verb/emote_sigh()
- set name = "> Вздыхать"
- set category = "Эмоции"
- emote_with_delay("sigh", timer)
-
-/mob/living/carbon/human/verb/emote_smile()
- set name = "~ Улыбаться "
- set category = "Эмоции"
- emote_with_delay("smile", timer)
-
-/mob/living/carbon/human/verb/emote_sneeze()
- set name = "> Чихнуть"
- set category = "Эмоции"
- emote_with_delay("sneeze", timer)
-
-/mob/living/carbon/human/verb/emote_smug()
- set name = "~ Самодовольство"
- set category = "Эмоции"
- emote_with_delay("smug", timer)
-
-/mob/living/carbon/human/verb/emote_sniff()
- set name = "> Нюхать"
- set category = "Эмоции"
- emote_with_delay("sniff", timer)
-
-/mob/living/carbon/human/verb/emote_snore()
- set name = "> Храпеть"
- set category = "Эмоции"
- emote_with_delay("snore", timer)
-
-/mob/living/carbon/human/verb/emote_spin()
- set name = "> Кружиться"
- set category = "Эмоции"
- emote_with_delay("spin", timer)
-
-/mob/living/carbon/human/verb/emote_stare()
- set name = "~ Пялиться"
- set category = "Эмоции"
- emote_with_delay("stare", timer)
-
-/mob/living/carbon/human/verb/emote_strech()
- set name = "~ Потягиваться"
- set category = "Эмоции"
- emote_with_delay("strech", timer)
-
-/mob/living/carbon/human/verb/emote_sulk()
- set name = "~ Сердиться"
- set category = "Эмоции"
- emote_with_delay("sulk", timer)
-
-/mob/living/carbon/human/verb/emote_surprised()
- set name = "~ Удивиться"
- set category = "Эмоции"
- emote_with_delay("surprised", timer)
-
-/mob/living/carbon/human/verb/emote_surrender()
- set name = "< Сдаться >"
- set category = "Эмоции"
- emote_with_delay("surrender", timer)
-
-/mob/living/carbon/human/verb/emote_tremble()
- set name = "~ Дрожать"
- set category = "Эмоции"
- emote_with_delay("tremble", timer)
-
-/mob/living/carbon/human/verb/emote_twitch()
- set name = "~ Дёргаться"
- set category = "Эмоции"
- emote_with_delay("twitch", timer)
-
-/mob/living/carbon/human/verb/emote_twitch_s()
- set name = "~ Сильно дёргаться"
- set category = "Эмоции"
- emote_with_delay("twitch_s", timer)
-
-/mob/living/carbon/human/verb/emote_wave()
- set name = "~ Махать рукой"
- set category = "Эмоции"
- emote_with_delay("wave", timer)
-
-/mob/living/carbon/human/verb/emote_whimper()
- set name = "~ Хныкать"
- set category = "Эмоции"
- emote_with_delay("whimper", timer)
-
-/mob/living/carbon/human/verb/emote_wsmile()
- set name = "~ Слегка улыбнуться"
- set category = "Эмоции"
- emote_with_delay("wsmile", timer)
-
-/mob/living/carbon/human/verb/emote_yawn()
- set name = "> Зевать"
- set category = "Эмоции"
- emote_with_delay("yawn", timer)
-
-// /mob/living/carbon/human/verb/emote_gurgle() // Slime
-// set name = "< Хлюпать >"
-// set category = "Эмоции"
-// emote_with_delay("gurgle", timer)
-
-// /mob/living/carbon/human/verb/emote_clack() // Spider
-// set name = "< Щёлкнуть челюстью >"
-// set category = "Эмоции"
-// emote_with_delay("clack", timer)
-
-/mob/living/carbon/human/verb/cry()
- set name = "> Плакать"
- set category = "Эмоции"
- emote_with_delay("cry", timer)
-
-/mob/living/carbon/human/verb/emote_eyebrow()
- set name = "~ Приподнять бровь"
- set category = "Эмоции"
- emote_with_delay("eyebrow", timer)
-
-/mob/living/carbon/human/verb/emote_grumble()
- set name = "~ Ворчать"
- set category = "Эмоции"
- emote_with_delay("grumble", timer)
-
-/mob/living/carbon/human/verb/emote_mumble()
- set name = "~ Бормотать"
- set category = "Эмоции"
- emote_with_delay("mumble", timer)
-
-/mob/living/carbon/human/verb/emote_scream()
- set name = "> Кричать"
- set category = "Эмоции"
- emote_with_delay("scream", timer)
-
-/mob/living/carbon/human/verb/emote_purr()
- set name = "~ Мурчать"
- set category = "Эмоции"
- emote_with_delay("purr", timer)
-
-/mob/living/carbon/human/verb/emote_purrl()
- set name = "~ Мурчать дольше"
- set category = "Эмоции"
- emote_with_delay("purrl", timer)
-
-/mob/living/carbon/human/verb/emote_fpurr()
- set name = "~ Урчать"
- set category = "Эмоции"
- emote_with_delay("fox_purr", timer)
-
-/mob/living/carbon/human/verb/emote_bark()
- set name = "~ Гавкнуть"
- set category = "Эмоции"
- emote_with_delay("bark", timer)
-
-/mob/living/carbon/human/verb/emote_wbark()
- set name = "~ Дважды гавкнуть"
- set category = "Эмоции"
- emote_with_delay("wbark", timer)
-
-/mob/living/carbon/human/verb/emote_fhowl()
- set name = "~ Выть"
- set category = "Эмоции"
- emote_with_delay("howl", timer)
-
-/mob/living/carbon/human/verb/emote_hiss()
- set name = "~ Шипеть"
- set category = "Эмоции"
- emote_with_delay("hiss", timer)
-
-/mob/living/carbon/human/verb/emote_pale()
- set name = "~ Бледнеть"
- set category = "Эмоции"
- emote_with_delay("pale", timer)
-
-/mob/living/carbon/human/verb/emote_raise()
- set name = "< Поднять руки >"
- set category = "Эмоции"
- emote_with_delay("raise", timer)
-
-/mob/living/carbon/human/verb/emote_salute()
- set name = "~ Воинское приветствие"
- set category = "Эмоции"
- emote_with_delay("salute", timer)
-
-/mob/living/carbon/human/verb/emote_shame()
- set name = "~ Стыдиться"
- set category = "Эмоции"
- emote_with_delay("shame", timer)
-
-/mob/living/carbon/human/verb/emote_hoot()
- set name = "> Свистеть"
- set category = "Эмоции"
- emote_with_delay("hoot", timer)
-
-/mob/living/carbon/human/verb/emote_shrug()
- set name = "~ Пожать плечами"
- set category = "Эмоции"
- emote_with_delay("shrug", timer)
-
-/mob/living/carbon/human/verb/emote_wag() // Lizard, Tajara
- set name = "< Махать хвостом >"
- set category = "Эмоции"
- emote_with_delay("wag", timer)
-
-/mob/living/carbon/human/verb/emote_wink()
- set name = "~ Подмигнуть"
- set category = "Эмоции"
- emote_with_delay("wink", timer)
diff --git a/mod_celadon/_components/code/emotes/emotes.dm b/mod_celadon/_components/code/emotes/emotes.dm
deleted file mode 100644
index 14b5191497f9..000000000000
--- a/mod_celadon/_components/code/emotes/emotes.dm
+++ /dev/null
@@ -1,66 +0,0 @@
-/datum/emote/living/warcray
- key = "warcray"
- key_third_person = "warcray"
- message = "издаёт вдохновляющий крик!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/warcray/can_run_emote(mob/living/user, status_check = TRUE , intentional)
- . = ..()
- if(. && iscarbon(user))
- var/mob/living/carbon/C = user
- return !C.silent
-
-/datum/emote/living/warcray/get_sound(mob/living/user)
- if(!ishuman(user))
- return
- var/mob/living/carbon/human/H = user
- var/human_warcray = ishumanbasic(H)
- var/slime_warcray = isjellyperson(H)
- if((human_warcray||slime_warcray) && (!H.mind || !H.mind.miming))
- if(user.gender == FEMALE)
- return pick(
- 'mod_celadon/_storge_sounds/sound/voice/human_female_warcry_1.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_female_warcry_2.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_female_warcry_3.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_female_warcry_4.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_female_warcry_5.ogg')
- else
- return pick(
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_1.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_2.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_3.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_4.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_5.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_6.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_7.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_8.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/human_male_warcry_9.ogg')
- if(ismoth(H))
- if(prob(3))
- message = "издаёт вдохновляющий крик!"
- return 'mod_celadon/_storge_sounds/sound/voice/alastor_attack1-attackvoice.ogg'
- else
- message = "издаёт вдохновляющий крик!"
- return pick(
- 'mod_celadon/_storge_sounds/sound/voice/alastor_wing1.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/alastor_wing1_2.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/alastor_wing2.ogg',
- 'mod_celadon/_storge_sounds/sound/voice/alastor_wing2_2.ogg')
-
-/**
- * Perform a custom emote.
- *
- * * m_type: Type of message to send.
- * * message: Content of the message. If none is provided, the user will be prompted to choose the input.
- * * intentional: Whether or not the user intendeded to perform the emote.
- */
-/mob/proc/custom_emote(m_type = EMOTE_VISIBLE, message = null, intentional = FALSE)
- var/input = ""
- if(!message && !client)
- CRASH("An empty custom emote was called from a client-less mob.")
- else if(!message)
- input = sanitize(copytext_char(input(src,"Choose an emote to display.") as text|null, 1, MAX_MESSAGE_LEN))
- else
- input = message
-
- emote("me", m_type, input, intentional)
diff --git a/mod_celadon/_components/code/emotes/emotes_living.dm b/mod_celadon/_components/code/emotes/emotes_living.dm
deleted file mode 100644
index 30053822f5c4..000000000000
--- a/mod_celadon/_components/code/emotes/emotes_living.dm
+++ /dev/null
@@ -1,776 +0,0 @@
-
-/* EMOTE DATUMS */
-/datum/emote/living
- mob_type_allowed_typecache = /mob/living
- mob_type_blacklist_typecache = list(/mob/living/simple_animal/slime, /mob/living/brain)
-
-
-/// The time it takes for the blush visual to be removed
-#define BLUSH_DURATION 5.2 SECONDS
-
-/datum/emote/living/blush
- key = "blush"
- key_third_person = "blushes"
- message = "краснеет."
- emote_type = EMOTE_VISIBLE
- /// Timer for the blush visual to wear off
- var/blush_timer = TIMER_ID_NULL
-
-/datum/emote/living/blush/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && isliving(user))
- var/mob/living/living_user = user
- ADD_TRAIT(living_user, TRAIT_BLUSHING, "[type]")
- living_user.update_body()
-
- // Use a timer to remove the blush effect after the BLUSH_DURATION has passed
- var/list/key_emotes = GLOB.emote_list["blush"]
- for(var/datum/emote/living/blush/living_emote in key_emotes)
- // The existing timer restarts if it's already running
- blush_timer = addtimer(CALLBACK(living_emote, PROC_REF(end_blush), living_user), BLUSH_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE)
-
-/datum/emote/living/blush/proc/end_blush(mob/living/living_user)
- if(!QDELETED(living_user))
- REMOVE_TRAIT(living_user, TRAIT_BLUSHING, "[type]")
- living_user.update_body()
-
-#undef BLUSH_DURATION
-
-/datum/emote/living/bow
- key = "bow"
- key_third_person = "bows"
- message = "кланяется."
- message_param = "делает поклон в сторону %t."
- emote_type = EMOTE_VISIBLE
- hands_use_check = TRUE
-
-/datum/emote/living/burp
- key = "burp"
- key_third_person = "burps"
- message = "рыгает."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/choke
- key = "choke"
- key_third_person = "chokes"
- message = "давится!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/cross
- key = "cross"
- key_third_person = "crosses"
- message = "скрещивает руки перед собой."
- emote_type = EMOTE_VISIBLE
- hands_use_check = TRUE
-
-/datum/emote/living/carbon/mothchitter
- key = "chitter"
- key_third_person = "chitters"
- message = "жужит."
- emote_type = EMOTE_AUDIBLE
- vary = TRUE
-
-/datum/emote/living/carbon/mothchitter/get_sound(mob/living/user)
- var/mob/living/carbon/human/H = user
- if(ismoth(H) | (istype(H, /mob/living/simple_animal/pet/mothroach)))
- return 'mod_celadon/_storge_sounds/sound/voice/moth/mothchitter.ogg'
-
-/datum/emote/living/chuckle
- key = "chuckle"
- key_third_person = "chuckles"
- message = "смеётся."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/collapse
- key = "collapse"
- key_third_person = "collapses"
- message = "спотыкается и падает!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/collapse/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && isliving(user))
- var/mob/living/L = user
- L.Unconscious(40)
-
-/datum/emote/living/cough
- key = "cough"
- key_third_person = "coughs"
- message = "кашляет!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/cough/can_run_emote(mob/user, status_check = TRUE , intentional)
- . = ..()
- if(HAS_TRAIT(user, TRAIT_SOOTHED_THROAT))
- return FALSE
-
-/datum/emote/living/cough/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/cough_female_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/cough_female_2.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/cough_male_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/cough_male_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/cough_male_3.ogg')
- return ..()
-
-/datum/emote/living/carbon/human/cry/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/cry_female_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/cry_female_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/cry_female_3.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/cry_male_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/cry_male_1.ogg')
- return ..()
-
-/datum/emote/living/dance
- key = "dance"
- key_third_person = "dances"
- message = "счастливо танцует."
- emote_type = EMOTE_VISIBLE
- hands_use_check = TRUE
-
-/datum/emote/living/deathgasp
- key = "deathgasp"
- key_third_person = "deathgasps"
- message = "seizes up and falls limp, their eyes dead and lifeless..."
- message_robot = "shudders violently for a moment before falling still, its eyes slowly darkening."
- message_AI = "screeches, its screen flickering as its systems slowly halt."
- message_alien = "lets out a waning guttural screech, and collapses onto the floor..."
- message_larva = "lets out a sickly hiss of air and falls limply to the floor..."
- message_monkey = "lets out a faint chimper as it collapses and stops moving..."
- message_ipc = "gives one shrill beep before falling limp, their monitor flashing blue before completely shutting off..."
- message_simple = "stops moving..."
- cooldown = (15 SECONDS)
- stat_allowed = HARD_CRIT
-
-/datum/emote/living/deathgasp/run_emote(mob/user, params, type_override, intentional)
- var/mob/living/simple_animal/S = user
- if(istype(S) && S.deathmessage)
- message_simple = S.deathmessage
- . = ..()
- message_simple = initial(message_simple)
-
- if(. && user.deathsound)
- if(isliving(user))
- var/mob/living/L = user
- if(!L.can_speak_vocal() || L.oxyloss >= 50)
- return //stop the sound if oxyloss too high/cant speak
- playsound(user, user.deathsound, 200, TRUE, TRUE)
-
-/datum/emote/living/drool
- key = "drool"
- key_third_person = "drools"
- message = "пускает слюни."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/faint
- key = "faint"
- key_third_person = "faints"
- message = "теряет сознание и падает!"
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/faint/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && isliving(user))
- var/mob/living/L = user
- L.SetSleeping(200)
-
-/datum/emote/living/flap
- key = "flap"
- key_third_person = "flaps"
- message = "взмахивает крыльями."
- emote_type = EMOTE_AUDIBLE
- hands_use_check = TRUE
- var/wing_time = 20
-
-/datum/emote/living/flap/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && ishuman(user))
- var/mob/living/carbon/human/H = user
- var/open = FALSE
- if(H.dna.features["wings"] != "None")
- if("wingsopen" in H.dna.species.mutant_bodyparts)
- open = TRUE
- H.CloseWings()
- else
- H.OpenWings()
- addtimer(CALLBACK(H, open ? TYPE_PROC_REF(/mob/living/carbon/human, OpenWings) : TYPE_PROC_REF(/mob/living/carbon/human, CloseWings)), wing_time)
-
-/datum/emote/living/flap/aflap
- key = "aflap"
- key_third_person = "aflaps"
- message = "яростно взмахивает крыльями!"
- emote_type = EMOTE_AUDIBLE
- hands_use_check = TRUE
- wing_time = 10
-
-/datum/emote/living/frown
- key = "frown"
- key_third_person = "frowns"
- message = "недовольно смотрит."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/gag
- key = "gag"
- key_third_person = "gags"
- message = "давится."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/gag/can_run_emote(mob/living/user, status_check = TRUE , intentional)
- . = ..()
- if(. && iscarbon(user))
- var/mob/living/carbon/C = user
- return !C.silent
-
-/datum/emote/living/gag/get_sound(mob/living/user)
- if(!ishuman(user))
- return
- var/mob/living/carbon/human/H = user
- var/human_gag= ishumanbasic(H)
- if(human_gag && (!H.mind || !H.mind.miming))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/human/gasp_female1.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female2.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female3.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female4.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female5.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female6.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female7.ogg')
- else
- return pick('mod_celadon/_storge_sounds/sound/voice/human/gasp_male1.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male2.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male3.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male4.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male5.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male6.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male7.ogg')
- if(ismoth(H))
- return 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female3.ogg'
-
-
-/datum/emote/living/gasp
- key = "gasp"
- key_third_person = "gasps"
- message = "задыхается!"
- emote_type = EMOTE_AUDIBLE
- stat_allowed = HARD_CRIT
-
-/datum/emote/living/gasp/can_run_emote(mob/living/user, status_check = TRUE , intentional)
- . = ..()
- if(. && iscarbon(user))
- var/mob/living/carbon/C = user
- return !C.silent
-
-/datum/emote/living/gasp/get_sound(mob/living/user)
- if(!ishuman(user))
- return
- var/mob/living/carbon/human/H = user
- var/human_gasp = ishumanbasic(H)
- if(human_gasp && (!H.mind || !H.mind.miming))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/human/gasp_female1.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female2.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female3.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female4.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female5.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female6.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female7.ogg')
- else
- return pick('mod_celadon/_storge_sounds/sound/voice/human/gasp_male1.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male2.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male3.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male4.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male5.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male6.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/gasp_male7.ogg')
- if(ismoth(H))
- return 'mod_celadon/_storge_sounds/sound/voice/human/gasp_female3.ogg'
-
-/datum/emote/living/giggle
- key = "giggle"
- key_third_person = "giggles"
- message = "хихикает."
- message_mime = "тихо хихикает!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/giggle/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/giggle_female_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/giggle_female_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/giggle_female_3.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/giggle_male_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/giggle_male_2.ogg')
- return ..()
-
-/datum/emote/living/glare
- key = "glare"
- key_third_person = "glares"
- message = "ослепляет своим взглядом."
- message_param = "ослепляет своим взглядом %t."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/grin
- key = "grin"
- key_third_person = "grins"
- message = "ухмыляется."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/groan
- key = "groan"
- key_third_person = "groans"
- message = "стонет!"
- message_mime = "издаёт тихий стон!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/groan/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/moan_female_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/moan_female_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/moan_female_3.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/moan_male_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/moan_male_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/moan_male_3.ogg')
- return ..()
-
-/datum/emote/living/growl
- key = "growl"
- key_third_person = "growls"
- message = "рычит!"
- message_mime = "тихо рычит!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/grimace
- key = "grimace"
- key_third_person = "grimaces"
- message = "корчит рожу."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/jump
- key = "jump"
- key_third_person = "jumps"
- message = "прыгает!"
- emote_type = EMOTE_AUDIBLE
- hands_use_check = TRUE
-
-/datum/emote/living/kiss
- key = "kiss"
- key_third_person = "kisses"
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/kiss/run_emote(mob/living/user, params, type_override, intentional)
- . = ..()
- if(!.)
- return
- var/kiss_type = /obj/item/kisser
-
- if(HAS_TRAIT(user, TRAIT_KISS_OF_DEATH))
- kiss_type = /obj/item/kisser/death
-
- var/obj/item/kiss_blower = new kiss_type(user)
- if(user.put_in_hands(kiss_blower))
- to_chat(user, span_notice("Вы приготовили свою руку для воздушного поцелуя."))
- else
- qdel(kiss_blower)
- to_chat(user, span_warning("В таком состоянии ты не можешь послать воздушный поцелуй."))
-
-/datum/emote/living/laugh
- key = "laugh"
- key_third_person = "laughs"
- message = "смеётся."
- message_mime = "тихо смеётся!"
- emote_type = EMOTE_AUDIBLE
- vary = TRUE
-
-/datum/emote/living/laugh/can_run_emote(mob/living/user, status_check = TRUE , intentional)
- . = ..()
- if(. && iscarbon(user))
- var/mob/living/carbon/C = user
- return !C.silent
-
-/datum/emote/living/laugh/get_sound(mob/living/user)
- if(!ishuman(user))
- return
- var/mob/living/carbon/human/H = user
- var/human_laugh = ishumanbasic(H)
- if(human_laugh && (!H.mind || !H.mind.miming))
- if(user.gender == FEMALE)
- return 'mod_celadon/_storge_sounds/sound/voice/human/womanlaugh.ogg'
- else
- return pick('mod_celadon/_storge_sounds/sound/voice/human/manlaugh1.ogg', 'mod_celadon/_storge_sounds/sound/voice/human/manlaugh2.ogg')
- if(ismoth(H))
- return 'mod_celadon/_storge_sounds/sound/voice/moth/mothlaugh.ogg'
-
-/datum/emote/living/look
- key = "look"
- key_third_person = "looks"
- message = "смотрит."
- message_param = "смотрит на %t."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/nod
- key = "nod"
- key_third_person = "nods"
- message = "кивает."
- message_param = "кивает в сторону %t."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/carbon/mothsqueak
- key = "msqueak"
- key_third_person = "lets out a tiny squeak"
- message = "издает тихий писк!"
- emote_type = EMOTE_AUDIBLE
- vary = TRUE
-
-/datum/emote/living/carbon/mothsqueak/get_sound(mob/living/user)
- var/mob/living/carbon/human/H = user
- if(ismoth(H) | (istype(H, /mob/living/simple_animal/pet/mothroach)))
- return 'mod_celadon/_storge_sounds/sound/voice/moth/mothsqueak.ogg'
-
-/datum/emote/living/peace
- key = "peace"
- key_third_person = "peaces"
- message = "выставляет два пальца перед собой, символизируя Знак Мира!"
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/point
- key = "point"
- key_third_person = "points"
- message = "показывает."
- message_param = "показывает на %t."
- emote_type = EMOTE_VISIBLE
- hands_use_check = TRUE
-
-/datum/emote/living/point/run_emote(mob/user, params, type_override, intentional)
- message_param = initial(message_param) // reset
- if(ishuman(user))
- var/mob/living/carbon/human/H = user
- if(H.usable_hands == 0)
- if(H.usable_legs != 0)
- message_param = "пытается показать на %t с помощью ноги, но теряет баланс и падает на землю!"
- H.Paralyze(20)
- else
- message_param = " [user.p_their()] ударяется головой об землю пытаясь двигаться в сторону %t."
- H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5)
- ..()
-
-/datum/emote/living/pout
- key = "pout"
- key_third_person = "pouts"
- message = "обижено дуется."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/scream
- key = "scream"
- key_third_person = "screams"
- message = "кричит."
- message_mime = "пытается крикнуть!"
- emote_type = EMOTE_AUDIBLE
- mob_type_blacklist_typecache = list(/mob/living/carbon/human) //Humans get specialized scream.
-
-/datum/emote/living/scream/select_message_type(mob/user, intentional)
- . = ..()
- if(!intentional && isanimal(user))
- return "издает болезненное хныканье."
-
-/datum/emote/living/scowl
- key = "scowl"
- key_third_person = "scowls"
- message = "хмурится."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/shake
- key = "shake"
- key_third_person = "shakes"
- message = "мотает головой."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/shame
- key = "shame"
- key_third_person = "shames"
- message = "испытывает сильный стыд."
-
-/datum/emote/living/shiver
- key = "shiver"
- key_third_person = "shiver"
- message = "трепещет!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/sigh
- key = "sigh"
- key_third_person = "sighs"
- message = "вздыхает."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/sigh/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/sigh_female.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/sigh_male.ogg', 'mod_celadon/_storge_sounds/sound/voice/sigh_male.ogg')
- return ..()
-
-/datum/emote/living/sit
- key = "sit"
- key_third_person = "sits"
- message = "присаживается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/surprised
- key = "surprised"
- key_third_person = "surpriseds"
- message = "удивлённо смотрит."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/smile
- key = "smile"
- key_third_person = "smiles"
- message = "улыбается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/sneeze
- key = "sneeze"
- key_third_person = "sneezes"
- message = "чихает."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/sneeze/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/sneeze_female.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/sneeze.ogg')
- return ..()
-
-/datum/emote/living/smug
- key = "smug"
- key_third_person = "smugs"
- message = "гордо откидывает голову в сторону, выражая самодовольство."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/sniff
- key = "sniff"
- key_third_person = "sniffs"
- message = "нюхает."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/sniff/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/sniff_female.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/sniff_male.ogg')
- return ..()
-
-#define SNORE_DURATION 5.2 SECONDS
-
-/datum/emote/living/snore
- key = "snore"
- key_third_person = "snores"
- message = "храпит."
- message_mime = "крепко спит."
- emote_type = EMOTE_AUDIBLE
- stat_allowed = UNCONSCIOUS
- /// Timer for the blink to wear off
- var/snore_timer = TIMER_ID_NULL
-
-/datum/emote/living/snore/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && isliving(user))
- var/mob/living/living_user = user
- ADD_TRAIT(living_user, TRAIT_SNORE, "[type]")
- living_user.update_body()
-
- // Use a timer to remove the closed eyes after the SNORE_DURATION has passed
- var/list/key_emotes = GLOB.emote_list["snore"]
- for(var/datum/emote/living/snore/living_emote in key_emotes)
- // The existing timer restarts if it's already running
- snore_timer = addtimer(CALLBACK(living_emote, PROC_REF(end_snore), living_user), SNORE_DURATION, TIMER_UNIQUE | TIMER_OVERRIDE)
-
-/datum/emote/living/snore/proc/end_snore(mob/living/living_user)
- if(!QDELETED(living_user))
- REMOVE_TRAIT(living_user, TRAIT_SNORE, "[type]")
- living_user.update_body()
-
-/datum/emote/living/snore/get_sound(mob/living/user)
- if(ishuman(user))
- return pick('mod_celadon/_storge_sounds/sound/voice/snore_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_3.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_4.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_5.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_6.ogg', 'mod_celadon/_storge_sounds/sound/voice/snore_7.ogg')
- return ..()
-
-#undef SNORE_DURATION
-
-/datum/emote/living/stare
- key = "stare"
- key_third_person = "stares"
- message = "пялится."
- message_param = "пялится на %t."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/strech
- key = "strech"
- key_third_person = "strechs"
- message = "потягивается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/sulk
- key = "sulk"
- key_third_person = "sulks"
- message = "сильно сердится."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/surrender
- key = "surrender"
- key_third_person = "surrenders"
- message = "сдаётся! Падает на землю, закидывая руки за свою голову."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/surrender/run_emote(mob/user, params, type_override, intentional)
- . = ..()
- if(. && isliving(user))
- var/mob/living/L = user
- L.Paralyze(200)
- L.remove_status_effect(STATUS_EFFECT_SURRENDER)
-
-/datum/emote/living/sway
- key = "sway"
- key_third_person = "sways"
- message = "головокружительно кружится."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/tremble
- key = "tremble"
- key_third_person = "trembles"
- message = "дрожит!"
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/twitch
- key = "twitch"
- key_third_person = "twitches"
- message = "дёргается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/twitch_s
- key = "twitch_s"
- message = "сильно дёргается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/wave
- key = "wave"
- key_third_person = "waves"
- message = "машет."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/whimper
- key = "whimper"
- key_third_person = "whimpers"
- message = "хнычет."
- message_mime = "делает вид, словно плачет."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/wsmile
- key = "wsmile"
- key_third_person = "wsmiles"
- message = "слегка улыбается."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/wing
- key = "wing"
- key_third_person = "wings"
- message = "подмигивает."
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/yawn
- key = "yawn"
- key_third_person = "yawns"
- message = "зевает."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/yawn/get_sound(mob/living/user)
- if(ishuman(user))
- if(user.gender == FEMALE)
- return pick('mod_celadon/_storge_sounds/sound/voice/yawn_female_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/yawn_female_2.ogg', 'mod_celadon/_storge_sounds/sound/voice/yawn_female_3.ogg')
- return pick('mod_celadon/_storge_sounds/sound/voice/yawn_male_1.ogg', 'mod_celadon/_storge_sounds/sound/voice/yawn_male_2.ogg')
- return ..()
-
-/datum/emote/living/gurgle
- key = "gurgle"
- key_third_person = "gurgles"
- message = "издает неприятное хлюпанье."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/custom
- key = "me"
- key_third_person = "custom"
- message = null
-
-/datum/emote/living/custom/can_run_emote(mob/user, status_check, intentional)
- . = ..() && intentional
-
-/datum/emote/living/custom/proc/check_invalid(mob/user, input)
- var/static/regex/stop_bad_mime = regex(@"says|exclaims|yells|asks")
- if(stop_bad_mime.Find(input, 1, 1))
- to_chat(user, " Invalid emote.")
- return TRUE
- return FALSE
-
-/datum/emote/living/custom/run_emote(mob/user, params, type_override = null, intentional = FALSE)
- if(!can_run_emote(user, TRUE, intentional))
- return FALSE
- if(is_banned_from(user.ckey, "Emote"))
- to_chat(user, " You cannot send custom emotes (banned).")
- return FALSE
- else if(QDELETED(user))
- return FALSE
- else if(user.client && user.client.prefs.muted & MUTE_IC)
- to_chat(user, " You cannot send IC messages (muted).")
- return FALSE
- else if(params == ".")
- var/custom_emote = copytext(sanitize(input("Choose an emote to display.") as text|null), 1, MAX_MESSAGE_LEN)
- if(custom_emote && !check_invalid(user, custom_emote))
- var/type = input("Is this a visible or hearable emote?") as null|anything in list("Visible", "Hearable")
- switch(type)
- if("Visible")
- emote_type = EMOTE_VISIBLE
- if("Hearable")
- emote_type = EMOTE_AUDIBLE
- else
- alert("Unable to use this emote, must be either hearable or visible.")
- return
- message = user.say_emphasis(custom_emote)
- else
- message = params
- if(type_override)
- emote_type = type_override
- . = ..()
- message = null
- emote_type = EMOTE_VISIBLE
-
-/datum/emote/living/custom/replace_pronoun(mob/user, message)
- return message
-
-/datum/emote/living/help
- key = "help"
-
-/datum/emote/living/help/run_emote(mob/user, params, type_override, intentional)
- var/list/keys = list()
- var/list/message = list("Available emotes, you can use them with say \"*emote\": ")
-
- for(var/key in GLOB.emote_list)
- for(var/datum/emote/P in GLOB.emote_list[key])
- if(P.key in keys)
- continue
- if(P.can_run_emote(user, status_check = FALSE , intentional = TRUE))
- keys += P.key
-
- keys = sortList(keys)
-
- for(var/emote in keys)
- if(LAZYLEN(message) > 1)
- message += ", [emote]"
- else
- message += "[emote]"
-
- message += "."
-
- message = jointext(message, "")
-
- to_chat(user, message)
-
-/datum/emote/beep
- key = "beep"
- key_third_person = "beeps"
- message = "beeps."
- message_param = "beeps at %t."
- sound = 'sound/machines/twobeep.ogg'
- mob_type_allowed_typecache = list(/mob/living/brain, /mob/living/silicon)
-
-/datum/emote/inhale
- key = "inhale"
- key_third_person = "inhales"
- message = "делает вдох."
-
-/datum/emote/exhale
- key = "exhale"
- key_third_person = "exhales"
- message = "выдыхает."
-
-/datum/emote/living/clack
- key = "clack"
- key_third_person = "clacks"
- message = "щёлкает челюстью."
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/hoot
- key = "hoot"
- key_third_person = "hoots"
- message = "свистит!"
- message_mime = "издаёт тихий свист!"
- emote_type = EMOTE_AUDIBLE
-
-/datum/emote/living/hoot/get_sound(mob/living/user)
- if(ishuman(user))
- return pick('mod_celadon/_storge_sounds/sound/voice/whistle.ogg')
- return ..()
diff --git a/mod_celadon/_components/code/mob/living.dm b/mod_celadon/_components/code/mob/living.dm
new file mode 100644
index 000000000000..1d83593595f9
--- /dev/null
+++ b/mod_celadon/_components/code/mob/living.dm
@@ -0,0 +1,3 @@
+/mob/living
+ /// This can either be a numerical direction or a soft object reference (UID). It makes the mob always face towards the selected thing.
+ var/forced_look = null
diff --git a/mod_celadon/_storge_icons/icons/ammo/projectiles.dmi b/mod_celadon/_storge_icons/icons/ammo/projectiles.dmi
index 1acd53e8bf11..f66d4f1e1dc7 100644
Binary files a/mod_celadon/_storge_icons/icons/ammo/projectiles.dmi and b/mod_celadon/_storge_icons/icons/ammo/projectiles.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/clothing/obj/shoes.dmi b/mod_celadon/_storge_icons/icons/clothing/obj/shoes.dmi
index a4c9f24afb96..21437dbdb970 100644
Binary files a/mod_celadon/_storge_icons/icons/clothing/obj/shoes.dmi and b/mod_celadon/_storge_icons/icons/clothing/obj/shoes.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/clothing/overlay/feet.dmi b/mod_celadon/_storge_icons/icons/clothing/overlay/feet.dmi
index 5b8b5f177a6e..9b0c160b1403 100644
Binary files a/mod_celadon/_storge_icons/icons/clothing/overlay/feet.dmi and b/mod_celadon/_storge_icons/icons/clothing/overlay/feet.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/guns/guns_lefthand.dmi b/mod_celadon/_storge_icons/icons/guns/guns_lefthand.dmi
index fa42e33deee6..61caf4e1a56b 100644
Binary files a/mod_celadon/_storge_icons/icons/guns/guns_lefthand.dmi and b/mod_celadon/_storge_icons/icons/guns/guns_lefthand.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/guns/guns_righthand.dmi b/mod_celadon/_storge_icons/icons/guns/guns_righthand.dmi
index 93d6b05be2c3..769ca52b3778 100644
Binary files a/mod_celadon/_storge_icons/icons/guns/guns_righthand.dmi and b/mod_celadon/_storge_icons/icons/guns/guns_righthand.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/guns/ntsl_lasers.dmi b/mod_celadon/_storge_icons/icons/guns/ntsl_lasers.dmi
new file mode 100644
index 000000000000..503d7214c404
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/guns/ntsl_lasers.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/items/obj/restraints.dmi b/mod_celadon/_storge_icons/icons/items/obj/restraints.dmi
new file mode 100644
index 000000000000..23404b479f2e
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/items/obj/restraints.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/items/overlay/left_hand/left_pinkcuffs.dmi b/mod_celadon/_storge_icons/icons/items/overlay/left_hand/left_pinkcuffs.dmi
new file mode 100644
index 000000000000..c1b3720e6a7d
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/items/overlay/left_hand/left_pinkcuffs.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/items/overlay/mob.dmi b/mod_celadon/_storge_icons/icons/items/overlay/mob.dmi
new file mode 100644
index 000000000000..64c6e89eab91
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/items/overlay/mob.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/items/overlay/right_hand/right_pinkcuffs.dmi b/mod_celadon/_storge_icons/icons/items/overlay/right_hand/right_pinkcuffs.dmi
new file mode 100644
index 000000000000..087d133ef134
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/items/overlay/right_hand/right_pinkcuffs.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/items/plushes.dmi b/mod_celadon/_storge_icons/icons/items/plushes.dmi
index 95f61a7d7956..f79dac511827 100644
Binary files a/mod_celadon/_storge_icons/icons/items/plushes.dmi and b/mod_celadon/_storge_icons/icons/items/plushes.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_left.dmi b/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_left.dmi
new file mode 100644
index 000000000000..143216a945ed
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_left.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_right.dmi b/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_right.dmi
new file mode 100644
index 000000000000..0a9f0ccd915e
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/mob/hands/musicbox_hands_right.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/mobs/Miko.dmi b/mod_celadon/_storge_icons/icons/mobs/Miko.dmi
new file mode 100644
index 000000000000..544eaf56e0e2
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/mobs/Miko.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/obj/musicbox.dmi b/mod_celadon/_storge_icons/icons/obj/musicbox.dmi
new file mode 100644
index 000000000000..01b7ead7c78c
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/obj/musicbox.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/overmap/overmap.dmi b/mod_celadon/_storge_icons/icons/overmap/overmap.dmi
index 1771ac67599d..641a12765733 100644
Binary files a/mod_celadon/_storge_icons/icons/overmap/overmap.dmi and b/mod_celadon/_storge_icons/icons/overmap/overmap.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/qol/human_face.dmi b/mod_celadon/_storge_icons/icons/qol/human_face.dmi
index 49dca5a2dea7..3bc1af990a62 100644
Binary files a/mod_celadon/_storge_icons/icons/qol/human_face.dmi and b/mod_celadon/_storge_icons/icons/qol/human_face.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/screen_alert.dmi b/mod_celadon/_storge_icons/icons/screen_alert.dmi
new file mode 100644
index 000000000000..5591755e0190
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/screen_alert.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/structures/floors/metal_2.dmi b/mod_celadon/_storge_icons/icons/structures/floors/metal_2.dmi
new file mode 100644
index 000000000000..5bef41f0d515
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/structures/floors/metal_2.dmi differ
diff --git a/mod_celadon/_storge_icons/icons/structures/obj/decales/zaklepki.dmi b/mod_celadon/_storge_icons/icons/structures/obj/decales/zaklepki.dmi
new file mode 100644
index 000000000000..f5b1bee2ba2d
Binary files /dev/null and b/mod_celadon/_storge_icons/icons/structures/obj/decales/zaklepki.dmi differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/bark.ogg b/mod_celadon/_storge_sounds/sound/emotes/bark.ogg
new file mode 100644
index 000000000000..62a8535b628c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/bark.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/claps/clap1.ogg b/mod_celadon/_storge_sounds/sound/emotes/claps/clap1.ogg
new file mode 100644
index 000000000000..e2f23e34c480
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/claps/clap1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/claps/clap2.ogg b/mod_celadon/_storge_sounds/sound/emotes/claps/clap2.ogg
new file mode 100644
index 000000000000..7ff8e50c192e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/claps/clap2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/claps/clap3.ogg b/mod_celadon/_storge_sounds/sound/emotes/claps/clap3.ogg
new file mode 100644
index 000000000000..17b69b3971d4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/claps/clap3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/claps/clap_low.ogg b/mod_celadon/_storge_sounds/sound/emotes/claps/clap_low.ogg
new file mode 100644
index 000000000000..5a93d792ab7f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/claps/clap_low.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/fart.ogg b/mod_celadon/_storge_sounds/sound/emotes/fart.ogg
new file mode 100644
index 000000000000..ea1370160f97
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/fart.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_1.ogg
new file mode 100644
index 000000000000..f33b775fd34e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_2.ogg
new file mode 100644
index 000000000000..8bd7f74cfddc
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_3.ogg
new file mode 100644
index 000000000000..444b6688a481
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/choke_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_1.ogg
new file mode 100644
index 000000000000..1888efa17d34
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_2.ogg
new file mode 100644
index 000000000000..cb2b32437d02
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_3.ogg
new file mode 100644
index 000000000000..f04e2800af2e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cough_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_1.ogg
new file mode 100644
index 000000000000..1b415ea46a07
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_2.ogg
new file mode 100644
index 000000000000..95eea1260a51
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_3.ogg
new file mode 100644
index 000000000000..97b190d7994c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/cry_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/female_sigh_moan.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/female_sigh_moan.ogg
new file mode 100644
index 000000000000..3c338a868baf
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/female_sigh_moan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/female_sniff.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/female_sniff.ogg
new file mode 100644
index 000000000000..edc75248790d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/female_sniff.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_1.ogg
new file mode 100644
index 000000000000..c0f80a1408d7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_2.ogg
new file mode 100644
index 000000000000..978a236dd1f2
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_3.ogg
new file mode 100644
index 000000000000..30e4150a5646
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_4.ogg
new file mode 100644
index 000000000000..bb73a1ef5d10
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_5.ogg
new file mode 100644
index 000000000000..96a08297b2b0
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/femalescream_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_1.ogg
new file mode 100644
index 000000000000..5161bb364099
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_2.ogg
new file mode 100644
index 000000000000..d9fc6919074d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_3.ogg
new file mode 100644
index 000000000000..5b39f41333c8
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_4.ogg
new file mode 100644
index 000000000000..9d31687aa998
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_5.ogg
new file mode 100644
index 000000000000..55509359c85f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_6.ogg
new file mode 100644
index 000000000000..02b61deef29c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_7.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_7.ogg
new file mode 100644
index 000000000000..48beb4ab30d7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/gasp_female_7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_1.ogg
new file mode 100644
index 000000000000..73945321891b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_2.ogg
new file mode 100644
index 000000000000..953450e66a4e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_3.ogg
new file mode 100644
index 000000000000..bd1e99de7690
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_4.ogg
new file mode 100644
index 000000000000..057a842adcbc
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/giggle_female_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f1.ogg
new file mode 100644
index 000000000000..d7e322babe5f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f2.ogg
new file mode 100644
index 000000000000..42627dcdea9f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_f2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_1.ogg
new file mode 100644
index 000000000000..e8fd2a8a3268
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_10.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_10.ogg
new file mode 100644
index 000000000000..b4b464bb685c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_10.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_11.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_11.ogg
new file mode 100644
index 000000000000..064d464505a4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_11.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_12.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_12.ogg
new file mode 100644
index 000000000000..de301f5c8233
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_12.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_13.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_13.ogg
new file mode 100644
index 000000000000..ed80538fa085
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_13.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_2.ogg
new file mode 100644
index 000000000000..59f5c22835b2
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_3.ogg
new file mode 100644
index 000000000000..b0e62d1cbb51
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_4.ogg
new file mode 100644
index 000000000000..87c61f0dab27
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_5.ogg
new file mode 100644
index 000000000000..a36c581a999c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_6.ogg
new file mode 100644
index 000000000000..dc8ab5dfbdba
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_7.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_7.ogg
new file mode 100644
index 000000000000..015f02f84330
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_8.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_8.ogg
new file mode 100644
index 000000000000..ed80538fa085
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_8.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_9.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_9.ogg
new file mode 100644
index 000000000000..3124eaf055cd
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/laugh_female_9.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f1.ogg
new file mode 100644
index 000000000000..836ecee5f8d0
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f10.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f10.ogg
new file mode 100644
index 000000000000..9654b020e923
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f10.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f11.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f11.ogg
new file mode 100644
index 000000000000..6fcb314058f3
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f11.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f12.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f12.ogg
new file mode 100644
index 000000000000..7b3831961082
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f12.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f13.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f13.ogg
new file mode 100644
index 000000000000..c3b368e3a8b9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f13.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f14.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f14.ogg
new file mode 100644
index 000000000000..09d3bb3fafba
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f14.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f2.ogg
new file mode 100644
index 000000000000..fd2f26723607
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f3.ogg
new file mode 100644
index 000000000000..7e3a35b4462e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f4.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f4.ogg
new file mode 100644
index 000000000000..71ac8c9b8553
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f5.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f5.ogg
new file mode 100644
index 000000000000..8e3396a4ac6d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f6.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f6.ogg
new file mode 100644
index 000000000000..cf6f12900495
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f7.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f7.ogg
new file mode 100644
index 000000000000..9eb7f7364318
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f8.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f8.ogg
new file mode 100644
index 000000000000..5f1ceff6fed6
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f8.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_f9.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f9.ogg
new file mode 100644
index 000000000000..22160295fc69
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_f9.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_1.ogg
new file mode 100644
index 000000000000..dcbac9ae6579
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_2.ogg
new file mode 100644
index 000000000000..88a1bf62b93d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_3.ogg
new file mode 100644
index 000000000000..f283acbcac70
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/moan_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/sigh_female.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/sigh_female.ogg
new file mode 100644
index 000000000000..d72c206cc306
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/sigh_female.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/sneeze_female.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/sneeze_female.ogg
new file mode 100644
index 000000000000..4324415599a2
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/sneeze_female.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/sniff_female.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/sniff_female.ogg
new file mode 100644
index 000000000000..6f4ce34b0b89
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/sniff_female.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_1.ogg
new file mode 100644
index 000000000000..548be96b76e1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_2.ogg
new file mode 100644
index 000000000000..67b15056728e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_3.ogg
new file mode 100644
index 000000000000..12d42db2440e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/female/yawn_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/cough_kidan.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/cough_kidan.ogg
new file mode 100644
index 000000000000..fcb41df9b3a4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/cough_kidan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_1.ogg
new file mode 100644
index 000000000000..09baca1e8ce6
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_2.ogg
new file mode 100644
index 000000000000..545c7cb3dd86
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/cry_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/deathsound_kidan.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/deathsound_kidan.ogg
new file mode 100644
index 000000000000..373ab0bee75b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/deathsound_kidan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_1.ogg
new file mode 100644
index 000000000000..78de7bd6b5ca
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_2.ogg
new file mode 100644
index 000000000000..3a77eaa0ce1d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_3.ogg
new file mode 100644
index 000000000000..0b691233e365
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/dying_gasp_kidan_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_1.ogg
new file mode 100644
index 000000000000..960be0b59185
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_2.ogg
new file mode 100644
index 000000000000..e0a75f3fe65b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/giggle_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_1.ogg
new file mode 100644
index 000000000000..8266231e230e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_2.ogg
new file mode 100644
index 000000000000..675b84222e26
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_3.ogg
new file mode 100644
index 000000000000..dfdd8278f602
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_4.ogg
new file mode 100644
index 000000000000..93d39af1f80d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/laugh_kidan_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/moan_kidan.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/moan_kidan.ogg
new file mode 100644
index 000000000000..a6a05d070070
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/moan_kidan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/scream_kidan.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/scream_kidan.ogg
new file mode 100644
index 000000000000..20a361186586
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/scream_kidan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_1.ogg
new file mode 100644
index 000000000000..bfb2b091e63c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_2.ogg
new file mode 100644
index 000000000000..92326e36924b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/sigh_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_1.ogg
new file mode 100644
index 000000000000..068c8deffb42
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_2.ogg
new file mode 100644
index 000000000000..76e8bd363fb7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_3.ogg
new file mode 100644
index 000000000000..5970e47646b4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/sneeze_kidan_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_1.ogg
new file mode 100644
index 000000000000..3ce623ec34cb
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_2.ogg
new file mode 100644
index 000000000000..42b76478a95a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_3.ogg
new file mode 100644
index 000000000000..2d851bddb839
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/talk_kidan_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_1.ogg
new file mode 100644
index 000000000000..1a51d0baee21
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_2.ogg
new file mode 100644
index 000000000000..baac80f59e03
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/waves_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_1.ogg
new file mode 100644
index 000000000000..b89b6c11f829
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_2.ogg
new file mode 100644
index 000000000000..434d8cf6c4d1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_3.ogg
new file mode 100644
index 000000000000..e68bc71799b7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/kidan/wiggles_kidan_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_1.ogg
new file mode 100644
index 000000000000..e0ddde118f3a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_2.ogg
new file mode 100644
index 000000000000..8e7ef3734d80
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_3.ogg
new file mode 100644
index 000000000000..546ba45bff0f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/choke_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_1.ogg
new file mode 100644
index 000000000000..146beefdf873
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_2.ogg
new file mode 100644
index 000000000000..745fb50e19c4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_3.ogg
new file mode 100644
index 000000000000..abfe70d27690
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/cough_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_1.ogg
new file mode 100644
index 000000000000..6d4e35be168f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_2.ogg
new file mode 100644
index 000000000000..b0437d3d9383
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/cry_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_1.ogg
new file mode 100644
index 000000000000..5ce88dde766f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_2.ogg
new file mode 100644
index 000000000000..df311e2698e1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_3.ogg
new file mode 100644
index 000000000000..5614ae1b5735
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_4.ogg
new file mode 100644
index 000000000000..3d29b276d22d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_5.ogg
new file mode 100644
index 000000000000..6cbc4001bfd7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_6.ogg
new file mode 100644
index 000000000000..a2417066a1fd
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_7.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_7.ogg
new file mode 100644
index 000000000000..84059f30c441
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/gasp_male_7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_1.ogg
new file mode 100644
index 000000000000..06eb4abdfef7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_2.ogg
new file mode 100644
index 000000000000..befb7665723a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/giggle_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m1.ogg
new file mode 100644
index 000000000000..5ff9fe2d8b32
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m2.ogg
new file mode 100644
index 000000000000..391ea1af2983
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_m2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_1.ogg
new file mode 100644
index 000000000000..db42a17d0f19
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_10.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_10.ogg
new file mode 100644
index 000000000000..dba2e80c257f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_10.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_11.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_11.ogg
new file mode 100644
index 000000000000..7522a4b4d962
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_11.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_12.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_12.ogg
new file mode 100644
index 000000000000..89805016ef00
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_12.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_13.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_13.ogg
new file mode 100644
index 000000000000..8892c8868b84
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_13.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_2.ogg
new file mode 100644
index 000000000000..8f7853596dbf
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_3.ogg
new file mode 100644
index 000000000000..8b826be639d8
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_4.ogg
new file mode 100644
index 000000000000..e5fb59a43a47
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_5.ogg
new file mode 100644
index 000000000000..b93de32ac989
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_6.ogg
new file mode 100644
index 000000000000..6ca3513e542a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_7.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_7.ogg
new file mode 100644
index 000000000000..795e7a6ba674
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_8.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_8.ogg
new file mode 100644
index 000000000000..6b4f906ffe09
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_8.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_9.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_9.ogg
new file mode 100644
index 000000000000..4033e04eac3b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/laugh_male_9.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/male_sigh_moan.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/male_sigh_moan.ogg
new file mode 100644
index 000000000000..e748c0c22b93
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/male_sigh_moan.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/male_sniff.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/male_sniff.ogg
new file mode 100644
index 000000000000..bab9580ff490
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/male_sniff.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_1.ogg
new file mode 100644
index 000000000000..ee9005b89222
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_2.ogg
new file mode 100644
index 000000000000..989b612ab153
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_3.ogg
new file mode 100644
index 000000000000..902db1c132cb
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_4.ogg
new file mode 100644
index 000000000000..62f787d4a7b5
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_5.ogg
new file mode 100644
index 000000000000..2aec2c7149cf
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/malescream_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_6.ogg
new file mode 100644
index 000000000000..bdf732c2212b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/malescream_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m1.ogg
new file mode 100644
index 000000000000..93e6d1410cdd
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m2.ogg
new file mode 100644
index 000000000000..3bae5e073c67
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m3.ogg
new file mode 100644
index 000000000000..a37eefe4cd8f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m4.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m4.ogg
new file mode 100644
index 000000000000..e8683ea52611
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m5.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m5.ogg
new file mode 100644
index 000000000000..2308558b6699
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m6.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m6.ogg
new file mode 100644
index 000000000000..0d60d7a74cca
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m7.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m7.ogg
new file mode 100644
index 000000000000..4e744775702d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_m8.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m8.ogg
new file mode 100644
index 000000000000..cd9a9d1e3d7e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_m8.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_1.ogg
new file mode 100644
index 000000000000..59cc27914305
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_2.ogg
new file mode 100644
index 000000000000..82a021b0a945
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_3.ogg
new file mode 100644
index 000000000000..78e8eb9c8f66
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/moan_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/sigh_male.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/sigh_male.ogg
new file mode 100644
index 000000000000..1590bcdee605
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/sigh_male.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/sniff_male.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/sniff_male.ogg
new file mode 100644
index 000000000000..d4b9ddf6cedb
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/sniff_male.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_1.ogg
new file mode 100644
index 000000000000..193f59874584
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_2.ogg
new file mode 100644
index 000000000000..4064029e1e34
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/male/yawn_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/diona_crunch.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/diona_crunch.ogg
new file mode 100644
index 000000000000..1cfea3c022d7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/diona_crunch.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_cougha.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_cougha.ogg
new file mode 100644
index 000000000000..f53e0f5bd2c9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_cougha.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_coughb.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_coughb.ogg
new file mode 100644
index 000000000000..2626f8d6621a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_coughb.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_cougha.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_cougha.ogg
new file mode 100644
index 000000000000..e0a8441e3d43
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_cougha.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_coughb.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_coughb.ogg
new file mode 100644
index 000000000000..b70b6d16c144
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_coughb.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_sneeze.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_sneeze.ogg
new file mode 100644
index 000000000000..9649c862449d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_machine_sneeze.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_sneeze.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_sneeze.ogg
new file mode 100644
index 000000000000..e6c4a49ade82
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/f_sneeze.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/ipc_crunch.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/ipc_crunch.ogg
new file mode 100644
index 000000000000..225efd5ba608
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/ipc_crunch.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/knuckles.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/knuckles.ogg
new file mode 100644
index 000000000000..b61a50fb613a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/knuckles.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_cougha.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_cougha.ogg
new file mode 100644
index 000000000000..146beefdf873
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_cougha.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughb.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughb.ogg
new file mode 100644
index 000000000000..745fb50e19c4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughb.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughc.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughc.ogg
new file mode 100644
index 000000000000..abfe70d27690
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_coughc.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_cougha.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_cougha.ogg
new file mode 100644
index 000000000000..3e803f64b1e9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_cougha.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughb.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughb.ogg
new file mode 100644
index 000000000000..d12870709228
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughb.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughc.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughc.ogg
new file mode 100644
index 000000000000..67e133149340
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/m_machine_coughc.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/machine_sneeze.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/machine_sneeze.ogg
new file mode 100644
index 000000000000..f0ba0ab81702
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/machine_sneeze.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_bubble.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_bubble.ogg
new file mode 100644
index 000000000000..c8ca98ef7a13
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_bubble.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_pop.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_pop.ogg
new file mode 100644
index 000000000000..e1196fc29c0e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/slime_pop.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/mob_effects/sneeze.ogg b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/sneeze.ogg
new file mode 100644
index 000000000000..e7587bab20fa
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/mob_effects/sneeze.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/moth/moth_chitter.ogg b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_chitter.ogg
new file mode 100644
index 000000000000..842bcf8e533d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_chitter.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/moth/moth_cough.ogg b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_cough.ogg
new file mode 100644
index 000000000000..6222e84f6faf
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_cough.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/moth/moth_laugh.ogg b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_laugh.ogg
new file mode 100644
index 000000000000..391d6c5aefe2
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_laugh.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/moth/moth_scream.ogg b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_scream.ogg
new file mode 100644
index 000000000000..482086fb630d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_scream.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/moth/moth_sneeze.ogg b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_sneeze.ogg
new file mode 100644
index 000000000000..c5ac979aed11
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/moth/moth_sneeze.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_1.ogg
new file mode 100644
index 000000000000..4cfc6ae65e6f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_2.ogg
new file mode 100644
index 000000000000..00ae761a239e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_3.ogg
new file mode 100644
index 000000000000..3868149c8e56
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/plasmaman/scream_plasmaman_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/salute.ogg b/mod_celadon/_storge_sounds/sound/emotes/salute.ogg
new file mode 100644
index 000000000000..76521a63540e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/salute.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/sarathi/lizard_laugh1.ogg b/mod_celadon/_storge_sounds/sound/emotes/sarathi/lizard_laugh1.ogg
new file mode 100644
index 000000000000..b2c02e6d2fcb
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/sarathi/lizard_laugh1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/scream_jelly.ogg b/mod_celadon/_storge_sounds/sound/emotes/scream_jelly.ogg
new file mode 100644
index 000000000000..97fb7e3c68e8
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/scream_jelly.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_1.ogg
new file mode 100644
index 000000000000..41f436d3540a
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_2.ogg
new file mode 100644
index 000000000000..59b7d71d05c0
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/anger_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/credit.txt b/mod_celadon/_storge_sounds/sound/emotes/skrell/credit.txt
new file mode 100644
index 000000000000..b99f5b367010
--- /dev/null
+++ b/mod_celadon/_storge_sounds/sound/emotes/skrell/credit.txt
@@ -0,0 +1,14 @@
+anger_1.ogg
+CC4-BY-NC https://freesound.org/people/BiancaBothaPure/sounds/365671/
+
+anger_2.ogg
+CC0 https://freesound.org/people/BaDoink/sounds/522731/
+
+warble_1.ogg
+CC4-BY https://freesound.org/people/JPBILLINGSLEYJR/sounds/469364/
+
+warble_2.ogg
+CC0 https://freesound.org/people/D.jones/sounds/527846/
+
+croak_1.ogg, croak_2.ogg, croak_3.ogg
+CC4-BY https://freesound.org/people/juskiddink/sounds/99644/
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_1.ogg
new file mode 100644
index 000000000000..a680fc29dbc8
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_2.ogg
new file mode 100644
index 000000000000..2fbeb76a090f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_3.ogg
new file mode 100644
index 000000000000..f4a5966382d9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/croak_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_female_1.ogg
new file mode 100644
index 000000000000..1ea51a20362b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_male_1.ogg
new file mode 100644
index 000000000000..1b6e69ff0cf5
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/giggle_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_1.ogg
new file mode 100644
index 000000000000..5a11708fa835
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_2.ogg
new file mode 100644
index 000000000000..6357b3e56099
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_3.ogg
new file mode 100644
index 000000000000..ca69d95a8d8d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_female_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_1.ogg
new file mode 100644
index 000000000000..384f8a797e92
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_2.ogg
new file mode 100644
index 000000000000..8087bdcdbd02
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_3.ogg
new file mode 100644
index 000000000000..2954bbcaa33f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/laugh_male_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_1.ogg
new file mode 100644
index 000000000000..120353048579
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_2.ogg
new file mode 100644
index 000000000000..3dc79ab0c454
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/skrell/warble_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_1.ogg
new file mode 100644
index 000000000000..f1afa4ecccab
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_2.ogg
new file mode 100644
index 000000000000..97b4b7a99cf5
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_3.ogg
new file mode 100644
index 000000000000..b95e4603cc11
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_4.ogg
new file mode 100644
index 000000000000..4e867039ea71
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_5.ogg
new file mode 100644
index 000000000000..8c0a300acd26
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_6.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_6.ogg
new file mode 100644
index 000000000000..bddccff92491
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_6.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/snore_7.ogg b/mod_celadon/_storge_sounds/sound/emotes/snore_7.ogg
new file mode 100644
index 000000000000..7bfe7ca8b6b4
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/snore_7.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/annoyed_meow_tajaran.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/annoyed_meow_tajaran.ogg
new file mode 100644
index 000000000000..add32db8d9c7
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/annoyed_meow_tajaran.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/hiss_tajaran.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/hiss_tajaran.ogg
new file mode 100644
index 000000000000..8a14458ad24e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/hiss_tajaran.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/meow_tajaran.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/meow_tajaran.ogg
new file mode 100644
index 000000000000..3dcccca7de7c
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/meow_tajaran.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran.ogg
new file mode 100644
index 000000000000..1125cb2bbd71
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran_long.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran_long.ogg
new file mode 100644
index 000000000000..c74b845250d0
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/purr_tajaran_long.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/tajaran/scream_tajaran.ogg b/mod_celadon/_storge_sounds/sound/emotes/tajaran/scream_tajaran.ogg
new file mode 100644
index 000000000000..a9f3be40ddd8
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/tajaran/scream_tajaran.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/toysqueak1.ogg b/mod_celadon/_storge_sounds/sound/emotes/toysqueak1.ogg
new file mode 100644
index 000000000000..e64a6fb179d1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/toysqueak1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/deathsound_unathi.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/deathsound_unathi.ogg
new file mode 100644
index 000000000000..6fe30f0f1f9f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/deathsound_unathi.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_1.ogg
new file mode 100644
index 000000000000..f286ebd35e09
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_2.ogg
new file mode 100644
index 000000000000..1674bb756eba
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_3.ogg
new file mode 100644
index 000000000000..24d212007b40
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/roar_unathi_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_1.ogg
new file mode 100644
index 000000000000..f9e218f2ce72
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_2.ogg
new file mode 100644
index 000000000000..18e353878f9b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/rumble_unathi_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_female.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_female.ogg
new file mode 100644
index 000000000000..a8a8fb45ce8d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_female.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_male.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_male.ogg
new file mode 100644
index 000000000000..30255bf49c4f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/scream_male.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_female.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_female.ogg
new file mode 100644
index 000000000000..cb62b78dea96
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_female.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_male.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_male.ogg
new file mode 100644
index 000000000000..bc2cb785836f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/sneeze_male.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_1.ogg
new file mode 100644
index 000000000000..c48027b52ae1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_2.ogg
new file mode 100644
index 000000000000..3ee114f6ec86
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_3.ogg
new file mode 100644
index 000000000000..64a494d0b0cc
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/talk_unathi_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_1.ogg
new file mode 100644
index 000000000000..e101bab110a0
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_2.ogg
new file mode 100644
index 000000000000..9560561ba74e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/threat_unathi_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_short_unathi.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_short_unathi.ogg
new file mode 100644
index 000000000000..1f0cf906d7f9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_short_unathi.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_unathi.ogg b/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_unathi.ogg
new file mode 100644
index 000000000000..27041906ba02
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/unathi/whip_unathi.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_1.ogg
new file mode 100644
index 000000000000..71788a14f45d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_2.ogg
new file mode 100644
index 000000000000..38daa763fc45
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/deathgasp_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_1.ogg
new file mode 100644
index 000000000000..0e329374617b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_2.ogg
new file mode 100644
index 000000000000..76857f4ee928
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_3.ogg
new file mode 100644
index 000000000000..e6e0898062c1
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_4.ogg
new file mode 100644
index 000000000000..516f763f864d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_5.ogg
new file mode 100644
index 000000000000..cb076af860ae
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_dying_gasp_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/female_scream.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/female_scream.ogg
new file mode 100644
index 000000000000..a409cd019358
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/female_scream.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/gasp.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/gasp.ogg
new file mode 100644
index 000000000000..b1fe8bc177f9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/gasp.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/growl1.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/growl1.ogg
new file mode 100644
index 000000000000..d5152d9c0577
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/growl1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/growl2.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/growl2.ogg
new file mode 100644
index 000000000000..5c48053ac685
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/growl2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/growl3.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/growl3.ogg
new file mode 100644
index 000000000000..bcacf2442f0f
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/growl3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/howl.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/howl.ogg
new file mode 100644
index 000000000000..778fd6b2483b
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/howl.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_1.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_1.ogg
new file mode 100644
index 000000000000..767d6ecb9952
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_1.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_2.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_2.ogg
new file mode 100644
index 000000000000..8a545f532653
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_2.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_3.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_3.ogg
new file mode 100644
index 000000000000..acfbfe913ec9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_3.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_4.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_4.ogg
new file mode 100644
index 000000000000..516f763f864d
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_4.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_5.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_5.ogg
new file mode 100644
index 000000000000..cb076af860ae
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_dying_gasp_5.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/male_scream.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/male_scream.ogg
new file mode 100644
index 000000000000..e7c1571f6d46
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/male_scream.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/monkey_scream.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/monkey_scream.ogg
new file mode 100644
index 000000000000..3aaf0f65cec9
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/monkey_scream.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/voice/robot_scream.ogg b/mod_celadon/_storge_sounds/sound/emotes/voice/robot_scream.ogg
new file mode 100644
index 000000000000..a14b3ad0b145
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/voice/robot_scream.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/vulpkanin/purr.ogg b/mod_celadon/_storge_sounds/sound/emotes/vulpkanin/purr.ogg
new file mode 100644
index 000000000000..529160920930
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/vulpkanin/purr.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/wbark.ogg b/mod_celadon/_storge_sounds/sound/emotes/wbark.ogg
new file mode 100644
index 000000000000..e37005eeb9ab
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/wbark.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/emotes/whistle.ogg b/mod_celadon/_storge_sounds/sound/emotes/whistle.ogg
new file mode 100644
index 000000000000..e8c1a6c90f46
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/emotes/whistle.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/items/musicbox.ogg b/mod_celadon/_storge_sounds/sound/items/musicbox.ogg
new file mode 100644
index 000000000000..667d7cd19c71
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/items/musicbox.ogg differ
diff --git a/mod_celadon/_storge_sounds/sound/plushes/emotes/hiss_t.ogg b/mod_celadon/_storge_sounds/sound/plushes/emotes/hiss_t.ogg
new file mode 100644
index 000000000000..8a14458ad24e
Binary files /dev/null and b/mod_celadon/_storge_sounds/sound/plushes/emotes/hiss_t.ogg differ
diff --git a/mod_celadon/balance/README.md b/mod_celadon/balance/README.md
index d6d6856d7f0d..454760c39a92 100644
--- a/mod_celadon/balance/README.md
+++ b/mod_celadon/balance/README.md
@@ -51,7 +51,7 @@ EDIT: `code\modules\cargo\packs\food.dm` : `/datum/supply_pack/food/`
Лут с элиток (на данный момент убрано из кода для ребаланса)
EDIT: `code\modules\mob\living\simple_animal\hostile\mining_mobs\elites\elite.dm`: `/obj/structure/elite_tumor/proc/onEliteLoss()` -> var/obj/structure/closet/crate/necropolis/tendril/lootbox = new /obj/structure/closet/crate/necropolis/tendril(loc)
-ADD: `code\modules\projectiles\ammunition\_ammunition.dm` : /obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) -> добавлены звук подбора патрона в магазин с пола и задержка в 1 секунду зависящая от кликанья по патронам. Чем быстрее клики - тем быстрее загрузятся патроны.
+ADD: `code\modules\projectiles\ammunition\_ammunition.dm` : /obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) -> добавлены звук подбора патрона в магазин с пола и задержка в 1 секунду зависящая от кликанья по патронам. Чем быстрее клики - тем быстрее загрузятся патроны. -> перемещено в `mod_celadon/items/code/ammunition.dm`
Очки с зомби и ксеноморфов
REMOVE: `D:\1ss\ShiptestYata\code\modules\surgery\experimental_dissection.dm`: `/datum/surgery_step/dissection/preop`
REMOVE: `code\modules\projectiles\guns\energy.dm`
@@ -92,6 +92,8 @@ EDIT: `code/modules/modular_computers/file_system/programs/radar.dm` : став
EDIT: `mod_celadon/return_content/code/hivebot.dm` : понизили шанс выпадения ксенобио с 45% до 15% с портала
EDIT: `code/modules/reagents/chemistry/recipes/others.dm` : Меняем кровь слаймоменов в ядрах слаймов на кислоту
+EDIT: `code/game/objects/items/storage/briefcase.dm` : Меняем разрешенные вложенные предметы с нормала на смол, чтобы нельзя было вкладывать коробки с и создавать матрешку коробок.
+
"
);
};
-
-// Signal tgui that we're ready to receive updates
-Byond.sendMessage('ready');
|